Merge pull request #475 from pikers/explicit_write_pps_on_exit
Explicitly write `pps.toml` on exit for `ib` and `kraken`xdo_and_you
						commit
						269a04ba1a
					
				|  | @ -480,10 +480,17 @@ async def trades_dialogue( | ||||||
|                 # open ledger and pptable wrapper for each |                 # open ledger and pptable wrapper for each | ||||||
|                 # detected account. |                 # detected account. | ||||||
|                 ledger = ledgers[acctid] = lstack.enter_context( |                 ledger = ledgers[acctid] = lstack.enter_context( | ||||||
|                     open_trade_ledger('ib', acctid) |                     open_trade_ledger( | ||||||
|  |                         'ib', | ||||||
|  |                         acctid, | ||||||
|  |                     ) | ||||||
|                 ) |                 ) | ||||||
|                 table = tables[acctid] = lstack.enter_context( |                 table = tables[acctid] = lstack.enter_context( | ||||||
|                     open_pps('ib', acctid) |                     open_pps( | ||||||
|  |                         'ib', | ||||||
|  |                         acctid, | ||||||
|  |                         write_on_exit=True, | ||||||
|  |                     ) | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
|             for account, proxy in proxies.items(): |             for account, proxy in proxies.items(): | ||||||
|  |  | ||||||
|  | @ -221,7 +221,7 @@ class Client: | ||||||
| 
 | 
 | ||||||
|     async def get_trades( |     async def get_trades( | ||||||
|         self, |         self, | ||||||
|         fetch_limit: int = 10, |         fetch_limit: int | None = None, | ||||||
| 
 | 
 | ||||||
|     ) -> dict[str, Any]: |     ) -> dict[str, Any]: | ||||||
|         ''' |         ''' | ||||||
|  | @ -233,7 +233,10 @@ class Client: | ||||||
|         trades_by_id: dict[str, Any] = {} |         trades_by_id: dict[str, Any] = {} | ||||||
| 
 | 
 | ||||||
|         for i in itertools.count(): |         for i in itertools.count(): | ||||||
|             if i >= fetch_limit: |             if ( | ||||||
|  |                 fetch_limit | ||||||
|  |                 and i >= fetch_limit | ||||||
|  |             ): | ||||||
|                 break |                 break | ||||||
| 
 | 
 | ||||||
|             # increment 'ofs' pagination offset |             # increment 'ofs' pagination offset | ||||||
|  | @ -246,7 +249,8 @@ class Client: | ||||||
|             by_id = resp['result']['trades'] |             by_id = resp['result']['trades'] | ||||||
|             trades_by_id.update(by_id) |             trades_by_id.update(by_id) | ||||||
| 
 | 
 | ||||||
|             # we can get up to 50 results per query |             # can get up to 50 results per query, see: | ||||||
|  |             # https://docs.kraken.com/rest/#tag/User-Data/operation/getTradeHistory | ||||||
|             if ( |             if ( | ||||||
|                 len(by_id) < 50 |                 len(by_id) < 50 | ||||||
|             ): |             ): | ||||||
|  |  | ||||||
|  | @ -470,6 +470,7 @@ async def trades_dialogue( | ||||||
|             open_pps( |             open_pps( | ||||||
|                 'kraken', |                 'kraken', | ||||||
|                 acctid, |                 acctid, | ||||||
|  |                 write_on_exit=True, | ||||||
|             ) as table, |             ) as table, | ||||||
| 
 | 
 | ||||||
|             open_trade_ledger( |             open_trade_ledger( | ||||||
|  | @ -627,7 +628,7 @@ async def trades_dialogue( | ||||||
|                                         cost_scalar=1, |                                         cost_scalar=1, | ||||||
|                                     ) |                                     ) | ||||||
|                                     log.info( |                                     log.info( | ||||||
|                                         'Updated {dst} from transfers:\n' |                                         f'Updated {dst} from transfers:\n' | ||||||
|                                         f'{pformat(updated)}' |                                         f'{pformat(updated)}' | ||||||
|                                     ) |                                     ) | ||||||
| 
 | 
 | ||||||
|  | @ -1212,23 +1213,3 @@ def norm_trade_records( | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|     return records |     return records | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| @cm |  | ||||||
| def open_ledger( |  | ||||||
|     acctid: str, |  | ||||||
|     trade_entries: list[dict[str, Any]], |  | ||||||
| 
 |  | ||||||
| ) -> set[Transaction]: |  | ||||||
|     ''' |  | ||||||
|     Write recent session's trades to the user's (local) ledger file. |  | ||||||
| 
 |  | ||||||
|     ''' |  | ||||||
|     with open_trade_ledger( |  | ||||||
|         'kraken', |  | ||||||
|         acctid, |  | ||||||
|     ) as ledger: |  | ||||||
|         yield ledger |  | ||||||
| 
 |  | ||||||
|         # update on exit |  | ||||||
|         ledger.update(trade_entries) |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue