>Can you point me to this documentation that describes the behavior of the 
bean-price utility? 

The best documentation at the moment specifically on bean-price --update is 
the code itself. There's two core parts of interest within 
beanprice/price.py 
<https://github.com/beancount/beanprice/blob/7bc440a5a587e810a290db979aa55a96ec18612b/beanprice/price.py>
:

   - the process_args 
   
<https://github.com/beancount/beanprice/blob/7bc440a5a587e810a290db979aa55a96ec18612b/beanprice/price.py#L766>
 
   function (sortof an entry point for the tool) where it gets into the update 
   function.
   - the get_price_jobs_up_to_date 
   
<https://github.com/beancount/beanprice/blob/7bc440a5a587e810a290db979aa55a96ec18612b/beanprice/price.py#L327>
 
   function
   
Some of the earlier documentation is:

   - Bean-price's original documentation: 
   
https://docs.google.com/document/d/1thYRAMell_QT1Da1F_laprSs6BlROZjyK_h3V8qHW9c/edit
 
   (doesn't have information about --update yet).
   - Earlier archived discussion about how --update emerged from originally 
   wanting to just get prices over a range of dates: 
   
https://web.archive.org/web/20200621145827/https://bitbucket.org/blais/beancount/issues/329/bean-price-support-fetch-over-range-of
   )


>Also where are the prices stored? Is that in cache? Can I use it to 
populate an explicit file? 

Prices can be stored in an explicit file, you just pipe the output of the 
bean-price command to the file. A typical use might be:
bean-price --update --update-rate weekday myLedger.beancount > 
myPrices.beancount

Prices can also just be referenced in your beancount file with an include 
line like:
include "myPrices.beancount"


On Sunday, January 10, 2021 at 8:23:35 PM UTC-8 [email protected] wrote:

