ffbb-data-client 2.3.4__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/AGENTS.md +12 -6
  2. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/CHANGELOG.md +11 -0
  3. ffbb_data_client-2.4.0/Dockerfile +37 -0
  4. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/PKG-INFO +11 -5
  5. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/README.md +4 -2
  6. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/RELEASE_NOTES.md +14 -1
  7. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/examples/team_ranking_analysis.py +3 -3
  8. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/setup.cfg +6 -2
  9. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/__init__.py +3 -2
  10. ffbb_data_client-2.4.0/src/ffbb_data_client/api.py +504 -0
  11. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_mixins/competition.py +2 -2
  12. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_rest_facade.py +105 -2
  13. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_search_facade.py +7 -10
  14. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/api_ffbb_app_client.py +2 -2
  15. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/ffbb_data_client.py +16 -0
  16. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/meilisearch_client.py +19 -5
  17. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/helpers/__init__.py +12 -0
  18. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/helpers/meilisearch_client_extension.py +2 -2
  19. ffbb_data_client-2.4.0/src/ffbb_data_client/helpers/normalization.py +128 -0
  20. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/retry_utils.py +12 -1
  21. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client.egg-info/PKG-INFO +11 -5
  22. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client.egg-info/SOURCES.txt +12 -4
  23. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client.egg-info/requires.txt +5 -0
  24. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client.egg-info/scm_file_list.json +12 -4
  25. ffbb_data_client-2.4.0/src/ffbb_data_client.egg-info/scm_version.json +8 -0
  26. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/test_502_enhanced_integration.py +1 -1
  27. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/test_506_raw_json_model_conversion.py +11 -10
  28. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_210_targeted_clients_helpers_coverage.py +12 -0
  29. ffbb_data_client-2.4.0/tests/unit/helpers/test_normalization.py +36 -0
  30. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_124_targeted_coverage_gains.py +8 -3
  31. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tools/update_agents_md.py +6 -0
  32. ffbb_data_client-2.4.0/website/assets/apple-touch-icon.png +0 -0
  33. ffbb_data_client-2.4.0/website/assets/favicon-192x192.png +0 -0
  34. ffbb_data_client-2.4.0/website/assets/favicon-48x48.png +0 -0
  35. ffbb_data_client-2.4.0/website/assets/favicon-96x96.png +0 -0
  36. ffbb_data_client-2.4.0/website/assets/favicon.ico +0 -0
  37. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/website/css/style.css +4 -4
  38. ffbb_data_client-2.4.0/website/favicon.ico +0 -0
  39. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/website/index.html +218 -99
  40. ffbb_data_client-2.4.0/website/llms-full.txt +21 -0
  41. ffbb_data_client-2.4.0/website/llms.txt +34 -0
  42. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/website/sitemap.xml +2 -2
  43. ffbb_data_client-2.3.4/graphify-cross-repo.json +0 -28
  44. ffbb_data_client-2.3.4/src/ffbb_data_client.egg-info/scm_version.json +0 -8
  45. ffbb_data_client-2.3.4/tools/add_cross_repo_edges.py +0 -502
  46. ffbb_data_client-2.3.4/tools/graphify-cross-repo.sh +0 -64
  47. ffbb_data_client-2.3.4/tools/graphify_cross_repo.py +0 -593
  48. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.agents/rules/antigravity-rtk-rules.md +0 -0
  49. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.coveragerc +0 -0
  50. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.gitattributes +0 -0
  51. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/FUNDING.yml +0 -0
  52. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  53. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  54. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  55. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/dependabot.yml +0 -0
  56. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/scripts/ai-pr-reviewer.cjs +0 -0
  57. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/scripts/check_wrapper_parity.py +0 -0
  58. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/ai-pr-reviewer.yml +0 -0
  59. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/check_wrapper_parity.yml +0 -0
  60. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/ci.yml +0 -0
  61. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/codeql.yml +0 -0
  62. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/deploy-pages.yml +0 -0
  63. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/keep-ffbb-api-discovery-alive.yml +0 -0
  64. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/publish.yml +0 -0
  65. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/release-after-discovery-merge.yml +0 -0
  66. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.github/workflows/update-ffbb-api-discovery.yml +0 -0
  67. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.gitignore +0 -0
  68. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.isort.cfg +0 -0
  69. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.jules/bolt.md +0 -0
  70. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.pre-commit-config.yaml +0 -0
  71. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/.readthedocs.yml +0 -0
  72. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/AUTHORS.rst +0 -0
  73. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/CODE_OF_CONDUCT.md +0 -0
  74. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/CONTRIBUTING.rst +0 -0
  75. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/DESIGN.md +0 -0
  76. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/LICENSE.txt +0 -0
  77. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/LOCAL_CI_GUIDE.md +0 -0
  78. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/SECURITY.md +0 -0
  79. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/api.ffbb.app.json +0 -0
  80. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/api_update_summary.md +0 -0
  81. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/collections.json +0 -0
  82. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/endpoint_discovery.json +0 -0
  83. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/indexes.json +0 -0
  84. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/meilisearch-prod.ffbb.app.json +0 -0
  85. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/openapi.json +0 -0
  86. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/openapi_full.json +0 -0
  87. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/data/type_discovery_corrections.json +0 -0
  88. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/Makefile +0 -0
  89. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/_static/.gitignore +0 -0
  90. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/architecture.rst +0 -0
  91. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/authors.rst +0 -0
  92. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/changelog.rst +0 -0
  93. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/conf.py +0 -0
  94. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/contributing.rst +0 -0
  95. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/examples.rst +0 -0
  96. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/index.rst +0 -0
  97. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/license.rst +0 -0
  98. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/migration.rst +0 -0
  99. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/readme.rst +0 -0
  100. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/requirements.txt +0 -0
  101. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/test_strategy.md +0 -0
  102. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/docs/testing_conventions.md +0 -0
  103. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/examples/README.md +0 -0
  104. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/examples/complete_usage_example.py +0 -0
  105. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/examples/quick_start.py +0 -0
  106. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/pyproject.toml +0 -0
  107. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/pytest.ini +0 -0
  108. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/run-ci-locally.sh +0 -0
  109. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/scripts/benchmark_concurrent_pagination.py +0 -0
  110. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/scripts/benchmark_search_organisme.py +0 -0
  111. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/scripts/discover_endpoints.py +0 -0
  112. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/scripts/discover_types.py +0 -0
  113. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/setup.py +0 -0
  114. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/__init__.py +0 -0
  115. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_helpers.py +0 -0
  116. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_mixins/__init__.py +0 -0
  117. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_mixins/external.py +0 -0
  118. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_mixins/getters.py +0 -0
  119. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_mixins/list_methods.py +0 -0
  120. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/_mixins/organisme.py +0 -0
  121. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/clients/meilisearch_ffbb_client.py +0 -0
  122. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/config.py +0 -0
  123. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/data/__init__.py +0 -0
  124. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/data/collections.json +0 -0
  125. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/data/endpoint_discovery.json +0 -0
  126. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/data/indexes.json +0 -0
  127. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/data/openapi.json +0 -0
  128. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/helpers/http_requests_helper.py +0 -0
  129. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/helpers/http_requests_utils.py +0 -0
  130. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/helpers/multi_search_query_helper.py +0 -0
  131. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/__init__.py +0 -0
  132. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/affiche.py +0 -0
  133. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/cartographie.py +0 -0
  134. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/categorie.py +0 -0
  135. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/categorie_type.py +0 -0
  136. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/clock.py +0 -0
  137. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/club_contacts.py +0 -0
  138. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/code.py +0 -0
  139. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/commune.py +0 -0
  140. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_fields.py +0 -0
  141. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_id.py +0 -0
  142. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_id_categorie.py +0 -0
  143. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_id_sexe.py +0 -0
  144. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_id_type_competition.py +0 -0
  145. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_id_type_competition_generique.py +0 -0
  146. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_origine.py +0 -0
  147. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_origine_categorie.py +0 -0
  148. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_origine_type_competition.py +0 -0
  149. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_origine_type_competition_generique.py +0 -0
  150. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competition_type.py +0 -0
  151. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competitions_facet_distribution.py +0 -0
  152. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competitions_facet_stats.py +0 -0
  153. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competitions_hit.py +0 -0
  154. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competitions_multi_search_query.py +0 -0
  155. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/competitions_query.py +0 -0
  156. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/configuration_models.py +0 -0
  157. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/contact_info.py +0 -0
  158. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/content_multi_search_query.py +0 -0
  159. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/coordonnees.py +0 -0
  160. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/coordonnees_type.py +0 -0
  161. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/document_flyer.py +0 -0
  162. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/document_flyer_type.py +0 -0
  163. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/engagement_contacts.py +0 -0
  164. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/engagements_facet_distribution.py +0 -0
  165. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/engagements_facet_stats.py +0 -0
  166. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/engagements_hit.py +0 -0
  167. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/engagements_multi_search_query.py +0 -0
  168. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/etat.py +0 -0
  169. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/external_competition_id.py +0 -0
  170. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/external_id.py +0 -0
  171. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/facet_distribution.py +0 -0
  172. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/facet_stats.py +0 -0
  173. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/field_set.py +0 -0
  174. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/folder.py +0 -0
  175. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/formation_session.py +0 -0
  176. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/formations_facet_distribution.py +0 -0
  177. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/formations_facet_stats.py +0 -0
  178. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/formations_hit.py +0 -0
  179. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/formations_multi_search_query.py +0 -0
  180. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/game_stats_model.py +0 -0
  181. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/game_stats_models.py +0 -0
  182. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/generic_search.py +0 -0
  183. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/geo.py +0 -0
  184. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/geo_sort_order.py +0 -0
  185. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_commune_response.py +0 -0
  186. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_competition_response.py +0 -0
  187. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_configuration_response.py +0 -0
  188. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_engagement_response.py +0 -0
  189. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_entraineur_response.py +0 -0
  190. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_formation_response.py +0 -0
  191. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_officiel_response.py +0 -0
  192. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_organisme_response.py +0 -0
  193. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_poule_response.py +0 -0
  194. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_pratique_response.py +0 -0
  195. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_rencontre_response.py +0 -0
  196. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_saisons_response.py +0 -0
  197. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_salle_response.py +0 -0
  198. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_terrain_response.py +0 -0
  199. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/get_tournoi_response.py +0 -0
  200. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/gradient_color.py +0 -0
  201. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/hit.py +0 -0
  202. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/id_engagement_equipe.py +0 -0
  203. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/id_organisme_equipe.py +0 -0
  204. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/id_organisme_equipe1_logo.py +0 -0
  205. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/id_poule.py +0 -0
  206. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/jour.py +0 -0
  207. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/label.py +0 -0
  208. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/labellisation.py +0 -0
  209. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/live.py +0 -0
  210. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/lives.py +0 -0
  211. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/logo.py +0 -0
  212. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_queries.py +0 -0
  213. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_query.py +0 -0
  214. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_competitions.py +0 -0
  215. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_engagements.py +0 -0
  216. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_formations.py +0 -0
  217. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_organismes.py +0 -0
  218. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_pratiques.py +0 -0
  219. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_rencontres.py +0 -0
  220. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_salles.py +0 -0
  221. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_terrains.py +0 -0
  222. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_result_tournois.py +0 -0
  223. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_results.py +0 -0
  224. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/multi_search_results_class.py +0 -0
  225. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/nature_sol.py +0 -0
  226. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/niveau.py +0 -0
  227. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/niveau_class.py +0 -0
  228. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/niveau_extractor.py +0 -0
  229. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/niveau_info.py +0 -0
  230. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/niveau_models.py +0 -0
  231. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/niveau_type.py +0 -0
  232. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/objectif.py +0 -0
  233. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organisateur.py +0 -0
  234. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organisateur_type.py +0 -0
  235. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organisme_fields.py +0 -0
  236. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organisme_id_pere.py +0 -0
  237. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organismes_facet_distribution.py +0 -0
  238. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organismes_facet_stats.py +0 -0
  239. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organismes_hit.py +0 -0
  240. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organismes_multi_search_query.py +0 -0
  241. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/organismes_query.py +0 -0
  242. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/phase_code.py +0 -0
  243. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/poule.py +0 -0
  244. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/poule_fields.py +0 -0
  245. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/poule_rencontre_item_model.py +0 -0
  246. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/poules_models.py +0 -0
  247. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/poules_query.py +0 -0
  248. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/pratique.py +0 -0
  249. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/pratiques_facet_distribution.py +0 -0
  250. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/pratiques_facet_stats.py +0 -0
  251. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/pratiques_hit.py +0 -0
  252. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/pratiques_hit_type.py +0 -0
  253. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/pratiques_multi_search_query.py +0 -0
  254. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/pratiques_type_class.py +0 -0
  255. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/publication_internet.py +0 -0
  256. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/purple_logo.py +0 -0
  257. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/query_fields_manager.py +0 -0
  258. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/ranking_engagement.py +0 -0
  259. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/rankings_models.py +0 -0
  260. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/rencontres_engagement.py +0 -0
  261. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/rencontres_facet_distribution.py +0 -0
  262. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/rencontres_facet_stats.py +0 -0
  263. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/rencontres_hit.py +0 -0
  264. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/rencontres_multi_search_query.py +0 -0
  265. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/saison.py +0 -0
  266. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/saison_fields.py +0 -0
  267. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/saisons_models.py +0 -0
  268. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/saisons_query.py +0 -0
  269. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/salle.py +0 -0
  270. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/salles_facet_distribution.py +0 -0
  271. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/salles_facet_stats.py +0 -0
  272. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/salles_hit.py +0 -0
  273. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/salles_multi_search_query.py +0 -0
  274. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/sexe.py +0 -0
  275. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/sexe_class.py +0 -0
  276. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/source.py +0 -0
  277. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/status.py +0 -0
  278. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/team_engagement.py +0 -0
  279. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/team_ranking.py +0 -0
  280. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +0 -0
  281. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_facet_distribution.py +0 -0
  282. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_facet_stats.py +0 -0
  283. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_hit.py +0 -0
  284. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_multi_search_query.py +0 -0
  285. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_name.py +0 -0
  286. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_sexe_enum.py +0 -0
  287. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/terrains_storage.py +0 -0
  288. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournoi_type_class.py +0 -0
  289. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournoi_type_enum.py +0 -0
  290. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournoi_types_3x3.py +0 -0
  291. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournoi_types_3x3_libelle.py +0 -0
  292. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +0 -0
  293. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournois_facet_distribution.py +0 -0
  294. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournois_facet_stats.py +0 -0
  295. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournois_hit.py +0 -0
  296. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournois_hit_type.py +0 -0
  297. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournois_libelle.py +0 -0
  298. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/tournois_multi_search_query.py +0 -0
  299. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/type_association.py +0 -0
  300. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/type_association_libelle.py +0 -0
  301. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/type_class.py +0 -0
  302. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/type_competition.py +0 -0
  303. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/type_competition_generique.py +0 -0
  304. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/type_enum.py +0 -0
  305. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/models/type_league.py +0 -0
  306. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/py.typed +0 -0
  307. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/__init__.py +0 -0
  308. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/cache_manager.py +0 -0
  309. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/concurrency_utils.py +0 -0
  310. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/converter_utils.py +0 -0
  311. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/input_validation.py +0 -0
  312. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/secure_logging.py +0 -0
  313. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client/utils/token_manager.py +0 -0
  314. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client.egg-info/dependency_links.txt +0 -0
  315. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client.egg-info/not-zip-safe +0 -0
  316. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/src/ffbb_data_client.egg-info/top_level.txt +0 -0
  317. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/conftest.py +0 -0
  318. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/e2e/__init__.py +0 -0
  319. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/e2e/conftest.py +0 -0
  320. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/__init__.py +0 -0
  321. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/conftest.py +0 -0
  322. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/test_500_user_journey.py +0 -0
  323. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/test_501_user_journey_v3.py +0 -0
  324. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/test_503_secure_logging.py +0 -0
  325. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/test_504_input_validation.py +0 -0
  326. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/integration/test_505_retry_timeout.py +0 -0
  327. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/__init__.py +0 -0
  328. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/__init__.py +0 -0
  329. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_200_api_ffbb_app_client.py +0 -0
  330. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_201_unit_tests_core.py +0 -0
  331. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_202_meilisearch_client.py +0 -0
  332. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_203_meilisearch_client_extension.py +0 -0
  333. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_204_ffbb_data_client.py +0 -0
  334. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_205_meilisearch_ffbb_client.py +0 -0
  335. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_206_coverage_gaps_clients.py +0 -0
  336. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_207_coverage_clients_extended.py +0 -0
  337. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_208_new_methods_coverage.py +0 -0
  338. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_209_automatic_token_resolution.py +0 -0
  339. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_async_methods.py +0 -0
  340. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_meilisearch_async.py +0 -0
  341. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_search_many.py +0 -0
  342. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_v2_backport_search.py +0 -0
  343. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_v3_new_features.py +0 -0
  344. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/clients/test_warm_cache.py +0 -0
  345. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/conftest.py +0 -0
  346. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/helpers/__init__.py +0 -0
  347. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/helpers/test_400_http_helpers.py +0 -0
  348. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/helpers/test_meilisearch_client_extension_recursive_pagination.py +0 -0
  349. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/helpers/test_meilisearch_pagination_concurrent.py +0 -0
  350. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/__init__.py +0 -0
  351. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_100_competition_id_categorie.py +0 -0
  352. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_101_competition_id_sexe.py +0 -0
  353. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_102_competition_id_type_competition.py +0 -0
  354. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_103_competition_id_type_competition_generique.py +0 -0
  355. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_104_competition_origine_categorie.py +0 -0
  356. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_105_competition_origine_type_competition_generique.py +0 -0
  357. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_106_competition_origine.py +0 -0
  358. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_107_id_engagement_equipe.py +0 -0
  359. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_108_id_organisme_equipe.py +0 -0
  360. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_109_id_organisme_equipe1_logo.py +0 -0
  361. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_110_labellisation.py +0 -0
  362. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_111_niveau_class.py +0 -0
  363. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_112_purple_logo.py +0 -0
  364. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_113_salle.py +0 -0
  365. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_114_tournoi_type_class.py +0 -0
  366. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_115_type_association_libelle.py +0 -0
  367. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_116_type_competition_generique.py +0 -0
  368. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_117_organisateur.py +0 -0
  369. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_118_competition_id.py +0 -0
  370. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_119_terrains_inner_models.py +0 -0
  371. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_120_pratiques_inner_models.py +0 -0
  372. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_121_to_dict_round_trip.py +0 -0
  373. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_122_coverage_gaps.py +0 -0
  374. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_123_missing_coverage.py +0 -0
  375. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_123_v2_backport.py +0 -0
  376. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/models/test_dx_aliases.py +0 -0
  377. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/test_310_discover_endpoints.py +0 -0
  378. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/__init__.py +0 -0
  379. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_300_secure_logging.py +0 -0
  380. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_301_input_validation.py +0 -0
  381. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_302_retry_utils.py +0 -0
  382. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_303_cache_manager.py +0 -0
  383. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_304_config.py +0 -0
  384. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_305_token_manager.py +0 -0
  385. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_306_converter_utils.py +0 -0
  386. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_307_coverage_gaps_utils.py +0 -0
  387. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_308_converter_utils_extended.py +0 -0
  388. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tests/unit/utils/test_309_concurrency_utils.py +0 -0
  389. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/tox.ini +0 -0
  390. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/website/assets/logo.webp +0 -0
  391. {ffbb_data_client-2.3.4 → ffbb_data_client-2.4.0}/website/robots.txt +0 -0
