Compare commits
				base: pikers:b57718077381093ea35397a076cd8f8acef0aafa
				
			
			pikers:hist_backfill_fixes
					
						pikers:max_pain_storage
					
						pikers:macos_fixed_with_readme
					
						pikers:how_to_show_ur_pp
					
						pikers:macos_fixes_2025
					
						pikers:qt_w_graceful_SIGINT
					
						pikers:ib_2025_updates
					
						pikers:testing_utils
					
						pikers:alt_tpts_for_perf
					
						pikers:binance_api_3.1
					
						pikers:port_to_latest_tractor
					
						pikers:bump_polars
					
						pikers:decimal_prices_thru_ems
					
						pikers:mp_fomo_polish
					
						pikers:max_pain_chart
					
						pikers:max_pain_deribit
					
						pikers:deribit_fix
					
						pikers:brokers_refinery
					
						pikers:accounting_refinery
					
						pikers:add_visidata
					
						pikers:no_symcache_no_problem
					
						pikers:service_mng_to_tractor
					
						pikers:ems_no_last_required
					
						pikers:stop_is_oec
					
						pikers:gitea_feats
					
						pikers:jsonrpc_err_in_rent
					
						pikers:tsp_gaps
					
						pikers:max_pain_chart_backup
					
						pikers:subsys_refinery
					
						pikers:subsys_refinery_BACKUP
					
						pikers:max_pain_deribit_backup
					
						pikers:add_ruff_linter
					
						pikers:deribit_fix_backup
					
						pikers:kucoin_and_binance_fix
					
						pikers:uv_migration
					
						pikers:kucoin_and_binance_BACKUP
					
						pikers:go_httpx_no_unrelated_binance_stuff
					
						pikers:go_httpx
					
						pikers:go_httpx_orig_BACKUP
					
						pikers:ib_refinements
					
						pikers:fix_deribit_hist_queries_NEW
					
						pikers:fix_deribit_hist_queries
					
						pikers:prev_deribit_fix
					
						pikers:nix_shell_env_fix
					
						pikers:cherry_to_storage_pr
					
						pikers:fix_deribit_hist_queries_BACKUP
					
						pikers:kucoin_and_binance_fix_goodboyBACKUP
					
						pikers:nix-headless-fix
					
						pikers:go_httpx_binance
					
						pikers:fix-binance-venues
					
						pikers:pyqt6
					
						pikers:distribute_dis
					
						pikers:runtime_to_msgspec
					
						pikers:nix-monkeys-fix
					
						pikers:ib_py311_fixes
					
						pikers:poetry2nix
					
						pikers:account_tests
					
						pikers:py311_ib_fix
					
						pikers:master
					
						pikers:basic_buy_bot
					
						pikers:marketstore_disable_snappy
					
						pikers:rekt_pps
					
						pikers:py311
					
						pikers:kucoin_backend
					
						pikers:small_kucoin_fixes
					
						pikers:pre_overruns_ctxcancelled
					
						pikers:emit_clear_ticks_only_on_ts_change
					
						pikers:binance_ws_ep_update
					
						pikers:log_linearized_curve_overlays
					
						pikers:xdotool_fixes
					
						pikers:deribit_updates
					
						pikers:storage_middleware_layer
					
						pikers:service_subpkg
					
						pikers:pps_precision_hotfixes
					
						pikers:service_subpkg_backup
					
						pikers:storage_cli
					
						pikers:xdo_and_you
					
						pikers:decimalization_take_2
					
						pikers:backward_compat_trans_with_symbolinfo
					
						pikers:explicit_write_pps_on_exit
					
						pikers:backend_spec
					
						pikers:paper_trade_improvements_rebase
					
						pikers:loglevel_to_testpikerd
					
						pikers:overlays_interaction_latency_tuning
					
						pikers:kraken_deposits_fixes
					
						pikers:l1_compaction
					
						pikers:epoch_indexing_and_dataviz_layer
					
						pikers:multichartz
					
						pikers:axis_sticky_api
					
						pikers:multi_symbol_input
					
						pikers:update_qt_screen_info_script
					
						pikers:fsps_and_flumes
					
						pikers:epoch_index
					
						pikers:pregraphics_formatters
					
						pikers:multichartz_backup
					
						pikers:samplerd_service
					
						pikers:misc_brokerd_backend_repairs
					
						pikers:pre_viz_calls
					
						pikers:dark_clearing_improvements
					
						pikers:dark_clearing_repairs
					
						pikers:epoch_index_backup
					
						pikers:agg_feedz
					
						pikers:kraken_limits_fields
					
						pikers:cz_post_ftx
					
						pikers:kraken_pair_status
					
						pikers:ib_contract_updates
					
						pikers:pre_multifeed_hotfix
					
						pikers:kraken_pair_updates
					
						pikers:daemon_sockaddr_config
					
						pikers:no_signal_pi_overlays
					
						pikers:pre_multi_feedz
					
						pikers:pg_exts_fork
					
						pikers:ib_1m_hist
					
						pikers:even_moar_kraken_order_fixes
					
						pikers:ci_fix_tractor_testing
					
						pikers:clears_table_events
					
						pikers:offline_dark_clearing
					
						pikers:multi_client_order_mgt
					
						pikers:pin_tractor_main
					
						pikers:history_view
					
						pikers:tractor_core_port
					
						pikers:kraken_fill_bugs
					
						pikers:paper_clear_logics_fix
					
						pikers:kraken_nameerr_fix
					
						pikers:livenpaper
					
						pikers:size_in_shm_token
					
						pikers:deribit
					
						pikers:asycvnc_pin_bump
					
						pikers:live_n_paper
					
						pikers:open_order_loading
					
						pikers:doin_the_splits
					
						pikers:dict_differ
					
						pikers:msgpack_zombie
					
						pikers:the_ems_flattening
					
						pikers:kraken_ws_orders
					
						pikers:kraken_userref_hackzin
					
						pikers:pydantic_zombie
					
						pikers:ib_pps_upgrade
					
						pikers:multisympaper
					
						pikers:ppu_history
					
						pikers:basic_pp_audit
					
						pikers:historical_breakeven_pp_price
					
						pikers:ib_native_data_hack
					
						pikers:pptables
					
						pikers:ahab_you_bad_boi
					
						pikers:fix_forex
					
						pikers:fsp_shm_caching
					
						pikers:paper_eng_msg_fixes
					
						pikers:drop_pydantic
					
						pikers:krakenwsbackup
					
						pikers:dpbackup
					
						pikers:null_last_quote_fix
					
						pikers:ahab_hardkill
					
						pikers:tractor_typed_msg_hackin
					
						pikers:kraken_ledger_pps
					
						pikers:ib_rt_pp_update_hotfix
					
						pikers:notokeninwswrapper
					
						pikers:pps_postmortem
					
						pikers:lifo_pps_ib
					
						pikers:310_plus
					
						pikers:mxmn_from_m4
					
						pikers:contain_mkts
					
						pikers:slic_fix_v2
					
						pikers:uppx_slice_fix
					
						pikers:update_last_datums_in_view
					
						pikers:ib_subpkg
					
						pikers:flexxin
					
						pikers:ib_checker_hackz
					
						pikers:incremental_update_paths
					
						pikers:ib_dedicated_data_client
					
						pikers:dockerize_ib_gw
					
						pikers:pre_flow
					
						pikers:drop_pandas
					
						pikers:no_ib_pps
					
						pikers:trimeter_dep
					
						pikers:l1_precision_fix
					
						pikers:marketstore
					
						pikers:no_orderid_in_error
					
						pikers:incr_update_backup
					
						pikers:big_data_lines
					
						pikers:m4_corrections
					
						pikers:offline_history_loading
					
						pikers:drop_arrow_add_predulum
					
						pikers:marketstore_backup
					
						pikers:broker_bumpz
					
						pikers:no_git_prot_w_pip
					
						pikers:kraken_editorder
					
						pikers:fqsns
					
						pikers:kraken_cleaning
					
						pikers:kraken_orders
					
						pikers:only_draw_iv_for_ohlc
					
						pikers:mkts_backup
					
						pikers:pp_bar_fixes
					
						pikers:async_hist_loading
					
						pikers:kraken_gb
					
						pikers:windows_fixes_yo
					
						pikers:ib_mkt_closed
					
						pikers:py3.10_support
					
						pikers:gb_kraken_orders
					
						pikers:dark_vlm
					
						pikers:overlayed_dvlm
					
						pikers:fsp_ui_mod
					
						pikers:vlm_plotz
					
						pikers:plotitem_overlays
					
						pikers:misc_backend_fixes
					
						pikers:dolla_vlm
					
						pikers:fspd_cluster
					
						pikers:misc_ib_updates
					
						pikers:single_display_update_loop
					
						pikers:basic_vlm_display
					
						pikers:pane_sizing_fixes
					
						pikers:tractor_clustering
					
						pikers:msgpack_no_sets_allowed
					
						pikers:tinas_unite
					
						pikers:simpler_quote_throttle_logic
					
						pikers:fast_step_curve
					
						pikers:win_fixes
					
						pikers:fsp_hotfixes
					
						pikers:teardown_guesmost_via_cs
					
						pikers:windows_testing_volume
					
						pikers:fsp_drunken_alignment
					
						pikers:vlm_plotz_backup
					
						pikers:fsp_feeds
					
						pikers:chart_mod_breakup
					
						pikers:pause_feeds_on_sym_switch
					
						pikers:brokers_config
					
						pikers:ordermodepps_backup
					
						pikers:readme_bump_zone
					
						pikers:ci_on_forks
					
						pikers:asyncify_input_modes
					
						pikers:minimal_brokerd_trade_dialogues
					
						pikers:wait_on_daemon_portals
					
						pikers:backup_asyncify_input_modes
					
						pikers:naive_feed_throttling
					
						pikers:window_cuckery
					
						pikers:msgspec_fixes
					
						pikers:status_bar
					
						pikers:ems_hotfixes
					
						pikers:ems_to_bidir_streaming
					
						pikers:web_utils
					
						pikers:symbol_search
					
						pikers:binance_syminfo_and_mintick
					
						pikers:update_throttling
					
						pikers:syseng_tweaks
					
						pikers:ems_tweaks
					
						pikers:py3.9
					
						pikers:binance_aggtrades_and_ohlc_parsing
					
						pikers:binance_backend
					
						pikers:tractor_open_stream_from
					
						pikers:feed_fixes
					
						pikers:order_mode_finesse
					
						pikers:cached_feeds
					
						pikers:readme_bumpz
					
						pikers:supervise
					
						pikers:basic_orders
					
						pikers:kraken_trades_data
					
						pikers:basic_alerts
					
						pikers:kraken_history
					
						pikers:y_zoom
					
						pikers:chart_trader
					
						pikers:graphics_pixel_buffer
					
						pikers:vwap_fsp
					
						pikers:to_qpainterpath_and_beyond
					
						pikers:tina_free_vwap
					
						pikers:vwap_backup
					
						pikers:bar_select
					
						pikers:ib_backend
					
						pikers:unleash_the_kraken
					
						pikers:facepalm
					
						pikers:marketstore_integration
					
						pikers:its_happening
					
						pikers:relicense_as_agplv3
					
						pikers:questrade_candles
					
						pikers:use_tractor_logging
					
						pikers:questrade_conns
					
						pikers:kivy_mainline_and_py3.8
					
					
					
					
				
				compare: pikers:4025fd244a3fecd1b76251501cffece6cd550817
				
			
			pikers:hist_backfill_fixes
					
						pikers:max_pain_storage
					
						pikers:macos_fixed_with_readme
					
						pikers:how_to_show_ur_pp
					
						pikers:macos_fixes_2025
					
						pikers:qt_w_graceful_SIGINT
					
						pikers:ib_2025_updates
					
						pikers:testing_utils
					
						pikers:alt_tpts_for_perf
					
						pikers:binance_api_3.1
					
						pikers:port_to_latest_tractor
					
						pikers:bump_polars
					
						pikers:decimal_prices_thru_ems
					
						pikers:mp_fomo_polish
					
						pikers:max_pain_chart
					
						pikers:max_pain_deribit
					
						pikers:deribit_fix
					
						pikers:brokers_refinery
					
						pikers:accounting_refinery
					
						pikers:add_visidata
					
						pikers:no_symcache_no_problem
					
						pikers:service_mng_to_tractor
					
						pikers:ems_no_last_required
					
						pikers:stop_is_oec
					
						pikers:gitea_feats
					
						pikers:jsonrpc_err_in_rent
					
						pikers:tsp_gaps
					
						pikers:max_pain_chart_backup
					
						pikers:subsys_refinery
					
						pikers:subsys_refinery_BACKUP
					
						pikers:max_pain_deribit_backup
					
						pikers:add_ruff_linter
					
						pikers:deribit_fix_backup
					
						pikers:kucoin_and_binance_fix
					
						pikers:uv_migration
					
						pikers:kucoin_and_binance_BACKUP
					
						pikers:go_httpx_no_unrelated_binance_stuff
					
						pikers:go_httpx
					
						pikers:go_httpx_orig_BACKUP
					
						pikers:ib_refinements
					
						pikers:fix_deribit_hist_queries_NEW
					
						pikers:fix_deribit_hist_queries
					
						pikers:prev_deribit_fix
					
						pikers:nix_shell_env_fix
					
						pikers:cherry_to_storage_pr
					
						pikers:fix_deribit_hist_queries_BACKUP
					
						pikers:kucoin_and_binance_fix_goodboyBACKUP
					
						pikers:nix-headless-fix
					
						pikers:go_httpx_binance
					
						pikers:fix-binance-venues
					
						pikers:pyqt6
					
						pikers:distribute_dis
					
						pikers:runtime_to_msgspec
					
						pikers:nix-monkeys-fix
					
						pikers:ib_py311_fixes
					
						pikers:poetry2nix
					
						pikers:account_tests
					
						pikers:py311_ib_fix
					
						pikers:master
					
						pikers:basic_buy_bot
					
						pikers:marketstore_disable_snappy
					
						pikers:rekt_pps
					
						pikers:py311
					
						pikers:kucoin_backend
					
						pikers:small_kucoin_fixes
					
						pikers:pre_overruns_ctxcancelled
					
						pikers:emit_clear_ticks_only_on_ts_change
					
						pikers:binance_ws_ep_update
					
						pikers:log_linearized_curve_overlays
					
						pikers:xdotool_fixes
					
						pikers:deribit_updates
					
						pikers:storage_middleware_layer
					
						pikers:service_subpkg
					
						pikers:pps_precision_hotfixes
					
						pikers:service_subpkg_backup
					
						pikers:storage_cli
					
						pikers:xdo_and_you
					
						pikers:decimalization_take_2
					
						pikers:backward_compat_trans_with_symbolinfo
					
						pikers:explicit_write_pps_on_exit
					
						pikers:backend_spec
					
						pikers:paper_trade_improvements_rebase
					
						pikers:loglevel_to_testpikerd
					
						pikers:overlays_interaction_latency_tuning
					
						pikers:kraken_deposits_fixes
					
						pikers:l1_compaction
					
						pikers:epoch_indexing_and_dataviz_layer
					
						pikers:multichartz
					
						pikers:axis_sticky_api
					
						pikers:multi_symbol_input
					
						pikers:update_qt_screen_info_script
					
						pikers:fsps_and_flumes
					
						pikers:epoch_index
					
						pikers:pregraphics_formatters
					
						pikers:multichartz_backup
					
						pikers:samplerd_service
					
						pikers:misc_brokerd_backend_repairs
					
						pikers:pre_viz_calls
					
						pikers:dark_clearing_improvements
					
						pikers:dark_clearing_repairs
					
						pikers:epoch_index_backup
					
						pikers:agg_feedz
					
						pikers:kraken_limits_fields
					
						pikers:cz_post_ftx
					
						pikers:kraken_pair_status
					
						pikers:ib_contract_updates
					
						pikers:pre_multifeed_hotfix
					
						pikers:kraken_pair_updates
					
						pikers:daemon_sockaddr_config
					
						pikers:no_signal_pi_overlays
					
						pikers:pre_multi_feedz
					
						pikers:pg_exts_fork
					
						pikers:ib_1m_hist
					
						pikers:even_moar_kraken_order_fixes
					
						pikers:ci_fix_tractor_testing
					
						pikers:clears_table_events
					
						pikers:offline_dark_clearing
					
						pikers:multi_client_order_mgt
					
						pikers:pin_tractor_main
					
						pikers:history_view
					
						pikers:tractor_core_port
					
						pikers:kraken_fill_bugs
					
						pikers:paper_clear_logics_fix
					
						pikers:kraken_nameerr_fix
					
						pikers:livenpaper
					
						pikers:size_in_shm_token
					
						pikers:deribit
					
						pikers:asycvnc_pin_bump
					
						pikers:live_n_paper
					
						pikers:open_order_loading
					
						pikers:doin_the_splits
					
						pikers:dict_differ
					
						pikers:msgpack_zombie
					
						pikers:the_ems_flattening
					
						pikers:kraken_ws_orders
					
						pikers:kraken_userref_hackzin
					
						pikers:pydantic_zombie
					
						pikers:ib_pps_upgrade
					
						pikers:multisympaper
					
						pikers:ppu_history
					
						pikers:basic_pp_audit
					
						pikers:historical_breakeven_pp_price
					
						pikers:ib_native_data_hack
					
						pikers:pptables
					
						pikers:ahab_you_bad_boi
					
						pikers:fix_forex
					
						pikers:fsp_shm_caching
					
						pikers:paper_eng_msg_fixes
					
						pikers:drop_pydantic
					
						pikers:krakenwsbackup
					
						pikers:dpbackup
					
						pikers:null_last_quote_fix
					
						pikers:ahab_hardkill
					
						pikers:tractor_typed_msg_hackin
					
						pikers:kraken_ledger_pps
					
						pikers:ib_rt_pp_update_hotfix
					
						pikers:notokeninwswrapper
					
						pikers:pps_postmortem
					
						pikers:lifo_pps_ib
					
						pikers:310_plus
					
						pikers:mxmn_from_m4
					
						pikers:contain_mkts
					
						pikers:slic_fix_v2
					
						pikers:uppx_slice_fix
					
						pikers:update_last_datums_in_view
					
						pikers:ib_subpkg
					
						pikers:flexxin
					
						pikers:ib_checker_hackz
					
						pikers:incremental_update_paths
					
						pikers:ib_dedicated_data_client
					
						pikers:dockerize_ib_gw
					
						pikers:pre_flow
					
						pikers:drop_pandas
					
						pikers:no_ib_pps
					
						pikers:trimeter_dep
					
						pikers:l1_precision_fix
					
						pikers:marketstore
					
						pikers:no_orderid_in_error
					
						pikers:incr_update_backup
					
						pikers:big_data_lines
					
						pikers:m4_corrections
					
						pikers:offline_history_loading
					
						pikers:drop_arrow_add_predulum
					
						pikers:marketstore_backup
					
						pikers:broker_bumpz
					
						pikers:no_git_prot_w_pip
					
						pikers:kraken_editorder
					
						pikers:fqsns
					
						pikers:kraken_cleaning
					
						pikers:kraken_orders
					
						pikers:only_draw_iv_for_ohlc
					
						pikers:mkts_backup
					
						pikers:pp_bar_fixes
					
						pikers:async_hist_loading
					
						pikers:kraken_gb
					
						pikers:windows_fixes_yo
					
						pikers:ib_mkt_closed
					
						pikers:py3.10_support
					
						pikers:gb_kraken_orders
					
						pikers:dark_vlm
					
						pikers:overlayed_dvlm
					
						pikers:fsp_ui_mod
					
						pikers:vlm_plotz
					
						pikers:plotitem_overlays
					
						pikers:misc_backend_fixes
					
						pikers:dolla_vlm
					
						pikers:fspd_cluster
					
						pikers:misc_ib_updates
					
						pikers:single_display_update_loop
					
						pikers:basic_vlm_display
					
						pikers:pane_sizing_fixes
					
						pikers:tractor_clustering
					
						pikers:msgpack_no_sets_allowed
					
						pikers:tinas_unite
					
						pikers:simpler_quote_throttle_logic
					
						pikers:fast_step_curve
					
						pikers:win_fixes
					
						pikers:fsp_hotfixes
					
						pikers:teardown_guesmost_via_cs
					
						pikers:windows_testing_volume
					
						pikers:fsp_drunken_alignment
					
						pikers:vlm_plotz_backup
					
						pikers:fsp_feeds
					
						pikers:chart_mod_breakup
					
						pikers:pause_feeds_on_sym_switch
					
						pikers:brokers_config
					
						pikers:ordermodepps_backup
					
						pikers:readme_bump_zone
					
						pikers:ci_on_forks
					
						pikers:asyncify_input_modes
					
						pikers:minimal_brokerd_trade_dialogues
					
						pikers:wait_on_daemon_portals
					
						pikers:backup_asyncify_input_modes
					
						pikers:naive_feed_throttling
					
						pikers:window_cuckery
					
						pikers:msgspec_fixes
					
						pikers:status_bar
					
						pikers:ems_hotfixes
					
						pikers:ems_to_bidir_streaming
					
						pikers:web_utils
					
						pikers:symbol_search
					
						pikers:binance_syminfo_and_mintick
					
						pikers:update_throttling
					
						pikers:syseng_tweaks
					
						pikers:ems_tweaks
					
						pikers:py3.9
					
						pikers:binance_aggtrades_and_ohlc_parsing
					
						pikers:binance_backend
					
						pikers:tractor_open_stream_from
					
						pikers:feed_fixes
					
						pikers:order_mode_finesse
					
						pikers:cached_feeds
					
						pikers:readme_bumpz
					
						pikers:supervise
					
						pikers:basic_orders
					
						pikers:kraken_trades_data
					
						pikers:basic_alerts
					
						pikers:kraken_history
					
						pikers:y_zoom
					
						pikers:chart_trader
					
						pikers:graphics_pixel_buffer
					
						pikers:vwap_fsp
					
						pikers:to_qpainterpath_and_beyond
					
						pikers:tina_free_vwap
					
						pikers:vwap_backup
					
						pikers:bar_select
					
						pikers:ib_backend
					
						pikers:unleash_the_kraken
					
						pikers:facepalm
					
						pikers:marketstore_integration
					
						pikers:its_happening
					
						pikers:relicense_as_agplv3
					
						pikers:questrade_candles
					
						pikers:use_tractor_logging
					
						pikers:questrade_conns
					
						pikers:kivy_mainline_and_py3.8
					
					
					
					
				
	
		
			14 Commits 
		
	
	
		
			b577180773
			...
			4025fd244a
		
	
	| Author | SHA1 | Message | Date | 
