cfb-data 0.6.0__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cfb_data-0.6.0 → cfb_data-0.7.0}/PKG-INFO +3 -3
- {cfb_data-0.6.0 → cfb_data-0.7.0}/README.md +1 -1
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_redis.py +62 -28
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data.egg-info/PKG-INFO +3 -3
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data.egg-info/requires.txt +1 -1
- {cfb_data-0.6.0 → cfb_data-0.7.0}/pyproject.toml +2 -2
- {cfb_data-0.6.0 → cfb_data-0.7.0}/LICENSE +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_catalog/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_catalog/merge.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_catalog/models.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_catalog/projection.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_catalog/sources.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_dataframes.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_executor.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_observability.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_parquet.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_reference_enums.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_request_rules.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_tabular.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/_transport.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/base/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/base/types.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/betting/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/betting/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/betting/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/betting/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/betting/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/betting/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_backend.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_catalog.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_catalog_codecs.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_coordinator.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_identity_codecs.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_key.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_models.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_null.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_sqlite.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/_sqlite_sql.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/config.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/policy.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/acquire_refresh_lease.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/begin_immediate.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/catalog_counts.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/cleanup_responses.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/delete_coverage_failure.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/delete_response.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/delete_team_aliases.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/enable_foreign_keys.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/enable_wal.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_athletes.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_conference_by_id.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_conference_by_name.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_fresh_coverage.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_game_by_id.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_games.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_team_by_id.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_team_by_name.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_venue_by_id.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/find_venue_by_name.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/get_response.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/get_response_size.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/get_schema_version.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/initialize_schema_version.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/release_refresh_lease.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/renew_refresh_lease.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/schema.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/select_catalog_observations.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/set_busy_timeout.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/set_synchronous_normal.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_athlete.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_athlete_team_season.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_catalog_observation.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_coach.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_coach_team_season.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_conference.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_conference_affiliation.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_coverage.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_coverage_failure.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_drive.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_game.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_play.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_playoff_matchup.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_recruit.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_response.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_team.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_team_alias.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_team_season.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_venue.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_vocabulary.sql +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/client.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/coaches/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/coaches/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/coaches/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/coaches/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/coaches/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/coaches/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/models/pydantic/identity.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/draft/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/draft/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/draft/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/draft/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/draft/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/draft/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/drives/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/drives/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/drives/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/drives/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/drives/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/drives/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/enums.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/errors.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/games/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/games/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/games/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/games/models/pydantic/identity.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/games/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/games/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/games/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/identities/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/identities/_normalization.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/identities/contracts.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/identities/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/info/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/info/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/info/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/info/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/info/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/info/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/metrics/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/metrics/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/metrics/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/metrics/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/metrics/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/metrics/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/observability.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/players/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/players/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/players/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/players/models/pydantic/identity.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/players/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/players/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/players/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/playoffs/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/playoffs/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/playoffs/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/playoffs/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/playoffs/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/playoffs/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/plays/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/plays/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/plays/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/plays/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/plays/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/plays/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/py.typed +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/rankings/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/rankings/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/rankings/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/rankings/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/rankings/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/rankings/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/ratings/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/ratings/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/ratings/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/ratings/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/ratings/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/ratings/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/recruiting/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/recruiting/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/recruiting/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/recruiting/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/recruiting/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/recruiting/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/retry.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/stats/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/stats/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/stats/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/stats/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/stats/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/stats/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/teams/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/teams/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/teams/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/teams/models/pydantic/identity.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/teams/models/pydantic/requests.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/teams/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/teams/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/venues/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/venues/models/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/venues/models/pydantic/__init__.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/venues/models/pydantic/identity.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/venues/models/pydantic/responses.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/venues/resource.py +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data.egg-info/SOURCES.txt +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data.egg-info/dependency_links.txt +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data.egg-info/top_level.txt +0 -0
- {cfb_data-0.6.0 → cfb_data-0.7.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cfb-data
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Async validated CollegeFootballData access for pandas and Polars
|
|
5
5
|
Author: Ryan Anderson
|
|
6
6
|
License-Expression: MIT
|
|
@@ -24,7 +24,7 @@ Requires-Dist: pyarrow<26,>=25
|
|
|
24
24
|
Provides-Extra: polars
|
|
25
25
|
Requires-Dist: polars<2,>=1.43.2; extra == "polars"
|
|
26
26
|
Provides-Extra: redis
|
|
27
|
-
Requires-Dist: redis<
|
|
27
|
+
Requires-Dist: redis<9,>=7.1; extra == "redis"
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: build<2,>=1.5; extra == "dev"
|
|
30
30
|
Requires-Dist: furo>=2025.12.19; extra == "dev"
|
|
@@ -41,7 +41,7 @@ Dynamic: license-file
|
|
|
41
41
|
|
|
42
42
|
# College Football Data Python Toolkit
|
|
43
43
|
|
|
44
|
-
`cfb-data` 0.
|
|
44
|
+
`cfb-data` 0.7.0 is a pre-alpha Python toolkit for exploring the public
|
|
45
45
|
[CollegeFootballData API](https://collegefootballdata.com/). Most calls return
|
|
46
46
|
eager pandas DataFrames that are ready for analysis. Polars is available as an
|
|
47
47
|
option, and a few naturally nested results return Pydantic models.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# College Football Data Python Toolkit
|
|
2
2
|
|
|
3
|
-
`cfb-data` 0.
|
|
3
|
+
`cfb-data` 0.7.0 is a pre-alpha Python toolkit for exploring the public
|
|
4
4
|
[CollegeFootballData API](https://collegefootballdata.com/). Most calls return
|
|
5
5
|
eager pandas DataFrames that are ready for analysis. Polars is available as an
|
|
6
6
|
option, and a few naturally nested results return Pydantic models.
|
|
@@ -9,7 +9,7 @@ import math
|
|
|
9
9
|
import unicodedata
|
|
10
10
|
from collections.abc import Awaitable, Iterable, Mapping
|
|
11
11
|
from datetime import UTC, datetime
|
|
12
|
-
from typing import TYPE_CHECKING, Self, cast
|
|
12
|
+
from typing import TYPE_CHECKING, Self, cast, overload
|
|
13
13
|
|
|
14
14
|
from redis.asyncio import Redis
|
|
15
15
|
|
|
@@ -212,9 +212,10 @@ class RedisCacheBackend:
|
|
|
212
212
|
self._index_key(namespace, normalized), identifier
|
|
213
213
|
)
|
|
214
214
|
if athlete_indexes:
|
|
215
|
-
|
|
215
|
+
_queue_hset(
|
|
216
|
+
pipeline,
|
|
216
217
|
self._compact_index_key("athlete"),
|
|
217
|
-
|
|
218
|
+
athlete_indexes,
|
|
218
219
|
)
|
|
219
220
|
if removed_athlete_indexes:
|
|
220
221
|
pipeline.hdel(
|
|
@@ -222,14 +223,16 @@ class RedisCacheBackend:
|
|
|
222
223
|
*removed_athlete_indexes,
|
|
223
224
|
)
|
|
224
225
|
if membership_indexes:
|
|
225
|
-
|
|
226
|
+
_queue_hset(
|
|
227
|
+
pipeline,
|
|
226
228
|
self._compact_index_key("athlete-membership"),
|
|
227
|
-
|
|
229
|
+
membership_indexes,
|
|
228
230
|
)
|
|
229
231
|
if encoded_observations:
|
|
230
|
-
|
|
232
|
+
_queue_hset(
|
|
233
|
+
pipeline,
|
|
231
234
|
self._observation_hash_key(),
|
|
232
|
-
|
|
235
|
+
dict(encoded_observations),
|
|
233
236
|
)
|
|
234
237
|
if projection.coverage is not None:
|
|
235
238
|
self._project_coverage(pipeline, projection.coverage)
|
|
@@ -737,9 +740,10 @@ class RedisCacheBackend:
|
|
|
737
740
|
for team_fact in projection.teams:
|
|
738
741
|
key = self._entity_key("team", team_fact.id)
|
|
739
742
|
pipe.hsetnx(key, "first_seen_at", observed_at)
|
|
740
|
-
|
|
743
|
+
_queue_hset(
|
|
744
|
+
pipe,
|
|
741
745
|
key,
|
|
742
|
-
|
|
746
|
+
_without_none(
|
|
743
747
|
{
|
|
744
748
|
"id": str(team_fact.id),
|
|
745
749
|
"school": team_fact.school,
|
|
@@ -768,9 +772,10 @@ class RedisCacheBackend:
|
|
|
768
772
|
str(season_fact.season),
|
|
769
773
|
)
|
|
770
774
|
pipe.hsetnx(key, "first_seen_at", observed_at)
|
|
771
|
-
|
|
775
|
+
_queue_hset(
|
|
776
|
+
pipe,
|
|
772
777
|
key,
|
|
773
|
-
|
|
778
|
+
_without_none(
|
|
774
779
|
{
|
|
775
780
|
"team_id": str(season_fact.team_id),
|
|
776
781
|
"season": str(season_fact.season),
|
|
@@ -791,9 +796,10 @@ class RedisCacheBackend:
|
|
|
791
796
|
for conference_fact in projection.conferences:
|
|
792
797
|
key = self._entity_key("conference", conference_fact.id)
|
|
793
798
|
pipe.hsetnx(key, "first_seen_at", observed_at)
|
|
794
|
-
|
|
799
|
+
_queue_hset(
|
|
800
|
+
pipe,
|
|
795
801
|
key,
|
|
796
|
-
|
|
802
|
+
_without_none(
|
|
797
803
|
{
|
|
798
804
|
"id": str(conference_fact.id),
|
|
799
805
|
"name": conference_fact.name,
|
|
@@ -838,9 +844,10 @@ class RedisCacheBackend:
|
|
|
838
844
|
for fact in projection.venues:
|
|
839
845
|
key = self._entity_key("venue", fact.id)
|
|
840
846
|
pipe.hsetnx(key, "first_seen_at", observed_at)
|
|
841
|
-
|
|
847
|
+
_queue_hset(
|
|
848
|
+
pipe,
|
|
842
849
|
key,
|
|
843
|
-
|
|
850
|
+
_without_none(
|
|
844
851
|
{
|
|
845
852
|
"id": str(fact.id),
|
|
846
853
|
"name": fact.name,
|
|
@@ -862,9 +869,10 @@ class RedisCacheBackend:
|
|
|
862
869
|
for fact in projection.games:
|
|
863
870
|
key = self._entity_key("game", fact.id)
|
|
864
871
|
pipe.hsetnx(key, "first_seen_at", observed_at)
|
|
865
|
-
|
|
872
|
+
_queue_hset(
|
|
873
|
+
pipe,
|
|
866
874
|
key,
|
|
867
|
-
|
|
875
|
+
_without_none(
|
|
868
876
|
{
|
|
869
877
|
"id": str(fact.id),
|
|
870
878
|
"season": str(fact.season) if fact.season is not None else None,
|
|
@@ -903,7 +911,7 @@ class RedisCacheBackend:
|
|
|
903
911
|
"athlete", projection.athletes, projection, observed_at
|
|
904
912
|
)
|
|
905
913
|
if athlete_payloads:
|
|
906
|
-
pipe
|
|
914
|
+
_queue_hset(pipe, self._compact_catalog_key("athlete"), athlete_payloads)
|
|
907
915
|
membership_payloads = _compact_fact_payloads(
|
|
908
916
|
"athlete-membership",
|
|
909
917
|
projection.athlete_team_seasons,
|
|
@@ -911,9 +919,10 @@ class RedisCacheBackend:
|
|
|
911
919
|
observed_at,
|
|
912
920
|
)
|
|
913
921
|
if membership_payloads:
|
|
914
|
-
|
|
922
|
+
_queue_hset(
|
|
923
|
+
pipe,
|
|
915
924
|
self._compact_catalog_key("athlete-membership"),
|
|
916
|
-
|
|
925
|
+
membership_payloads,
|
|
917
926
|
)
|
|
918
927
|
|
|
919
928
|
def _project_remaining(
|
|
@@ -937,9 +946,10 @@ class RedisCacheBackend:
|
|
|
937
946
|
pipe.hsetnx(key, "first_seen_at", observed_at)
|
|
938
947
|
payload["source_version"] = 1
|
|
939
948
|
payload["schema_version"] = 1
|
|
940
|
-
|
|
949
|
+
_queue_hset(
|
|
950
|
+
pipe,
|
|
941
951
|
key,
|
|
942
|
-
|
|
952
|
+
{
|
|
943
953
|
field: str(value)
|
|
944
954
|
for field, value in payload.items()
|
|
945
955
|
if value is not None
|
|
@@ -949,7 +959,7 @@ class RedisCacheBackend:
|
|
|
949
959
|
"recruit", projection.recruits, projection, observed_at
|
|
950
960
|
)
|
|
951
961
|
if recruit_payloads:
|
|
952
|
-
pipe
|
|
962
|
+
_queue_hset(pipe, self._compact_catalog_key("recruit"), recruit_payloads)
|
|
953
963
|
self._project_coach_team_seasons(pipe, projection, observed_at)
|
|
954
964
|
|
|
955
965
|
def _project_coach_team_seasons(
|
|
@@ -961,9 +971,10 @@ class RedisCacheBackend:
|
|
|
961
971
|
identity = _fact_identity("coach-team-season", payload)
|
|
962
972
|
key = self._key("catalog", "coach-team-season", identity)
|
|
963
973
|
pipe.hsetnx(key, "first_seen_at", observed_at)
|
|
964
|
-
|
|
974
|
+
_queue_hset(
|
|
975
|
+
pipe,
|
|
965
976
|
key,
|
|
966
|
-
|
|
977
|
+
_without_none(
|
|
967
978
|
{
|
|
968
979
|
"coach_id": str(fact.coach_id),
|
|
969
980
|
"team_id": str(fact.team_id),
|
|
@@ -1052,9 +1063,7 @@ class RedisCacheBackend:
|
|
|
1052
1063
|
for identifier in sorted(identifiers):
|
|
1053
1064
|
pipeline.hgetall(self._entity_key(namespace, identifier))
|
|
1054
1065
|
rows = await pipeline.execute()
|
|
1055
|
-
return [
|
|
1056
|
-
_byte_mapping(row) for row in rows if isinstance(row, Mapping) and bool(row)
|
|
1057
|
-
]
|
|
1066
|
+
return [_byte_mapping(row) for row in rows if row]
|
|
1058
1067
|
|
|
1059
1068
|
async def _compact_json_records(
|
|
1060
1069
|
self, namespace: str, identifiers: set[str]
|
|
@@ -1262,6 +1271,21 @@ def _digest(value: str) -> str:
|
|
|
1262
1271
|
return hashlib.sha256(value.encode()).hexdigest()
|
|
1263
1272
|
|
|
1264
1273
|
|
|
1274
|
+
type _RedisEncodable = bytes | bytearray | memoryview | str | int | float
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
def _queue_hset(
|
|
1278
|
+
pipeline: Redis,
|
|
1279
|
+
key: str,
|
|
1280
|
+
mapping: Mapping[str, _RedisEncodable],
|
|
1281
|
+
) -> None:
|
|
1282
|
+
"""Queue one hash update with a mapping accepted by Redis 7 and 8."""
|
|
1283
|
+
items: list[_RedisEncodable] = [
|
|
1284
|
+
item for field, value in mapping.items() for item in (field, value)
|
|
1285
|
+
]
|
|
1286
|
+
pipeline.hset(key, items=items)
|
|
1287
|
+
|
|
1288
|
+
|
|
1265
1289
|
def _without_none(values: Mapping[str, str | None]) -> dict[str, str]:
|
|
1266
1290
|
"""Return Redis hash fields with absent optional values omitted."""
|
|
1267
1291
|
return {key: value for key, value in values.items() if value is not None}
|
|
@@ -1289,6 +1313,16 @@ def _integer(value: object) -> int:
|
|
|
1289
1313
|
raise CFBDCacheBackendError("Redis operation returned an unexpected value")
|
|
1290
1314
|
|
|
1291
1315
|
|
|
1316
|
+
@overload
|
|
1317
|
+
async def _redis_result[ResultT](value: Awaitable[ResultT]) -> ResultT: ...
|
|
1318
|
+
|
|
1319
|
+
|
|
1320
|
+
@overload
|
|
1321
|
+
async def _redis_result[ResultT](
|
|
1322
|
+
value: Awaitable[ResultT] | ResultT,
|
|
1323
|
+
) -> ResultT: ...
|
|
1324
|
+
|
|
1325
|
+
|
|
1292
1326
|
async def _redis_result[ResultT](
|
|
1293
1327
|
value: Awaitable[ResultT] | ResultT,
|
|
1294
1328
|
) -> ResultT:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cfb-data
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Async validated CollegeFootballData access for pandas and Polars
|
|
5
5
|
Author: Ryan Anderson
|
|
6
6
|
License-Expression: MIT
|
|
@@ -24,7 +24,7 @@ Requires-Dist: pyarrow<26,>=25
|
|
|
24
24
|
Provides-Extra: polars
|
|
25
25
|
Requires-Dist: polars<2,>=1.43.2; extra == "polars"
|
|
26
26
|
Provides-Extra: redis
|
|
27
|
-
Requires-Dist: redis<
|
|
27
|
+
Requires-Dist: redis<9,>=7.1; extra == "redis"
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: build<2,>=1.5; extra == "dev"
|
|
30
30
|
Requires-Dist: furo>=2025.12.19; extra == "dev"
|
|
@@ -41,7 +41,7 @@ Dynamic: license-file
|
|
|
41
41
|
|
|
42
42
|
# College Football Data Python Toolkit
|
|
43
43
|
|
|
44
|
-
`cfb-data` 0.
|
|
44
|
+
`cfb-data` 0.7.0 is a pre-alpha Python toolkit for exploring the public
|
|
45
45
|
[CollegeFootballData API](https://collegefootballdata.com/). Most calls return
|
|
46
46
|
eager pandas DataFrames that are ready for analysis. Polars is available as an
|
|
47
47
|
option, and a few naturally nested results return Pydantic models.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cfb-data"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.7.0"
|
|
8
8
|
description = "Async validated CollegeFootballData access for pandas and Polars"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -32,7 +32,7 @@ polars = [
|
|
|
32
32
|
"polars>=1.43.2,<2",
|
|
33
33
|
]
|
|
34
34
|
redis = [
|
|
35
|
-
"redis>=7.1,<
|
|
35
|
+
"redis>=7.1,<9",
|
|
36
36
|
]
|
|
37
37
|
dev = [
|
|
38
38
|
"build>=1.5,<2",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/models/pydantic/__init__.py
RENAMED
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/models/pydantic/requests.py
RENAMED
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/adjusted_metrics/models/pydantic/responses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/select_catalog_observations.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_athlete_team_season.sql
RENAMED
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_catalog_observation.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/cache/sql/upsert_conference_affiliation.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cfb_data-0.6.0 → cfb_data-0.7.0}/cfb_data/cfb_data/conferences/models/pydantic/responses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|