| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.__init__ |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.stop |
|
0% |
2 |
2 |
0 |
|
0% |
2 |
0 |
|
0% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_name_by_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_code_by_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_all_stock_codes |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_all_stock_code_list |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_all_stock_name_list |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_stock_info_by_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_current_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_stock_conclusion |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_price_summary |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_market_cap |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_top_market_cap_stocks_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.inquire_daily_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.inquire_time_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.inquire_time_dailychartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_asking_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_time_concluded_prices |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_top_rise_fall_stocks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_top_volume_stocks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_investor_trade_by_stock_daily |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_investor_trade_by_stock_daily_multi |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_program_trade_by_stock_daily |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_multi_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_etf_info |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_financial_ratio |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.check_holiday |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.get_account_balance |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.place_stock_order |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.is_websocket_receive_alive |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.connect_websocket |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.disconnect_websocket |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.subscribe_realtime_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.unsubscribe_realtime_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.subscribe_unified_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.unsubscribe_unified_price |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.subscribe_realtime_quote |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.unsubscribe_realtime_quote |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.subscribe_program_trading |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
BrokerAPIWrapper.unsubscribe_program_trading |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / broker_api_wrapper.py |
(no function) |
|
100% |
48 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_account_api.py |
KoreaInvestApiAccount.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_account_api.py |
KoreaInvestApiAccount.get_account_balance |
|
100% |
15 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_account_api.py |
(no function) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
_dumps |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
ApiRetryError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
ApiFatalError.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase.__init__ |
|
100% |
14 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase.url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase.call_api |
|
100% |
28 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase.close_session |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase._log_headers |
|
78% |
9 |
2 |
0 |
|
100% |
2 |
0 |
|
82% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase._log_request_exception |
|
93% |
15 |
1 |
0 |
|
93% |
14 |
1 |
|
93% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase._execute_request |
|
100% |
25 |
0 |
0 |
|
83% |
6 |
1 |
|
97% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase._execute_request.make_request |
|
100% |
23 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_api_base.py |
KoreaInvestApiBase._handle_response |
|
90% |
30 |
3 |
0 |
|
100% |
12 |
0 |
|
93% |
| brokers / korea_investment / korea_invest_api_base.py |
(no function) |
|
90% |
31 |
3 |
0 |
|
100% |
0 |
0 |
|
90% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.__init__ |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_account_balance |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.place_stock_order |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_stock_info_by_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_current_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_stock_conclusion |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_price_summary |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_market_cap |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_top_market_cap_stocks_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.inquire_daily_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.inquire_time_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.inquire_time_dailychartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_asking_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_time_concluded_prices |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_top_rise_fall_stocks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_top_volume_stocks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_investor_trade_by_stock_daily |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_investor_trade_by_stock_daily_multi |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_program_trade_by_stock_daily |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_multi_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_etf_info |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.get_financial_ratio |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.check_holiday |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.connect_websocket |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.disconnect_websocket |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.subscribe_realtime_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.unsubscribe_realtime_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.subscribe_unified_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.unsubscribe_unified_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.subscribe_realtime_quote |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.unsubscribe_realtime_quote |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.is_websocket_receive_alive |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.subscribe_program_trading |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
KoreaInvestApiClient.unsubscribe_program_trading |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_client.py |
(no function) |
|
100% |
51 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.__init__ |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv._load_config |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv._set_base_urls |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.set_trading_mode |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_base_headers |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_full_config |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_access_token |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.save_access_token |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.invalidate_token |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.refresh_token |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_base_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_real_base_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_real_config |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_real_access_token |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
KoreaInvestApiEnv.get_websocket_url |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_env.py |
(no function) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.__post_init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.set_auth_bearer |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.set_app_keys |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.set_tr_id |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.set_custtype |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.set_hashkey |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.set_gt_uid |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.clear_order_headers |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.sync_from_env |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.build |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.temp |
|
92% |
12 |
1 |
0 |
|
75% |
8 |
2 |
|
85% |
| brokers / korea_investment / korea_invest_header_provider.py |
KoreaInvestHeaderProvider.fork |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
build_header_provider_from_env |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_header_provider.py |
(no function) |
|
100% |
27 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
SearchInfoParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
SearchInfoParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
InquirePriceParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
InquirePriceParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
AskingPriceParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
AskingPriceParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
TimeConcludeParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
TimeConcludeParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
DailyItemChartPriceParams.daily_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
DailyItemChartPriceParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
TimeItemChartPriceParams.time_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
TimeItemChartPriceParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
TimeDailyItemChartPriceParams.time_daily_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
TimeDailyItemChartPriceParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
VolumeRankParams.default |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
VolumeRankParams.trading_value |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
VolumeRankParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
MarketCapScreenParams.top_market_cap |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
MarketCapScreenParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
SearchStockParams.of |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
SearchStockParams.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
ItemNewsParams.of |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
ItemNewsParams.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
FinancialRatioParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
FinancialRatioParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
ETFInfoParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
ETFInfoParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
CheckHolidayParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
CheckHolidayParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
FluctuationParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
FluctuationParams._base |
|
80% |
5 |
1 |
0 |
|
50% |
4 |
2 |
|
67% |
| brokers / korea_investment / korea_invest_params_provider.py |
FluctuationParams.rising |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
FluctuationParams.falling |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
FluctuationParams.since_open_rise |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
FluctuationParams.since_open_fall |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
FluctuationParams.volatility |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
InvestorTradeByStockDailyParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
InvestorTradeByStockDailyParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
ProgramTradeByStockDailyParams.of |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
ProgramTradeByStockDailyParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
MultiPriceParams.of |
|
78% |
9 |
2 |
0 |
|
67% |
6 |
2 |
|
73% |
| brokers / korea_investment / korea_invest_params_provider.py |
MultiPriceParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
AccountBalanceParams.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
AccountBalanceParams.create |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
OrderCashBody.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.search_info |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.inquire_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.inquire_conclusion |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.asking_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.time_conclude |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.daily_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.time_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.time_daily_itemchartprice |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.volume_rank |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.trading_value_rank |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.top_market_cap |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.search_stock |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.item_news |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.financial_ratio |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.check_holiday |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.etf_info |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.fluctuation_rise |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.fluctuation_fall |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.investor_trade_by_stock_daily |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.program_trade_by_stock_daily |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.multi_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.account_balance |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
Params.order_cash_body |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_params_provider.py |
(no function) |
|
100% |
320 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
_exchange_to_market_code |
|
60% |
5 |
2 |
0 |
|
50% |
4 |
2 |
|
56% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_stock_info_by_code |
|
100% |
20 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_current_price |
|
100% |
21 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_stock_conclusion |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_price_summary |
|
89% |
35 |
4 |
0 |
|
83% |
12 |
2 |
|
87% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_market_cap |
|
100% |
15 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_top_market_cap_stocks_code |
|
100% |
39 |
0 |
0 |
|
100% |
16 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_top_market_cap_stocks_code._to_int_safe |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.inquire_daily_itemchartprice |
|
97% |
37 |
1 |
0 |
|
94% |
16 |
1 |
|
96% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.inquire_time_itemchartprice |
|
100% |
16 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.inquire_time_dailychartprice |
|
100% |
13 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_asking_price |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_time_concluded_prices |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_top_rise_fall_stocks |
|
100% |
26 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_top_volume_stocks |
|
100% |
21 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_investor_trade_by_stock_daily |
|
96% |
28 |
1 |
0 |
|
79% |
14 |
3 |
|
90% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_investor_trade_by_stock_daily_multi |
|
95% |
21 |
1 |
0 |
|
88% |
8 |
1 |
|
93% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_program_trade_by_stock_daily |
|
100% |
21 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_multi_price |
|
97% |
31 |
1 |
0 |
|
94% |
16 |
1 |
|
96% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_etf_info |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.get_financial_ratio |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
KoreaInvestApiQuotations.check_holiday |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_quotations_api.py |
(no function) |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider.get_access_token |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider._is_token_valid |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider._load_token_from_file |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider._get_token_base_url_from_file |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider._save_token_to_file |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider._issue_new_token |
|
100% |
16 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider.invalidate_token |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_token_provider.py |
TokenProvider.refresh_token |
|
80% |
10 |
2 |
0 |
|
50% |
4 |
2 |
|
71% |
| brokers / korea_investment / korea_invest_token_provider.py |
(no function) |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trading_api.py |
KoreaInvestApiTrading.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trading_api.py |
KoreaInvestApiTrading._get_hashkey |
|
92% |
26 |
2 |
0 |
|
100% |
4 |
0 |
|
93% |
| brokers / korea_investment / korea_invest_trading_api.py |
KoreaInvestApiTrading.place_stock_order |
|
92% |
13 |
1 |
0 |
|
75% |
4 |
1 |
|
88% |
| brokers / korea_investment / korea_invest_trading_api.py |
(no function) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_keys.py |
(no function) |
|
100% |
37 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.from_config_loader |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider._get_leaf_value |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.get_by_leaf |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.get |
|
85% |
13 |
2 |
0 |
|
75% |
8 |
2 |
|
81% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.quotations |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.account_inquire_balance |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.trading_order_cash |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.daily_itemchartprice |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.time_itemchartprice |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
KoreaInvestTrIdProvider.time_daily_itemchartprice |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_trid_provider.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_keys.py |
(no function) |
|
100% |
23 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_provider.py |
KoreaInvestUrlProvider.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_provider.py |
KoreaInvestUrlProvider.from_env_and_kis_config |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_provider.py |
KoreaInvestUrlProvider.has |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_provider.py |
KoreaInvestUrlProvider.keys |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_provider.py |
KoreaInvestUrlProvider.path |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_provider.py |
KoreaInvestUrlProvider.url |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_url_provider.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
_loads |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
_dumps |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.__init__ |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._aes_cbc_base64_dec |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._get_approval_key |
|
100% |
29 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._establish_connection |
|
100% |
17 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._receive_messages |
|
84% |
44 |
7 |
0 |
|
69% |
16 |
1 |
|
80% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._handle_websocket_message |
|
95% |
92 |
5 |
0 |
|
90% |
50 |
3 |
|
93% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_stock_quote_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_stock_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_futs_optn_quote_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_futs_optn_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_product_futs_quote_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_product_futs_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_stock_futs_optn_quote_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_stock_futs_optn_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_stock_futs_optn_exp_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_cmefuts_quote_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_cmefuts_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_eurex_optn_quote_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_eurex_optn_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_eurex_optn_exp_contract_data |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._parse_program_trading_data |
|
0% |
4 |
4 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.subscribe_program_trading |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.unsubscribe_program_trading |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._resubscribe_all |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.is_receive_alive |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.connect |
|
69% |
16 |
5 |
0 |
|
83% |
6 |
1 |
|
73% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.disconnect |
|
93% |
27 |
2 |
0 |
|
100% |
6 |
0 |
|
94% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.send_realtime_request |
|
93% |
27 |
2 |
0 |
|
62% |
8 |
1 |
|
86% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.subscribe_realtime_price |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.unsubscribe_realtime_price |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.subscribe_unified_price |
|
33% |
3 |
2 |
0 |
|
100% |
0 |
0 |
|
33% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.unsubscribe_unified_price |
|
0% |
3 |
3 |
0 |
|
100% |
0 |
0 |
|
0% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.subscribe_realtime_quote |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI.unsubscribe_realtime_quote |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
KoreaInvestWebSocketAPI._on_receive |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| brokers / korea_investment / korea_invest_websocket_api.py |
(no function) |
|
93% |
56 |
4 |
0 |
|
100% |
0 |
0 |
|
93% |
| common / types.py |
ErrorCode.is_retriable |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
TradeSignal.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResPriceSummary.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResPriceSummary.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResMomentumStock.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResMomentumStock.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResMarketCapStockItem.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResMarketCapStockItem.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResStockFullInfoApiOutput.is_new_high |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResStockFullInfoApiOutput.is_new_low |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResStockFullInfoApiOutput.new_high_low_status |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| common / types.py |
ResStockFullInfoApiOutput.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResStockFullInfoApiOutput.from_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResTopMarketCapApiItem.sync_aliases |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| common / types.py |
ResTopMarketCapApiItem.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResTopMarketCapApiItem.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResTopMarketCapApiItem.from_api |
|
100% |
6 |
0 |
0 |
|
50% |
4 |
2 |
|
80% |
| common / types.py |
ResDailyChartApiItem.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResDailyChartApiItem.from_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResAccountBalanceApiOutput.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResAccountBalanceApiOutput.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResStockOrderApiOutput.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResStockOrderApiOutput.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResBasicStockInfo.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResBasicStockInfo.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResFluctuation.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResFluctuation.from_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResBollingerBand.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResBollingerBand.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResRSI.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| common / types.py |
ResRSI.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResMovingAverage.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResMovingAverage.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResRelativeStrength.to_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
ResCommonResponse.to_dict |
|
89% |
27 |
3 |
0 |
|
88% |
24 |
3 |
|
88% |
| common / types.py |
ResCommonResponse.from_dict |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| common / types.py |
(no function) |
|
100% |
268 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| config / DynamicConfig.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| config / config_loader.py |
AppConfig.validate_base_url |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| config / config_loader.py |
AppConfig.__getitem__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| config / config_loader.py |
AppConfig.get |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| config / config_loader.py |
load_configs |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| config / config_loader.py |
load_config |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| config / config_loader.py |
(no function) |
|
100% |
41 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / cache_config.py |
load_cache_config |
|
100% |
5 |
0 |
0 |
|
50% |
2 |
1 |
|
86% |
| core / cache / cache_config.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / cache_store.py |
CacheStore.__init__ |
|
89% |
9 |
1 |
0 |
|
75% |
4 |
1 |
|
85% |
| core / cache / cache_store.py |
CacheStore.set_logger |
|
75% |
12 |
3 |
0 |
|
67% |
6 |
0 |
|
72% |
| core / cache / cache_store.py |
CacheStore.get_raw |
|
88% |
33 |
4 |
0 |
|
92% |
24 |
0 |
|
89% |
| core / cache / cache_store.py |
CacheStore.get |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| core / cache / cache_store.py |
CacheStore.set |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / cache / cache_store.py |
CacheStore.delete |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / cache / cache_store.py |
CacheStore.clear |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / cache / cache_store.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / cache_wrapper.py |
ClientWithCache.__init__ |
|
100% |
16 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / cache / cache_wrapper.py |
ClientWithCache.__getattr__ |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / cache / cache_wrapper.py |
ClientWithCache.__getattr__._build_cache_key |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / cache_wrapper.py |
ClientWithCache.__getattr__.wrapped |
|
84% |
76 |
12 |
0 |
|
73% |
48 |
7 |
|
80% |
| core / cache / cache_wrapper.py |
ClientWithCache.__dir__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / cache_wrapper.py |
ClientWithCache._parse_timestamp |
|
91% |
11 |
1 |
0 |
|
67% |
6 |
2 |
|
82% |
| core / cache / cache_wrapper.py |
cache_wrap_client |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / cache_wrapper.py |
(no function) |
|
100% |
13 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / db_cache.py |
DBCache.__init__ |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / cache / db_cache.py |
DBCache._init_db |
|
100% |
8 |
0 |
0 |
|
50% |
2 |
1 |
|
90% |
| core / cache / db_cache.py |
DBCache._get_connection |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / db_cache.py |
DBCache.__del__ |
|
100% |
2 |
0 |
0 |
|
50% |
2 |
1 |
|
75% |
| core / cache / db_cache.py |
DBCache.set_logger |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / db_cache.py |
DBCache._serialize |
|
100% |
9 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| core / cache / db_cache.py |
DBCache._deserialize |
|
90% |
39 |
4 |
0 |
|
85% |
26 |
4 |
|
88% |
| core / cache / db_cache.py |
DBCache.set |
|
100% |
12 |
0 |
0 |
|
83% |
6 |
1 |
|
94% |
| core / cache / db_cache.py |
DBCache.delete |
|
88% |
8 |
1 |
0 |
|
50% |
4 |
2 |
|
75% |
| core / cache / db_cache.py |
DBCache.clear |
|
88% |
8 |
1 |
0 |
|
50% |
4 |
2 |
|
75% |
| core / cache / db_cache.py |
DBCache.cleanup_old_files |
|
97% |
32 |
1 |
0 |
|
72% |
18 |
5 |
|
88% |
| core / cache / db_cache.py |
DBCache.get_raw |
|
100% |
13 |
0 |
0 |
|
50% |
4 |
2 |
|
88% |
| core / cache / db_cache.py |
DBCache.exists |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / db_cache.py |
(no function) |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / file_cache.py |
load_deserializable_classes |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / cache / file_cache.py |
FileCache.__init__ |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / cache / file_cache.py |
FileCache.set_logger |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / file_cache.py |
FileCache._serialize |
|
100% |
9 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| core / cache / file_cache.py |
FileCache._deserialize |
|
92% |
39 |
3 |
0 |
|
88% |
26 |
3 |
|
91% |
| core / cache / file_cache.py |
FileCache._get_path |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / file_cache.py |
FileCache.set |
|
100% |
13 |
0 |
0 |
|
83% |
6 |
1 |
|
95% |
| core / cache / file_cache.py |
FileCache.delete |
|
100% |
9 |
0 |
0 |
|
83% |
6 |
1 |
|
93% |
| core / cache / file_cache.py |
FileCache.clear |
|
94% |
17 |
1 |
0 |
|
79% |
14 |
3 |
|
87% |
| core / cache / file_cache.py |
FileCache.cleanup_old_files |
|
92% |
26 |
2 |
0 |
|
82% |
22 |
4 |
|
88% |
| core / cache / file_cache.py |
FileCache.get_raw |
|
100% |
13 |
0 |
0 |
|
75% |
4 |
1 |
|
94% |
| core / cache / file_cache.py |
FileCache.exists |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / file_cache.py |
(no function) |
|
100% |
22 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
MemoryCache.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
MemoryCache.set_logger |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
MemoryCache.get |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
MemoryCache.set |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
MemoryCache.has |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
MemoryCache.delete |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
MemoryCache.clear |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / cache / memory_cache.py |
(no function) |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
get_log_timestamp |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / logger.py |
reset_log_timestamp_for_test |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
SizeTimeRotatingFileHandler.__init__ |
|
88% |
16 |
2 |
0 |
|
83% |
6 |
1 |
|
86% |
| core / logger.py |
SizeTimeRotatingFileHandler.doRollover |
|
85% |
26 |
4 |
0 |
|
71% |
14 |
4 |
|
80% |
| core / logger.py |
JsonFormatter.format |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / logger.py |
get_streaming_logger |
|
100% |
13 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_subscribe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_unsubscribe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_summary |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_connect |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_disconnect |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_reconnect |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_restore |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_pt_subscribe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_pt_unsubscribe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_price_subscribe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
StreamingEventLogger.log_price_unsubscribe |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
get_cache_event_logger |
|
100% |
13 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_price_set |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_price_update_tick |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_price_hit |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_price_miss |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_price_evicted |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_streaming_mark |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_streaming_unmark |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_ohlcv_loaded |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_ohlcv_hit |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_ohlcv_miss |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_ohlcv_evicted |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_ohlcv_invalidated |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_ohlcv_upsert |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_today_candle |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
CacheEventLogger.log_stats |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
get_strategy_logger |
|
100% |
18 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| core / logger.py |
get_performance_logger |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / logger.py |
StrategyInfoFilter.filter |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / logger.py |
Logger.__init__ |
|
100% |
28 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| core / logger.py |
Logger._cleanup_old_logs |
|
82% |
11 |
2 |
0 |
|
100% |
8 |
0 |
|
89% |
| core / logger.py |
Logger._setup_logger |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / logger.py |
Logger.info |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
Logger.debug |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
Logger.warning |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
Logger.error |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
Logger.critical |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
Logger.exception |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / logger.py |
(no function) |
|
100% |
64 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.__init__ |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.get_current_kst_time |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.get_current_kst_date_str |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.is_market_operating_hours |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.get_market_open_time |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.get_market_close_time |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.get_seconds_until_market_close |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.get_sleep_seconds_until_market_close |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.sleep |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.async_sleep |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.to_yyyymmdd |
|
100% |
9 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.to_hhmmss |
|
100% |
10 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| core / market_clock.py |
MarketClock.dec_minute |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / market_clock.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / performance_profiler.py |
PerformanceProfiler.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / performance_profiler.py |
PerformanceProfiler.start_timer |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / performance_profiler.py |
PerformanceProfiler.log_timer |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| core / performance_profiler.py |
PerformanceProfiler._check_pyinstrument |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / performance_profiler.py |
PerformanceProfiler._save_profile_result |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / performance_profiler.py |
PerformanceProfiler.profile |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / performance_profiler.py |
PerformanceProfiler.profile_async |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / performance_profiler.py |
(no function) |
|
91% |
22 |
2 |
0 |
|
100% |
0 |
0 |
|
91% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue.submit |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue.stop |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue._spawn |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue._execute |
|
100% |
25 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue._delay_and_execute |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue._resolve |
|
100% |
2 |
0 |
0 |
|
50% |
2 |
1 |
|
75% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue.done_queue |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue.fail_queue |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
ApiRequestQueue.pending_count |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / api_request_queue.py |
(no function) |
|
100% |
30 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / client_with_retry_queue.py |
ClientWithRetryQueue.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / client_with_retry_queue.py |
ClientWithRetryQueue.__getattr__ |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| core / retry_queue / client_with_retry_queue.py |
ClientWithRetryQueue.__getattr__.queued |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / client_with_retry_queue.py |
retry_queue_wrap_client |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / client_with_retry_queue.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| core / retry_queue / retry_classifier.py |
classify |
|
100% |
13 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| core / retry_queue / retry_classifier.py |
_classify_by_msg |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| core / retry_queue / retry_classifier.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / live_strategy.py |
LiveStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / live_strategy.py |
LiveStrategy.scan |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / live_strategy.py |
LiveStrategy.check_exits |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / live_strategy.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.priority |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.start |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.stop |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.suspend |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.resume |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.state |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
SchedulableTask.get_progress |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / schedulable_task.py |
(no function) |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / strategy.py |
Strategy.run |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| interfaces / strategy.py |
(no function) |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / cache.py |
_LRUCache.__init__ |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / cache.py |
_LRUCache.get |
|
100% |
14 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| repositories / cache.py |
_LRUCache.put |
|
82% |
11 |
2 |
0 |
|
100% |
6 |
0 |
|
88% |
| repositories / cache.py |
_LRUCache.delete |
|
100% |
4 |
0 |
0 |
|
75% |
4 |
1 |
|
88% |
| repositories / cache.py |
_LRUCache.get_stats |
|
100% |
17 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| repositories / cache.py |
_LFUCache.__init__ |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / cache.py |
_LFUCache.get |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| repositories / cache.py |
_LFUCache.put |
|
100% |
18 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| repositories / cache.py |
_LFUCache.delete |
|
100% |
4 |
0 |
0 |
|
75% |
4 |
1 |
|
88% |
| repositories / cache.py |
_LFUCache.get_stats |
|
100% |
25 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| repositories / cache.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_code_repository.py |
_write_minimal_db |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / stock_code_repository.py |
StockCodeRepository.__init__ |
|
100% |
17 |
0 |
0 |
|
90% |
10 |
1 |
|
96% |
| repositories / stock_code_repository.py |
StockCodeRepository._load_data |
|
95% |
44 |
2 |
0 |
|
56% |
18 |
8 |
|
84% |
| repositories / stock_code_repository.py |
StockCodeRepository.get_name_by_code |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / stock_code_repository.py |
StockCodeRepository.get_code_by_name |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / stock_code_repository.py |
StockCodeRepository.search_by_name |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| repositories / stock_code_repository.py |
StockCodeRepository.get_kosdaq_codes |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / stock_code_repository.py |
StockCodeRepository.is_kosdaq |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / stock_code_repository.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.__init__ |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository._on_ohlcv_evicted |
|
100% |
2 |
0 |
0 |
|
50% |
2 |
1 |
|
75% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository._init_db_sync |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository._get_write_connection |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository._get_read_connection |
|
100% |
7 |
0 |
0 |
|
75% |
4 |
1 |
|
91% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_stock_data |
|
90% |
29 |
3 |
0 |
|
71% |
14 |
4 |
|
84% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.update_today_candle |
|
95% |
19 |
1 |
0 |
|
79% |
14 |
3 |
|
88% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.upsert_ohlcv |
|
100% |
14 |
0 |
0 |
|
75% |
8 |
2 |
|
91% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_ohlcv_summary |
|
100% |
9 |
0 |
0 |
|
50% |
2 |
1 |
|
91% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_ohlcv_max_trading_days |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.upsert_daily_snapshot |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_prices_by_date |
|
62% |
8 |
3 |
0 |
|
100% |
0 |
0 |
|
62% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_price_history |
|
62% |
8 |
3 |
0 |
|
100% |
0 |
0 |
|
62% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_latest_trade_date |
|
62% |
8 |
3 |
0 |
|
100% |
0 |
0 |
|
62% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_count_by_date |
|
62% |
8 |
3 |
0 |
|
100% |
0 |
0 |
|
62% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.cleanup_old_data |
|
80% |
10 |
2 |
0 |
|
50% |
2 |
1 |
|
75% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_latest_daily_snapshot |
|
75% |
12 |
3 |
0 |
|
100% |
2 |
0 |
|
79% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.get_cache_stats |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.close |
|
100% |
6 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
StockOhlcvRepository.__del__ |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / stock_ohlcv_repository.py |
(no function) |
|
97% |
35 |
1 |
0 |
|
50% |
2 |
1 |
|
95% |
| repositories / stock_price_repository.py |
StockPriceRepository.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_price_repository.py |
StockPriceRepository._on_price_evicted |
|
100% |
2 |
0 |
0 |
|
50% |
2 |
1 |
|
75% |
| repositories / stock_price_repository.py |
StockPriceRepository.set_current_price |
|
100% |
19 |
0 |
0 |
|
70% |
10 |
3 |
|
90% |
| repositories / stock_price_repository.py |
StockPriceRepository.get_current_price |
|
100% |
15 |
0 |
0 |
|
70% |
10 |
3 |
|
88% |
| repositories / stock_price_repository.py |
StockPriceRepository.update_current_price |
|
92% |
24 |
2 |
0 |
|
86% |
14 |
2 |
|
89% |
| repositories / stock_price_repository.py |
StockPriceRepository.mark_streaming |
|
100% |
3 |
0 |
0 |
|
50% |
2 |
1 |
|
80% |
| repositories / stock_price_repository.py |
StockPriceRepository.unmark_streaming |
|
100% |
3 |
0 |
0 |
|
50% |
2 |
1 |
|
80% |
| repositories / stock_price_repository.py |
StockPriceRepository.is_streaming |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| repositories / stock_price_repository.py |
StockPriceRepository.get_cache_stats |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_price_repository.py |
(no function) |
|
94% |
17 |
1 |
0 |
|
50% |
2 |
1 |
|
89% |
| repositories / stock_repository.py |
StockRepository.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository._db_path |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository._conn |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository._conn |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository._get_connection |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.set_current_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_current_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_stock_data |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.upsert_ohlcv |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_ohlcv_summary |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_ohlcv_max_trading_days |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.update_realtime_data |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.upsert_daily_snapshot |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_prices_by_date |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_price_history |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_latest_trade_date |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_count_by_date |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.cleanup_old_data |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.get_latest_daily_snapshot |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.mark_streaming |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| repositories / stock_repository.py |
StockRepository.unmark_streaming |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| repositories / stock_repository.py |
StockRepository.is_streaming |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| repositories / stock_repository.py |
StockRepository.get_cache_stats |
|
92% |
12 |
1 |
0 |
|
50% |
4 |
2 |
|
81% |
| repositories / stock_repository.py |
StockRepository.close |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / stock_repository.py |
StockRepository.__del__ |
|
50% |
2 |
1 |
0 |
|
50% |
2 |
1 |
|
50% |
| repositories / stock_repository.py |
(no function) |
|
100% |
35 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
_is_weekday |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
_strategy_values |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
_get_trading_dates |
|
88% |
8 |
1 |
0 |
|
83% |
6 |
1 |
|
86% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.__init__ |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._read |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._write |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.log_buy |
|
85% |
13 |
2 |
0 |
|
100% |
2 |
0 |
|
87% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.log_buy_async |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.log_sell |
|
100% |
15 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.log_sell_async |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.log_sell_by_strategy |
|
100% |
16 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.log_sell_by_strategy_async |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._to_json_records |
|
100% |
6 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.calculate_return |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_trade_amount |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_all_trades |
|
100% |
7 |
0 |
0 |
|
83% |
6 |
1 |
|
92% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_solds |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_holds |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_holds_by_strategy |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.is_holding |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.fix_sell_price |
|
85% |
13 |
2 |
0 |
|
67% |
6 |
2 |
|
79% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_summary |
|
92% |
12 |
1 |
0 |
|
75% |
4 |
1 |
|
88% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._price_cache_path |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._load_price_cache |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._save_price_cache |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._fetch_close_prices |
|
100% |
28 |
0 |
0 |
|
86% |
14 |
2 |
|
95% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.backfill_snapshots |
|
91% |
123 |
11 |
0 |
|
70% |
46 |
14 |
|
85% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._find_prev_close |
|
80% |
5 |
1 |
0 |
|
50% |
2 |
1 |
|
71% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._snapshot_path |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._load_data |
|
100% |
16 |
0 |
0 |
|
83% |
6 |
1 |
|
95% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository._save_data |
|
71% |
7 |
2 |
0 |
|
100% |
0 |
0 |
|
71% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.save_daily_snapshot |
|
100% |
20 |
0 |
0 |
|
80% |
10 |
2 |
|
93% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_daily_change |
|
93% |
15 |
1 |
0 |
|
67% |
6 |
2 |
|
86% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_weekly_change |
|
86% |
14 |
2 |
0 |
|
50% |
6 |
3 |
|
75% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_strategy_return_history |
|
100% |
7 |
0 |
0 |
|
75% |
4 |
1 |
|
91% |
| repositories / virtual_trade_repository.py |
VirtualTradeRepository.get_all_strategies |
|
100% |
9 |
0 |
0 |
|
75% |
4 |
1 |
|
92% |
| repositories / virtual_trade_repository.py |
(no function) |
|
100% |
56 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / after_market_loop.py |
run_after_market_loop |
|
97% |
29 |
1 |
0 |
|
92% |
12 |
1 |
|
95% |
| scheduler / after_market_loop.py |
_smart_sleep |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| scheduler / after_market_loop.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / background_scheduler.py |
BackgroundScheduler.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / background_scheduler.py |
BackgroundScheduler.register |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| scheduler / background_scheduler.py |
BackgroundScheduler.unregister |
|
100% |
3 |
0 |
0 |
|
50% |
2 |
1 |
|
80% |
| scheduler / background_scheduler.py |
BackgroundScheduler.start_all |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| scheduler / background_scheduler.py |
BackgroundScheduler.shutdown |
|
80% |
10 |
2 |
0 |
|
100% |
4 |
0 |
|
86% |
| scheduler / background_scheduler.py |
BackgroundScheduler.suspend_all |
|
71% |
7 |
2 |
0 |
|
100% |
4 |
0 |
|
82% |
| scheduler / background_scheduler.py |
BackgroundScheduler.resume_all |
|
71% |
7 |
2 |
0 |
|
100% |
4 |
0 |
|
82% |
| scheduler / background_scheduler.py |
BackgroundScheduler.get_task |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / background_scheduler.py |
BackgroundScheduler.get_all_status |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / background_scheduler.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / foreground_scheduler.py |
ForegroundScheduler.__init__ |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / foreground_scheduler.py |
ForegroundScheduler.context |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| scheduler / foreground_scheduler.py |
ForegroundScheduler.execute |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / foreground_scheduler.py |
ForegroundScheduler.active_count |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / foreground_scheduler.py |
ForegroundScheduler.is_active |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / foreground_scheduler.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.__init__ |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.register |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.start |
|
82% |
11 |
2 |
0 |
|
83% |
6 |
1 |
|
82% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.stop |
|
95% |
19 |
1 |
0 |
|
90% |
10 |
1 |
|
93% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._loop |
|
74% |
62 |
16 |
0 |
|
63% |
30 |
7 |
|
71% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._run_strategy |
|
95% |
44 |
2 |
0 |
|
91% |
22 |
2 |
|
94% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._execute_signal |
|
81% |
53 |
10 |
0 |
|
79% |
24 |
3 |
|
81% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._force_liquidate_strategy |
|
100% |
15 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.start_strategy |
|
100% |
10 |
0 |
0 |
|
83% |
6 |
1 |
|
94% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.stop_strategy |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.update_max_positions |
|
100% |
9 |
0 |
0 |
|
83% |
6 |
1 |
|
93% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.get_status |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.close |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._load_signal_history |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._save_scheduler_state |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.clear_saved_state |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.restore_state |
|
88% |
26 |
3 |
0 |
|
83% |
12 |
2 |
|
87% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._append_signal_db |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.get_signal_history |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.create_subscriber_queue |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler.remove_subscriber_queue |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| scheduler / strategy_scheduler.py |
StrategyScheduler._notify_subscribers |
|
80% |
10 |
2 |
0 |
|
100% |
2 |
0 |
|
83% |
| scheduler / strategy_scheduler.py |
(no function) |
|
100% |
66 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore.__init__ |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore._init_db |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore.close |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore.append_signal |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore.load_signal_history |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore.save_state |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore.load_state |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore.clear_state |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore._migrate_legacy_files |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore._migrate_csv |
|
84% |
25 |
4 |
0 |
|
100% |
6 |
0 |
|
87% |
| scheduler / strategy_scheduler_store.py |
StrategySchedulerStore._migrate_json |
|
75% |
16 |
4 |
0 |
|
75% |
4 |
1 |
|
75% |
| scheduler / strategy_scheduler_store.py |
(no function) |
|
100% |
25 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._safe_float |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._get_ohlcv_data |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._get_with_incremental_cache |
|
87% |
31 |
4 |
0 |
|
75% |
16 |
4 |
|
83% |
| services / indicator_service.py |
IndicatorService.get_bollinger_bands |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService.get_rsi |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService.get_moving_average |
|
100% |
3 |
0 |
0 |
|
50% |
2 |
1 |
|
80% |
| services / indicator_service.py |
IndicatorService.get_relative_strength |
|
95% |
21 |
1 |
0 |
|
75% |
8 |
2 |
|
90% |
| services / indicator_service.py |
IndicatorService.get_chart_indicators |
|
92% |
51 |
4 |
0 |
|
75% |
24 |
6 |
|
87% |
| services / indicator_service.py |
IndicatorService._to_dataframe |
|
80% |
10 |
2 |
0 |
|
100% |
4 |
0 |
|
86% |
| services / indicator_service.py |
IndicatorService._compute_ma |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._compute_bb |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._compute_rsi |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService.calc_bb_widths_sync |
|
100% |
10 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService.calc_rs_sync |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._calculate_bollinger_bands_full |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._calculate_rsi_series |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._calculate_moving_average_full |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / indicator_service.py |
IndicatorService._calculate_indicators_full |
|
100% |
23 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / indicator_service.py |
(no function) |
|
97% |
36 |
1 |
0 |
|
50% |
2 |
1 |
|
95% |
| services / market_calendar_service.py |
MarketCalendarService.__init__ |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_calendar_service.py |
MarketCalendarService.set_broker |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_calendar_service.py |
MarketCalendarService.get_latest_trading_date |
|
100% |
18 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / market_calendar_service.py |
MarketCalendarService._fetch_from_api |
|
85% |
20 |
3 |
0 |
|
75% |
8 |
2 |
|
82% |
| services / market_calendar_service.py |
MarketCalendarService._sync_calendar_if_needed |
|
89% |
19 |
2 |
0 |
|
90% |
10 |
1 |
|
90% |
| services / market_calendar_service.py |
MarketCalendarService.is_business_day |
|
71% |
7 |
2 |
0 |
|
50% |
4 |
2 |
|
64% |
| services / market_calendar_service.py |
MarketCalendarService.is_market_open_now |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / market_calendar_service.py |
MarketCalendarService.get_next_open_day |
|
100% |
13 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| services / market_calendar_service.py |
MarketCalendarService.get_next_open_time |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / market_calendar_service.py |
MarketCalendarService.wait_until_next_open |
|
67% |
6 |
2 |
0 |
|
50% |
2 |
1 |
|
62% |
| services / market_calendar_service.py |
MarketCalendarService.get_latest_market_close_time |
|
100% |
17 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / market_calendar_service.py |
(no function) |
|
100% |
18 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.__init__ |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_name_by_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_price_summary |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_stock_info_by_code |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_current_price |
|
100% |
21 |
0 |
0 |
|
86% |
14 |
2 |
|
94% |
| services / market_data_service.py |
MarketDataService.get_stock_conclusion |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_multi_price |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_top_market_cap_stocks_code |
|
62% |
8 |
3 |
0 |
|
50% |
4 |
2 |
|
58% |
| services / market_data_service.py |
MarketDataService.get_current_upper_limit_stocks |
|
100% |
22 |
0 |
0 |
|
88% |
8 |
1 |
|
97% |
| services / market_data_service.py |
MarketDataService.get_all_stocks_code |
|
100% |
12 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_asking_price |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_time_concluded_prices |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.inquire_daily_itemchartprice |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_top_rise_fall_stocks |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_top_volume_stocks |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_top_trading_value_stocks |
|
100% |
38 |
0 |
0 |
|
93% |
14 |
1 |
|
98% |
| services / market_data_service.py |
MarketDataService.get_top_trading_value_stocks._to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_top_trading_value_stocks._get_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_top_trading_value_stocks._compute_tr_val |
|
78% |
9 |
2 |
0 |
|
100% |
2 |
0 |
|
82% |
| services / market_data_service.py |
MarketDataService._wrap_snapshot_output |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| services / market_data_service.py |
MarketDataService._is_etf |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_etf_info |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_financial_ratio |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService._normalize_ohlcv_rows |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService._normalize_ohlcv_rows._get |
|
100% |
3 |
0 |
0 |
|
75% |
4 |
1 |
|
86% |
| services / market_data_service.py |
MarketDataService._normalize_ohlcv_rows._to_float |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService._normalize_ohlcv_rows._to_int |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService._calc_range_by_period |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService._fetch_past_daily_ohlcv |
|
100% |
20 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService._fetch_today_ohlcv |
|
81% |
16 |
3 |
0 |
|
50% |
6 |
3 |
|
73% |
| services / market_data_service.py |
MarketDataService._fetch_today_ohlcv._get_val |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_ohlcv |
|
88% |
52 |
6 |
0 |
|
71% |
34 |
8 |
|
81% |
| services / market_data_service.py |
MarketDataService.get_ohlcv_range |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_recent_daily_ohlcv |
|
97% |
34 |
1 |
0 |
|
94% |
18 |
1 |
|
96% |
| services / market_data_service.py |
MarketDataService.get_intraday_minutes_today |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_intraday_minutes_by_date |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_latest_trading_date |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / market_data_service.py |
MarketDataService.get_next_open_day |
|
0% |
16 |
16 |
0 |
|
0% |
10 |
0 |
|
0% |
| services / market_data_service.py |
(no function) |
|
98% |
46 |
1 |
0 |
|
50% |
2 |
1 |
|
96% |
| services / naver_finance_scraper_service.py |
NaverFinanceScraperService.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / naver_finance_scraper_service.py |
NaverFinanceScraperService.fetch_yoy_profit_growth |
|
100% |
42 |
0 |
0 |
|
77% |
22 |
5 |
|
92% |
| services / naver_finance_scraper_service.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / notification_service.py |
NotificationEvent.to_dict |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / notification_service.py |
NotificationService.__init__ |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / notification_service.py |
NotificationService.emit |
|
83% |
24 |
4 |
0 |
|
100% |
6 |
0 |
|
87% |
| services / notification_service.py |
NotificationService.create_subscriber_queue |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / notification_service.py |
NotificationService.remove_subscriber_queue |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / notification_service.py |
NotificationService.get_recent |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / notification_service.py |
NotificationService.register_external_handler |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / notification_service.py |
NotificationService.external_handler_queue |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / notification_service.py |
NotificationService.external_handlers |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / notification_service.py |
(no function) |
|
100% |
43 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / oneil_universe_service.py |
_chunked |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService.__init__ |
|
100% |
17 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService.generation_progress |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| services / oneil_universe_service.py |
OneilUniverseService.get_watchlist |
|
93% |
15 |
1 |
0 |
|
83% |
6 |
1 |
|
90% |
| services / oneil_universe_service.py |
OneilUniverseService.is_market_timing_ok |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService._build_watchlist |
|
100% |
18 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService._build_daily_surge_pool |
|
100% |
33 |
0 |
0 |
|
94% |
16 |
1 |
|
98% |
| services / oneil_universe_service.py |
OneilUniverseService._analyze_candidate |
|
97% |
67 |
2 |
0 |
|
96% |
26 |
1 |
|
97% |
| services / oneil_universe_service.py |
OneilUniverseService.generate_premium_watchlist |
|
98% |
90 |
2 |
0 |
|
77% |
30 |
7 |
|
92% |
| services / oneil_universe_service.py |
OneilUniverseService._should_refresh_watchlist |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService._update_market_timing |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService._check_etf_ma_rising |
|
100% |
24 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService._compute_rs_scores |
|
100% |
13 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService._compute_profit_growth_scores |
|
100% |
16 |
0 |
0 |
|
90% |
10 |
1 |
|
96% |
| services / oneil_universe_service.py |
OneilUniverseService._compute_smart_money_scores |
|
43% |
30 |
17 |
0 |
|
50% |
14 |
3 |
|
45% |
| services / oneil_universe_service.py |
OneilUniverseService._compute_total_scores |
|
100% |
8 |
0 |
0 |
|
83% |
6 |
1 |
|
93% |
| services / oneil_universe_service.py |
OneilUniverseService._save_premium_stocks |
|
88% |
8 |
1 |
0 |
|
100% |
0 |
0 |
|
88% |
| services / oneil_universe_service.py |
OneilUniverseService._load_premium_stocks |
|
95% |
20 |
1 |
0 |
|
88% |
8 |
1 |
|
93% |
| services / oneil_universe_service.py |
OneilUniverseService.get_premium_stocks_meta |
|
0% |
8 |
8 |
0 |
|
0% |
2 |
0 |
|
0% |
| services / oneil_universe_service.py |
OneilUniverseService._calc_turnover_ratio |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / oneil_universe_service.py |
OneilUniverseService._extract_op_profit_growth |
|
90% |
10 |
1 |
0 |
|
100% |
8 |
0 |
|
94% |
| services / oneil_universe_service.py |
(no function) |
|
100% |
43 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / order_execution_service.py |
OrderExecutionService.__init__ |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / order_execution_service.py |
OrderExecutionService._retry_order |
|
100% |
18 |
0 |
0 |
|
75% |
8 |
2 |
|
92% |
| services / order_execution_service.py |
OrderExecutionService._execute_order_via_broker |
|
57% |
7 |
3 |
0 |
|
100% |
0 |
0 |
|
57% |
| services / order_execution_service.py |
OrderExecutionService.handle_place_buy_order |
|
90% |
20 |
2 |
0 |
|
83% |
12 |
2 |
|
88% |
| services / order_execution_service.py |
OrderExecutionService.handle_place_sell_order |
|
95% |
20 |
1 |
0 |
|
92% |
12 |
1 |
|
94% |
| services / order_execution_service.py |
OrderExecutionService.handle_buy_stock |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / order_execution_service.py |
OrderExecutionService.handle_sell_stock |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / order_execution_service.py |
OrderExecutionService.handle_realtime_price_quote_stream |
|
100% |
14 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / order_execution_service.py |
OrderExecutionService.handle_realtime_price_quote_stream.realtime_data_display_callback |
|
100% |
25 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| services / order_execution_service.py |
(no function) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / price_subscription_service.py |
PriceSubscriptionService.__init__ |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / price_subscription_service.py |
PriceSubscriptionService.add_subscription |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / price_subscription_service.py |
PriceSubscriptionService.remove_subscription |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / price_subscription_service.py |
PriceSubscriptionService.remove_category |
|
100% |
6 |
0 |
0 |
|
75% |
4 |
1 |
|
90% |
| services / price_subscription_service.py |
PriceSubscriptionService.sync_subscriptions |
|
100% |
9 |
0 |
0 |
|
83% |
6 |
1 |
|
93% |
| services / price_subscription_service.py |
PriceSubscriptionService.is_streaming |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / price_subscription_service.py |
PriceSubscriptionService.get_status |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / price_subscription_service.py |
PriceSubscriptionService._rebalance |
|
100% |
18 |
0 |
0 |
|
90% |
10 |
1 |
|
96% |
| services / price_subscription_service.py |
PriceSubscriptionService._rebalance._best_priority |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / price_subscription_service.py |
PriceSubscriptionService._do_subscribe |
|
83% |
12 |
2 |
0 |
|
75% |
4 |
1 |
|
81% |
| services / price_subscription_service.py |
PriceSubscriptionService._do_unsubscribe |
|
67% |
9 |
3 |
0 |
|
50% |
2 |
1 |
|
64% |
| services / price_subscription_service.py |
(no function) |
|
88% |
25 |
3 |
0 |
|
50% |
2 |
1 |
|
85% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.__init__ |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._get_base_dir |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._init_db |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._get_connection |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._load_pt_history |
|
100% |
15 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._load_subscribed_codes |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._safe_int |
|
50% |
4 |
2 |
0 |
|
100% |
0 |
0 |
|
50% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._safe_float |
|
50% |
4 |
2 |
0 |
|
100% |
0 |
0 |
|
50% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.on_data_received |
|
94% |
36 |
2 |
0 |
|
100% |
6 |
0 |
|
95% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._bulk_insert_to_db |
|
80% |
10 |
2 |
0 |
|
100% |
0 |
0 |
|
80% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._flush_write_buffer |
|
86% |
7 |
1 |
0 |
|
50% |
2 |
1 |
|
78% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.flush_write_buffer_sync |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._flush_loop |
|
0% |
6 |
6 |
0 |
|
100% |
0 |
0 |
|
0% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.create_subscriber_queue |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.remove_subscriber_queue |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.get_history_data |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.add_subscribed_code |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.remove_subscribed_code |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.clear_subscribed_codes |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.is_subscribed |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.get_subscribed_codes |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.save_snapshot |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.load_snapshot |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._cleanup_old_data |
|
80% |
10 |
2 |
0 |
|
100% |
2 |
0 |
|
83% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService._cleanup_old_files |
|
78% |
9 |
2 |
0 |
|
100% |
4 |
0 |
|
85% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.start_background_tasks |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.shutdown |
|
53% |
15 |
7 |
0 |
|
75% |
4 |
1 |
|
58% |
| services / program_trading_stream_service.py |
ProgramTradingStreamService.inspect_db_status |
|
100% |
23 |
0 |
0 |
|
62% |
8 |
3 |
|
90% |
| services / program_trading_stream_service.py |
(no function) |
|
100% |
45 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.__init__ |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService._get_sign_from_code |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_current_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_multi_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_top_trading_value_stocks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_top_rise_fall_stocks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_top_volume_stocks |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_financial_ratio |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_stock_conclusion |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.handle_get_current_stock_price |
|
100% |
32 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.handle_get_account_balance |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.handle_get_top_market_cap_stocks_code |
|
100% |
34 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_stock_change_rate |
|
100% |
22 |
0 |
0 |
|
83% |
6 |
1 |
|
96% |
| services / stock_query_service.py |
StockQueryService.get_open_vs_current |
|
100% |
24 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.handle_upper_limit_stocks |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.handle_current_upper_limit_stocks |
|
100% |
13 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.handle_get_asking_price |
|
93% |
15 |
1 |
0 |
|
83% |
6 |
1 |
|
90% |
| services / stock_query_service.py |
StockQueryService.handle_get_time_concluded_prices |
|
100% |
15 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.handle_get_top_stocks |
|
95% |
37 |
2 |
0 |
|
88% |
16 |
2 |
|
92% |
| services / stock_query_service.py |
StockQueryService.handle_get_etf_info |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_ohlcv |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_ohlcv_range |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_ohlcv_with_indicators |
|
88% |
25 |
3 |
0 |
|
100% |
6 |
0 |
|
90% |
| services / stock_query_service.py |
StockQueryService.get_recent_daily_ohlcv |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_investor_trade_daily_multi |
|
0% |
3 |
3 |
0 |
|
0% |
2 |
0 |
|
0% |
| services / stock_query_service.py |
StockQueryService.get_intraday_minutes_today |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_intraday_minutes_by_date |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_day_intraday_minutes_list |
|
97% |
60 |
2 |
0 |
|
87% |
30 |
4 |
|
93% |
| services / stock_query_service.py |
StockQueryService.get_day_intraday_minutes_list._fetch_batch |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / stock_query_service.py |
StockQueryService.get_day_intraday_minutes_list._extract_rows |
|
86% |
7 |
1 |
0 |
|
75% |
4 |
1 |
|
82% |
| services / stock_query_service.py |
(no function) |
|
100% |
36 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_sync_service.py |
_save_metadata |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_sync_service.py |
_load_metadata |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / stock_sync_service.py |
_needs_update |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / stock_sync_service.py |
save_stock_code_list |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_sync_service.py |
save_stock_code_list_fdr |
|
88% |
25 |
3 |
0 |
|
100% |
2 |
0 |
|
89% |
| services / stock_sync_service.py |
load_stock_code_list |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / stock_sync_service.py |
(no function) |
|
100% |
19 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.__init__ |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.connect_websocket |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| services / streaming_service.py |
StreamingService.disconnect_websocket |
|
75% |
4 |
1 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / streaming_service.py |
StreamingService.subscribe_program_trading |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.unsubscribe_program_trading |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.subscribe_realtime_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.unsubscribe_realtime_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.subscribe_unified_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.unsubscribe_unified_price |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| services / streaming_service.py |
StreamingService.handle_program_trading_stream |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.handle_realtime_stream |
|
95% |
21 |
1 |
0 |
|
71% |
14 |
4 |
|
86% |
| services / streaming_service.py |
StreamingService.dispatch_realtime_message |
|
69% |
52 |
16 |
0 |
|
56% |
18 |
6 |
|
66% |
| services / streaming_service.py |
StreamingService.get_cached_realtime_price |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
StreamingService.handle_get_program_trading_history |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / streaming_service.py |
(no function) |
|
87% |
23 |
3 |
0 |
|
50% |
2 |
1 |
|
84% |
| services / telegram_notifier.py |
TelegramNotifier.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / telegram_notifier.py |
TelegramNotifier.handle_event |
|
100% |
25 |
0 |
0 |
|
93% |
14 |
1 |
|
97% |
| services / telegram_notifier.py |
TelegramReporter.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / telegram_notifier.py |
TelegramReporter._send_message |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / telegram_notifier.py |
TelegramReporter._format_ranking_table |
|
94% |
53 |
3 |
0 |
|
89% |
18 |
2 |
|
93% |
| services / telegram_notifier.py |
TelegramReporter.send_ranking_report |
|
93% |
46 |
3 |
0 |
|
86% |
14 |
2 |
|
92% |
| services / telegram_notifier.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / virtual_trade_service.py |
_is_weekday |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / virtual_trade_service.py |
_strategy_values |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / virtual_trade_service.py |
_get_trading_dates |
|
100% |
7 |
0 |
0 |
|
67% |
6 |
2 |
|
85% |
| services / virtual_trade_service.py |
VirtualTradeService.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.calculate_return |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.get_trade_amount |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.get_all_trades |
|
100% |
7 |
0 |
0 |
|
83% |
6 |
1 |
|
92% |
| services / virtual_trade_service.py |
VirtualTradeService.get_summary |
|
100% |
12 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.get_daily_change |
|
100% |
13 |
0 |
0 |
|
67% |
6 |
2 |
|
89% |
| services / virtual_trade_service.py |
VirtualTradeService.get_weekly_change |
|
100% |
12 |
0 |
0 |
|
50% |
6 |
3 |
|
83% |
| services / virtual_trade_service.py |
VirtualTradeService.get_strategy_return_history |
|
100% |
7 |
0 |
0 |
|
50% |
4 |
2 |
|
82% |
| services / virtual_trade_service.py |
VirtualTradeService.get_all_strategies |
|
100% |
8 |
0 |
0 |
|
50% |
2 |
1 |
|
90% |
| services / virtual_trade_service.py |
VirtualTradeService.log_buy |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.log_buy_async |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.log_sell |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.log_sell_async |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.log_sell_by_strategy |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
VirtualTradeService.log_sell_by_strategy_async |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
VirtualTradeService.get_holds |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.get_solds |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
VirtualTradeService.get_holds_by_strategy |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.is_holding |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
VirtualTradeService.fix_sell_price |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
VirtualTradeService.backfill_snapshots |
|
100% |
1 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| services / virtual_trade_service.py |
VirtualTradeService.save_daily_snapshot |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
VirtualTradeService._load_data |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
VirtualTradeService._save_data |
|
100% |
1 |
0 |
0 |
|
50% |
2 |
1 |
|
67% |
| services / virtual_trade_service.py |
(no function) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / GapUpPullback_strategy.py |
GapUpPullbackStrategy.__init__ |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / GapUpPullback_strategy.py |
GapUpPullbackStrategy.run |
|
100% |
23 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| strategies / GapUpPullback_strategy.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / backtest_data_provider.py |
BacktestDataProvider.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / backtest_data_provider.py |
BacktestDataProvider.mock_price_lookup |
|
90% |
10 |
1 |
0 |
|
50% |
2 |
1 |
|
83% |
| strategies / backtest_data_provider.py |
BacktestDataProvider.realistic_price_lookup |
|
100% |
26 |
0 |
0 |
|
100% |
12 |
0 |
|
100% |
| strategies / backtest_data_provider.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / base_strategy_config.py |
(no function) |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy.__init__ |
|
89% |
9 |
1 |
0 |
|
50% |
2 |
1 |
|
82% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy.scan |
|
100% |
26 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._check_entry |
|
85% |
81 |
12 |
0 |
|
72% |
32 |
9 |
|
81% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._check_surge_history |
|
100% |
22 |
0 |
0 |
|
86% |
14 |
2 |
|
94% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._check_ma_uptrend |
|
94% |
18 |
1 |
0 |
|
90% |
10 |
1 |
|
93% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._check_pullback_to_ma |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._check_volume_dryup |
|
88% |
8 |
1 |
0 |
|
75% |
4 |
1 |
|
83% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._check_bullish_reversal |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy.check_exits |
|
95% |
58 |
3 |
0 |
|
87% |
30 |
4 |
|
92% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._calculate_qty |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._get_market_progress_ratio |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._load_state |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
FirstPullbackStrategy._save_state |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / first_pullback_strategy.py |
(no function) |
|
100% |
32 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / first_pullback_types.py |
(no function) |
|
100% |
31 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy.__init__ |
|
89% |
9 |
1 |
0 |
|
50% |
2 |
1 |
|
82% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy.scan |
|
96% |
26 |
1 |
0 |
|
93% |
14 |
1 |
|
95% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._check_htf_setup |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._detect_pole_and_flag |
|
92% |
36 |
3 |
0 |
|
81% |
16 |
3 |
|
88% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._check_breakout |
|
96% |
49 |
2 |
0 |
|
90% |
20 |
2 |
|
94% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy.check_exits |
|
98% |
41 |
1 |
0 |
|
96% |
26 |
1 |
|
97% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._check_trailing_ma_stop |
|
92% |
12 |
1 |
0 |
|
83% |
6 |
1 |
|
89% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._calculate_qty |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._get_market_progress_ratio |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._load_state |
|
75% |
8 |
2 |
0 |
|
100% |
4 |
0 |
|
83% |
| strategies / high_tight_flag_strategy.py |
HighTightFlagStrategy._save_state |
|
71% |
7 |
2 |
0 |
|
100% |
0 |
0 |
|
71% |
| strategies / high_tight_flag_strategy.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / momentum_strategy.py |
MomentumStrategy.__init__ |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / momentum_strategy.py |
MomentumStrategy.run |
|
89% |
53 |
6 |
0 |
|
85% |
20 |
3 |
|
88% |
| strategies / momentum_strategy.py |
(no function) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_common_types.py |
(no function) |
|
100% |
125 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy.__init__ |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy.scan |
|
100% |
26 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_entry |
|
88% |
85 |
10 |
0 |
|
88% |
32 |
4 |
|
88% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_pocket_pivot |
|
98% |
41 |
1 |
0 |
|
95% |
20 |
1 |
|
97% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_bgu |
|
96% |
23 |
1 |
0 |
|
92% |
12 |
1 |
|
94% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_smart_money |
|
88% |
16 |
2 |
0 |
|
90% |
10 |
1 |
|
88% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy.check_exits |
|
98% |
66 |
1 |
0 |
|
95% |
42 |
2 |
|
97% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_hard_stop |
|
100% |
7 |
0 |
0 |
|
83% |
6 |
1 |
|
92% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_pp_stop_loss |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_bgu_stop_loss |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_partial_profit |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._check_7week_hold |
|
93% |
14 |
1 |
0 |
|
88% |
8 |
1 |
|
91% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._calculate_qty |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._get_market_progress_ratio |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._load_state |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
OneilPocketPivotStrategy._save_state |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_pocket_pivot_strategy.py |
(no function) |
|
100% |
35 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy.__init__ |
|
100% |
9 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy.scan |
|
100% |
26 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy._check_breakout |
|
95% |
60 |
3 |
0 |
|
82% |
28 |
5 |
|
91% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy._check_trend_break |
|
88% |
17 |
2 |
0 |
|
67% |
6 |
2 |
|
83% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy.check_exits |
|
90% |
49 |
5 |
0 |
|
79% |
34 |
7 |
|
86% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy._check_time_stop |
|
96% |
23 |
1 |
0 |
|
94% |
16 |
1 |
|
95% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy._calculate_qty |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy._get_market_progress_ratio |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy._load_state |
|
86% |
7 |
1 |
0 |
|
100% |
4 |
0 |
|
91% |
| strategies / oneil_squeeze_breakout_strategy.py |
OneilSqueezeBreakoutStrategy._save_state |
|
83% |
6 |
1 |
0 |
|
100% |
0 |
0 |
|
83% |
| strategies / oneil_squeeze_breakout_strategy.py |
(no function) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / program_buy_follow_strategy.py |
ProgramBuyFollowStrategy.__init__ |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / program_buy_follow_strategy.py |
ProgramBuyFollowStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / program_buy_follow_strategy.py |
ProgramBuyFollowStrategy.scan |
|
95% |
60 |
3 |
0 |
|
95% |
20 |
1 |
|
95% |
| strategies / program_buy_follow_strategy.py |
ProgramBuyFollowStrategy.check_exits |
|
91% |
53 |
5 |
0 |
|
75% |
20 |
5 |
|
86% |
| strategies / program_buy_follow_strategy.py |
ProgramBuyFollowStrategy._extract_output |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / program_buy_follow_strategy.py |
ProgramBuyFollowStrategy._get_int_field |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / program_buy_follow_strategy.py |
ProgramBuyFollowStrategy._get_str_field |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / program_buy_follow_strategy.py |
(no function) |
|
100% |
29 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / strategy_executor.py |
StrategyExecutor.__init__ |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / strategy_executor.py |
StrategyExecutor.execute |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / strategy_executor.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy.__init__ |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy.scan |
|
96% |
24 |
1 |
0 |
|
93% |
14 |
1 |
|
95% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._check_breakout_for_code |
|
100% |
31 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy.check_exits |
|
100% |
66 |
0 |
0 |
|
97% |
30 |
1 |
|
99% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._build_watchlist |
|
100% |
26 |
0 |
0 |
|
100% |
10 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._analyze_ohlcv |
|
93% |
29 |
2 |
0 |
|
83% |
12 |
2 |
|
90% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._load_state |
|
100% |
11 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._save_state |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._calculate_qty |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._get_market_progress_ratio |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
TraditionalVolumeBreakoutStrategy._get_current_ma |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| strategies / traditional_volume_breakout_strategy.py |
(no function) |
|
100% |
54 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / volume_breakout_live_strategy.py |
VolumeBreakoutLiveStrategy.__init__ |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| strategies / volume_breakout_live_strategy.py |
VolumeBreakoutLiveStrategy.name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / volume_breakout_live_strategy.py |
VolumeBreakoutLiveStrategy.scan |
|
82% |
49 |
9 |
0 |
|
81% |
16 |
3 |
|
82% |
| strategies / volume_breakout_live_strategy.py |
VolumeBreakoutLiveStrategy.check_exits |
|
98% |
45 |
1 |
0 |
|
94% |
16 |
1 |
|
97% |
| strategies / volume_breakout_live_strategy.py |
(no function) |
|
100% |
15 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / volume_breakout_strategy.py |
VolumeBreakoutStrategy.__init__ |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / volume_breakout_strategy.py |
VolumeBreakoutStrategy._get_first_available |
|
80% |
5 |
1 |
0 |
|
50% |
4 |
2 |
|
67% |
| strategies / volume_breakout_strategy.py |
VolumeBreakoutStrategy._sort_key |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / volume_breakout_strategy.py |
VolumeBreakoutStrategy.backtest_open_threshold_intraday |
|
94% |
54 |
3 |
0 |
|
86% |
22 |
3 |
|
92% |
| strategies / volume_breakout_strategy.py |
VolumeBreakoutStrategy.backtest_open_threshold_intraday.default_price_getter |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / volume_breakout_strategy.py |
VolumeBreakoutStrategy.backtest_open_threshold_intraday.fmt_ts |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| strategies / volume_breakout_strategy.py |
(no function) |
|
100% |
20 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
_load_after_market_delays |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask.__init__ |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask.state |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask.priority |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask.stop |
|
100% |
9 |
0 |
0 |
|
83% |
6 |
1 |
|
93% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask.suspend |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask.resume |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask._scheduler_label |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask._after_market_scheduler |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
AfterMarketTask._on_market_closed |
|
100% |
0 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / after_market_task_base.py |
(no function) |
|
94% |
35 |
2 |
0 |
|
50% |
2 |
1 |
|
92% |
| task / background / after_market / cache_warmup_task.py |
_chunked |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask.__init__ |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask._scheduler_label |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask.start |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask.suspend |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask.resume |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask.get_progress |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask._on_market_closed |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask.force_warmup |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask._run_warmup |
|
93% |
44 |
3 |
0 |
|
81% |
16 |
3 |
|
90% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask._warmup_code |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask._collect_target_codes |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask._get_watchlist_codes |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
CacheWarmupTask._get_holdings_codes |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| task / background / after_market / cache_warmup_task.py |
(no function) |
|
87% |
38 |
5 |
0 |
|
50% |
2 |
1 |
|
85% |
| task / background / after_market / daily_price_collector_task.py |
_chunked |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask.__init__ |
|
100% |
12 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._scheduler_label |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask.start |
|
0% |
6 |
6 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask.suspend |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask.resume |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._on_market_closed |
|
0% |
2 |
2 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._collect_all_prices |
|
80% |
30 |
6 |
0 |
|
75% |
12 |
3 |
|
79% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._verify_crawler_data |
|
77% |
43 |
10 |
0 |
|
71% |
14 |
2 |
|
75% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._verify_crawler_data._get_api_val |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._verify_crawler_data._get_crawled_val |
|
75% |
4 |
1 |
0 |
|
50% |
4 |
2 |
|
62% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._try_collect_via_fdr |
|
67% |
12 |
4 |
0 |
|
50% |
2 |
1 |
|
64% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._try_collect_via_fdr._fetch_fdr_sync |
|
0% |
5 |
5 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._collect_via_broker_api |
|
94% |
33 |
2 |
0 |
|
61% |
18 |
7 |
|
82% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._finish_collection |
|
100% |
5 |
0 |
0 |
|
50% |
2 |
1 |
|
86% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._fetch_with_retry |
|
0% |
15 |
15 |
0 |
|
0% |
6 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._extract_broker_api_record |
|
67% |
15 |
5 |
0 |
|
50% |
6 |
3 |
|
62% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._extract_broker_api_record._safe_int |
|
50% |
4 |
2 |
0 |
|
100% |
0 |
0 |
|
50% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._extract_broker_api_record._safe_float |
|
50% |
4 |
2 |
0 |
|
100% |
0 |
0 |
|
50% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._load_all_stocks |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask.get_progress |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask.force_collect |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._format_dataframe_to_records |
|
88% |
40 |
5 |
0 |
|
83% |
12 |
2 |
|
87% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._format_dataframe_to_records._get_val |
|
100% |
4 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| task / background / after_market / daily_price_collector_task.py |
DailyPriceCollectorTask._save_bulk_to_db_with_progress |
|
92% |
12 |
1 |
0 |
|
75% |
4 |
1 |
|
88% |
| task / background / after_market / daily_price_collector_task.py |
(no function) |
|
98% |
46 |
1 |
0 |
|
50% |
2 |
1 |
|
96% |
| task / background / after_market / ohlcv_update_task.py |
_chunked |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask.__init__ |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask._scheduler_label |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask.start |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask.suspend |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask.resume |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask._on_market_closed |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask.force_collect |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask._collect_all_ohlcv |
|
98% |
59 |
1 |
0 |
|
92% |
26 |
2 |
|
96% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask._update_stock_ohlcv |
|
93% |
15 |
1 |
0 |
|
100% |
6 |
0 |
|
95% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask._load_all_stocks |
|
94% |
16 |
1 |
0 |
|
92% |
12 |
1 |
|
93% |
| task / background / after_market / ohlcv_update_task.py |
OhlcvUpdateTask.get_progress |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ohlcv_update_task.py |
(no function) |
|
97% |
35 |
1 |
0 |
|
50% |
2 |
1 |
|
95% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask.__init__ |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask._scheduler_label |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask.start |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask.get_progress |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask._on_market_closed |
|
100% |
13 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask._run_generation |
|
100% |
22 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
PremiumWatchlistGeneratorTask.force_generate |
|
100% |
8 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| task / background / after_market / premium_watchlist_generator_task.py |
(no function) |
|
86% |
22 |
3 |
0 |
|
50% |
2 |
1 |
|
83% |
| task / background / after_market / ranking_task.py |
_chunked |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.__init__ |
|
100% |
26 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask._scheduler_label |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.start |
|
0% |
6 |
6 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / ranking_task.py |
RankingTask.suspend |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / ranking_task.py |
RankingTask.resume |
|
0% |
4 |
4 |
0 |
|
0% |
2 |
0 |
|
0% |
| task / background / after_market / ranking_task.py |
RankingTask.start_after_market_scheduler |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask._on_market_closed |
|
100% |
8 |
0 |
0 |
|
50% |
4 |
2 |
|
83% |
| task / background / after_market / ranking_task.py |
RankingTask.refresh_basic_ranking |
|
100% |
20 |
0 |
0 |
|
90% |
10 |
1 |
|
97% |
| task / background / after_market / ranking_task.py |
RankingTask.get_progress |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_investor_ranking_progress |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_basic_ranking_cache |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask._fetch_with_retry |
|
100% |
19 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.refresh_investor_ranking |
|
91% |
112 |
10 |
0 |
|
77% |
52 |
10 |
|
87% |
| task / background / after_market / ranking_task.py |
RankingTask._build_ranking |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask._build_trading_value_ranking |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_trading_value_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask._check_and_trigger_refresh |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_foreign_net_buy_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_foreign_net_sell_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_inst_net_buy_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_inst_net_sell_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_prsn_net_buy_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_prsn_net_sell_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_program_net_buy_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask.get_program_net_sell_ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / after_market / ranking_task.py |
RankingTask._get_ranking_from_cache |
|
83% |
6 |
1 |
0 |
|
75% |
4 |
1 |
|
80% |
| task / background / after_market / ranking_task.py |
RankingTask._load_all_stocks |
|
88% |
16 |
2 |
0 |
|
75% |
12 |
3 |
|
82% |
| task / background / after_market / ranking_task.py |
RankingTask.force_collect |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| task / background / after_market / ranking_task.py |
(no function) |
|
100% |
54 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.__init__ |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.priority |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.state |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.start |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.stop |
|
100% |
11 |
0 |
0 |
|
62% |
8 |
3 |
|
84% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.suspend |
|
100% |
5 |
0 |
0 |
|
75% |
4 |
1 |
|
89% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.resume |
|
100% |
5 |
0 |
0 |
|
75% |
4 |
1 |
|
89% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask.get_progress |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / always_on / notification_queue_task.py |
NotificationQueueTask._drain_loop |
|
81% |
21 |
4 |
0 |
|
100% |
2 |
0 |
|
83% |
| task / background / always_on / notification_queue_task.py |
(no function) |
|
95% |
21 |
1 |
0 |
|
50% |
2 |
1 |
|
91% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.__init__ |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.priority |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.state |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.start |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.stop |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.suspend |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.resume |
|
100% |
2 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
StrategySchedulerTaskAdapter.get_progress |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / strategy_scheduler_task_adapter.py |
(no function) |
|
100% |
16 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.__init__ |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.task_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.priority |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.state |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.start |
|
100% |
11 |
0 |
0 |
|
62% |
8 |
3 |
|
84% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.stop |
|
100% |
11 |
0 |
0 |
|
75% |
8 |
2 |
|
89% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.suspend |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.resume |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask._restore_program_trading |
|
84% |
31 |
5 |
0 |
|
75% |
16 |
4 |
|
81% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask._program_trading_watchdog |
|
75% |
40 |
10 |
0 |
|
67% |
18 |
4 |
|
72% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.get_progress |
|
100% |
11 |
0 |
0 |
|
67% |
6 |
2 |
|
88% |
| task / background / intraday / websocket_watchdog_task.py |
WebSocketWatchdogTask.force_reconnect_program_trading |
|
88% |
42 |
5 |
0 |
|
80% |
20 |
4 |
|
85% |
| task / background / intraday / websocket_watchdog_task.py |
(no function) |
|
86% |
29 |
4 |
0 |
|
50% |
2 |
1 |
|
84% |
| utils / kr_stock_data.py |
StockCodeNameResolver.__init__ |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| utils / kr_stock_data.py |
StockCodeNameResolver.get_name |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| utils / kr_stock_data.py |
StockCodeNameResolver.get_code |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| utils / kr_stock_data.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| utils / transaction_cost_utils.py |
TransactionCostUtils.calculate_cost |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| utils / transaction_cost_utils.py |
TransactionCostUtils.get_return_rate |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| utils / transaction_cost_utils.py |
(no function) |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / api_common.py |
set_ctx |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / api_common.py |
_get_ctx |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / api_common.py |
check_auth |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / api_common.py |
_serialize_response |
|
100% |
5 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / api_common.py |
_serialize_list_items |
|
100% |
8 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| view / web / api_common.py |
(no function) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / auth.py |
login |
|
100% |
11 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / auth.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / balance.py |
get_balance |
|
92% |
26 |
2 |
0 |
|
100% |
8 |
0 |
|
94% |
| view / web / routes / balance.py |
(no function) |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / notification.py |
get_recent_notifications |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / notification.py |
stream_notifications |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / notification.py |
stream_notifications.event_generator |
|
100% |
14 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / notification.py |
(no function) |
|
100% |
11 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / ohlcv.py |
get_ohlcv_progress |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / ohlcv.py |
force_ohlcv_update |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / ohlcv.py |
(no function) |
|
100% |
8 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / order.py |
place_order |
|
100% |
27 |
0 |
0 |
|
88% |
16 |
2 |
|
95% |
| view / web / routes / order.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / program.py |
subscribe_program_trading |
|
100% |
8 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / program.py |
get_program_trading_history |
|
100% |
10 |
0 |
0 |
|
50% |
2 |
1 |
|
92% |
| view / web / routes / program.py |
unsubscribe_program_trading |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / program.py |
get_program_trading_status |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / program.py |
stream_program_trading |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / program.py |
stream_program_trading.event_generator |
|
75% |
20 |
5 |
0 |
|
50% |
8 |
2 |
|
68% |
| view / web / routes / program.py |
save_pt_data |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / program.py |
load_pt_data |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / program.py |
get_db_status |
|
0% |
2 |
2 |
0 |
|
100% |
0 |
0 |
|
0% |
| view / web / routes / program.py |
websocket_endpoint |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / program.py |
(no function) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / ranking.py |
get_ranking_progress |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / ranking.py |
get_ranking |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / ranking.py |
get_top_market_cap |
|
100% |
14 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| view / web / routes / ranking.py |
(no function) |
|
100% |
10 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / scheduler.py |
get_scheduler_status |
|
100% |
14 |
0 |
0 |
|
75% |
12 |
3 |
|
88% |
| view / web / routes / scheduler.py |
start_scheduler |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / scheduler.py |
stop_scheduler |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / scheduler.py |
start_strategy |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / scheduler.py |
stop_strategy |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / scheduler.py |
update_strategy_max_positions |
|
100% |
7 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / scheduler.py |
get_scheduler_history |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / scheduler.py |
stream_scheduler_signals |
|
100% |
6 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / scheduler.py |
stream_scheduler_signals.event_generator |
|
57% |
14 |
6 |
0 |
|
50% |
4 |
0 |
|
56% |
| view / web / routes / scheduler.py |
(no function) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / stock.py |
get_status |
|
100% |
11 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / stock.py |
get_stocks_list |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / stock.py |
search_stock_by_name |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / stock.py |
get_stock_price |
|
82% |
17 |
3 |
0 |
|
75% |
4 |
1 |
|
81% |
| view / web / routes / stock.py |
get_stock_price._preload_ohlcv |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / stock.py |
get_stock_chart |
|
83% |
12 |
2 |
0 |
|
100% |
2 |
0 |
|
86% |
| view / web / routes / stock.py |
get_bollinger_bands |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / stock.py |
get_rsi |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / stock.py |
get_moving_average |
|
100% |
6 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / stock.py |
change_environment |
|
100% |
10 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / stock.py |
(no function) |
|
100% |
28 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / streaming.py |
subscribe_stock |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / streaming.py |
unsubscribe_stock |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / streaming.py |
get_streaming_status |
|
100% |
5 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / streaming.py |
(no function) |
|
100% |
14 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / system.py |
get_cache_status |
|
100% |
13 |
0 |
0 |
|
100% |
8 |
0 |
|
100% |
| view / web / routes / system.py |
get_active_requests |
|
100% |
9 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / system.py |
get_background_status |
|
100% |
24 |
0 |
0 |
|
100% |
14 |
0 |
|
100% |
| view / web / routes / system.py |
force_ranking_update |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / system.py |
force_daily_price_update |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / system.py |
get_subscription_status |
|
100% |
10 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / system.py |
get_subscription_status._enrich |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / system.py |
force_watchlist_update |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / system.py |
force_cache_warmup |
|
100% |
9 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / routes / system.py |
(no function) |
|
100% |
24 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / virtual.py |
get_virtual_summary |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / virtual.py |
get_strategies |
|
100% |
2 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / virtual.py |
_calculate_benchmark |
|
91% |
22 |
2 |
0 |
|
100% |
8 |
0 |
|
93% |
| view / web / routes / virtual.py |
get_strategy_chart |
|
100% |
24 |
0 |
0 |
|
90% |
10 |
1 |
|
97% |
| view / web / routes / virtual.py |
_sanitize_for_json |
|
100% |
7 |
0 |
0 |
|
100% |
6 |
0 |
|
100% |
| view / web / routes / virtual.py |
_aggregate_virtual_data |
|
88% |
77 |
9 |
0 |
|
96% |
28 |
1 |
|
90% |
| view / web / routes / virtual.py |
_aggregate_virtual_data.calc_metrics |
|
100% |
13 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / routes / virtual.py |
get_virtual_history |
|
100% |
3 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / routes / virtual.py |
_get_virtual_history_impl |
|
100% |
79 |
0 |
0 |
|
88% |
42 |
5 |
|
96% |
| view / web / routes / virtual.py |
(no function) |
|
100% |
21 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_api.py |
__getattr__ |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_api.py |
(no function) |
|
100% |
5 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_app_initializer.py |
WebAppContext.__init__ |
|
100% |
33 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_app_initializer.py |
WebAppContext.load_config_and_env |
|
95% |
21 |
1 |
0 |
|
83% |
6 |
1 |
|
93% |
| view / web / web_app_initializer.py |
WebAppContext.initialize_services |
|
98% |
57 |
1 |
0 |
|
64% |
22 |
8 |
|
89% |
| view / web / web_app_initializer.py |
WebAppContext._initialize_price_subscriptions |
|
42% |
24 |
14 |
0 |
|
25% |
12 |
3 |
|
36% |
| view / web / web_app_initializer.py |
WebAppContext.get_env_type |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_app_initializer.py |
WebAppContext.is_market_open_now |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_app_initializer.py |
WebAppContext.get_current_time_str |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_app_initializer.py |
WebAppContext.get_cache_stats |
|
0% |
3 |
3 |
0 |
|
0% |
2 |
0 |
|
0% |
| view / web / web_app_initializer.py |
WebAppContext.initialize_scheduler |
|
100% |
21 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_app_initializer.py |
WebAppContext.start_background_tasks |
|
75% |
4 |
1 |
0 |
|
50% |
4 |
2 |
|
62% |
| view / web / web_app_initializer.py |
WebAppContext.shutdown |
|
80% |
5 |
1 |
0 |
|
50% |
4 |
2 |
|
67% |
| view / web / web_app_initializer.py |
WebAppContext._web_realtime_callback |
|
93% |
15 |
1 |
0 |
|
60% |
10 |
4 |
|
80% |
| view / web / web_app_initializer.py |
WebAppContext.start_program_trading |
|
82% |
34 |
6 |
0 |
|
79% |
14 |
3 |
|
81% |
| view / web / web_app_initializer.py |
WebAppContext.stop_program_trading |
|
100% |
4 |
0 |
0 |
|
50% |
2 |
1 |
|
83% |
| view / web / web_app_initializer.py |
WebAppContext.stop_all_program_trading |
|
100% |
4 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_app_initializer.py |
(no function) |
|
100% |
60 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
_DebugHandler.do_GET |
|
0% |
13 |
13 |
0 |
|
0% |
2 |
0 |
|
0% |
| view / web / web_main.py |
_DebugHandler.log_message |
|
0% |
1 |
1 |
0 |
|
100% |
0 |
0 |
|
0% |
| view / web / web_main.py |
_start_debug_server |
|
100% |
7 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
lifespan |
|
100% |
13 |
0 |
0 |
|
100% |
4 |
0 |
|
100% |
| view / web / web_main.py |
_debugpy_activate_middleware |
|
0% |
5 |
5 |
0 |
|
0% |
2 |
0 |
|
0% |
| view / web / web_main.py |
request_tracker_middleware |
|
93% |
14 |
1 |
0 |
|
100% |
2 |
0 |
|
94% |
| view / web / web_main.py |
_needs_foreground |
|
100% |
3 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_main.py |
foreground_priority_middleware |
|
100% |
7 |
0 |
0 |
|
100% |
2 |
0 |
|
100% |
| view / web / web_main.py |
render_page |
|
93% |
15 |
1 |
0 |
|
83% |
6 |
1 |
|
90% |
| view / web / web_main.py |
index |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
stock |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
balance |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
order |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
ranking |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
marketcap |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
virtual |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
scheduler |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
program |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
system |
|
100% |
1 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
logout |
|
100% |
4 |
0 |
0 |
|
100% |
0 |
0 |
|
100% |
| view / web / web_main.py |
(no function) |
|
95% |
63 |
3 |
0 |
|
50% |
2 |
1 |
|
94% |