@@ -1,8 +1,8 @@
1
1
  # FFBB Data Client SDK
2
2
 
3
3
  > ⚠️ **Fichier auto-généré** par `tools/update_agents_md.py` — ne pas modifier manuellement.
4
- > Dernière mise à jour : ffbb-data-client | SDK total : ~19030 lignes de code
5
- > (clients: 6227, models: 9878, utils: 1954, helpers: 971)
4
+ > Dernière mise à jour : ffbb-data-client | SDK total : ~18803 lignes de code
5
+ > (clients: 5980, models: 9805, utils: 2003, helpers: 1015)
6
6
 
7
7
  ## Langue
8
8
  Tous les documents de travail (walkthrough.md, implementation_plan.md) DOIVENT être en français.
@@ -69,17 +69,19 @@ Ces directives inspirées d'Andrej Karpathy visent à éliminer les erreurs de c
69
69
  ```
70
70
  src/ffbb_data_client/
71
71
  ├── __init__.py # Point d'entrée du SDK, expose FFBBDataClient et FFBBTokens
72
- ├── clients/ # Clients d'API (REST et Meilisearch) et façades (≈6227 lignes)
72
+ ├── clients/ # Clients d'API (REST et Meilisearch) et façades (≈5980 lignes)
73
73
  ├── config.py # Configuration centralisée (URLs, Headers, Endpoints, Facettes)
74
74
  ├── data/ # Ressources et données statiques
75
- ├── helpers/ # Méthodes utilitaires pour requêtes HTTP et mapping (≈971 lignes)
76
- ├── models/ # Modèles de données Pydantic type-safe (≈9878 lignes)
75
+ ├── helpers/ # Méthodes utilitaires pour requêtes HTTP et mapping (≈1015 lignes)
76
+ ├── models/ # Modèles de données Pydantic type-safe (≈9805 lignes)
77
77
  ├── py.typed # Marqueur pour la compatibilité avec mypy
78
- └── utils/ # Gestionnaires transversaux (cache, jetons de sécurité, validation) (≈1954 lignes)
78
+ └── utils/ # Gestionnaires transversaux (cache, jetons de sécurité, validation) (≈2003 lignes)
79
79
  ```
