| apps / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / backend / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / backend / api / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
legacy_api_redirects |
|
8 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
add_no_cache_headers |
|
6 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
add_request_id |
|
6 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
log_requests |
|
6 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
rating_etag_middleware |
|
37 |
16 |
0 |
|
57% |
| apps / backend / api / main.py |
start_scheduler |
|
9 |
3 |
0 |
|
67% |
| apps / backend / api / main.py |
stop_scheduler |
|
3 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
get_db |
|
2 |
2 |
0 |
|
0% |
| apps / backend / api / main.py |
verify_admin_token |
|
3 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
_normalize_club_code |
|
7 |
7 |
0 |
|
0% |
| apps / backend / api / main.py |
_generate_hrnz_urls |
|
9 |
9 |
0 |
|
0% |
| apps / backend / api / main.py |
_resolve_meeting_date |
|
32 |
32 |
0 |
|
0% |
| apps / backend / api / main.py |
_build_pagination_meta |
|
13 |
13 |
0 |
|
0% |
| apps / backend / api / main.py |
root |
|
1 |
1 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_docs_site |
|
1 |
1 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_home |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_horse_detail |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_driver_detail |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_trainer_detail |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_race_detail |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_race_cards_index |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_race_card |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_search |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_analytics |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_analytics_dashboard |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
serve_data_correction |
|
4 |
4 |
0 |
|
0% |
| apps / backend / api / main.py |
health_check |
|
1 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
get_horse_ratings |
|
24 |
12 |
0 |
|
50% |
| apps / backend / api / main.py |
get_horse_detail |
|
11 |
11 |
0 |
|
0% |
| apps / backend / api / main.py |
get_driver_ratings |
|
11 |
11 |
0 |
|
0% |
| apps / backend / api / main.py |
get_trainer_ratings |
|
11 |
11 |
0 |
|
0% |
| apps / backend / api / main.py |
get_driver_detail |
|
11 |
1 |
0 |
|
91% |
| apps / backend / api / main.py |
get_trainer_detail |
|
11 |
1 |
0 |
|
91% |
| apps / backend / api / main.py |
get_race |
|
6 |
6 |
0 |
|
0% |
| apps / backend / api / main.py |
list_races |
|
19 |
19 |
0 |
|
0% |
| apps / backend / api / main.py |
trigger_ingestion |
|
6 |
6 |
0 |
|
0% |
| apps / backend / api / main.py |
webhook_scrape |
|
73 |
73 |
0 |
|
0% |
| apps / backend / api / main.py |
webhook_scrape._run_recompute |
|
2 |
2 |
0 |
|
0% |
| apps / backend / api / main.py |
trigger_recompute |
|
5 |
5 |
0 |
|
0% |
| apps / backend / api / main.py |
list_scheduled_jobs |
|
3 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
add_scheduled_job |
|
10 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
remove_scheduled_job |
|
5 |
0 |
0 |
|
100% |
| apps / backend / api / main.py |
create_audit_log |
|
7 |
7 |
0 |
|
0% |
| apps / backend / api / main.py |
list_audit_logs |
|
6 |
6 |
0 |
|
0% |
| apps / backend / api / main.py |
get_audit_log_for_record |
|
2 |
2 |
0 |
|
0% |
| apps / backend / api / main.py |
get_race_predictions |
|
16 |
4 |
0 |
|
75% |
| apps / backend / api / main.py |
get_upcoming_races |
|
7 |
7 |
0 |
|
0% |
| apps / backend / api / main.py |
compare_prediction_to_actual |
|
6 |
6 |
0 |
|
0% |
| apps / backend / api / main.py |
get_accuracy_summary |
|
58 |
58 |
0 |
|
0% |
| apps / backend / api / main.py |
get_accuracy_summary._bucket_stats |
|
3 |
3 |
0 |
|
0% |
| apps / backend / api / main.py |
export_ratings_csv |
|
25 |
25 |
0 |
|
0% |
| apps / backend / api / main.py |
export_ratings_parquet |
|
35 |
35 |
0 |
|
0% |
| apps / backend / api / main.py |
export_predictions_csv |
|
30 |
30 |
0 |
|
0% |
| apps / backend / api / main.py |
export_predictions_parquet |
|
40 |
40 |
0 |
|
0% |
| apps / backend / api / main.py |
export_race_predictions_pdf |
|
45 |
45 |
0 |
|
0% |
| apps / backend / api / main.py |
websocket_race_endpoint |
|
39 |
10 |
0 |
|
74% |
| apps / backend / api / main.py |
metrics |
|
1 |
1 |
0 |
|
0% |
| apps / backend / api / main.py |
(no function) |
|
365 |
0 |
3 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.__init__ |
|
3 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.connect |
|
4 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.disconnect |
|
5 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.send_personal_message |
|
4 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.broadcast_to_race |
|
7 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.get_connection_count |
|
1 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.is_simulation_running |
|
1 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.start_simulation |
|
4 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.stop_simulation |
|
4 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
ConnectionManager.close_all |
|
11 |
2 |
0 |
|
82% |
| apps / backend / api / websocket.py |
_build_initial_state |
|
13 |
0 |
0 |
|
100% |
| apps / backend / api / websocket.py |
simulate_race_updates |
|
24 |
24 |
0 |
|
0% |
| apps / backend / api / websocket.py |
(no function) |
|
41 |
0 |
0 |
|
100% |
| apps / backend / worker / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| apps / backend / worker / cli.py |
_subtract_months |
|
6 |
0 |
0 |
|
100% |
| apps / backend / worker / cli.py |
cli |
|
1 |
0 |
0 |
|
100% |
| apps / backend / worker / cli.py |
normalize_races |
|
32 |
32 |
0 |
|
0% |
| apps / backend / worker / cli.py |
ingest |
|
33 |
33 |
0 |
|
0% |
| apps / backend / worker / cli.py |
recompute |
|
14 |
14 |
0 |
|
0% |
| apps / backend / worker / cli.py |
scrape_hrnz |
|
40 |
40 |
0 |
|
0% |
| apps / backend / worker / cli.py |
scrape_hrnz.scrape_and_import |
|
46 |
46 |
0 |
|
0% |
| apps / backend / worker / cli.py |
scrape_hrnz_enquiry |
|
33 |
33 |
0 |
|
0% |
| apps / backend / worker / cli.py |
scrape_hrnz_enquiry.scrape_and_import |
|
53 |
53 |
0 |
|
0% |
| apps / backend / worker / cli.py |
refresh_club_codes |
|
21 |
21 |
0 |
|
0% |
| apps / backend / worker / cli.py |
info |
|
18 |
18 |
0 |
|
0% |
| apps / backend / worker / cli.py |
data_quality |
|
54 |
54 |
0 |
|
0% |
| apps / backend / worker / cli.py |
backfill |
|
88 |
16 |
0 |
|
82% |
| apps / backend / worker / cli.py |
(no function) |
|
69 |
0 |
2 |
|
100% |
| packages / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / betting / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / betting / odds_client.py |
OddsComparisonClient.__init__ |
|
3 |
3 |
0 |
|
0% |
| packages / betting / odds_client.py |
OddsComparisonClient.get_race_odds |
|
0 |
0 |
1 |
|
100% |
| packages / betting / odds_client.py |
OddsComparisonClient.implied_probability |
|
3 |
3 |
0 |
|
0% |
| packages / betting / odds_client.py |
OddsComparisonClient.compare_to_model |
|
0 |
0 |
1 |
|
100% |
| packages / betting / odds_client.py |
OddsComparisonClient.clear_cache |
|
1 |
1 |
0 |
|
0% |
| packages / betting / odds_client.py |
(no function) |
|
9 |
9 |
0 |
|
0% |
| packages / betting / value_bets.py |
ValueBetFinder.__init__ |
|
3 |
3 |
0 |
|
0% |
| packages / betting / value_bets.py |
ValueBetFinder.find_value_bets |
|
0 |
0 |
1 |
|
100% |
| packages / betting / value_bets.py |
ValueBetFinder.kelly_criterion |
|
7 |
7 |
0 |
|
0% |
| packages / betting / value_bets.py |
ValueBetFinder.filter_by_confidence |
|
3 |
3 |
0 |
|
0% |
| packages / betting / value_bets.py |
ValueBetFinder.summarize |
|
3 |
3 |
0 |
|
0% |
| packages / betting / value_bets.py |
(no function) |
|
9 |
9 |
0 |
|
0% |
| packages / core / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / core / common / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / core / common / cache.py |
_memory_get |
|
12 |
12 |
0 |
|
0% |
| packages / core / common / cache.py |
_memory_set |
|
3 |
3 |
0 |
|
0% |
| packages / core / common / cache.py |
_memory_delete |
|
2 |
2 |
0 |
|
0% |
| packages / core / common / cache.py |
_memory_clear |
|
2 |
2 |
0 |
|
0% |
| packages / core / common / cache.py |
_get_redis_client |
|
20 |
20 |
0 |
|
0% |
| packages / core / common / cache.py |
get_cache |
|
6 |
6 |
0 |
|
0% |
| packages / core / common / cache.py |
cache_get |
|
11 |
11 |
0 |
|
0% |
| packages / core / common / cache.py |
cache_set |
|
10 |
10 |
0 |
|
0% |
| packages / core / common / cache.py |
cache_delete |
|
8 |
8 |
0 |
|
0% |
| packages / core / common / cache.py |
cache_clear |
|
7 |
7 |
0 |
|
0% |
| packages / core / common / cache.py |
(no function) |
|
23 |
0 |
0 |
|
100% |
| packages / core / common / data_quality.py |
DataQualityReport.error_count |
|
1 |
1 |
0 |
|
0% |
| packages / core / common / data_quality.py |
DataQualityReport.warning_count |
|
1 |
1 |
0 |
|
0% |
| packages / core / common / data_quality.py |
DataQualityReport.has_errors |
|
1 |
1 |
0 |
|
0% |
| packages / core / common / data_quality.py |
DataQualityValidator.__init__ |
|
1 |
0 |
0 |
|
100% |
| packages / core / common / data_quality.py |
DataQualityValidator.validate_race |
|
5 |
0 |
0 |
|
100% |
| packages / core / common / data_quality.py |
DataQualityValidator._validate_placings |
|
20 |
5 |
0 |
|
75% |
| packages / core / common / data_quality.py |
DataQualityValidator._validate_completeness |
|
14 |
2 |
0 |
|
86% |
| packages / core / common / data_quality.py |
DataQualityValidator._detect_suspicious_results |
|
14 |
2 |
0 |
|
86% |
| packages / core / common / data_quality.py |
DataQualityValidator.generate_report |
|
16 |
16 |
0 |
|
0% |
| packages / core / common / data_quality.py |
DataQualityValidator._compute_metrics |
|
9 |
9 |
0 |
|
0% |
| packages / core / common / data_quality.py |
check_data_freshness |
|
7 |
7 |
0 |
|
0% |
| packages / core / common / data_quality.py |
(no function) |
|
41 |
0 |
0 |
|
100% |
| packages / core / common / logging.py |
CustomJsonFormatter.add_fields |
|
3 |
0 |
0 |
|
100% |
| packages / core / common / logging.py |
setup_logging |
|
13 |
1 |
0 |
|
92% |
| packages / core / common / logging.py |
get_logger |
|
1 |
0 |
0 |
|
100% |
| packages / core / common / logging.py |
log_slow_query |
|
9 |
9 |
0 |
|
0% |
| packages / core / common / logging.py |
log_api_request |
|
6 |
6 |
0 |
|
0% |
| packages / core / common / logging.py |
_trunc_log_value |
|
2 |
2 |
0 |
|
0% |
| packages / core / common / logging.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| packages / core / common / rate_limit.py |
get_user_rate_limit_key |
|
6 |
3 |
0 |
|
50% |
| packages / core / common / rate_limit.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.__init__ |
|
3 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.start |
|
6 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.shutdown |
|
6 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.running |
|
1 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.add_ingest_job |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.add_recompute_job |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.add_scrape_job |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.add_eval_job |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.add_full_recompute_job |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler._send_failure_notification |
|
20 |
17 |
0 |
|
15% |
| packages / core / common / scheduler.py |
TipSharksScheduler.list_jobs |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.remove_job |
|
7 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.get_job |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler._get_timezone |
|
1 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
TipSharksScheduler.load_default_jobs |
|
13 |
1 |
0 |
|
92% |
| packages / core / common / scheduler.py |
_notify_failure |
|
2 |
0 |
0 |
|
100% |
| packages / core / common / scheduler.py |
_run_ingest |
|
20 |
2 |
0 |
|
90% |
| packages / core / common / scheduler.py |
_run_recompute |
|
19 |
2 |
0 |
|
89% |
| packages / core / common / scheduler.py |
_run_scrape |
|
17 |
17 |
0 |
|
0% |
| packages / core / common / scheduler.py |
_run_scrape._scrape_all |
|
52 |
52 |
0 |
|
0% |
| packages / core / common / scheduler.py |
_run_eval |
|
34 |
34 |
0 |
|
0% |
| packages / core / common / scheduler.py |
_run_full_recompute |
|
18 |
18 |
0 |
|
0% |
| packages / core / common / scheduler.py |
(no function) |
|
36 |
0 |
0 |
|
100% |
| packages / core / common / settings.py |
RatingSettings.parse_distance_buckets |
|
3 |
1 |
0 |
|
67% |
| packages / core / common / settings.py |
RatingSettings.validate_bucket_size |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / settings.py |
RatingSettings.validate_rating_bounds |
|
4 |
0 |
0 |
|
100% |
| packages / core / common / settings.py |
get_settings |
|
3 |
0 |
0 |
|
100% |
| packages / core / common / settings.py |
reload_settings |
|
2 |
0 |
0 |
|
100% |
| packages / core / common / settings.py |
(no function) |
|
148 |
0 |
0 |
|
100% |
| packages / core / common / utils.py |
parse_date |
|
4 |
4 |
0 |
|
0% |
| packages / core / common / utils.py |
format_date |
|
1 |
1 |
0 |
|
0% |
| packages / core / common / utils.py |
get_distance_bucket |
|
14 |
2 |
0 |
|
86% |
| packages / core / common / utils.py |
safe_get |
|
6 |
6 |
0 |
|
0% |
| packages / core / common / utils.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| packages / core / ratings / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine.__init__ |
|
9 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine.get_or_init_rating |
|
4 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine.load_rating_state |
|
2 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine.sigmoid |
|
4 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine.get_effective_k_factor |
|
18 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine.compute_effective_rating |
|
16 |
6 |
0 |
|
62% |
| packages / core / ratings / engine.py |
RatingEngine._get_barrier_adjustment |
|
6 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine._get_handicap_adjustment |
|
6 |
1 |
0 |
|
83% |
| packages / core / ratings / engine.py |
RatingEngine._resolve_adjustment |
|
10 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine._clamp_adjustment |
|
5 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
RatingEngine.load_adjustments_from_db |
|
13 |
1 |
0 |
|
92% |
| packages / core / ratings / engine.py |
RatingEngine.learn_adjustments_from_race |
|
43 |
6 |
0 |
|
86% |
| packages / core / ratings / engine.py |
RatingEngine.process_race |
|
61 |
2 |
0 |
|
97% |
| packages / core / ratings / engine.py |
RatingEngine._apply_update |
|
24 |
0 |
0 |
|
100% |
| packages / core / ratings / engine.py |
(no function) |
|
41 |
0 |
0 |
|
100% |
| packages / core / ratings / form_cycle.py |
FormCycleDetector.__init__ |
|
1 |
1 |
0 |
|
0% |
| packages / core / ratings / form_cycle.py |
FormCycleDetector.detect_horse_form |
|
0 |
0 |
1 |
|
100% |
| packages / core / ratings / form_cycle.py |
FormCycleDetector.detect_driver_form |
|
0 |
0 |
1 |
|
100% |
| packages / core / ratings / form_cycle.py |
FormCycleDetector.detect_trainer_form |
|
0 |
0 |
1 |
|
100% |
| packages / core / ratings / form_cycle.py |
FormCycleDetector.detect_entity_form |
|
7 |
7 |
0 |
|
0% |
| packages / core / ratings / form_cycle.py |
FormCycleDetector.batch_detect |
|
1 |
1 |
0 |
|
0% |
| packages / core / ratings / form_cycle.py |
(no function) |
|
10 |
10 |
0 |
|
0% |
| packages / core / ratings / predictions.py |
PredictionEngine.__init__ |
|
8 |
0 |
0 |
|
100% |
| packages / core / ratings / predictions.py |
PredictionEngine.predict_race |
|
48 |
12 |
0 |
|
75% |
| packages / core / ratings / predictions.py |
PredictionEngine._compute_win_probabilities |
|
8 |
1 |
0 |
|
88% |
| packages / core / ratings / predictions.py |
PredictionEngine._compute_place_probabilities |
|
4 |
0 |
0 |
|
100% |
| packages / core / ratings / predictions.py |
PredictionEngine._compute_place_scores |
|
11 |
1 |
0 |
|
91% |
| packages / core / ratings / predictions.py |
PredictionEngine._compute_place_ranks |
|
2 |
0 |
0 |
|
100% |
| packages / core / ratings / predictions.py |
PredictionEngine._get_recent_finish_stats |
|
31 |
31 |
0 |
|
0% |
| packages / core / ratings / predictions.py |
PredictionEngine.get_upcoming_races |
|
5 |
5 |
0 |
|
0% |
| packages / core / ratings / predictions.py |
PredictionEngine.compare_prediction_to_actual |
|
31 |
31 |
0 |
|
0% |
| packages / core / ratings / predictions.py |
export_predictions_csv |
|
8 |
8 |
0 |
|
0% |
| packages / core / ratings / predictions.py |
(no function) |
|
50 |
0 |
0 |
|
100% |
| packages / core / ratings / recompute.py |
recompute_ratings |
|
30 |
30 |
0 |
|
0% |
| packages / core / ratings / recompute.py |
recompute_ratings_incremental |
|
23 |
23 |
0 |
|
0% |
| packages / core / ratings / recompute.py |
_load_entity_rating |
|
5 |
5 |
0 |
|
0% |
| packages / core / ratings / recompute.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| packages / core / ratings / time_weighted_elo.py |
TimeWeightedElo.__init__ |
|
5 |
5 |
0 |
|
0% |
| packages / core / ratings / time_weighted_elo.py |
TimeWeightedElo.compute_multiplier |
|
9 |
9 |
0 |
|
0% |
| packages / core / ratings / time_weighted_elo.py |
TimeWeightedElo.compute_effective_k |
|
5 |
5 |
0 |
|
0% |
| packages / core / ratings / time_weighted_elo.py |
_demo |
|
11 |
11 |
0 |
|
0% |
| packages / core / ratings / time_weighted_elo.py |
(no function) |
|
8 |
8 |
2 |
|
0% |
| packages / core / ratings / track_conditions.py |
_categorise_track |
|
7 |
7 |
0 |
|
0% |
| packages / core / ratings / track_conditions.py |
TrackConditionModel.learn_from_performance |
|
11 |
11 |
0 |
|
0% |
| packages / core / ratings / track_conditions.py |
TrackConditionModel.get_adjustment |
|
8 |
8 |
0 |
|
0% |
| packages / core / ratings / track_conditions.py |
TrackConditionModel.get_population_adjustment |
|
7 |
7 |
0 |
|
0% |
| packages / core / ratings / track_conditions.py |
TrackConditionModel.reset |
|
2 |
2 |
0 |
|
0% |
| packages / core / ratings / track_conditions.py |
_demo |
|
11 |
11 |
0 |
|
0% |
| packages / core / ratings / track_conditions.py |
(no function) |
|
22 |
22 |
2 |
|
0% |
| packages / core / storage / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / core / storage / audit.py |
AuditLogger.log_change |
|
13 |
13 |
0 |
|
0% |
| packages / core / storage / audit.py |
AuditLogger.get_changes_for_record |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / audit.py |
AuditLogger.get_recent_changes |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / audit.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| packages / core / storage / database.py |
init_db |
|
25 |
8 |
0 |
|
68% |
| packages / core / storage / database.py |
_setup_slow_query_detection |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / database.py |
_setup_slow_query_detection._before_cursor_execute |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / database.py |
_setup_slow_query_detection._after_cursor_execute |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / database.py |
_sanitize_params |
|
9 |
9 |
0 |
|
0% |
| packages / core / storage / database.py |
_trunc |
|
2 |
2 |
0 |
|
0% |
| packages / core / storage / database.py |
get_engine |
|
3 |
3 |
0 |
|
0% |
| packages / core / storage / database.py |
get_session_factory |
|
3 |
1 |
0 |
|
67% |
| packages / core / storage / database.py |
get_session |
|
9 |
8 |
0 |
|
11% |
| packages / core / storage / database.py |
dispose_db |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / database.py |
(no function) |
|
21 |
0 |
0 |
|
100% |
| packages / core / storage / ingestion.py |
IngestionService.__init__ |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
IngestionService.ingest_date_range |
|
14 |
14 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
IngestionService.ingest_single_date |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
IngestionService._ingest_from_service |
|
12 |
12 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
IngestionService._ingest_meeting |
|
27 |
27 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
IngestionService._ingest_meeting_from_service |
|
34 |
34 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
IngestionService._ingest_race |
|
27 |
27 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
ingest_meetings |
|
2 |
2 |
0 |
|
0% |
| packages / core / storage / ingestion.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| packages / core / storage / models.py |
Meeting.__repr__ |
|
0 |
0 |
1 |
|
100% |
| packages / core / storage / models.py |
Race.__repr__ |
|
0 |
0 |
4 |
|
100% |
| packages / core / storage / models.py |
Horse.__repr__ |
|
0 |
0 |
1 |
|
100% |
| packages / core / storage / models.py |
Driver.__repr__ |
|
0 |
0 |
1 |
|
100% |
| packages / core / storage / models.py |
Trainer.__repr__ |
|
0 |
0 |
1 |
|
100% |
| packages / core / storage / models.py |
Starter.__repr__ |
|
0 |
0 |
4 |
|
100% |
| packages / core / storage / models.py |
RatingSnapshot.__repr__ |
|
0 |
0 |
4 |
|
100% |
| packages / core / storage / models.py |
BarrierAdjustment.__repr__ |
|
0 |
0 |
4 |
|
100% |
| packages / core / storage / models.py |
HandicapAdjustment.__repr__ |
|
0 |
0 |
4 |
|
100% |
| packages / core / storage / models.py |
(no function) |
|
142 |
0 |
9 |
|
100% |
| packages / core / storage / repositories.py |
normalize_entity_id |
|
13 |
13 |
0 |
|
0% |
| packages / core / storage / repositories.py |
normalize_runner_data |
|
31 |
31 |
0 |
|
0% |
| packages / core / storage / repositories.py |
normalize_race_data |
|
14 |
14 |
0 |
|
0% |
| packages / core / storage / repositories.py |
generate_driver_id |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / repositories.py |
generate_trainer_id |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / repositories.py |
parse_tab_datetime |
|
10 |
7 |
0 |
|
30% |
| packages / core / storage / repositories.py |
parse_tab_date |
|
11 |
11 |
0 |
|
0% |
| packages / core / storage / repositories.py |
MeetingRepository.upsert |
|
16 |
16 |
0 |
|
0% |
| packages / core / storage / repositories.py |
MeetingRepository.get_by_id |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / repositories.py |
MeetingRepository.get_by_date_range |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / repositories.py |
RaceRepository.upsert |
|
29 |
29 |
0 |
|
0% |
| packages / core / storage / repositories.py |
RaceRepository._parse_race_datetime |
|
21 |
5 |
0 |
|
76% |
| packages / core / storage / repositories.py |
RaceRepository.get_by_meeting |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / repositories.py |
RaceRepository.get_races_for_recompute |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / repositories.py |
HorseRepository.upsert |
|
7 |
7 |
0 |
|
0% |
| packages / core / storage / repositories.py |
DriverRepository.upsert |
|
9 |
9 |
0 |
|
0% |
| packages / core / storage / repositories.py |
TrainerRepository.upsert |
|
9 |
9 |
0 |
|
0% |
| packages / core / storage / repositories.py |
StarterRepository.upsert |
|
63 |
63 |
0 |
|
0% |
| packages / core / storage / repositories.py |
StarterRepository.get_by_race |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / repositories.py |
RatingSnapshotRepository.upsert |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / repositories.py |
RatingSnapshotRepository.get_latest_rating |
|
9 |
9 |
0 |
|
0% |
| packages / core / storage / repositories.py |
RatingSnapshotRepository.get_top_ratings |
|
19 |
19 |
0 |
|
0% |
| packages / core / storage / repositories.py |
BarrierAdjustmentRepository.upsert |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / repositories.py |
BarrierAdjustmentRepository.get_all |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / repositories.py |
BarrierAdjustmentRepository.increment_sample |
|
7 |
7 |
0 |
|
0% |
| packages / core / storage / repositories.py |
HandicapAdjustmentRepository.upsert |
|
5 |
5 |
0 |
|
0% |
| packages / core / storage / repositories.py |
HandicapAdjustmentRepository.get_all |
|
1 |
1 |
0 |
|
0% |
| packages / core / storage / repositories.py |
HandicapAdjustmentRepository.increment_sample |
|
7 |
7 |
0 |
|
0% |
| packages / core / storage / repositories.py |
(no function) |
|
71 |
0 |
0 |
|
100% |
| packages / hrnz_scraper / __init__.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| packages / hrnz_scraper / club_refresh.py |
_get_cache_path |
|
11 |
11 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
_extract_club_codes_from_html |
|
18 |
18 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
_try_fetch_infohorse_index |
|
15 |
15 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
_try_fetch_harness_index |
|
11 |
11 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
_try_fetch_todays_meeting |
|
17 |
17 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
fetch_club_codes_from_hrnz |
|
18 |
18 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
load_cached_codes |
|
12 |
12 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
save_cached_codes |
|
6 |
6 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
refresh_club_codes |
|
33 |
33 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
generate_diff_report |
|
23 |
23 |
0 |
|
0% |
| packages / hrnz_scraper / club_refresh.py |
(no function) |
|
22 |
22 |
5 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper.__init__ |
|
10 |
10 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper.__aenter__ |
|
2 |
2 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper.__aexit__ |
|
1 |
1 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._ensure_browser |
|
6 |
6 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper.close |
|
7 |
7 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._rate_limited_fetch |
|
20 |
20 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper.iter_meetings |
|
17 |
17 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper.list_meetings_for_month |
|
3 |
3 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper.get_meeting_results |
|
28 |
28 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._build_raceday_search_url |
|
2 |
2 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_raceday_list |
|
20 |
20 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_raceday_header |
|
17 |
17 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_meeting_header |
|
22 |
22 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_date |
|
17 |
17 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_races |
|
7 |
7 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_race_links |
|
45 |
45 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_race_page |
|
43 |
43 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_race_section |
|
50 |
50 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_race_table |
|
18 |
18 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._build_header_map |
|
12 |
12 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_starter_row |
|
95 |
95 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._parse_starter_row._cell_by_label |
|
9 |
9 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._extract_uuid |
|
4 |
4 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._extract_raceday_id |
|
6 |
6 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
HRNZHistoricalResultsScraper._extract_label_value |
|
7 |
7 |
0 |
|
0% |
| packages / hrnz_scraper / historical_scraper.py |
(no function) |
|
46 |
0 |
3 |
|
100% |
| packages / hrnz_scraper / mapper.py |
HRNZDataMapper.map_meeting |
|
6 |
6 |
0 |
|
0% |
| packages / hrnz_scraper / mapper.py |
HRNZDataMapper.map_races |
|
17 |
17 |
0 |
|
0% |
| packages / hrnz_scraper / mapper.py |
HRNZDataMapper.map_starters |
|
28 |
28 |
0 |
|
0% |
| packages / hrnz_scraper / mapper.py |
HRNZDataMapper.map_entities |
|
29 |
29 |
0 |
|
0% |
| packages / hrnz_scraper / mapper.py |
(no function) |
|
14 |
14 |
0 |
|
0% |
| packages / hrnz_scraper / proxy.py |
build_decodo_proxy |
|
24 |
24 |
0 |
|
0% |
| packages / hrnz_scraper / proxy.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper.__init__ |
|
4 |
0 |
0 |
|
100% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper.__aenter__ |
|
2 |
2 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper.__aexit__ |
|
1 |
1 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._ensure_browser |
|
6 |
6 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper.close |
|
7 |
7 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._rate_limited_fetch |
|
20 |
20 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper.get_meeting_results |
|
10 |
10 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._parse_meeting_header |
|
25 |
25 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._parse_date |
|
18 |
18 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._parse_races |
|
14 |
14 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._parse_race_table |
|
20 |
20 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._build_header_map |
|
12 |
12 |
0 |
|
0% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._parse_starter_row |
|
79 |
29 |
0 |
|
63% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._parse_starter_row._cell_by_label |
|
9 |
2 |
0 |
|
78% |
| packages / hrnz_scraper / scraper.py |
HRNZScraper._extract_uuid |
|
4 |
1 |
0 |
|
75% |
| packages / hrnz_scraper / scraper.py |
(no function) |
|
31 |
0 |
3 |
|
100% |
| packages / ingest / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / ingest / streaming.py |
StreamingIngestionService.__init__ |
|
4 |
4 |
0 |
|
0% |
| packages / ingest / streaming.py |
StreamingIngestionService.register_handler |
|
1 |
1 |
0 |
|
0% |
| packages / ingest / streaming.py |
StreamingIngestionService.start |
|
0 |
0 |
1 |
|
100% |
| packages / ingest / streaming.py |
StreamingIngestionService.stop |
|
0 |
0 |
1 |
|
100% |
| packages / ingest / streaming.py |
StreamingIngestionService.publish |
|
0 |
0 |
1 |
|
100% |
| packages / ingest / streaming.py |
StreamingIngestionService.is_running |
|
1 |
1 |
0 |
|
0% |
| packages / ingest / streaming.py |
(no function) |
|
17 |
17 |
0 |
|
0% |
| packages / ingest_client / __init__.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| packages / ingest_client / client.py |
IngestServiceClient.__init__ |
|
3 |
3 |
0 |
|
0% |
| packages / ingest_client / client.py |
IngestServiceClient.__aenter__ |
|
2 |
2 |
0 |
|
0% |
| packages / ingest_client / client.py |
IngestServiceClient.__aexit__ |
|
3 |
3 |
0 |
|
0% |
| packages / ingest_client / client.py |
IngestServiceClient._request |
|
5 |
5 |
0 |
|
0% |
| packages / ingest_client / client.py |
IngestServiceClient.get_meetings |
|
11 |
11 |
0 |
|
0% |
| packages / ingest_client / client.py |
IngestServiceClient.get_race |
|
2 |
2 |
0 |
|
0% |
| packages / ingest_client / client.py |
IngestServiceClient.get_runners |
|
2 |
2 |
0 |
|
0% |
| packages / ingest_client / client.py |
IngestServiceClient.get_races |
|
9 |
9 |
0 |
|
0% |
| packages / ingest_client / client.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| packages / ml / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / ml / ensemble.py |
EnsembleModel.__init__ |
|
3 |
3 |
0 |
|
0% |
| packages / ml / ensemble.py |
EnsembleModel.train |
|
0 |
0 |
1 |
|
100% |
| packages / ml / ensemble.py |
EnsembleModel.predict |
|
0 |
0 |
1 |
|
100% |
| packages / ml / ensemble.py |
EnsembleModel.evaluate |
|
0 |
0 |
1 |
|
100% |
| packages / ml / ensemble.py |
EnsembleModel.save_weights |
|
0 |
0 |
1 |
|
100% |
| packages / ml / ensemble.py |
EnsembleModel.load_weights |
|
0 |
0 |
1 |
|
100% |
| packages / ml / ensemble.py |
(no function) |
|
10 |
10 |
0 |
|
0% |
| packages / ml / features.py |
FeatureEngineering.__init__ |
|
1 |
1 |
0 |
|
0% |
| packages / ml / features.py |
FeatureEngineering.extract_horse_features |
|
0 |
0 |
1 |
|
100% |
| packages / ml / features.py |
FeatureEngineering.extract_race_features |
|
0 |
0 |
1 |
|
100% |
| packages / ml / features.py |
FeatureEngineering.build_training_dataset |
|
0 |
0 |
1 |
|
100% |
| packages / ml / features.py |
FeatureEngineering.feature_names |
|
0 |
0 |
1 |
|
100% |
| packages / ml / features.py |
(no function) |
|
10 |
10 |
0 |
|
0% |
| packages / regions / __init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| packages / regions / australia.py |
AustralianHarnessClient.__init__ |
|
2 |
2 |
0 |
|
0% |
| packages / regions / australia.py |
AustralianHarnessClient.get_meetings |
|
0 |
0 |
1 |
|
100% |
| packages / regions / australia.py |
AustralianHarnessClient.get_race_results |
|
0 |
0 |
1 |
|
100% |
| packages / regions / australia.py |
AustralianHarnessClient.get_runner_details |
|
0 |
0 |
1 |
|
100% |
| packages / regions / australia.py |
AustralianHarnessClient.normalize_meeting |
|
0 |
0 |
1 |
|
100% |
| packages / regions / australia.py |
AustralianHarnessClient.normalize_runner |
|
0 |
0 |
1 |
|
100% |
| packages / regions / australia.py |
(no function) |
|
9 |
9 |
0 |
|
0% |
| packages / tab_client / __init__.py |
(no function) |
|
2 |
0 |
0 |
|
100% |
| packages / tab_client / client.py |
TABClient.__init__ |
|
3 |
0 |
0 |
|
100% |
| packages / tab_client / client.py |
TABClient.__aenter__ |
|
2 |
0 |
0 |
|
100% |
| packages / tab_client / client.py |
TABClient.__aexit__ |
|
1 |
0 |
0 |
|
100% |
| packages / tab_client / client.py |
TABClient._ensure_client |
|
2 |
0 |
0 |
|
100% |
| packages / tab_client / client.py |
TABClient.close |
|
3 |
0 |
0 |
|
100% |
| packages / tab_client / client.py |
TABClient._request_with_retry |
|
40 |
5 |
0 |
|
88% |
| packages / tab_client / client.py |
TABClient.get_meetings |
|
10 |
0 |
0 |
|
100% |
| packages / tab_client / client.py |
TABClient.get_meeting |
|
6 |
1 |
0 |
|
83% |
| packages / tab_client / client.py |
TABClient.get_event |
|
6 |
1 |
0 |
|
83% |
| packages / tab_client / client.py |
TABClient.get_races_list |
|
8 |
8 |
0 |
|
0% |
| packages / tab_client / client.py |
get_client |
|
6 |
6 |
0 |
|
0% |
| packages / tab_client / client.py |
(no function) |
|
23 |
0 |
2 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.__init__ |
|
2 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.__aenter__ |
|
1 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.__aexit__ |
|
1 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.close |
|
1 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient._generate_deterministic_id |
|
1 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.get_meetings |
|
25 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.get_meeting |
|
8 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.get_event |
|
22 |
0 |
0 |
|
100% |
| packages / tab_client / mock_client.py |
MockTABClient.get_races_list |
|
7 |
7 |
0 |
|
0% |
| packages / tab_client / mock_client.py |
(no function) |
|
17 |
0 |
0 |
|
100% |