|---|---|---|---|
| 
							
							
								 | 
						4025fd244a | 
							
							
								
								ib: `.api` mod and log-fmt cleaning
							
							
							
							
							
							
							
							About time we tidy'd a buncha status logging in this backend..
particularly for boot-up where there's lots of client-try-connect poll
looping with account detection from the user config.
`.api.Client` pprint and logging fmt improvements:
- add `Client.__repr__()` which shows the minimally useful set of info
  from the underlying `.ib: IB` as well as a new `.acnts: list[str]`
  of the account aliases defined in the user's `brokers.toml`.
- mk `.bars()` define a comprehensive `query_info: str` with all the
  request deats but only display if there's a problem with the response
  data.
- mk `.get_config()` report both the config file path and the acnt
  aliases (NOT the actual account #s).
- move all `.load_aio_clients()` client poll loop requests do
  `log.runtime()` statuses, only falling through to a `.warning()` when
  the loop fails to connect the client to the spec-ed API-gw addr, and
 |_ don't allow loading accounts for which the user has not defined an
    alias in `brokers.toml::[ib]`; raise a value-error in such cases
    with a message indicating how to mod the config.
 |_ only `log.info()` about acnts if some were loaded..
Other mod logging de-noising:
- better status fmting in `.symbols.open_symbol_search()` with
  `repr(Client)`.
- for `.feed.stream_quotes()` first quote reporting use `.runtime()`.
							
						 | 
						
							|
| 
							
							
								 | 
						7b506d29da | ib: warn about mkt precision cuckups that `Contract`s clearly deliver wrong.. | |
| 
							
							
								 | 
						2ac39c3233 | ib: mask out trade and vlm rates for now | |
| 
							
							
								 | 
						8d7fe58ffa | 
							
							
								
								ib: more trade record edge case handling
							
							
							
							
							
							
							
							- timestamps came as `'date'`-keyed from 2022 and before but now are `'datetime'`.. - some symbols seem to have no commission field, so handle that.. - when no `'price'` field found return `None` from `norm_trade()`. - add a warn log on mid-fill commission updates.  | 
						
							|
| 
							
							
								 | 
						bbdb506728 | 
							
							
								
								Port binance to `httpx`
							
							
							
							
							
							
							
							Like other backends use the `AsyncClient` for all venue specific client-sessions but change to allocating them inside `get_client()` using an `AsyncExitStack` and inserting directly in the `Client.venue_sesh: dict` table during init. Supporting impl tweaks: - remove most of the API client session building logic and instead make `Client.__init__()` take in a `venue_sessions: dict` (set it to `.venue_sesh`) and `conf: dict`, instead opting to do the http client configuration inside `get_client()` since all that code only needs to be run once. |_load config inside `get_client()` once. |_move session token creation into a new util func `init_api_keys()` and also call it from `get_client()` factory; toss in an ex. toml section config to the doc string. - define `_venue_urls: dict[str, str]` (content taken from old static `.venue_sesh` dict) at module level and feed them as `base_url: str` inputs to the client create loop. - adjust all call sigs in httpx-sesh-using methods, namely just `._api()`. - do a `.exch_info()` call in `get_client()` to cache the symbology set. Unrelated changes for various other outstanding buggers: - to get futures feeds correctly loading when selected from search (like 'XMRUSDT.USDTM.PERP'), expect a `MktPair` input to `Client.bars()` such that the exact venue-key can be looked up (via a new `.pair2venuekey()` meth) and then passed to `._api()`. - adjust `.broker.open_trade_dialog()` to failover to paper engine when there's no `api_key` key set for the `subconf` venue-key.  | 
						
							|
| 
							
							
								
									
								
								 | 
						2b9990b0b3 | Added note to exception when missing field in SpotPair class | |
| 
							
							
								
									
								
								 | 
						eda92ef458 | Added new fields to SpotPair class in venues | |
| 
							
							
								 | 
						70e3e6e9f0 | 
							
							
								
								binance: raise `NoData` on null hist arrays
							
							
							
							
							
							
							
							Like we do with other history backends to indicate lack of a data set. This avoids any raise that will will bring down the backloader task with some downstream error. Raise a `ValueError` on no time index for now.  | 
						
							|
| 
							
							
								 | 
						fba70577f7 | Woops, `data` can be an empty list XD | |
| 
							
							
								 | 
						d37dd0e974 | Woops, fix missing `api_url` ref in error log | |
| 
							
							
								 | 
						0c157f82ed | Change type-annots to use `httpx.Response` | |
| 
							
							
								 | 
						7e43fc56f6 | Port `kucoin` backend to `httpx` | |
| 
							
							
								 | 
						38289e872e | Port `kraken` backend to `httpx` | |
| 
							
							
								
								 | 
						e4cd1f85f6 | 
							
							
								
								Merge pull request 'pyqt6' (#3) from pyqt6 into gitea_feats
							
							
							
							
							
							
							
							Reviewed-on: #3 (well by fomo anyway..)  |