ffbb-data-client 2.3.1__tar.gz → 2.3.2__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.3.1 → ffbb_data_client-2.3.2}/.github/workflows/release-after-discovery-merge.yml +0 -1
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/PKG-INFO +8 -9
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/README.md +7 -8
- ffbb_data_client-2.3.2/graphify-cross-repo.json +28 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/token_manager.py +48 -7
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client.egg-info/PKG-INFO +8 -9
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client.egg-info/SOURCES.txt +4 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_305_token_manager.py +25 -18
- ffbb_data_client-2.3.2/tools/add_cross_repo_edges.py +502 -0
- ffbb_data_client-2.3.2/tools/graphify-cross-repo.sh +64 -0
- ffbb_data_client-2.3.2/tools/graphify_cross_repo.py +593 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.agents/rules/antigravity-rtk-rules.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.coveragerc +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/dependabot.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/scripts/ai-pr-reviewer.js +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/scripts/check_wrapper_parity.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/scripts/resolve-bolt-conflict.js +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/workflows/ai-pr-reviewer.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/workflows/check_wrapper_parity.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/workflows/ci.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/workflows/codeql.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/workflows/deploy-pages.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/workflows/publish.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.github/workflows/update-ffbb-api-discovery.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.gitignore +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.isort.cfg +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.jules/bolt.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.pre-commit-config.yaml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/.readthedocs.yml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/AGENTS.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/AUTHORS.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/CHANGELOG.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/CODE_OF_CONDUCT.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/CONTRIBUTING.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/LICENSE.txt +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/LOCAL_CI_GUIDE.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/RELEASE_NOTES.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/SECURITY.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/api.ffbb.app.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/api_update_summary.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/collections.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/endpoint_discovery.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/indexes.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/meilisearch-prod.ffbb.app.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/openapi.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/openapi_full.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/data/type_discovery_corrections.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/Makefile +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/_static/.gitignore +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/architecture.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/authors.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/changelog.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/conf.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/contributing.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/examples.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/index.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/license.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/migration.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/readme.rst +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/requirements.txt +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/test_strategy.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/docs/testing_conventions.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/examples/README.md +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/examples/complete_usage_example.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/examples/quick_start.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/examples/team_ranking_analysis.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/pyproject.toml +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/pytest.ini +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/run-ci-locally.sh +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/scripts/benchmark_search_organisme.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/scripts/discover_endpoints.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/scripts/discover_types.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/setup.cfg +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/setup.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/clients/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/clients/_rest_facade.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/clients/_search_facade.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/clients/api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/clients/ffbb_data_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/clients/meilisearch_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/clients/meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/config.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/data/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/data/collections.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/data/endpoint_discovery.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/data/indexes.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/data/openapi.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/data/openapi_full.json +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/helpers/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/helpers/http_requests_helper.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/helpers/http_requests_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/helpers/meilisearch_client_extension.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/helpers/multi_search_query_helper.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/affiche.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/cartographie.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/categorie.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/categorie_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/clock.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/club_contacts.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/code.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/commune.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_fields.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_id.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_id_categorie.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_id_sexe.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_origine.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_origine_type_competition.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competition_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competitions_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competitions_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competitions_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competitions_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/competitions_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/configuration_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/contact_info.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/content_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/coordonnees.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/coordonnees_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/document_flyer.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/document_flyer_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/engagement_contacts.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/engagements_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/engagements_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/engagements_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/engagements_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/etat.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/external_competition_id.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/external_id.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/field_set.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/folder.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/formation_session.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/formations_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/formations_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/formations_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/formations_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/game_stats_model.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/game_stats_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/generic_search.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/geo.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/geo_sort_order.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_commune_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_competition_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_configuration_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_engagement_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_entraineur_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_formation_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_officiel_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_organisme_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_poule_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_pratique_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_rencontre_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_saisons_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_salle_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_terrain_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/get_tournoi_response.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/gradient_color.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/id_poule.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/jour.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/label.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/labellisation.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/live.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/lives.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/logo.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_queries.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_competitions.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_engagements.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_formations.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_organismes.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_pratiques.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_rencontres.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_salles.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_terrains.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_result_tournois.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_results.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/multi_search_results_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/nature_sol.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/niveau.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/niveau_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/niveau_extractor.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/niveau_info.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/niveau_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/niveau_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/objectif.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organisateur.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organisateur_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organisme_fields.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organisme_id_pere.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organismes_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organismes_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organismes_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organismes_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/organismes_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/phase_code.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/poule.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/poule_fields.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/poule_rencontre_item_model.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/poules_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/poules_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/pratique.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/pratiques_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/pratiques_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/pratiques_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/pratiques_hit_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/pratiques_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/pratiques_type_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/publication_internet.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/purple_logo.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/query_fields_manager.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/ranking_engagement.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/rankings_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/rencontres_engagement.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/rencontres_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/rencontres_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/rencontres_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/rencontres_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/saison.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/saison_fields.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/saisons_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/saisons_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/salle.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/salles_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/salles_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/salles_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/salles_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/sexe.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/sexe_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/source.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/status.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/team_engagement.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/team_ranking.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_name.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_sexe_enum.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/terrains_storage.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournoi_type_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournoi_type_enum.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournoi_types_3x3.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournoi_types_3x3_libelle.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournois_facet_distribution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournois_facet_stats.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournois_hit.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournois_hit_type.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournois_libelle.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/tournois_multi_search_query.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/type_association.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/type_association_libelle.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/type_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/type_competition.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/type_competition_generique.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/type_enum.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/models/type_league.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/py.typed +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/cache_manager.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/concurrency_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/converter_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/input_validation.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/retry_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/secure_logging.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client.egg-info/dependency_links.txt +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client.egg-info/not-zip-safe +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client.egg-info/requires.txt +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client.egg-info/top_level.txt +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/conftest.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/e2e/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/e2e/conftest.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/conftest.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/test_500_user_journey.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/test_501_user_journey_v3.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/test_502_enhanced_integration.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/test_503_secure_logging.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/test_504_input_validation.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/test_505_retry_timeout.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/integration/test_506_raw_json_model_conversion.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_200_api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_201_unit_tests_core.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_202_meilisearch_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_203_meilisearch_client_extension.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_204_ffbb_data_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_205_meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_206_coverage_gaps_clients.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_207_coverage_clients_extended.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_208_new_methods_coverage.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_209_automatic_token_resolution.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_210_targeted_clients_helpers_coverage.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_async_methods.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_meilisearch_async.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_v2_backport_search.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_v3_new_features.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/clients/test_warm_cache.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/conftest.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/helpers/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/helpers/test_400_http_helpers.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/helpers/test_meilisearch_client_extension_recursive_pagination.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_100_competition_id_categorie.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_101_competition_id_sexe.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_102_competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_103_competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_104_competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_105_competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_106_competition_origine.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_107_id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_108_id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_109_id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_110_labellisation.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_111_niveau_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_112_purple_logo.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_113_salle.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_114_tournoi_type_class.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_115_type_association_libelle.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_116_type_competition_generique.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_117_organisateur.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_118_competition_id.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_119_terrains_inner_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_120_pratiques_inner_models.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_121_to_dict_round_trip.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_122_coverage_gaps.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_123_missing_coverage.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_123_v2_backport.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_124_targeted_coverage_gains.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/models/test_dx_aliases.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/__init__.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_300_secure_logging.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_301_input_validation.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_302_retry_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_303_cache_manager.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_304_config.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_306_converter_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_307_coverage_gaps_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_308_converter_utils_extended.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_309_concurrency_utils.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tools/update_agents_md.py +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tox.ini +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/website/assets/logo.webp +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/website/css/style.css +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/website/index.html +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/website/robots.txt +0 -0
- {ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/website/sitemap.xml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ffbb-data-client
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.2
|
|
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
|
|
@@ -87,18 +87,17 @@ Dynamic: license-file
|
|
|
87
87
|
|
|
88
88
|
---
|
|
89
89
|
|
|
90
|
-
## 🚀 Version v2.
|
|
90
|
+
## 🚀 Version v2.3.1 — Juin 2026
|
|
91
91
|
|
|
92
92
|
Principales évolutions récentes :
|
|
93
93
|
|
|
94
|
-
- **
|
|
95
|
-
- **
|
|
96
|
-
- **
|
|
97
|
-
- **
|
|
98
|
-
- **
|
|
99
|
-
- **nettoyage** : suppression du shim `ffbb_api_client_v3`, scripts morts et code mort (`invalidate_pattern`).
|
|
94
|
+
- **détection de drift API** : surveillance des changements de schéma Directus (propriétés/types/nullabilité) ;
|
|
95
|
+
- **détection de drift Meilisearch** : agrégation robuste des attributs (`sampleKeys`) sur plusieurs hits ;
|
|
96
|
+
- **automatisation CI/CD** : ouverture automatique de PR lorsqu'un drift est détecté ;
|
|
97
|
+
- **fiabilité outillage** : alignement pyupgrade/isort/pre-commit pour des runs CI reproductibles ;
|
|
98
|
+
- **qualité/sécurité** : corrections CodeQL et nettoyage des alertes d'analyse statique.
|
|
100
99
|
|
|
101
|
-
Voir aussi : [
|
|
100
|
+
Voir aussi : [CHANGELOG.md](https://github.com/nickdesi/ffbb-data-client/blob/master/CHANGELOG.md) et [RELEASE_NOTES.md](https://github.com/nickdesi/ffbb-data-client/blob/master/RELEASE_NOTES.md).
|
|
102
101
|
|
|
103
102
|
---
|
|
104
103
|
|
|
@@ -35,18 +35,17 @@
|
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
38
|
-
## 🚀 Version v2.
|
|
38
|
+
## 🚀 Version v2.3.1 — Juin 2026
|
|
39
39
|
|
|
40
40
|
Principales évolutions récentes :
|
|
41
41
|
|
|
42
|
-
- **
|
|
43
|
-
- **
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
47
|
-
- **nettoyage** : suppression du shim `ffbb_api_client_v3`, scripts morts et code mort (`invalidate_pattern`).
|
|
42
|
+
- **détection de drift API** : surveillance des changements de schéma Directus (propriétés/types/nullabilité) ;
|
|
43
|
+
- **détection de drift Meilisearch** : agrégation robuste des attributs (`sampleKeys`) sur plusieurs hits ;
|
|
44
|
+
- **automatisation CI/CD** : ouverture automatique de PR lorsqu'un drift est détecté ;
|
|
45
|
+
- **fiabilité outillage** : alignement pyupgrade/isort/pre-commit pour des runs CI reproductibles ;
|
|
46
|
+
- **qualité/sécurité** : corrections CodeQL et nettoyage des alertes d'analyse statique.
|
|
48
47
|
|
|
49
|
-
Voir aussi : [
|
|
48
|
+
Voir aussi : [CHANGELOG.md](https://github.com/nickdesi/ffbb-data-client/blob/master/CHANGELOG.md) et [RELEASE_NOTES.md](https://github.com/nickdesi/ffbb-data-client/blob/master/RELEASE_NOTES.md).
|
|
50
49
|
|
|
51
50
|
---
|
|
52
51
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cross_repo": {
|
|
3
|
+
"repos": [
|
|
4
|
+
{
|
|
5
|
+
"name": "ffbb-data-client",
|
|
6
|
+
"path": "${PWD}",
|
|
7
|
+
"description": "SDK Python pour l'API FFBB"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"name": "FFBB MCP server",
|
|
11
|
+
"path": "/Volumes/HomeExt/Users/Nicolas/Documents/Repo GIT/FFBB MCP server",
|
|
12
|
+
"description": "Serveur MCP pour l'API FFBB"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"output_dir": "graphify-out",
|
|
16
|
+
"merged_filename": "merged-graph.json",
|
|
17
|
+
"auto_update": true,
|
|
18
|
+
"auto_cluster": true,
|
|
19
|
+
"auto_cross_repo_edges": true,
|
|
20
|
+
"skip_repos": []
|
|
21
|
+
},
|
|
22
|
+
"settings": {
|
|
23
|
+
"parallel_update": true,
|
|
24
|
+
"timeout_per_repo": 600,
|
|
25
|
+
"force_rebuild": false,
|
|
26
|
+
"generate_report": true
|
|
27
|
+
}
|
|
28
|
+
}
|
{ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/src/ffbb_data_client/utils/token_manager.py
RENAMED
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import json
|
|
5
6
|
import os
|
|
7
|
+
from collections.abc import Callable
|
|
6
8
|
from dataclasses import dataclass
|
|
9
|
+
from typing import Any, TypeVar, cast
|
|
10
|
+
|
|
11
|
+
from httpx import ReadTimeout
|
|
7
12
|
|
|
8
13
|
from ..config import (
|
|
9
14
|
API_FFBB_BASE_URL,
|
|
@@ -12,9 +17,33 @@ from ..config import (
|
|
|
12
17
|
ENV_API_TOKEN,
|
|
13
18
|
ENV_MEILISEARCH_TOKEN,
|
|
14
19
|
)
|
|
15
|
-
from ..helpers.http_requests_helper import catch_result
|
|
16
20
|
from ..models.configuration_models import GetConfigurationResponse
|
|
17
21
|
from ..utils.cache_manager import CacheConfig, CacheManager
|
|
22
|
+
from ..utils.retry_utils import (
|
|
23
|
+
get_default_retry_config,
|
|
24
|
+
get_default_timeout_config,
|
|
25
|
+
make_http_request_with_retry,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
T = TypeVar("T")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _catch_result(callback: Callable[[], T], is_retrieving: bool = False) -> T | None:
|
|
32
|
+
"""Local retry wrapper to avoid importing the helpers package and creating cycles."""
|
|
33
|
+
try:
|
|
34
|
+
return callback()
|
|
35
|
+
except json.decoder.JSONDecodeError as e:
|
|
36
|
+
if e.msg == "Expecting value":
|
|
37
|
+
return None
|
|
38
|
+
raise e
|
|
39
|
+
except ReadTimeout as e:
|
|
40
|
+
if not is_retrieving:
|
|
41
|
+
return _catch_result(callback, True)
|
|
42
|
+
raise e
|
|
43
|
+
except ConnectionError as e:
|
|
44
|
+
if not is_retrieving:
|
|
45
|
+
return _catch_result(callback, True)
|
|
46
|
+
raise e
|
|
18
47
|
|
|
19
48
|
|
|
20
49
|
@dataclass
|
|
@@ -96,18 +125,30 @@ class TokenManager:
|
|
|
96
125
|
config_url = f"{API_FFBB_BASE_URL}{ENDPOINT_CONFIGURATION}"
|
|
97
126
|
headers = {"user-agent": DEFAULT_USER_AGENT}
|
|
98
127
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
data = catch_result(
|
|
103
|
-
lambda: http_get_json(
|
|
128
|
+
def _get_json() -> dict[str, Any]:
|
|
129
|
+
response = make_http_request_with_retry(
|
|
130
|
+
"GET",
|
|
104
131
|
config_url,
|
|
105
132
|
headers,
|
|
106
133
|
cached_session=cached_session,
|
|
107
134
|
retry_config=get_default_retry_config(),
|
|
108
135
|
timeout_config=get_default_timeout_config(),
|
|
109
136
|
)
|
|
110
|
-
|
|
137
|
+
response.raise_for_status()
|
|
138
|
+
|
|
139
|
+
try:
|
|
140
|
+
import orjson # type: ignore
|
|
141
|
+
|
|
142
|
+
return cast(dict[str, Any], orjson.loads(response.text.strip()))
|
|
143
|
+
except ImportError:
|
|
144
|
+
try:
|
|
145
|
+
import ujson # type: ignore
|
|
146
|
+
|
|
147
|
+
return cast(dict[str, Any], ujson.loads(response.text.strip()))
|
|
148
|
+
except ImportError:
|
|
149
|
+
return cast(dict[str, Any], json.loads(response.text.strip()))
|
|
150
|
+
|
|
151
|
+
data = _catch_result(_get_json)
|
|
111
152
|
|
|
112
153
|
actual_data = data.get("data") if data and isinstance(data, dict) else data
|
|
113
154
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ffbb-data-client
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.2
|
|
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
|
|
@@ -87,18 +87,17 @@ Dynamic: license-file
|
|
|
87
87
|
|
|
88
88
|
---
|
|
89
89
|
|
|
90
|
-
## 🚀 Version v2.
|
|
90
|
+
## 🚀 Version v2.3.1 — Juin 2026
|
|
91
91
|
|
|
92
92
|
Principales évolutions récentes :
|
|
93
93
|
|
|
94
|
-
- **
|
|
95
|
-
- **
|
|
96
|
-
- **
|
|
97
|
-
- **
|
|
98
|
-
- **
|
|
99
|
-
- **nettoyage** : suppression du shim `ffbb_api_client_v3`, scripts morts et code mort (`invalidate_pattern`).
|
|
94
|
+
- **détection de drift API** : surveillance des changements de schéma Directus (propriétés/types/nullabilité) ;
|
|
95
|
+
- **détection de drift Meilisearch** : agrégation robuste des attributs (`sampleKeys`) sur plusieurs hits ;
|
|
96
|
+
- **automatisation CI/CD** : ouverture automatique de PR lorsqu'un drift est détecté ;
|
|
97
|
+
- **fiabilité outillage** : alignement pyupgrade/isort/pre-commit pour des runs CI reproductibles ;
|
|
98
|
+
- **qualité/sécurité** : corrections CodeQL et nettoyage des alertes d'analyse statique.
|
|
100
99
|
|
|
101
|
-
Voir aussi : [
|
|
100
|
+
Voir aussi : [CHANGELOG.md](https://github.com/nickdesi/ffbb-data-client/blob/master/CHANGELOG.md) et [RELEASE_NOTES.md](https://github.com/nickdesi/ffbb-data-client/blob/master/RELEASE_NOTES.md).
|
|
102
101
|
|
|
103
102
|
---
|
|
104
103
|
|
|
@@ -13,6 +13,7 @@ LOCAL_CI_GUIDE.md
|
|
|
13
13
|
README.md
|
|
14
14
|
RELEASE_NOTES.md
|
|
15
15
|
SECURITY.md
|
|
16
|
+
graphify-cross-repo.json
|
|
16
17
|
pyproject.toml
|
|
17
18
|
pytest.ini
|
|
18
19
|
run-ci-locally.sh
|
|
@@ -350,6 +351,9 @@ tests/unit/utils/test_306_converter_utils.py
|
|
|
350
351
|
tests/unit/utils/test_307_coverage_gaps_utils.py
|
|
351
352
|
tests/unit/utils/test_308_converter_utils_extended.py
|
|
352
353
|
tests/unit/utils/test_309_concurrency_utils.py
|
|
354
|
+
tools/add_cross_repo_edges.py
|
|
355
|
+
tools/graphify-cross-repo.sh
|
|
356
|
+
tools/graphify_cross_repo.py
|
|
353
357
|
tools/update_agents_md.py
|
|
354
358
|
website/index.html
|
|
355
359
|
website/robots.txt
|
{ffbb_data_client-2.3.1 → ffbb_data_client-2.3.2}/tests/unit/utils/test_305_token_manager.py
RENAMED
|
@@ -61,20 +61,21 @@ class Test020TokenManager(unittest.TestCase):
|
|
|
61
61
|
self.assertEqual(tokens1.api_token, "env_api_token")
|
|
62
62
|
self.assertEqual(tokens2.api_token, "env_api_token")
|
|
63
63
|
|
|
64
|
-
@patch("ffbb_data_client.
|
|
64
|
+
@patch("ffbb_data_client.utils.token_manager.make_http_request_with_retry")
|
|
65
65
|
def test_get_tokens_from_api_when_env_missing(self, mock_http):
|
|
66
66
|
"""Test tokens are fetched from API when env vars are missing."""
|
|
67
67
|
# Clear env vars
|
|
68
68
|
os.environ.pop(ENV_API_TOKEN, None)
|
|
69
69
|
os.environ.pop(ENV_MEILISEARCH_TOKEN, None)
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
71
|
+
from unittest.mock import MagicMock
|
|
72
|
+
|
|
73
|
+
mock_response = MagicMock()
|
|
74
|
+
mock_response.text = (
|
|
75
|
+
'{"data": {"id": 1, "key_dh": "api_from_fetch", "key_ms": "ms_from_fetch"}}'
|
|
76
|
+
)
|
|
77
|
+
mock_response.status_code = 200
|
|
78
|
+
mock_http.return_value = mock_response
|
|
78
79
|
|
|
79
80
|
tokens = TokenManager.get_tokens()
|
|
80
81
|
|
|
@@ -82,34 +83,40 @@ class Test020TokenManager(unittest.TestCase):
|
|
|
82
83
|
self.assertEqual(tokens.meilisearch_token, "ms_from_fetch")
|
|
83
84
|
mock_http.assert_called_once()
|
|
84
85
|
|
|
85
|
-
@patch("ffbb_data_client.
|
|
86
|
+
@patch("ffbb_data_client.utils.token_manager.make_http_request_with_retry")
|
|
86
87
|
def test_get_tokens_api_failure(self, mock_http):
|
|
87
88
|
"""Test error handling when API fetch fails."""
|
|
88
89
|
# Clear env vars
|
|
89
90
|
os.environ.pop(ENV_API_TOKEN, None)
|
|
90
91
|
os.environ.pop(ENV_MEILISEARCH_TOKEN, None)
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
from unittest.mock import MagicMock
|
|
94
|
+
|
|
95
|
+
mock_response = MagicMock()
|
|
96
|
+
mock_response.text = '{"data": null}'
|
|
97
|
+
mock_response.status_code = 200
|
|
98
|
+
mock_http.return_value = mock_response
|
|
93
99
|
|
|
94
100
|
with self.assertRaises(RuntimeError) as context:
|
|
95
101
|
TokenManager.get_tokens()
|
|
96
102
|
|
|
97
103
|
self.assertIn("Failed to fetch configuration", str(context.exception))
|
|
98
104
|
|
|
99
|
-
@patch("ffbb_data_client.
|
|
105
|
+
@patch("ffbb_data_client.utils.token_manager.make_http_request_with_retry")
|
|
100
106
|
def test_get_tokens_partial_env_fetches_from_api(self, mock_http):
|
|
101
107
|
"""Test API fetch when only one env var is set."""
|
|
102
108
|
# Set only one env var
|
|
103
109
|
os.environ[ENV_API_TOKEN] = "partial_token"
|
|
104
110
|
os.environ.pop(ENV_MEILISEARCH_TOKEN, None)
|
|
105
111
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
from unittest.mock import MagicMock
|
|
113
|
+
|
|
114
|
+
mock_response = MagicMock()
|
|
115
|
+
mock_response.text = (
|
|
116
|
+
'{"data": {"id": 1, "key_dh": "api_from_fetch", "key_ms": "ms_from_fetch"}}'
|
|
117
|
+
)
|
|
118
|
+
mock_response.status_code = 200
|
|
119
|
+
mock_http.return_value = mock_response
|
|
113
120
|
|
|
114
121
|
tokens = TokenManager.get_tokens()
|
|
115
122
|
|