Coverage report:
82%
hide covered
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.