Coverage report: 82%

Files Functions Classes

coverage.py v7.15.4, created at 2026-09-06 21:54 +0000

File function   statements missing excluded   coverage
src/pyrf/__init__.py (no function)   6 0 0   100%
src/pyrf/core.py GoalGrid.default   1 0 0   100%
src/pyrf/core.py GoalGrid.__attrs_post_init__   9 0 0   100%
src/pyrf/core.py (no function)   11 0 0   100%
src/pyrf/market.py QuotedLine.__attrs_post_init__   4 0 0   100%
src/pyrf/market.py QuotedLine.is_unit_line   1 0 0   100%
src/pyrf/market.py QuotedLine.is_half_line   1 0 0   100%
src/pyrf/market.py QuotedLine.is_quarter_line   1 0 0   100%
src/pyrf/market.py QuotedLine.neighbours   5 0 0   100%
src/pyrf/market.py QuotedOdds.implied_probability   0 0 1   100%
src/pyrf/market.py DecimalOdds.implied_probability   1 0 0   100%
src/pyrf/market.py DecimalOdds.from_probability   3 0 0   100%
src/pyrf/market.py QuoteLeg.__attrs_post_init__   2 0 0   100%
src/pyrf/market.py Quote.__attrs_post_init__   6 0 0   100%
src/pyrf/market.py Quote.build   3 0 0   100%
src/pyrf/market.py Quote.market   1 0 0   100%
src/pyrf/market.py Quote.line   1 0 0   100%
src/pyrf/market.py Quote.implied_margin   6 0 0   100%
src/pyrf/market.py Quote.margin_strip   1 0 0   100%
src/pyrf/market.py Quote.margin_set   11 0 0   100%
src/pyrf/market.py Quote.__repr__   6 0 0   100%
src/pyrf/market.py (no function)   55 0 0   100%
src/pyrf/models.py Distribution.pmf   0 0 1   100%
src/pyrf/models.py Distribution.plot   0 0 1   100%
src/pyrf/models.py UnivariateDistribution.cdf   0 0 1   100%
src/pyrf/models.py BivariateDistribution.pmf   0 0 1   100%
src/pyrf/models.py BivariateDistribution.plot   7 0 0   100%
src/pyrf/models.py Poisson.pmf   1 0 0   100%
src/pyrf/models.py Poisson.cdf   1 0 0   100%
src/pyrf/models.py Poisson.plot   6 0 0   100%
src/pyrf/models.py Skellam.pmf   5 0 0   100%
src/pyrf/models.py Skellam.cdf   5 0 0   100%
src/pyrf/models.py Skellam.plot   6 0 0   100%
src/pyrf/models.py BivariatePoisson.pmf   1 0 0   100%
src/pyrf/models.py BivariatePoisson.plot   3 0 0   100%
src/pyrf/models.py DixonColes.pmf   18 0 0   100%
src/pyrf/models.py DixonColes.plot   3 0 0   100%
src/pyrf/models.py DixonColes.calibrate   27 0 0   100%
src/pyrf/models.py DixonColes.calibrate._make   1 0 0   100%
src/pyrf/models.py DixonColes.calibrate._tg_objective   4 0 0   100%
src/pyrf/models.py DixonColes.calibrate._ah_objective   4 0 0   100%
src/pyrf/models.py (no function)   55 0 2   100%
src/pyrf/payoffs.py PayoffSurface.market   0 0 1   100%
src/pyrf/payoffs.py PayoffSurface._core_grid_payoff   5 0 0   100%
src/pyrf/payoffs.py PayoffSurface.grid_payoff   0 0 1   100%
src/pyrf/payoffs.py PayoffSurface.grid_payoff_prob   2 0 0   100%
src/pyrf/payoffs.py PayoffSurface.grid_payoff_ev   2 0 0   100%
src/pyrf/payoffs.py PayoffSurface.implied_prob   6 0 0   100%
src/pyrf/payoffs.py PayoffSurface.implied_odds   5 0 0   100%
src/pyrf/payoffs.py AsianHandicap.market   1 0 0   100%
src/pyrf/payoffs.py AsianHandicap.grid_payoff   8 0 0   100%
src/pyrf/payoffs.py TotalGoals.market   1 0 0   100%
src/pyrf/payoffs.py TotalGoals.grid_payoff   8 0 0   100%
src/pyrf/payoffs.py (no function)   31 0 0   100%
src/pyrf/utilities.py calc_total_mass   2 0 0   100%
src/pyrf/utilities.py sum_diagonals   3 0 0   100%
src/pyrf/utilities.py (no function)   5 0 0   100%
src/pyrf_api/__init__.py (no function)   3 0 0   100%
src/pyrf_api/app.py health   1 0 0   100%
src/pyrf_api/app.py (no function)   8 0 0   100%
src/pyrf_api/deps.py _auth_disabled   2 0 0   100%
src/pyrf_api/deps.py verify_bearer_token   11 0 0   100%
src/pyrf_api/deps.py (no function)   6 0 0   100%
src/pyrf_api/exceptions.py _handle_value_error   1 0 0   100%
src/pyrf_api/exceptions.py _handle_assertion_error   1 0 0   100%
src/pyrf_api/exceptions.py _handle_type_error   1 0 0   100%
src/pyrf_api/exceptions.py _handle_zero_division   1 0 0   100%
src/pyrf_api/exceptions.py _handle_not_implemented   1 0 0   100%
src/pyrf_api/exceptions.py _handle_frozen_instance   1 0 0   100%
src/pyrf_api/exceptions.py _handle_unhandled   2 0 0   100%
src/pyrf_api/exceptions.py register_exception_handlers   8 0 0   100%
src/pyrf_api/exceptions.py (no function)   11 0 0   100%
src/pyrf_api/routes/__init__.py (no function)   0 0 0   100%
src/pyrf_api/routes/market.py _surface   5 0 0   100%
src/pyrf_api/routes/market.py _model   9 0 0   100%
src/pyrf_api/routes/market.py post_implied_prob   6 0 0   100%
src/pyrf_api/routes/market.py post_implied_odds   6 0 0   100%
src/pyrf_api/routes/market.py post_calibrate   8 0 0   100%
src/pyrf_api/routes/market.py (no function)   15 0 0   100%
src/pyrf_api/schemas.py ImpliedProbRequest.line_multiple_of_quarter   6 0 0   100%
src/pyrf_api/schemas.py _validate_line   6 1 0   83%
src/pyrf_api/schemas.py TotalGoalsQuoteSchema.line_multiple_of_quarter   1 0 0   100%
src/pyrf_api/schemas.py AsianHandicapQuoteSchema.line_multiple_of_quarter   1 0 0   100%
src/pyrf_api/schemas.py (no function)   48 0 0   100%
src/pyrf_data/__init__.py (no function)   2 0 0   100%
src/pyrf_data/client.py _timestamp_to_str   1 0 0   100%
src/pyrf_data/client.py _flatten_scores_response   15 0 0   100%
src/pyrf_data/client.py _flatten_full_export   14 0 0   100%
src/pyrf_data/client.py _flatten_wcplayer_export   8 0 0   100%
src/pyrf_data/client.py PyRfDataClient.__post_init__   11 0 0   100%
src/pyrf_data/client.py PyRfDataClient._watcher_headers   1 0 0   100%
src/pyrf_data/client.py PyRfDataClient._ratings_headers   1 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_scores_raw   9 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_full_export_raw   7 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_scores   2 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_scores_agreed   1 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_scores_disagreed   1 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_full_export   2 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_ratings_club_raw   4 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_ratings_club   5 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_ratings_international_raw   4 4 0   0%
src/pyrf_data/client.py PyRfDataClient.fetch_ratings_international   5 5 0   0%
src/pyrf_data/client.py PyRfDataClient.load_wcplayer_export_raw   6 0 0   100%
src/pyrf_data/client.py PyRfDataClient.load_wcplayer_export   1 0 0   100%
src/pyrf_data/client.py PyRfDataClient.fetch_wcplayer_export_raw   5 5 0   0%
src/pyrf_data/client.py PyRfDataClient.fetch_wcplayer_export   7 7 0   0%
src/pyrf_data/client.py PyRfDataClient._wc2026_cache_path   5 5 0   0%
src/pyrf_data/client.py PyRfDataClient.fetch_wc2026_squads   12 12 0   0%
src/pyrf_data/client.py _clean_fs_text   1 1 0   0%
src/pyrf_data/client.py _extract_first_paren   6 6 0   0%
src/pyrf_data/client.py _parse_wc2026_squads_html   100 100 0   0%
src/pyrf_data/client.py _parse_wc2026_squads_html._emit_status_for   3 3 0   0%
src/pyrf_data/client.py (no function)   56 0 0   100%
Total     825 149 9   82%

No items found using the specified filter.