ffbb-data-client 2.1.0__tar.gz → 2.2.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.
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/scripts/check_wrapper_parity.py +17 -4
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/CHANGELOG.md +20 -0
- {ffbb_data_client-2.1.0/src/ffbb_data_client.egg-info → ffbb_data_client-2.2.0}/PKG-INFO +11 -8
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/README.md +9 -6
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/RELEASE_NOTES.md +26 -1
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/pyproject.toml +1 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/clients/__init__.py +4 -0
- ffbb_data_client-2.1.0/src/ffbb_data_client/clients/ffbb_data_client.py → ffbb_data_client-2.2.0/src/ffbb_data_client/clients/_rest_facade.py +349 -1539
- ffbb_data_client-2.2.0/src/ffbb_data_client/clients/_search_facade.py +1046 -0
- ffbb_data_client-2.2.0/src/ffbb_data_client/clients/ffbb_data_client.py +270 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/utils/cache_manager.py +2 -2
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0/src/ffbb_data_client.egg-info}/PKG-INFO +11 -8
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client.egg-info/SOURCES.txt +3 -1
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_201_unit_tests_core.py +4 -4
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_210_targeted_clients_helpers_coverage.py +11 -9
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tox.ini +1 -1
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.coveragerc +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/dependabot.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/workflows/check_wrapper_parity.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/workflows/ci.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/workflows/codeql.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/workflows/deploy-pages.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/workflows/publish.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/workflows/release-after-discovery-merge.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.github/workflows/update-ffbb-api-discovery.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.gitignore +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.isort.cfg +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.jules/bolt.md +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.pre-commit-config.yaml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/.readthedocs.yml +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/AUTHORS.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/CONTRIBUTING.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/LICENSE.txt +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/LOCAL_CI_GUIDE.md +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/SECURITY.md +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/api.ffbb.app.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/api_update_summary.md +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/collections.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/endpoint_discovery.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/indexes.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/meilisearch-prod.ffbb.app.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/openapi.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/openapi_full.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/data/type_discovery_corrections.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/Makefile +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/_static/.gitignore +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/architecture.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/authors.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/changelog.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/conf.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/contributing.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/examples.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/index.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/license.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/migration.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/readme.rst +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/requirements.txt +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/test_strategy.md +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/docs/testing_conventions.md +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/examples/README.md +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/examples/complete_usage_example.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/examples/quick_start.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/examples/team_ranking_analysis.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/pytest.ini +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/run-ci-locally.sh +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0/scripts}/benchmark_search_organisme.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/scripts/discover_endpoints.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/scripts/discover_types.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/setup.cfg +1 -1
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/setup.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/clients/api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/clients/meilisearch_client.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/clients/meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/config.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/data/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/data/collections.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/data/endpoint_discovery.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/data/indexes.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/data/openapi.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/data/openapi_full.json +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/helpers/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/helpers/http_requests_helper.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/helpers/http_requests_utils.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/helpers/meilisearch_client_extension.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/helpers/multi_search_query_helper.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/affiche.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/cartographie.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/categorie.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/categorie_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/clock.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/club_contacts.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/code.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/commune.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_fields.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_id.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_id_categorie.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_id_sexe.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_origine.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_origine_type_competition.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competition_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competitions_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competitions_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competitions_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competitions_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/competitions_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/configuration_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/contact_info.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/content_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/coordonnees.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/coordonnees_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/document_flyer.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/document_flyer_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/engagement_contacts.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/engagements_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/engagements_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/engagements_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/engagements_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/etat.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/external_competition_id.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/external_id.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/field_set.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/folder.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/formation_session.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/formations_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/formations_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/formations_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/formations_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/game_stats_model.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/game_stats_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/generic_search.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/geo.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/geo_sort_order.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_commune_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_competition_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_configuration_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_engagement_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_entraineur_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_formation_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_officiel_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_organisme_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_poule_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_pratique_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_rencontre_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_saisons_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_salle_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_terrain_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/get_tournoi_response.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/gradient_color.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/id_poule.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/jour.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/label.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/labellisation.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/live.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/lives.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/logo.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_queries.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_competitions.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_engagements.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_formations.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_organismes.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_pratiques.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_rencontres.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_salles.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_terrains.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_result_tournois.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_results.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/multi_search_results_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/nature_sol.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/niveau.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/niveau_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/niveau_extractor.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/niveau_info.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/niveau_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/niveau_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/objectif.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organisateur.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organisateur_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organisme_fields.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organisme_id_pere.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organismes_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organismes_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organismes_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organismes_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/organismes_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/phase_code.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/poule.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/poule_fields.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/poule_rencontre_item_model.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/poules_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/poules_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/pratique.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/pratiques_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/pratiques_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/pratiques_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/pratiques_hit_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/pratiques_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/pratiques_type_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/publication_internet.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/purple_logo.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/query_fields_manager.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/ranking_engagement.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/rankings_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/rencontres_engagement.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/rencontres_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/rencontres_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/rencontres_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/rencontres_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/saison.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/saison_fields.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/saisons_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/saisons_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/salle.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/salles_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/salles_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/salles_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/salles_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/sexe.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/sexe_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/source.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/status.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/team_engagement.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/team_ranking.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_name.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_sexe_enum.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/terrains_storage.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournoi_type_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournoi_type_enum.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournoi_types_3x3.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournoi_types_3x3_libelle.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournois_facet_distribution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournois_facet_stats.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournois_hit.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournois_hit_type.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournois_libelle.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/tournois_multi_search_query.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/type_association.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/type_association_libelle.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/type_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/type_competition.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/type_competition_generique.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/type_enum.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/models/type_league.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/py.typed +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/utils/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/utils/converter_utils.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/utils/input_validation.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/utils/retry_utils.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/utils/secure_logging.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client/utils/token_manager.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client.egg-info/dependency_links.txt +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client.egg-info/not-zip-safe +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client.egg-info/requires.txt +1 -1
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/src/ffbb_data_client.egg-info/top_level.txt +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/conftest.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/e2e/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/e2e/conftest.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/conftest.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/test_500_user_journey.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/test_501_user_journey_v3.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/test_502_enhanced_integration.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/test_503_secure_logging.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/test_504_input_validation.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/test_505_retry_timeout.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/integration/test_506_raw_json_model_conversion.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_200_api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_202_meilisearch_client.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_203_meilisearch_client_extension.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_204_ffbb_data_client.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_205_meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_206_coverage_gaps_clients.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_207_coverage_clients_extended.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_208_new_methods_coverage.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_209_automatic_token_resolution.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_async_methods.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_meilisearch_async.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_v2_backport_search.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/clients/test_v3_new_features.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/conftest.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/helpers/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/helpers/test_400_http_helpers.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/helpers/test_meilisearch_client_extension_recursive_pagination.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_100_competition_id_categorie.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_101_competition_id_sexe.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_102_competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_103_competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_104_competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_105_competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_106_competition_origine.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_107_id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_108_id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_109_id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_110_labellisation.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_111_niveau_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_112_purple_logo.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_113_salle.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_114_tournoi_type_class.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_115_type_association_libelle.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_116_type_competition_generique.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_117_organisateur.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_118_competition_id.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_119_terrains_inner_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_120_pratiques_inner_models.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_121_to_dict_round_trip.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_122_coverage_gaps.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_123_missing_coverage.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_123_v2_backport.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_124_targeted_coverage_gains.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/models/test_dx_aliases.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/__init__.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_300_secure_logging.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_301_input_validation.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_302_retry_utils.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_303_cache_manager.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_304_config.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_305_token_manager.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_306_converter_utils.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/tests/unit/utils/test_307_coverage_gaps_utils.py +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/website/assets/logo.webp +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/website/css/style.css +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/website/index.html +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/website/robots.txt +0 -0
- {ffbb_data_client-2.1.0 → ffbb_data_client-2.2.0}/website/sitemap.xml +0 -0
|
@@ -62,13 +62,25 @@ def write_summary(text: str) -> None:
|
|
|
62
62
|
def main() -> int:
|
|
63
63
|
api_methods = get_public_methods(CLIENTS / "api_ffbb_app_client.py")
|
|
64
64
|
ms_methods = get_public_methods(CLIENTS / "meilisearch_ffbb_client.py")
|
|
65
|
-
|
|
65
|
+
|
|
66
|
+
# Collect wrapper methods from the main file AND any facade files.
|
|
67
|
+
# After the v2.1.0 refactor, methods live in _rest_facade.py and
|
|
68
|
+
# _search_facade.py; the thin ffbb_data_client.py delegates via setattr.
|
|
69
|
+
wrapper_files = [
|
|
70
|
+
CLIENTS / "ffbb_data_client.py",
|
|
71
|
+
CLIENTS / "_rest_facade.py",
|
|
72
|
+
CLIENTS / "_search_facade.py",
|
|
73
|
+
]
|
|
74
|
+
wrapper_methods: set[str] = set()
|
|
75
|
+
for wf in wrapper_files:
|
|
76
|
+
if wf.exists():
|
|
77
|
+
wrapper_methods |= get_public_methods(wf)
|
|
66
78
|
|
|
67
79
|
all_inner = api_methods | ms_methods
|
|
68
80
|
missing = sorted(all_inner - wrapper_methods)
|
|
69
81
|
|
|
70
82
|
if not missing:
|
|
71
|
-
msg = "## ✅ Wrapper parity OK\n\nAll public methods from inner clients are exposed in `FFBBDataClient
|
|
83
|
+
msg = "## ✅ Wrapper parity OK\n\nAll public methods from inner clients are exposed in `FFBBDataClient` (including facade files)."
|
|
72
84
|
print(msg)
|
|
73
85
|
write_summary(msg)
|
|
74
86
|
return 0
|
|
@@ -77,13 +89,14 @@ def main() -> int:
|
|
|
77
89
|
missing_detail = " ".join(
|
|
78
90
|
[
|
|
79
91
|
"The following methods exist in inner clients but are **not exposed**",
|
|
80
|
-
"in `FFBBDataClient
|
|
92
|
+
"in `FFBBDataClient` or its facade files:",
|
|
81
93
|
]
|
|
82
94
|
)
|
|
83
95
|
fix_detail = " ".join(
|
|
84
96
|
[
|
|
85
97
|
"Add the missing method(s) to",
|
|
86
|
-
"`src/ffbb_data_client/clients/ffbb_data_client.py`",
|
|
98
|
+
"`src/ffbb_data_client/clients/ffbb_data_client.py` or one of its",
|
|
99
|
+
"facade files (`_rest_facade.py`, `_search_facade.py`)",
|
|
87
100
|
"so they delegate to the appropriate inner client.",
|
|
88
101
|
]
|
|
89
102
|
)
|
|
@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.2.0] - 2026-05-17
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **REFACTOR**: `FFBBDataClient` (2865 → 272 lines) split into modular facades — `_RestFacade` (1592 lines) and `_SearchFacade` (1020 lines)
|
|
12
|
+
- Public API remains 100% backward-compatible — all 167 methods accessible directly on `FFBBDataClient`
|
|
13
|
+
- `check_wrapper_parity.py` updated to scan facade files in addition to the main client
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- `pytest_asyncio_mode = "auto"` in `pyproject.toml` for pytest-asyncio compatibility
|
|
17
|
+
- `isolated_build = True` in `tox.ini` for proper PEP 517 builds
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
- `CacheManager` docstring corrected — Redis backend marked as "planned" (not implemented)
|
|
21
|
+
- `readme_renderer[md]` moved from `install_requires` to `testing` extras (build-time only dependency)
|
|
22
|
+
|
|
23
|
+
### Removed
|
|
24
|
+
- Orphaned `src/ffbb_api_client_v3/` directory (residual from v2.1.0 cleanup)
|
|
25
|
+
- Orphaned `.coverage` file at project root
|
|
26
|
+
- `benchmark_search_organisme.py` moved from root to `scripts/`
|
|
27
|
+
|
|
8
28
|
## [2.1.0] - 2026-05-17
|
|
9
29
|
|
|
10
30
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ffbb-data-client
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: FFBB Data Client — SDK Python asynchrone pour les Statistiques de Basket France. Type-safe Pydantic models, async/sync, Meilisearch.
|
|
5
5
|
Home-page: https://github.com/nickdesi/ffbb-data-client
|
|
6
6
|
Author: nickdesi
|
|
@@ -33,7 +33,6 @@ Requires-Python: >=3.10
|
|
|
33
33
|
Description-Content-Type: text/markdown; charset=UTF-8
|
|
34
34
|
License-File: LICENSE.txt
|
|
35
35
|
Requires-Dist: python-dotenv>=1.2.2
|
|
36
|
-
Requires-Dist: readme_renderer[md]>=44.0
|
|
37
36
|
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
38
37
|
Requires-Dist: httpx>=0.28.1
|
|
39
38
|
Requires-Dist: hishel[async]>=1.2.1
|
|
@@ -46,6 +45,7 @@ Requires-Dist: pytest-xdist>=3.8.0; extra == "testing"
|
|
|
46
45
|
Requires-Dist: pytest-cov>=7.1.0; extra == "testing"
|
|
47
46
|
Requires-Dist: respx>=0.23.1; extra == "testing"
|
|
48
47
|
Requires-Dist: pytest-asyncio>=1.3.0; extra == "testing"
|
|
48
|
+
Requires-Dist: readme_renderer[md]>=44.0; extra == "testing"
|
|
49
49
|
Provides-Extra: typing
|
|
50
50
|
Requires-Dist: types-python-dateutil>=2.9.0.20260408; extra == "typing"
|
|
51
51
|
Dynamic: license-file
|
|
@@ -85,18 +85,17 @@ Dynamic: license-file
|
|
|
85
85
|
- du cache HTTP configurable via `hishel` ;
|
|
86
86
|
- des helpers prêts pour l'intégration MCP / agents IA.
|
|
87
87
|
|
|
88
|
-
> La V3 remplace l’approche V2 basée sur des dictionnaires bruts et une configuration manuelle. Elle privilégie le typage, la robustesse réseau et les appels batchés.
|
|
89
|
-
|
|
90
88
|
---
|
|
91
89
|
|
|
92
|
-
## 🚀 Version v2.
|
|
90
|
+
## 🚀 Version v2.2.0 — Mai 2026
|
|
93
91
|
|
|
94
92
|
Principales évolutions récentes :
|
|
95
93
|
|
|
96
|
-
- **
|
|
94
|
+
- **refactor architecture** : `FFBBDataClient` (2865 → 272 lignes) découpé en `_RestFacade` + `_SearchFacade` — API publique 100% compatible ;
|
|
95
|
+
- **unification sync/async** : les méthodes synchrones délèguent à leurs homologues asynchrones via `_run_async()`, éliminant ~604 lignes de duplication ;
|
|
97
96
|
- **nouvelles entités** : EDF (matches, joueurs, rosters, équipes), Genius Sport (matches, live logs), Rematch Videos ;
|
|
98
97
|
- **cache SQLite concurrency-safe** : fichiers séparés pour sync (`http_cache.db`) et async (`http_cache_async.db`) ;
|
|
99
|
-
- **CI renforcée** : mypy + pyright + CodeQL + Dependabot + hook pre-push ;
|
|
98
|
+
- **CI renforcée** : mypy + pyright + CodeQL + Dependabot + hook pre-push + wrapper parity check ;
|
|
100
99
|
- **nettoyage** : suppression du shim `ffbb_api_client_v3`, scripts morts et code mort (`invalidate_pattern`).
|
|
101
100
|
|
|
102
101
|
Voir aussi : [`CHANGELOG.md`](CHANGELOG.md) et [`RELEASE_NOTES.md`](RELEASE_NOTES.md).
|
|
@@ -272,7 +271,9 @@ Il est donc possible de laisser le client résoudre les tokens automatiquement o
|
|
|
272
271
|
```text
|
|
273
272
|
src/ffbb_data_client/
|
|
274
273
|
├── clients/
|
|
275
|
-
│ ├── ffbb_data_client.py # Façade publique (
|
|
274
|
+
│ ├── ffbb_data_client.py # Façade publique (272 lignes, delegation)
|
|
275
|
+
│ ├── _rest_facade.py # Façade REST API (Directus)
|
|
276
|
+
│ ├── _search_facade.py # Façade recherche Meilisearch
|
|
276
277
|
│ ├── api_ffbb_app_client.py # Client REST FFBB (async source of truth)
|
|
277
278
|
│ └── meilisearch_ffbb_client.py # Client recherche Meilisearch
|
|
278
279
|
├── helpers/ # Requêtes HTTP, multi-search, conversions
|
|
@@ -282,6 +283,8 @@ src/ffbb_data_client/
|
|
|
282
283
|
```
|
|
283
284
|
|
|
284
285
|
> **Architecture sync/async** : Depuis v2.1.0, les méthodes asynchrones sont la source de vérité. Les méthodes synchrones délèguent via `_run_async()`, un helper qui gère les event loops imbriqués avec `ThreadPoolExecutor`.
|
|
286
|
+
>
|
|
287
|
+
> **Architecture facades** : Depuis v2.2.0, `FFBBDataClient` est une fine coquille qui compose `_RestFacade` et `_SearchFacade`. L'API publique reste identique — `client.get_organisme(123)` fonctionne comme avant.
|
|
285
288
|
|
|
286
289
|
---
|
|
287
290
|
|
|
@@ -33,18 +33,17 @@
|
|
|
33
33
|
- du cache HTTP configurable via `hishel` ;
|
|
34
34
|
- des helpers prêts pour l'intégration MCP / agents IA.
|
|
35
35
|
|
|
36
|
-
> La V3 remplace l’approche V2 basée sur des dictionnaires bruts et une configuration manuelle. Elle privilégie le typage, la robustesse réseau et les appels batchés.
|
|
37
|
-
|
|
38
36
|
---
|
|
39
37
|
|
|
40
|
-
## 🚀 Version v2.
|
|
38
|
+
## 🚀 Version v2.2.0 — Mai 2026
|
|
41
39
|
|
|
42
40
|
Principales évolutions récentes :
|
|
43
41
|
|
|
44
|
-
- **
|
|
42
|
+
- **refactor architecture** : `FFBBDataClient` (2865 → 272 lignes) découpé en `_RestFacade` + `_SearchFacade` — API publique 100% compatible ;
|
|
43
|
+
- **unification sync/async** : les méthodes synchrones délèguent à leurs homologues asynchrones via `_run_async()`, éliminant ~604 lignes de duplication ;
|
|
45
44
|
- **nouvelles entités** : EDF (matches, joueurs, rosters, équipes), Genius Sport (matches, live logs), Rematch Videos ;
|
|
46
45
|
- **cache SQLite concurrency-safe** : fichiers séparés pour sync (`http_cache.db`) et async (`http_cache_async.db`) ;
|
|
47
|
-
- **CI renforcée** : mypy + pyright + CodeQL + Dependabot + hook pre-push ;
|
|
46
|
+
- **CI renforcée** : mypy + pyright + CodeQL + Dependabot + hook pre-push + wrapper parity check ;
|
|
48
47
|
- **nettoyage** : suppression du shim `ffbb_api_client_v3`, scripts morts et code mort (`invalidate_pattern`).
|
|
49
48
|
|
|
50
49
|
Voir aussi : [`CHANGELOG.md`](CHANGELOG.md) et [`RELEASE_NOTES.md`](RELEASE_NOTES.md).
|
|
@@ -220,7 +219,9 @@ Il est donc possible de laisser le client résoudre les tokens automatiquement o
|
|
|
220
219
|
```text
|
|
221
220
|
src/ffbb_data_client/
|
|
222
221
|
├── clients/
|
|
223
|
-
│ ├── ffbb_data_client.py # Façade publique (
|
|
222
|
+
│ ├── ffbb_data_client.py # Façade publique (272 lignes, delegation)
|
|
223
|
+
│ ├── _rest_facade.py # Façade REST API (Directus)
|
|
224
|
+
│ ├── _search_facade.py # Façade recherche Meilisearch
|
|
224
225
|
│ ├── api_ffbb_app_client.py # Client REST FFBB (async source of truth)
|
|
225
226
|
│ └── meilisearch_ffbb_client.py # Client recherche Meilisearch
|
|
226
227
|
├── helpers/ # Requêtes HTTP, multi-search, conversions
|
|
@@ -230,6 +231,8 @@ src/ffbb_data_client/
|
|
|
230
231
|
```
|
|
231
232
|
|
|
232
233
|
> **Architecture sync/async** : Depuis v2.1.0, les méthodes asynchrones sont la source de vérité. Les méthodes synchrones délèguent via `_run_async()`, un helper qui gère les event loops imbriqués avec `ThreadPoolExecutor`.
|
|
234
|
+
>
|
|
235
|
+
> **Architecture facades** : Depuis v2.2.0, `FFBBDataClient` est une fine coquille qui compose `_RestFacade` et `_SearchFacade`. L'API publique reste identique — `client.get_organisme(123)` fonctionne comme avant.
|
|
233
236
|
|
|
234
237
|
---
|
|
235
238
|
|
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
# Release Notes - FFBB API Client V2
|
|
2
2
|
|
|
3
|
-
## Version
|
|
3
|
+
## Version 2.2.0 (Latest Release)
|
|
4
|
+
|
|
5
|
+
### 🏗 Architecture Refactor
|
|
6
|
+
|
|
7
|
+
#### **Facade Pattern — FFBBDataClient Modularization**
|
|
8
|
+
- **REFACTOR**: `FFBBDataClient` split from a monolithic 2865-line file into three focused modules:
|
|
9
|
+
- `ffbb_data_client.py` (272 lines) — thin public facade with factory and delegation
|
|
10
|
+
- `_rest_facade.py` (1592 lines) — all REST API (Directus) methods
|
|
11
|
+
- `_search_facade.py` (1020 lines) — all Meilisearch search methods
|
|
12
|
+
- **BACKWARD-COMPATIBLE**: All 167 public methods remain accessible directly on `FFBBDataClient` instances — zero breaking changes
|
|
13
|
+
- Methods delegated via `setattr` at construction time — no performance impact
|
|
14
|
+
|
|
15
|
+
#### **CI & Build Improvements**
|
|
16
|
+
- `pytest_asyncio_mode = "auto"` — prevents pytest-asyncio breaking changes across versions
|
|
17
|
+
- `isolated_build = True` in tox — proper PEP 517 builds with setuptools_scm
|
|
18
|
+
- `check_wrapper_parity.py` updated to scan facade files alongside the main client
|
|
19
|
+
|
|
20
|
+
### 🐛 Bug Fixes & Cleanup
|
|
21
|
+
- `CacheManager` docstring corrected — Redis backend documented as "planned"
|
|
22
|
+
- `readme_renderer[md]` moved to dev extras (was incorrectly in runtime dependencies)
|
|
23
|
+
- Orphaned `src/ffbb_api_client_v3/` directory removed
|
|
24
|
+
- `benchmark_search_organisme.py` moved to `scripts/`
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Version 2.1.0 (Previous Release)
|
|
4
29
|
|
|
5
30
|
### 🚀 Major Features & Improvements
|
|
6
31
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"""Client classes for FFBB API interactions."""
|
|
2
2
|
|
|
3
|
+
from ._rest_facade import _RestFacade
|
|
4
|
+
from ._search_facade import _SearchFacade
|
|
3
5
|
from .api_ffbb_app_client import ApiFFBBAppClient
|
|
4
6
|
from .ffbb_data_client import FFBBDataClient
|
|
5
7
|
from .meilisearch_client import MeilisearchClient
|
|
@@ -10,4 +12,6 @@ __all__ = [
|
|
|
10
12
|
"FFBBDataClient",
|
|
11
13
|
"MeilisearchClient",
|
|
12
14
|
"MeilisearchFFBBClient",
|
|
15
|
+
"_RestFacade",
|
|
16
|
+
"_SearchFacade",
|
|
13
17
|
]
|