I had a quick look, that's a nice project (pricehist).
However, this is mentioned and inaccurate:

Beancount's bean-price <https://github.com/beancount/beanprice> tool
fetches prices and addresses other workflow concerns in a
Beancount-specific manner, generally requiring a Beancount file as input.

AFAICT it's very similar in intent to beanprice:
https://github.com/beancount/beanprice

With more active maintenance (this is what's needed for beanprice). I spent
time trying to figure out how to contact the author, creating an account on
gitlab, etc. couldn't figure out how to log a ticket. (gitlab seems a bit
more closed than github)



On Sat, Nov 13, 2021 at 10:54 AM Joost Brok <joostb...@gmail.com> wrote:

> Instead of importing implicited prices I went the other route, just
> creating a FX commodity and get historical price automatically through this
> amazing package: https://gitlab.com/chrisberkhout/pricehist. This,
> together with the Nordigen API / importer
> <https://tariochbctools.readthedocs.io/en/latest/importers.html#nordigen>
> for the the non-main accounts works perfectly and everything is automated
> now! Next step to make everything run form Fava instead of cli. Great!
>
>
>
> Op dinsdag 9 november 2021 om 18:47:56 UTC+1 schreef Joost Brok:
>
>> Thanks! I will leave it for now then as fava indeed throws errors and
>> isn't displaying the right values. I wanted to see if I could use one base
>> currency but I don't have the further skills to develop an importer for
>> this to import implicit prices at scale from the CSV. :)
>>
>> I appreciate your help.
>>
>> Op dinsdag 9 november 2021 om 16:00:59 UTC+1 schreef bl...@furius.ca:
>>
>>> This is not going to work.
>>> Don't do that.
>>>
>>> If you're trying to build something that will serialize out, use the
>>> Posting's price.
>>> Unfortunately you can't build a Posting that will output a total amount
>>> at the moment, since that field gets converted on parsing.
>>> You could always just use good old print()...
>>>
>>>
>>>
>>>
>>> On Tue, Nov 9, 2021 at 9:56 AM Joost Brok <joos...@gmail.com> wrote:
>>>
>>>> Thanks for your reply! After fiddling around and looking at the docs it
>>>> seemed only the currency arg is not validated and allows any string.
>>>> Also number couldn't been set to None. So I'm now using a creative
>>>> solution to put the base decimal amount in number (e.g. -139.99)and
>>>> the rest of the string in currency (e.g. EUR @@ -119.04 GBP). It's a
>>>> bit of a hack but works for now (using amount.Amount(D(local_amt),
>>>> implicit_formatted).
>>>>
>>>> *Hacky solution:*
>>>> def implicit_amount(self, base_amt, local_amt, local_cur):
>>>> implicit_formatted = local_cur + " @@ " + str(D(base_amt)) + " " +
>>>> self.currency
>>>> return amount.Amount(D(base_amt), self.currency) if (base_amt,
>>>> self.currency) == (local_amt, local_cur) else amount.Amount(D(local_amt),
>>>> implicit_formatted)
>>>>
>>>> From the docs:
>>>> beancount.core.amount.Amount.__new__(cls, number, currency)
>>>> Args: number: A string or Decimal instance. *Will get converted
>>>> automatically.* currency: A string, the currency symbol to use. """
>>>>
>>>> Any thoughts on making it less hacky and more in line with the api? :)
>>>>
>>>> Op dinsdag 9 november 2021 om 14:19:41 UTC+1 schreef bl...@furius.ca:
>>>>
>>> units has to be of type 'Amount()' when you create the posting.
>>>>> It looks like you might have set it to a str.
>>>>> (Python doesn't offer much help, there's a type validation
>>>>> function somewhere in beancount.core.data.)
>>>>>
>>>>>
>>>>> On Tue, Nov 9, 2021 at 8:05 AM Joost Brok <joos...@gmail.com> wrote:
>>>>>
>>>>>> Hello everyone, I'm really learning beancount and building my
>>>>>> importers. We're an international family so the multi-currency support
>>>>>> trough fava makes our life easier to keep track of expenses against our 
>>>>>> two
>>>>>> base account currencies. After doing some research I found out I can
>>>>>> simplify currency reporting quite a bit by adding implicit prices. One of
>>>>>> our main banks exposes the following fields in their export csv: amount,
>>>>>> currency, local amount, local currency. I;m trying to write an importer
>>>>>> with explicit prices (e.g. Expenses:Foo 100 GBP @@ 110 EUR) however I'm
>>>>>> having trouble using the data.Posting function to validate it.
>>>>>>
>>>>>> from my *importers/bank_name.py*:
>>>>>> def implicit_amount(self, base_amount, local_amt, local_cur):
>>>>>> implicit_formatted = "" + local_amt + local_cur + " @@ " + amount +
>>>>>> self.currency # try to see if we hardcode the string...
>>>>>> return amount.Amount(D(base_amount), self.currency) if (base_amount,
>>>>>> self.currency) == (local_amt, local_cur) else implicit_formatted
>>>>>> [....]
>>>>>> amount = self.implicit_amount(row['Amount'], row['Local amount'],
>>>>>> row['Local currency'])
>>>>>> [....]
>>>>>> postings = [data.Posting(self.account, amount, None, None, None,
>>>>>> None),]
>>>>>>
>>>>>> *Gives..*
>>>>>> ...r.py", line 31, in _process
>>>>>>     if entry.postings[0].units.number > 0:
>>>>>> AttributeError: 'str' object has no attribute 'number'
>>>>>>
>>>>>> How do I build an importer that supports implicit prices? I couldn't
>>>>>> find any example/existing importers that support that and where I could
>>>>>> re-use code from.
>>>>>>
>>>>>> Thanks a lot!
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Beancount" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to beancount+...@googlegroups.com.
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/beancount/d27098b1-c32a-4ea6-b2c2-0eb07ee2a710n%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/beancount/d27098b1-c32a-4ea6-b2c2-0eb07ee2a710n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Beancount" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to beancount+...@googlegroups.com.
>>>>
>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/beancount/46412d0c-cd1f-49b0-a2ed-2d8899e4709fn%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/beancount/46412d0c-cd1f-49b0-a2ed-2d8899e4709fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
> You received this message because you are subscribed to the Google Groups
> "Beancount" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to beancount+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beancount/ccebaef9-2c8c-4979-8b56-3535930f3634n%40googlegroups.com
> <https://groups.google.com/d/msgid/beancount/ccebaef9-2c8c-4979-8b56-3535930f3634n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beancount+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/CAK21%2BhPjWkpAVtHx5EPw73XpjEaak-Epv9Nrj66Daqjxk2xSXg%40mail.gmail.com.

Reply via email to