80
80
 
81
81
  ## Conventions de code
82
82
  - **Modèles Pydantic** : Tous les modèles héritent de `pydantic.BaseModel` et fournissent une validation stricte.
83
+ Chaque modèle possède son propre fichier source dédié en `snake_case` (ex: `categorie_type.py`, `niveau_info.py`).
84
+ Les imports internes et dans les tests doivent cibler précisément le fichier dédié ou le namespace racine `models`.
83
85
  - **Async/Sync en parallèle** : Le SDK implémente systématiquement la double interface synchrone (`get_x`)
84
86
  et asynchrone (`get_x_async`) pour un maximum de flexibilité d'intégration.
85
87
  - **Cache HTTP** : Utilisation d'`hishel` pour le cache de requêtes HTTP asynchrones et d'un cache local
@@ -101,3 +103,7 @@ Avant push/tag/release :
101
103
  2. `rtk ruff check .`
102
104
  3. `rtk mypy src`
103
105
  4. `rtk pytest`
106
+ 5. `rtk pre-commit run --all-files`
107
+
108
+ ⚠️ Note Release PyPI : Les releases sur PyPI sont immuables. Ne jamais réassigner ou forcer un tag
109
+ déjà publié sur PyPI. Tout correctif requiert un bump de version (ex: v2.3.6).
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.4.0] - 2026-08-29
11
+
12
+ ### Added
13
+ - **Serveur FastAPI & REST API**: Serveur FastAPI intégré avec support CORS, documentation OpenAPI/Swagger et routes optimisées pour les matchs de clubs.
14
+ - **Résolution d'adresses précises des salles**: Résolution automatique de l'adresse de voirie exacte des gymnases pour l'ensemble des rencontres (domicile & extérieur).
15
+ - **Gestion du cycle de vie async (`aclose`)**: Support natif de la fermeture asynchrone des sessions et mutualisation des pools de connexions HTTP.
16
+
17
+ ### Fixed & Maintenance
18
+ - **Imports des modèles**: Correction des chemins d'accès aux modèles `CategorieType` et `Niveau`.
19
+ - **Conventions d'architecture**: Documentation des règles d'immutabilité des packages PyPI et des directives d'imports de modèles dans `AGENTS.md`.
20
+
10
21
  ## [2.3.4] - 2026-08-19
