ffbb-data-client 2.4.29__tar.gz → 2.4.30__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.4.29 → ffbb_data_client-2.4.30}/PKG-INFO +1 -1
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/api.py +139 -2
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/helpers/meilisearch_client_extension.py +11 -4
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/PKG-INFO +1 -1
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/SOURCES.txt +1 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/scm_file_list.json +1 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/scm_version.json +2 -2
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/helpers/test_meilisearch_client_extension_recursive_pagination.py +9 -0
- ffbb_data_client-2.4.30/tests/unit/test_314_api_endpoints.py +92 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.agents/rules/antigravity-rtk-rules.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.coveragerc +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.gitattributes +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/FUNDING.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/dependabot.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/scripts/ai-pr-reviewer.cjs +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/scripts/check_wrapper_parity.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/ai-pr-reviewer.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/check_wrapper_parity.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/ci.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/codeql.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/deploy-pages.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/keep-ffbb-api-discovery-alive.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/publish.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/release-after-discovery-merge.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/update-ffbb-api-discovery.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.gitignore +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.isort.cfg +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.jules/bolt.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.omc/skills/codeql-security-hardening-expertise.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.omc/skills/pypi-immutable-release-workflow.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.omc/skills/terminal-output-hygiene-expertise.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.pre-commit-config.yaml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.readthedocs.yml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/AGENTS.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/AUTHORS.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/CHANGELOG.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/CODE_OF_CONDUCT.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/CONTRIBUTING.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/DESIGN.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/Dockerfile +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/LICENSE.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/LOCAL_CI_GUIDE.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/README.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/RELEASE_NOTES.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/SECURITY.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/api.ffbb.app.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/api_update_summary.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/collections.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/endpoint_discovery.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/field_dictionary.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/indexes.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/meilisearch-prod.ffbb.app.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/openapi.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/openapi_full.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/permission_drift_summary.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/permission_matrix.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/data/type_discovery_corrections.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/Makefile +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/_static/.gitignore +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/architecture.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/authors.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/changelog.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/conf.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/contributing.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/data_dictionary.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/examples.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/index.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/license.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/migration.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/readme.rst +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/requirements.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/test_strategy.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/docs/testing_conventions.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/examples/README.md +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/examples/complete_usage_example.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/examples/quick_start.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/examples/team_ranking_analysis.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/pyproject.toml +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/run-ci-locally.sh +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/scripts/benchmark_concurrent_pagination.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/scripts/benchmark_search_organisme.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/scripts/discover_endpoints.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/scripts/discover_permissions.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/scripts/discover_types.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/setup.cfg +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/setup.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_helpers.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/competition.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/external.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/getters.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/list_methods.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/organisme.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_rest_facade.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_search_facade.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/ffbb_data_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/meilisearch_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/config.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/collections.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/endpoint_discovery.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/field_dictionary.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/indexes.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/openapi.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/permission_matrix.json +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/exceptions.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/helpers/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/helpers/http_requests_helper.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/helpers/http_requests_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/helpers/multi_search_query_helper.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/helpers/normalization.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/affiche.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/cartographie.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/categorie.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/categorie_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/clock.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/club_contacts.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/code.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/commune.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_fields.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_id.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_id_categorie.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_id_sexe.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_origine.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_origine_type_competition.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competition_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competitions_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competitions_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competitions_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competitions_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/competitions_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/configuration_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/contact_info.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/content_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/coordonnees.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/coordonnees_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/document_flyer.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/document_flyer_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/engagement_contacts.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/engagements_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/engagements_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/engagements_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/engagements_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/etat.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/external_competition_id.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/external_id.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/field_set.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/folder.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/formation_session.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/formations_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/formations_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/formations_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/formations_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/game_stats_model.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/game_stats_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/generic_search.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/geo.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/geo_sort_order.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_commune_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_competition_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_configuration_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_engagement_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_entraineur_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_formation_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_officiel_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_organisme_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_poule_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_pratique_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_rencontre_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_saisons_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_salle_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_terrain_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/get_tournoi_response.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/gradient_color.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/id_poule.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/jour.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/label.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/labellisation.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/live.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/lives.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/logo.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_queries.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_competitions.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_engagements.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_formations.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_organismes.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_pratiques.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_rencontres.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_salles.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_terrains.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_result_tournois.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_results.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/multi_search_results_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/nature_sol.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/niveau.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/niveau_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/niveau_extractor.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/niveau_info.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/niveau_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/niveau_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/objectif.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organisateur.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organisateur_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organisme_fields.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organisme_id_pere.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organismes_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organismes_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organismes_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organismes_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/organismes_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/phase_code.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/poule.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/poule_fields.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/poule_rencontre_item_model.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/poules_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/poules_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/pratique.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/pratiques_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/pratiques_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/pratiques_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/pratiques_hit_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/pratiques_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/pratiques_type_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/publication_internet.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/purple_logo.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/query_fields_manager.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/ranking_engagement.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/rankings_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/rencontres_engagement.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/rencontres_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/rencontres_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/rencontres_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/rencontres_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/saison.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/saison_fields.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/saisons_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/saisons_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/salle.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/salles_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/salles_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/salles_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/salles_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/sexe.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/sexe_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/source.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/status.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/team_engagement.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/team_ranking.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_name.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_sexe_enum.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/terrains_storage.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournoi_type_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournoi_type_enum.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournoi_types_3x3.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournoi_types_3x3_libelle.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournois_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournois_facet_stats.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournois_hit.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournois_hit_type.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournois_libelle.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/tournois_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/type_association.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/type_association_libelle.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/type_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/type_competition.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/type_enum.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/models/type_league.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/py.typed +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/cache_manager.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/concurrency_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/converter_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/input_validation.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/retry_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/secure_logging.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/utils/token_manager.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/dependency_links.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/not-zip-safe +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/requires.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/top_level.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/conftest.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/e2e/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/e2e/conftest.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/conftest.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/test_500_user_journey.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/test_501_user_journey_v3.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/test_502_enhanced_integration.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/test_503_secure_logging.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/test_504_input_validation.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/test_505_retry_timeout.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/integration/test_506_raw_json_model_conversion.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_200_api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_201_unit_tests_core.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_202_meilisearch_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_203_meilisearch_client_extension.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_204_ffbb_data_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_205_meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_206_coverage_gaps_clients.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_207_coverage_clients_extended.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_208_new_methods_coverage.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_209_automatic_token_resolution.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_210_targeted_clients_helpers_coverage.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_api_optimizations.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_async_methods.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_meilisearch_async.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_search_many.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_v2_backport_search.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_v3_new_features.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_v4_aiter_and_contacts.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/clients/test_warm_cache.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/conftest.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/helpers/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/helpers/test_400_http_helpers.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/helpers/test_meilisearch_pagination_concurrent.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/helpers/test_normalization.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_100_competition_id_categorie.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_101_competition_id_sexe.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_102_competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_103_competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_104_competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_105_competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_106_competition_origine.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_107_id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_108_id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_109_id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_110_labellisation.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_111_niveau_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_112_purple_logo.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_113_salle.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_114_tournoi_type_class.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_115_type_association_libelle.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_116_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_117_organisateur.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_118_competition_id.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_119_terrains_inner_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_120_pratiques_inner_models.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_121_to_dict_round_trip.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_122_coverage_gaps.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_123_missing_coverage.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_123_v2_backport.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_124_targeted_coverage_gains.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/models/test_dx_aliases.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/test_310_discover_endpoints.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/test_311_normalize_team_name.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/test_312_api_cors.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/test_313_api_metrics.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/test_314_discover_permissions.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/__init__.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_300_secure_logging.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_301_input_validation.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_302_retry_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_303_cache_manager.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_304_config.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_305_token_manager.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_306_converter_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_307_coverage_gaps_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_308_converter_utils_extended.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tests/unit/utils/test_309_concurrency_utils.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tools/update_agents_md.py +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/tox.ini +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/assets/apple-touch-icon.png +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/assets/favicon-192x192.png +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/assets/favicon-48x48.png +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/assets/favicon-96x96.png +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/assets/favicon.ico +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/assets/logo.webp +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/css/style.css +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/favicon.ico +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/index.html +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/llms-full.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/llms.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/robots.txt +0 -0
- {ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/website/sitemap.xml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ffbb-data-client
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.30
|
|
4
4
|
Summary: API FFBB — SDK Python moderne & asynchrone pour les donnees officielles de la Federation Francaise de BasketBall (clubs, classements, calendriers, lives, Meilisearch). Alternative moderne a ffbb-api-client.
|
|
5
5
|
Home-page: https://github.com/nickdesi/ffbb-data-client
|
|
6
6
|
Author: nickdesi
|
|
@@ -97,7 +97,7 @@ l'ensemble des données publiques de la **Fédération Française de BasketBall*
|
|
|
97
97
|
- ⭐ **Code Source GitHub** : [`https://github.com/nickdesi/ffbb-data-client`](https://github.com/nickdesi/ffbb-data-client)
|
|
98
98
|
- 📖 **Documentation Sphinx complète** : [`https://nickdesi.github.io/ffbb-data-client/`](https://nickdesi.github.io/ffbb-data-client/)
|
|
99
99
|
""",
|
|
100
|
-
version="2.4.
|
|
100
|
+
version="2.4.30",
|
|
101
101
|
openapi_tags=TAGS_METADATA,
|
|
102
102
|
docs_url=None,
|
|
103
103
|
redoc_url=None,
|
|
@@ -693,9 +693,23 @@ async def search_ffbb(
|
|
|
693
693
|
status_code=400,
|
|
694
694
|
detail="Le terme de recherche doit comporter au moins 2 caractères.",
|
|
695
695
|
)
|
|
696
|
+
# Résolution des acronymes fréquents (ex: SCBA -> Stade Clermontois Basket Auvergne)
|
|
697
|
+
_SEARCH_ACRONYMS = {
|
|
698
|
+
"SCBA": "Stade Clermontois Basket Auvergne",
|
|
699
|
+
"SCBF": "Stade Clermontois Basket Féminin",
|
|
700
|
+
"ASVEL": "LDLC ASVEL",
|
|
701
|
+
"SIG": "Strasbourg IG",
|
|
702
|
+
"JDA": "JDA Dijon",
|
|
703
|
+
"MSB": "Le Mans Sarthe Basket",
|
|
704
|
+
"EBPLO": "Elan Béarnais",
|
|
705
|
+
"CSP": "Limoges CSP",
|
|
706
|
+
"BCM": "Gravelines Dunkerque",
|
|
707
|
+
"ESSM": "Le Portel",
|
|
708
|
+
}
|
|
709
|
+
effective_query = _SEARCH_ACRONYMS.get(search_term.upper(), search_term)
|
|
696
710
|
client = get_client()
|
|
697
711
|
try:
|
|
698
|
-
results = client.multi_search(name=
|
|
712
|
+
results = client.multi_search(name=effective_query)
|
|
699
713
|
return results
|
|
700
714
|
except Exception as e:
|
|
701
715
|
raise HTTPException(status_code=500, detail=f"Erreur de recherche: {e}")
|
|
@@ -975,6 +989,14 @@ async def get_club_matches(
|
|
|
975
989
|
else (parsed_cat.numero_equipe if parsed_cat.numero_equipe else 1)
|
|
976
990
|
)
|
|
977
991
|
|
|
992
|
+
res1 = getattr(m, "resultatEquipe1", None)
|
|
993
|
+
res2 = getattr(m, "resultatEquipe2", None)
|
|
994
|
+
is_played = bool(
|
|
995
|
+
getattr(m, "joue", False) or res1 is not None or res2 is not None
|
|
996
|
+
)
|
|
997
|
+
score_local = res1 if is_home else res2
|
|
998
|
+
score_opp = res2 if is_home else res1
|
|
999
|
+
|
|
978
1000
|
match_data: dict[str, Any] = {
|
|
979
1001
|
"ffbbMatchId": m_id,
|
|
980
1002
|
"team": scba_team,
|
|
@@ -990,6 +1012,14 @@ async def get_club_matches(
|
|
|
990
1012
|
"competition": comp_nom,
|
|
991
1013
|
"poule": poule_nom,
|
|
992
1014
|
"pouleId": poule_id,
|
|
1015
|
+
"round": getattr(m, "numeroJournee", None)
|
|
1016
|
+
or getattr(m, "numero_journee", None),
|
|
1017
|
+
"isPlayed": is_played,
|
|
1018
|
+
"scoreLocal": score_local,
|
|
1019
|
+
"scoreOpponent": score_opp,
|
|
1020
|
+
"scoreEquipe1": res1,
|
|
1021
|
+
"scoreEquipe2": res2,
|
|
1022
|
+
"competitionUrl": getattr(m, "url_competition", "") or "",
|
|
993
1023
|
"teamLogo": club_logo_url,
|
|
994
1024
|
}
|
|
995
1025
|
if opponent_logo:
|
|
@@ -1164,6 +1194,113 @@ async def get_lives():
|
|
|
1164
1194
|
raise HTTPException(status_code=500, detail=str(e))
|
|
1165
1195
|
|
|
1166
1196
|
|
|
1197
|
+
@app.get(
|
|
1198
|
+
"/api/v1/rencontre/{rencontre_id}",
|
|
1199
|
+
tags=["Matchs & Calendriers"],
|
|
1200
|
+
summary="Détails complets d'une rencontre FFBB",
|
|
1201
|
+
response_description="Fiche officielle détaillée de la rencontre, scores, salle et officiels",
|
|
1202
|
+
)
|
|
1203
|
+
@app.get(
|
|
1204
|
+
"/api/v1/match/{rencontre_id}",
|
|
1205
|
+
tags=["Matchs & Calendriers"],
|
|
1206
|
+
summary="Détails complets d'une rencontre FFBB (alias /match)",
|
|
1207
|
+
include_in_schema=False,
|
|
1208
|
+
)
|
|
1209
|
+
async def get_rencontre_detail(
|
|
1210
|
+
rencontre_id: str = PathParam(
|
|
1211
|
+
...,
|
|
1212
|
+
description="ID FFBB de la rencontre (ex: '200000014753740')",
|
|
1213
|
+
examples=["200000014753740"],
|
|
1214
|
+
),
|
|
1215
|
+
):
|
|
1216
|
+
"""Retourne la fiche détaillée d'un match officiel FFBB avec scores, salle résolue et détails des équipes."""
|
|
1217
|
+
client = get_client()
|
|
1218
|
+
try:
|
|
1219
|
+
match_data = await client.get_rencontre_async(rencontre_id)
|
|
1220
|
+
if not match_data:
|
|
1221
|
+
raise HTTPException(
|
|
1222
|
+
status_code=404, detail=f"Rencontre {rencontre_id} introuvable."
|
|
1223
|
+
)
|
|
1224
|
+
return match_data
|
|
1225
|
+
except HTTPException:
|
|
1226
|
+
raise
|
|
1227
|
+
except Exception as e:
|
|
1228
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
1229
|
+
|
|
1230
|
+
|
|
1231
|
+
@app.get(
|
|
1232
|
+
"/api/v1/salle/{salle_id}",
|
|
1233
|
+
tags=["Clubs"],
|
|
1234
|
+
summary="Détails d'une salle / gymnase",
|
|
1235
|
+
response_description="Fiche gymnase avec adresse complète et géolocalisation",
|
|
1236
|
+
)
|
|
1237
|
+
async def get_salle_detail(
|
|
1238
|
+
salle_id: str = PathParam(
|
|
1239
|
+
...,
|
|
1240
|
+
description="ID FFBB de la salle (ex: '6543')",
|
|
1241
|
+
examples=["6543"],
|
|
1242
|
+
),
|
|
1243
|
+
):
|
|
1244
|
+
"""Retourne les informations complètes d'un gymnase (nom, rue, code postal, ville, cartographie)."""
|
|
1245
|
+
client = get_client()
|
|
1246
|
+
try:
|
|
1247
|
+
salle = await client.get_salle_async(salle_id)
|
|
1248
|
+
if not salle:
|
|
1249
|
+
raise HTTPException(
|
|
1250
|
+
status_code=404, detail=f"Salle {salle_id} introuvable."
|
|
1251
|
+
)
|
|
1252
|
+
return salle
|
|
1253
|
+
except HTTPException:
|
|
1254
|
+
raise
|
|
1255
|
+
except Exception as e:
|
|
1256
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
@app.get(
|
|
1260
|
+
"/api/v1/competition/{competition_id}",
|
|
1261
|
+
tags=["Compétitions & Poules"],
|
|
1262
|
+
summary="Détails d'une compétition",
|
|
1263
|
+
response_description="Informations sur la compétition et composition des poules",
|
|
1264
|
+
)
|
|
1265
|
+
async def get_competition_detail(
|
|
1266
|
+
competition_id: int = PathParam(
|
|
1267
|
+
...,
|
|
1268
|
+
ge=1,
|
|
1269
|
+
description="ID FFBB de la compétition (ex: 200000002898785)",
|
|
1270
|
+
examples=[200000002898785],
|
|
1271
|
+
),
|
|
1272
|
+
):
|
|
1273
|
+
"""Retourne les métadonnées et la liste des poules associées à une compétition officielle FFBB."""
|
|
1274
|
+
client = get_client()
|
|
1275
|
+
try:
|
|
1276
|
+
comp = await client.get_competition_async(competition_id)
|
|
1277
|
+
if not comp:
|
|
1278
|
+
raise HTTPException(
|
|
1279
|
+
status_code=404,
|
|
1280
|
+
detail=f"Compétition {competition_id} introuvable.",
|
|
1281
|
+
)
|
|
1282
|
+
return comp
|
|
1283
|
+
except HTTPException:
|
|
1284
|
+
raise
|
|
1285
|
+
except Exception as e:
|
|
1286
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
@app.get(
|
|
1290
|
+
"/api/v1/saisons",
|
|
1291
|
+
tags=["Compétitions & Poules"],
|
|
1292
|
+
summary="Liste des saisons officielles FFBB",
|
|
1293
|
+
response_description="Historique et saison active",
|
|
1294
|
+
)
|
|
1295
|
+
async def get_saisons():
|
|
1296
|
+
"""Retourne la liste des saisons officielles FFBB avec indication de la saison en cours."""
|
|
1297
|
+
client = get_client()
|
|
1298
|
+
try:
|
|
1299
|
+
return await client.get_saisons_async()
|
|
1300
|
+
except Exception as e:
|
|
1301
|
+
raise HTTPException(status_code=500, detail=str(e))
|
|
1302
|
+
|
|
1303
|
+
|
|
1167
1304
|
# --------------------------------------------------------------------------
|
|
1168
1305
|
# Modern API Documentation Interfaces (Scalar, Swagger UI, ReDoc)
|
|
1169
1306
|
# --------------------------------------------------------------------------
|
|
@@ -79,10 +79,11 @@ def _build_pagination_jobs(
|
|
|
79
79
|
return jobs
|
|
80
80
|
|
|
81
81
|
|
|
82
|
-
def _single_result(multi: MultiSearchResults, index: int) -> MultiSearchResults:
|
|
82
|
+
def _single_result(multi: MultiSearchResults, index: int) -> MultiSearchResults | None:
|
|
83
83
|
"""Isole le i-ème sous-résultat d'un multi_search dans un MultiSearchResults
|
|
84
84
|
à un élément, pour une fusion cohérente avec ``_merge_page``."""
|
|
85
|
-
|
|
85
|
+
if not multi.results or index >= len(multi.results):
|
|
86
|
+
return None
|
|
86
87
|
return MultiSearchResults(results=[multi.results[index]])
|
|
87
88
|
|
|
88
89
|
|
|
@@ -148,7 +149,10 @@ class MeilisearchClientExtension(MeilisearchClient):
|
|
|
148
149
|
out: list[tuple[int, int, MultiSearchResults | None]] = []
|
|
149
150
|
if new_result and new_result.results:
|
|
150
151
|
for k, (orig_idx, offset, _q) in enumerate(batch):
|
|
151
|
-
|
|
152
|
+
if k < len(new_result.results):
|
|
153
|
+
res = _single_result(new_result, k)
|
|
154
|
+
if res is not None:
|
|
155
|
+
out.append((orig_idx, offset, res))
|
|
152
156
|
return out
|
|
153
157
|
|
|
154
158
|
async def _fetch_batch_async(
|
|
@@ -162,7 +166,10 @@ class MeilisearchClientExtension(MeilisearchClient):
|
|
|
162
166
|
out: list[tuple[int, int, MultiSearchResults | None]] = []
|
|
163
167
|
if new_result and new_result.results:
|
|
164
168
|
for k, (orig_idx, offset, _q) in enumerate(batch):
|
|
165
|
-
|
|
169
|
+
if k < len(new_result.results):
|
|
170
|
+
res = _single_result(new_result, k)
|
|
171
|
+
if res is not None:
|
|
172
|
+
out.append((orig_idx, offset, res))
|
|
166
173
|
return out
|
|
167
174
|
|
|
168
175
|
def recursive_smart_multi_search(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ffbb-data-client
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.30
|
|
4
4
|
Summary: API FFBB — SDK Python moderne & asynchrone pour les donnees officielles de la Federation Francaise de BasketBall (clubs, classements, calendriers, lives, Meilisearch). Alternative moderne a ffbb-api-client.
|
|
5
5
|
Home-page: https://github.com/nickdesi/ffbb-data-client
|
|
6
6
|
Author: nickdesi
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/SOURCES.txt
RENAMED
|
@@ -320,6 +320,7 @@ tests/unit/test_310_discover_endpoints.py
|
|
|
320
320
|
tests/unit/test_311_normalize_team_name.py
|
|
321
321
|
tests/unit/test_312_api_cors.py
|
|
322
322
|
tests/unit/test_313_api_metrics.py
|
|
323
|
+
tests/unit/test_314_api_endpoints.py
|
|
323
324
|
tests/unit/test_314_discover_permissions.py
|
|
324
325
|
tests/unit/clients/__init__.py
|
|
325
326
|
tests/unit/clients/test_200_api_ffbb_app_client.py
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client.egg-info/scm_file_list.json
RENAMED
|
@@ -366,6 +366,7 @@
|
|
|
366
366
|
"tests/unit/test_311_normalize_team_name.py",
|
|
367
367
|
"tests/unit/test_312_api_cors.py",
|
|
368
368
|
"tests/unit/test_313_api_metrics.py",
|
|
369
|
+
"tests/unit/test_314_api_endpoints.py",
|
|
369
370
|
"tests/unit/test_314_discover_permissions.py",
|
|
370
371
|
"tests/unit/utils/__init__.py",
|
|
371
372
|
"tests/unit/utils/test_300_secure_logging.py",
|
|
@@ -91,3 +91,12 @@ def test_merge_page_with_empty_or_missing_results():
|
|
|
91
91
|
|
|
92
92
|
# 3. orig_idx out of bounds
|
|
93
93
|
_merge_page(res, 999, empty_page)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def test_single_result_out_of_bounds_safety():
|
|
97
|
+
from ffbb_data_client.helpers.meilisearch_client_extension import _single_result
|
|
98
|
+
|
|
99
|
+
res = MultiSearchResults(results=[CompetitionsMultiSearchResult()])
|
|
100
|
+
assert _single_result(res, 0) is not None
|
|
101
|
+
assert _single_result(res, 1) is None
|
|
102
|
+
assert _single_result(MultiSearchResults(results=[]), 0) is None
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""Tests for the new REST endpoints and match card enrichment in api.py."""
|
|
2
|
+
|
|
3
|
+
from unittest.mock import AsyncMock, MagicMock, patch
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
from httpx import ASGITransport, AsyncClient
|
|
7
|
+
|
|
8
|
+
from ffbb_data_client.api import app
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.mark.asyncio
|
|
12
|
+
async def test_search_acronym_expansion():
|
|
13
|
+
transport = ASGITransport(app=app)
|
|
14
|
+
mock_client = MagicMock()
|
|
15
|
+
mock_client.multi_search = MagicMock(
|
|
16
|
+
return_value=[
|
|
17
|
+
{"index_uid": "organismes", "hits": [{"nom": "STADE CLERMONTOIS"}]}
|
|
18
|
+
]
|
|
19
|
+
)
|
|
20
|
+
with patch("ffbb_data_client.api.get_client", return_value=mock_client):
|
|
21
|
+
async with AsyncClient(transport=transport, base_url="http://test") as ac:
|
|
22
|
+
r = await ac.get("/api/v1/search?query=SCBA")
|
|
23
|
+
assert r.status_code == 200
|
|
24
|
+
# Ensure multi_search was called with expanded name
|
|
25
|
+
mock_client.multi_search.assert_called_with(
|
|
26
|
+
name="Stade Clermontois Basket Auvergne"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@pytest.mark.asyncio
|
|
31
|
+
async def test_match_card_enrichment():
|
|
32
|
+
transport = ASGITransport(app=app)
|
|
33
|
+
mock_client = MagicMock()
|
|
34
|
+
mock_org = MagicMock()
|
|
35
|
+
mock_org.nom = "STADE CLERMONTOIS BASKET AUVERGNE"
|
|
36
|
+
mock_org.logo = None
|
|
37
|
+
mock_org.engagements = []
|
|
38
|
+
mock_client.get_organisme_async = AsyncMock(return_value=mock_org)
|
|
39
|
+
|
|
40
|
+
with patch("ffbb_data_client.api.get_client", return_value=mock_client):
|
|
41
|
+
async with AsyncClient(transport=transport, base_url="http://test") as ac:
|
|
42
|
+
r = await ac.get("/api/v1/club/9326/matches")
|
|
43
|
+
assert r.status_code == 200
|
|
44
|
+
data = r.json()
|
|
45
|
+
assert "matches" in data
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@pytest.mark.asyncio
|
|
49
|
+
async def test_rencontre_endpoint():
|
|
50
|
+
transport = ASGITransport(app=app)
|
|
51
|
+
mock_client = MagicMock()
|
|
52
|
+
mock_match = {"id": "12345", "nomEquipe1": "Eq A", "nomEquipe2": "Eq B"}
|
|
53
|
+
mock_client.get_rencontre_async = AsyncMock(return_value=mock_match)
|
|
54
|
+
|
|
55
|
+
with patch("ffbb_data_client.api.get_client", return_value=mock_client):
|
|
56
|
+
async with AsyncClient(transport=transport, base_url="http://test") as ac:
|
|
57
|
+
r = await ac.get("/api/v1/rencontre/12345")
|
|
58
|
+
assert r.status_code == 200
|
|
59
|
+
assert r.json().get("id") == "12345"
|
|
60
|
+
|
|
61
|
+
# Test alias /match
|
|
62
|
+
r_alias = await ac.get("/api/v1/match/12345")
|
|
63
|
+
assert r_alias.status_code == 200
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@pytest.mark.asyncio
|
|
67
|
+
async def test_salle_and_competition_endpoints():
|
|
68
|
+
transport = ASGITransport(app=app)
|
|
69
|
+
mock_client = MagicMock()
|
|
70
|
+
mock_client.get_salle_async = AsyncMock(
|
|
71
|
+
return_value={"id": "6543", "libelle": "Gymnase Fleury"}
|
|
72
|
+
)
|
|
73
|
+
mock_client.get_competition_async = AsyncMock(
|
|
74
|
+
return_value={"id": "999", "nom": "DMU13"}
|
|
75
|
+
)
|
|
76
|
+
mock_client.get_saisons_async = AsyncMock(
|
|
77
|
+
return_value=[{"id": "1037", "nom": "2026-2027"}]
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
with patch("ffbb_data_client.api.get_client", return_value=mock_client):
|
|
81
|
+
async with AsyncClient(transport=transport, base_url="http://test") as ac:
|
|
82
|
+
r_salle = await ac.get("/api/v1/salle/6543")
|
|
83
|
+
assert r_salle.status_code == 200
|
|
84
|
+
assert r_salle.json().get("libelle") == "Gymnase Fleury"
|
|
85
|
+
|
|
86
|
+
r_comp = await ac.get("/api/v1/competition/999")
|
|
87
|
+
assert r_comp.status_code == 200
|
|
88
|
+
assert r_comp.json().get("nom") == "DMU13"
|
|
89
|
+
|
|
90
|
+
r_saisons = await ac.get("/api/v1/saisons")
|
|
91
|
+
assert r_saisons.status_code == 200
|
|
92
|
+
assert len(r_saisons.json()) == 1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/ISSUE_TEMPLATE/feature_request.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/check_wrapper_parity.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.github/workflows/update-ffbb-api-discovery.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.omc/skills/pypi-immutable-release-workflow.md
RENAMED
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/.omc/skills/terminal-output-hygiene-expertise.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/scripts/benchmark_concurrent_pagination.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/__init__.py
RENAMED
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_helpers.py
RENAMED
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/external.py
RENAMED
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_mixins/getters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_rest_facade.py
RENAMED
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/_search_facade.py
RENAMED
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/clients/ffbb_data_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/collections.json
RENAMED
|
File without changes
|
|
File without changes
|
{ffbb_data_client-2.4.29 → ffbb_data_client-2.4.30}/src/ffbb_data_client/data/field_dictionary.json
RENAMED
|
File without changes
|