That was it. Rounding down to 9 decimal places works. 

Thank you!

-----Original Message-----
From: John Ralls <jra...@ceridwen.us> 
Sent: Wednesday, May 08, 2024 10:13 PM
To: Kalpesh Patel <kalpesh.pa...@usa.net>
Cc: GnuCash User <gnucash-user@gnucash.org>
Subject: Re: [GNC] Stomped with interface between GNC (v4.18) and F::Q
(v1.61_02)

Kalpesh,

I think your price has too many digits. Try rounding it to 10E-9.

Regards,
John Ralls

> On May 8, 2024, at 09:05, Kalpesh Patel <kalpesh.pa...@usa.net> wrote:
> 
> Hi GNC User community -
> 
> 
> 
> I am developing a second F::Q module of my own. The first one works 
> fine but second one seems to NOT want to work no matter what. I am in 
> middle of debugging it and it has stomped me why not so hoping someone 
> might be able to help me zero in where I am falling sort on the flow 
> for it. I am working with F::Q v1.61_02 and GNC v4.14 
> (4.14+(2023-03-25) build) running on Windows 11. (Note: I don't 
> believe any interface change has taken place in GNC v5.x that would cause
this but correct me here if I am wrong.).
> 
> 
> 
> Invoking GNC with debug shows that return value is #f, which means 
> something went wrong (run_executor is the "label" for my module and 
> other modules work fine from the debug output):
> 
> 
> 
> 11:19:24 DEBUG <gnc.scm> handling-request: (currency INR USD)
> 
> * 11:19:24 DEBUG <gnc.scm> results: ((INR (symbol . INR) (gnc:time-no-zone
.
> 2024-05-08 11:19:11) (last . 3/250) (currency . USD)))
> 
> * 11:20:38 DEBUG <gnc.scm> ALPHAVANTAGE_API_KEY=NOTAREALAPIKEY
> 
> * 11:20:39 DEBUG <gnc.scm> handling-request: (tsp C S L2030 I)
> 
> * 11:20:43 DEBUG <gnc.scm> results: ((C (symbol . C) (gnc:time-no-zone .
> 2024-05-07 12:00:00) (last . 812423/10000) (currency . USD)) (S 
> (symbol . S) (gnc:time-no-zone . 2024-05-07 12:00:00) (last . 4009/50) 
> (currency . USD))
> (L2030 (symbol . L2030) (gnc:time-no-zone . 2024-05-07 12:00:00) (last .
> 237163/5000) (currency . USD)) (I (symbol . I) (gnc:time-no-zone .
> 2024-05-07 12:00:00) (last . 42507/1000) (currency . USD)))
> 
> * 11:20:43 DEBUG <gnc.scm> handling-request: (run_executor BK)
> 
> * 11:20:43 DEBUG <gnc.scm> results: (#f)
> 
> * 11:20:43 DEBUG <gnc.scm> handling-request: (yahoojson ^NYA)
> 
> * 11:20:44 DEBUG <gnc.scm> results: ((^NYA (symbol . ^NYA) 
> (gnc:time-no-zone . 2024-05-08 12:00:00) (last . 2247813/125) 
> (currency . USD)))
> 
> 
> 
> Following is debug run from command line of gnc-fq-dump (which 
> provides all necessary fields for quote to be valid as it does not 
> show '** This stock quote cannot be used by GnuCash!' message):
> 
> 
> 
> C:\Users\kalpesh>perl "c:\Program Files (x86)\gnucash\bin\gnc-fq-dump" 
> -v run_executor BK
> 
> {snip}
> 
> ### [Wed May  8 11:34:40 2024]   %info : {
> 
> ###                                        'BKISIN' => '-',
> 
> ###                                        'BKcurrency' => 'USD',
> 
> ###                                        'BKdate' => '05/08/2024',
> 
> ###                                        'BKisodate' => '2024-05-08',
> 
> ###                                        'BKmethod' => 'run_executor',
> 
> ###                                        'BKprice' =>
'57.64500045776367',
> 
> ###                                        'BKsuccess' => '1',
> 
> ###                                        'BKsymbol' => 'BK',
> 
> ###                                        'BKtimezone' => 'EDT'
> 
> ###                                      }
> 
> Finance::Quote fields Gnucash uses:
> 
>  symbol: BK                   <=== required
> 
>    date: 05/08/2024           <=== recommended
> 
> currency: USD                  <=== required
> 
>    last:                      <=\
> 
>     nav:                      <=== one of these
> 
>   price: 57.64500045776367    <=/
> 
> timezone: EDT                  <=== optional
> 
> 
> 
> All fields returned by Finance::Quote for stock BK
> 
> 
> 
> stock           field  value
> 
> -----           -----  -----
> 
> BK               ISIN: -
> 
> BK           currency: USD
> 
> BK               date: 05/08/2024
> 
> BK            isodate: 2024-05-08
> 
> BK             method: run_executor
> 
> BK              price: 57.64500045776367
> 
> BK            success: 1
> 
> BK             symbol: BK
> 
> BK           timezone: EDT
> 
> 
> 
> 
> 
> C:\Users\kalpesh>
> 
> 
> 
> When running same command via YahooJSON following is the output which 
> works fine (I see that it does have more information returned back):
> 
> 
> 
> C:\Users\kalpesh>perl "c:\Program Files (x86)\gnucash\bin\gnc-fq-dump" 
> -v yahoojson BK
> 
> {snip}
> 
> Finance::Quote fields Gnucash uses:
> 
>  symbol: BK                   <=== required
> 
>    date: 05/08/2024           <=== recommended
> 
> currency: USD                  <=== required
> 
>    last: 57.605               <=\
> 
>     nav:                      <=== one of these
> 
>   price:                      <=/
> 
> timezone:                      <=== optional
> 
> 
> 
> All fields returned by Finance::Quote for stock BK
> 
> 
> 
> stock           field  value
> 
> -----           -----  -----
> 
> BK              close: 57.4
> 
> BK           currency: USD
> 
> BK               date: 05/08/2024
> 
> BK          div_yield: 2.8397212
> 
> BK                eps: 3.99
> 
> BK           exchange: NYSE
> 
> BK               high: 57.75
> 
> BK            isodate: 2024-05-08
> 
> BK               last: 57.605
> 
> BK                low: 57.12
> 
> BK             method: yahoo_json
> 
> BK               name: BK (The Bank of New York Mellon Cor)
> 
> BK               open: 57.23
> 
> BK                 pe: 14.437344
> 
> BK            success: 1
> 
> BK             symbol: BK
> 
> BK               type: EQUITY
> 
> BK             volume: 730814
> 
> BK         year_range:        39.65 - 58.28
> 
> 
> 
> 
> 
> C:\Users\kalpesh>
> 
> 
> 
> Given that, why would GNC not accept the pricing? Does it have to be 
> in a particular order what is returned back, or is there anything else 
> that GNC wants but is not present in the returned quote from my 
> module? Only difference I see is that my module returns "price" 
> parameter while YahooJSON returns "last" but gnc-fq-dump states that 
> either is acceptable for GNC (just for kicks-&-giggles I set my module 
> to return last instead of price and removed timezone but it made no 
> difference, ie., GNC still did not take it as valid pricing). I prefer 
> to limit number of returned elements to be very minimal for speed 
> reasons but still entails valid pricing. Any insight will be greatly
appreciated.
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> gnucash-user mailing list
> gnucash-user@gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.

_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to