11
22
 
12
23
  ### Fixed
@@ -0,0 +1,37 @@
1
+ # Multi-stage Dockerfile for FFBB Data Client API & Web Server
2
+ FROM python:3.12-slim AS builder
3
+
4
+ WORKDIR /app
5
+
6
+ RUN apt-get update && apt-get install -y --no-install-recommends \
7
+ gcc \
8
+ git \
9
+ && rm -rf /var/lib/apt/lists/*
10
+
11
+ COPY . .
12
+
13
+ RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
14
+ pip install --no-cache-dir ".[server]"
15
+
16
+ FROM python:3.12-slim AS runner
17
+
18
+ WORKDIR /app
19
+
20
+ RUN apt-get update && apt-get install -y --no-install-recommends \
21
+ curl \
22
+ && rm -rf /var/lib/apt/lists/*
23
+
24
+ COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
25
+ COPY --from=builder /usr/local/bin /usr/local/bin
26
+ COPY --from=builder /app /app
27
+
28
+ ENV PYTHONUNBUFFERED=1
29
+ ENV PORT=8000
30
+ ENV HOST=0.0.0.0
31
+
32
+ EXPOSE 8000
33
+
34
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
35
+ CMD curl -f http://localhost:8000/health || exit 1
36
+
37
+ CMD ["uvicorn", "ffbb_data_client.api:app", "--host", "0.0.0.0", "--port", "8000"]
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ffbb-data-client
3
- Version: 2.3.4
4
- Summary: FFBB Data Client — SDK Python asynchrone pour les Statistiques de Basket France. Type-safe Pydantic models, async/sync, Meilisearch.
3
+ Version: 2.4.0
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
7
7
  Author-email: nicolas.desimone@gmail.com
@@ -12,7 +12,7 @@ Project-URL: Source, https://github.com/nickdesi/ffbb-data-client
12
12
  Project-URL: Changelog, https://github.com/nickdesi/ffbb-data-client/blob/master/CHANGELOG.md
13
13
  Project-URL: Tracker, https://github.com/nickdesi/ffbb-data-client/issues
14
14
  Project-URL: Release Notes, https://github.com/nickdesi/ffbb-data-client/blob/master/RELEASE_NOTES.md
15
- Keywords: ffbb,basketball,statistiques,france,api,python-sdk,pydantic,asynchrone,meilisearch,basket-france
15
+ Keywords: ffbb-api,api-ffbb,ffbb,api,basketball,basket-france,statistiques,python-sdk,pydantic,asynchrone,meilisearch,ffbb-api-client,ffbb-api-client-v2,open-data-basket,live-scores
16
16
  Platform: any
17
17
  Classifier: Development Status :: 4 - Beta
18
18
  Classifier: Programming Language :: Python
@@ -37,6 +37,10 @@ Requires-Dist: python-dateutil>=2.9.0.post0
37
37
  Requires-Dist: httpx>=0.28.1
38
38
  Requires-Dist: hishel[async]>=1.3.0
39
39
  Requires-Dist: pydantic>=2.13.4
40
+ Provides-Extra: server
41
+ Requires-Dist: fastapi>=0.115.0; extra == "server"
42
+ Requires-Dist: uvicorn[standard]>=0.34.0; extra == "server"
43
+ Requires-Dist: starlette>=0.45.0; extra == "server"
40
44
  Provides-Extra: testing
41
45
  Requires-Dist: setuptools>=82.0.1; extra == "testing"
42
46
  Requires-Dist: coverage>=7.13.5; extra == "testing"
@@ -52,9 +56,11 @@ Dynamic: license-file
52
56
 
53
57
  <div align="center">
54
58
 
55
- # 🏀 FFBB Data Client
59
+ # 🏀 FFBB Data Client — API FFBB Python SDK
56
60
 
57
- **SDK Python moderne, typé et asynchrone pour exploiter les données publiques FFBB : clubs, compétitions, rencontres, classements, salles, officiels et recherche Meilisearch.**
61
+ **SDK Python moderne, typé et asynchrone pour exploiter l'API FFBB et ses données officielles : clubs, compétitions, rencontres, classements, salles, officiels, scores en direct (lives) et recherche Meilisearch.**
62
+
63
+ *Alternative moderne, performante et maintenue aux anciens packages `ffbb-api-client` et `ffbb-api-client-v2`.*
58
64
 
59
65
  [![PyPI](https://img.shields.io/pypi/v/ffbb-data-client?color=blue&label=PyPI&logo=python&logoColor=white)](https://pypi.org/project/ffbb-data-client/)
60
66
  [![Python](https://img.shields.io/pypi/pyversions/ffbb-data-client?logo=python&logoColor=white)](https://pypi.org/project/ffbb-data-client/)
@@ -1,8 +1,10 @@
1
1
  <div align="center">
2
2
 
3
- # 🏀 FFBB Data Client
3
+ # 🏀 FFBB Data Client — API FFBB Python SDK
4
4
 
5
- **SDK Python moderne, typé et asynchrone pour exploiter les données publiques FFBB : clubs, compétitions, rencontres, classements, salles, officiels et recherche Meilisearch.**
5
+ **SDK Python moderne, typé et asynchrone pour exploiter l'API FFBB et ses données officielles : clubs, compétitions, rencontres, classements, salles, officiels, scores en direct (lives) et recherche Meilisearch.**
6
+
7
+ *Alternative moderne, performante et maintenue aux anciens packages `ffbb-api-client` et `ffbb-api-client-v2`.*
6
8
 
7
9
  [![PyPI](https://img.shields.io/pypi/v/ffbb-data-client?color=blue&label=PyPI&logo=python&logoColor=white)](https://pypi.org/project/ffbb-data-client/)
8
10
  [![Python](https://img.shields.io/pypi/pyversions/ffbb-data-client?logo=python&logoColor=white)](https://pypi.org/project/ffbb-data-client/)
@@ -1,6 +1,19 @@
1
1
  # Release Notes - FFBB Data Client
2
2
 
3
- ## Version 2.3.4 (Latest Release)
3
+ ## Version 2.4.0 (Latest Release)
4
+
5
+ ### 🚀 New Features & API
6
+ - **Embedded FastAPI Server**: Standalone or embeddable FastAPI application providing CORS-enabled REST endpoints for clubs, competitions, and match calendars with auto-generated Swagger UI.
7
+ - **Precise Venue Geocoding**: Enhanced gym & salle resolution delivering exact street addresses for both home and away matches.
8
+ - **Async Resource Cleanup**: Added explicit `aclose()` support across async clients with connection pool lifecycle management.
9
+
10
+ ### 🐛 Bug Fixes & Refactoring
11
+ - **Model Import Paths**: Fixed direct module imports for `CategorieType` and `Niveau` to avoid deprecation warnings.
12
+ - **Repository Architecture Rules**: Documented PyPI release immutability and strict zero-guess versioning in `AGENTS.md`.
13
+
14
+ ---
15
+
16
+ ## Version 2.3.4
4
17
 
5
18
  ### 🔒 Security & Bug Fixes
6
19
  - **Sensitive logging mitigation**: Masked authentication tokens in logging messages and format arguments (`CWE-532` / CodeQL compliance)
@@ -26,9 +26,9 @@ from dotenv import load_dotenv
26
26
 
27
27
  from ffbb_data_client import FFBBDataClient
28
28
  from ffbb_data_client.models.get_organisme_response import GetOrganismeResponse
29
- from ffbb_data_client.models.niveau_models import NiveauType
30
- from ffbb_data_client.models.poules_models import GetPouleResponse
31
- from ffbb_data_client.models.rankings_models import TeamRanking
29
+ from ffbb_data_client.models.get_poule_response import GetPouleResponse
30
+ from ffbb_data_client.models.niveau_type import NiveauType
31
+ from ffbb_data_client.models.team_ranking import TeamRanking
32
32
 
33
33
  # Example configuration - modify these values for your team
34
34
  TEAM_NAME = "SENAS BASKET BALL"
@@ -1,9 +1,9 @@
1
1
  [metadata]
2
2
  name = ffbb-data-client
3
- description = FFBB Data Client — SDK Python asynchrone pour les Statistiques de Basket France. Type-safe Pydantic models, async/sync, Meilisearch.
3
+ description = 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.
4
4
  author = nickdesi
5
5
  author_email = nicolas.desimone@gmail.com
6
- keywords = ffbb, basketball, statistiques, france, api, python-sdk, pydantic, asynchrone, meilisearch, basket-france
6
+ keywords = ffbb-api, api-ffbb, ffbb, api, basketball, basket-france, statistiques, python-sdk, pydantic, asynchrone, meilisearch, ffbb-api-client, ffbb-api-client-v2, open-data-basket, live-scores
7
7
  license = Apache-2.0
8
8
  license_files = LICENSE.txt
9
9
  long_description = file: README.md
@@ -61,6 +61,10 @@ exclude =
61
61
  tests
62
62
 
63
63
  [options.extras_require]
64
+ server =
65
+ fastapi>=0.115.0
66
+ uvicorn[standard]>=0.34.0
67
+ starlette>=0.45.0
64
68
  testing =
65
69
  setuptools>=82.0.1
66
70
  coverage>=7.13.5
@@ -34,6 +34,7 @@ from .models.generic_search import (
34
34
  )
35
35
  from .models.get_competition_response import GetCompetitionResponse
36
36
  from .models.get_organisme_response import GetOrganismeResponse
37
+ from .models.get_poule_response import GetPouleResponse
37
38
  from .models.multi_search_query import MultiSearchQuery
38
39
  from .models.multi_search_result_competitions import CompetitionsMultiSearchResult
39
40
  from .models.multi_search_result_engagements import EngagementsMultiSearchResult
@@ -47,18 +48,18 @@ from .models.multi_search_result_tournois import TournoisMultiSearchResult
47
48
  from .models.organismes_facet_distribution import OrganismesFacetDistribution
48
49
  from .models.organismes_facet_stats import OrganismesFacetStats
49
50
  from .models.organismes_hit import OrganismesHit
50
- from .models.poules_models import GetPouleResponse
51
51
  from .models.pratiques_facet_distribution import PratiquesFacetDistribution
52
52
  from .models.pratiques_facet_stats import PratiquesFacetStats
53
53
  from .models.pratiques_hit import PratiquesHit
54
54
  from .models.query_fields_manager import QueryFieldsManager
55
- from .models.rankings_models import RankingEngagement, TeamRanking
55
+ from .models.ranking_engagement import RankingEngagement
56
56
  from .models.rencontres_facet_distribution import RencontresFacetDistribution
57
57
  from .models.rencontres_facet_stats import RencontresFacetStats
58
58
  from .models.rencontres_hit import RencontresHit
59
59
  from .models.salles_facet_distribution import SallesFacetDistribution
60
60
  from .models.salles_facet_stats import SallesFacetStats
61
61
  from .models.salles_hit import SallesHit
62
+ from .models.team_ranking import TeamRanking
62
63
  from .models.terrains_facet_distribution import TerrainsFacetDistribution
63
64
  from .models.terrains_facet_stats import TerrainsFacetStats
64
65
  from .models.terrains_hit import TerrainsHit