> Hi Vivek, I am currently exploring beancount to track an investment 
> portfolio. In this example, I want to track buy/sell transactions of BTC 
> from Coinbase.
> I exactly do not understand the various switches that beanprice utility 
> provides. 
>
> I plan to use bean price to populate a prices.db file which I plan to 
> include in the beancount file and later use to track the value of the 
> portfolio at different times. Is this a workflow that can be achieved with 
> beancount?
>
> What exactly does the --update option do if my beancount file already has 
> transactions made at corresponding prices in USD. Below is an example from 
> my beancount file
> 2020-10-31 * "Buy BTC at Coinbase"
>   Assets:US:Crypto:Coinbase:BTC           0.03528803 BTC {} @ 14169.11 USD
>   Assets:US:BofA:Checking                    -500.00 USD
>
> 2020-11-03 * "Buy BTC at Coinbase"
>   Assets:US:Crypto:Coinbase:BTC           0.03598271 BTC {} @ 13895.56 USD
>   Assets:US:BofA:Checking                    -500.00 USD
>
> Regarding the combination of using --update AND --date, Per the 
>> documentation, the way I have things setup is that when --update is used, 
>> it will "Fetch prices from most recent price for each source up to present 
>> day or specified --date" . So in this scenario it will look at the last 
>> date fetched and fill in the gaps up till the specified date (2020-10-26). 
>> If you already have a price after 2020-10-26 it's not going to do anything.
>
> Can you point me to this documentation that describes the behavior of the 
> bean-price utility? Also where are the prices stored? Is that in cache? Can 
> I use it to populate an explicit file? 
>
> Thank you for taking time to go through my (lengthy) query.
>
> Ghanashyam 
>
> On Sun 10 Jan, 2021, 19:24 [email protected], <[email protected]> wrote:
>
>> I'll be honest I haven't had time to use beancount or run the latest, but 
>> looking briefly at the code there's a few things that comes to mind:
>>
>>
>>    - I wasn't expecting one to use the --update feature without a 
>>    beancount file (i.e. how you're using -e). --update was really meant for 
>> a 
>>    workflow with an existing beancount file, where there's dates defined 
>>    around the commodity and prior prices and transactions to help figure 
>> out. 
>>    
>>    Is this a use case you see yourself regularly using? I know earlier I 
>>    considered changing things to have a specified --start-date and 
>> --end-date 
>>    but that would've likely broken how so many others already use bean-price 
>>    in conjunction with a basic shell script to grab multiple prices. Another 
>>    option is to just mock up a beancount file with the initial commodity 
>> entry 
>>    date (e.g. "2020-10-26 commodity BTC") then run bean-price --update (no 
>>    --date needed).
>>    
>>    - "--data" - just as a sanity check I assume you meant "--date" here.
>>    
>>    - Regarding the combination of using --update AND --date, Per the 
>>    documentation, the way I have things setup is that when --update is used, 
>>    it will "Fetch prices from most recent price for each source up to 
>> present 
>>    day or specified --date" . So in this scenario it will look at the last 
>>    date fetched and fill in the gaps up till the specified date 
>> (2020-10-26). 
>>    If you already have a price after 2020-10-26 it's not going to do 
>> anything.
>>    
>>    
>>    
>> -Vivek
>>
>>
>>
>> On Sunday, January 10, 2021 at 2:40:43 PM UTC-8 [email protected] wrote:
>>
>>> Apologies for the trivial question. I re-installed the latest beancount 
>>> and beanprice from the repository using 
>>>
>>> sudo pip3 install git+
>>> https://github.com/beancount/beancount#egg=beancount
>>> sudo pip3 install git+
>>> https://github.com/beancount/beanprice#egg=beanprice 
>>>
>>> With this I do see --update-rate switch when I run bean-price -h
>>> However, I could not figure out the switch combinations to use to get a 
>>> dump of the price on a specific range 
>>>
>>> An example that I tried out is here 
>>> bean-price --update --update-rate daily --data 2020-10-26 -e 
>>> USD:coinbase/BTC-USD
>>>
>>> Please suggest the correct command to fetch prices from a date (say 
>>> 2020-10-26) to present day. 
>>>
>>> Thanks
>>> Ghanashyam
>>>
>>>
>>> On Sun, 20 Dec 2020 at 12:27, Martin Blais <[email protected]> wrote:
>>>
>>>> Merged.
>>>>
>>>> beancount (master):
>>>>
>>>> https://github.com/beancount/beancount/commit/00c0b71fb03c074be08ad10f709c9b6f7e99aa70
>>>>
>>>> beanprice:
>>>>
>>>> https://github.com/beancount/beanprice/commit/f1bcfea1c217c460ef419e05aa7b9ab2dff0bab2
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, Dec 20, 2020 at 1:42 PM [email protected] <[email protected]> 
>>>> wrote:
>>>>
>>>>> Thanks Martin!
>>>>>
>>>>> On Sunday, December 20, 2020 at 10:31:52 AM UTC-8 [email protected] 
>>>>> wrote:
>>>>>
>>>>>> Had a quick look; updating the branch in v2 isn't trivial (I deleted 
>>>>>> and revived beanprice during the move by accident).
>>>>>> I'll merge manually the changes to ops/lifetimes.py and create a new 
>>>>>> change in the new repo.
>>>>>>
>>>>>>
>>>>>> On Sun, Dec 20, 2020 at 1:20 PM Martin Blais <[email protected]> wrote:
>>>>>>
>>>>>>> Vivek, the repository has moved to 
>>>>>>> https://github.com/beancount/beanprice
>>>>>>> Would you like to resubmit it there?
>>>>>>>
>>>>>>>
>>>>>>> On Sun, Dec 20, 2020 at 12:48 PM [email protected] <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Ghanashyam, 
>>>>>>>> Yes, during the migration from bitbucket to github Martin Blais 
>>>>>>>> moved it to 
>>>>>>>> https://github.com/beancount/beancount/tree/pr128_seltzered_beanpriceupdate
>>>>>>>>  
>>>>>>>> . It hasn't been reviewed/accepted yet, but perhaps it could be 
>>>>>>>> updated so 
>>>>>>>> it's easier to consider again. I haven't had time to touch beancount 
>>>>>>>> this 
>>>>>>>> year so that is the latest commit.
>>>>>>>>
>>>>>>>> On Saturday, December 19, 2020 at 11:27:13 PM UTC-8 
>>>>>>>> [email protected] wrote:
>>>>>>>>
>>>>>>>>> Hi Vivek, Do you have this update? The bitbucket link is not 
>>>>>>>>> available anymore. Curious if this feature was ever reviewed and 
>>>>>>>>> accepted, 
>>>>>>>>> seems like a very good feature
>>>>>>>>>
>>>>>>>>> On Sunday, 19 January 2020 at 21:33:06 UTC-8 [email protected] 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Andrzej! Nice to hear you're interested in the price update 
>>>>>>>>>> feature. There was some discussion between me and Johannes Harms 
>>>>>>>>>> late last 
>>>>>>>>>> year in a related issue ( 
>>>>>>>>>> https://bitbucket.org/blais/beancount/issues/329/bean-price-support-fetch-over-range-of
>>>>>>>>>>  
>>>>>>>>>> )  We may want to continue discussion there - last thing we were 
>>>>>>>>>> looking into was optimizing how a bunch of historical prices are 
>>>>>>>>>> fetched.
>>>>>>>>>>
>>>>>>>>>> I honestly don't know how the review process works for beancount, 
>>>>>>>>>> I've just been using my own fork in the meantime, so a script like 
>>>>>>>>>> Justus 
>>>>>>>>>> uses may be a better solution for your needs.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sunday, January 19, 2020 at 6:46:09 PM UTC-8, Justus Pendleton 
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> On Monday, January 20, 2020 at 5:14:13 AM UTC+7, Andrzej wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Alternatively, does anyone know if there a tool that does 
>>>>>>>>>>>> something similar but is outside of beancount main repository? 
>>>>>>>>>>>> (I'm not a 
>>>>>>>>>>>> fan of maintaining my own fork of beancount for this patch)
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Vivek mentioned in his original post that people wrote their own 
>>>>>>>>>>> scripts, so you could just do that. Depending on what you want, it 
>>>>>>>>>>> isn't 
>>>>>>>>>>> especially complicated. Here's one I had for when I wanted to 
>>>>>>>>>>> populate the 
>>>>>>>>>>> price map with historical data.
>>>>>>>>>>>
>>>>>>>>>>> If uses gdate because I usually run it on a mac. If you wanted 
>>>>>>>>>>> to update prices weekly instead of daily, just change the "+ 1 day" 
>>>>>>>>>>> to 
>>>>>>>>>>> something else.
>>>>>>>>>>>
>>>>>>>>>>> #!/bin/bash -e
>>>>>>>>>>>
>>>>>>>>>>> DATE=gdate
>>>>>>>>>>>
>>>>>>>>>>> if [ -z $1 ]; then
>>>>>>>>>>>   echo "Must supply start date, e.g. 1983-05-22"
>>>>>>>>>>>   exit 1
>>>>>>>>>>> else
>>>>>>>>>>>   from=$1
>>>>>>>>>>> fi
>>>>>>>>>>>
>>>>>>>>>>> if [ -z $2 ]; then
>>>>>>>>>>>   to=$(${DATE} -I)
>>>>>>>>>>> else
>>>>>>>>>>>   to=$2
>>>>>>>>>>> fi
>>>>>>>>>>>
>>>>>>>>>>> d=$from
>>>>>>>>>>> while [ "$d" != "$to" ]; do
>>>>>>>>>>>   echo Fetching prices on $d...
>>>>>>>>>>>   bean-price --date $d my.beancount >> prices.beancount
>>>>>>>>>>>   d=$(${DATE} -I -d "$d + 1 day")
>>>>>>>>>>> done
>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>>>>> 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 [email protected].
>>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/beancount/b471b460-1e64-47f1-91a0-4aba5789aa59n%40googlegroups.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/beancount/b471b460-1e64-47f1-91a0-4aba5789aa59n%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 [email protected].
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/beancount/d52cdaea-f55e-49b7-b543-8fdac7fb9823n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/beancount/d52cdaea-f55e-49b7-b543-8fdac7fb9823n%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 [email protected].
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/beancount/CAK21%2BhPG%2B5-9rfzu93GCRXaKVi865D4bhABfiZVXNOCut9LsYg%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/d/msgid/beancount/CAK21%2BhPG%2B5-9rfzu93GCRXaKVi865D4bhABfiZVXNOCut9LsYg%40mail.gmail.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 [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/beancount/224355f3-4f1e-4047-a3fd-5d556d41077dn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/beancount/224355f3-4f1e-4047-a3fd-5d556d41077dn%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/d4bff4b8-2de3-4308-9710-32e8163d2439n%40googlegroups.com.

Reply via email to