ffbb-data-client 2.0.0__py3-none-any.whl

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 (207) hide show
  1. ffbb_api_client_v3/__init__.py +25 -0
  2. ffbb_data_client/__init__.py +175 -0
  3. ffbb_data_client/clients/__init__.py +13 -0
  4. ffbb_data_client/clients/api_ffbb_app_client.py +2475 -0
  5. ffbb_data_client/clients/ffbb_data_client.py +2789 -0
  6. ffbb_data_client/clients/meilisearch_client.py +218 -0
  7. ffbb_data_client/clients/meilisearch_ffbb_client.py +647 -0
  8. ffbb_data_client/config.py +153 -0
  9. ffbb_data_client/data/__init__.py +25 -0
  10. ffbb_data_client/data/collections.json +1364 -0
  11. ffbb_data_client/data/endpoint_discovery.json +1875 -0
  12. ffbb_data_client/data/indexes.json +501 -0
  13. ffbb_data_client/data/openapi.json +35713 -0
  14. ffbb_data_client/data/openapi_full.json +37622 -0
  15. ffbb_data_client/helpers/__init__.py +27 -0
  16. ffbb_data_client/helpers/http_requests_helper.py +73 -0
  17. ffbb_data_client/helpers/http_requests_utils.py +502 -0
  18. ffbb_data_client/helpers/meilisearch_client_extension.py +153 -0
  19. ffbb_data_client/helpers/multi_search_query_helper.py +35 -0
  20. ffbb_data_client/models/__init__.py +241 -0
  21. ffbb_data_client/models/affiche.py +45 -0
  22. ffbb_data_client/models/cartographie.py +82 -0
  23. ffbb_data_client/models/categorie.py +55 -0
  24. ffbb_data_client/models/categorie_type.py +42 -0
  25. ffbb_data_client/models/clock.py +38 -0
  26. ffbb_data_client/models/club_contacts.py +77 -0
  27. ffbb_data_client/models/code.py +7 -0
  28. ffbb_data_client/models/commune.py +66 -0
  29. ffbb_data_client/models/competition_fields.py +309 -0
  30. ffbb_data_client/models/competition_id.py +116 -0
  31. ffbb_data_client/models/competition_id_categorie.py +31 -0
  32. ffbb_data_client/models/competition_id_sexe.py +31 -0
  33. ffbb_data_client/models/competition_id_type_competition.py +27 -0
  34. ffbb_data_client/models/competition_id_type_competition_generique.py +24 -0
  35. ffbb_data_client/models/competition_origine.py +69 -0
  36. ffbb_data_client/models/competition_origine_categorie.py +23 -0
  37. ffbb_data_client/models/competition_origine_type_competition.py +14 -0
  38. ffbb_data_client/models/competition_origine_type_competition_generique.py +24 -0
  39. ffbb_data_client/models/competition_type.py +6 -0
  40. ffbb_data_client/models/competitions_facet_distribution.py +65 -0
  41. ffbb_data_client/models/competitions_facet_stats.py +14 -0
  42. ffbb_data_client/models/competitions_hit.py +232 -0
  43. ffbb_data_client/models/competitions_multi_search_query.py +40 -0
  44. ffbb_data_client/models/competitions_query.py +11 -0
  45. ffbb_data_client/models/configuration_models.py +5 -0
  46. ffbb_data_client/models/contact_info.py +18 -0
  47. ffbb_data_client/models/content_multi_search_query.py +93 -0
  48. ffbb_data_client/models/coordonnees.py +27 -0
  49. ffbb_data_client/models/coordonnees_type.py +5 -0
  50. ffbb_data_client/models/document_flyer.py +205 -0
  51. ffbb_data_client/models/document_flyer_type.py +6 -0
  52. ffbb_data_client/models/engagement_contacts.py +97 -0
  53. ffbb_data_client/models/engagements_facet_distribution.py +59 -0
  54. ffbb_data_client/models/engagements_facet_stats.py +14 -0
  55. ffbb_data_client/models/engagements_hit.py +192 -0
  56. ffbb_data_client/models/engagements_multi_search_query.py +41 -0
  57. ffbb_data_client/models/etat.py +6 -0
  58. ffbb_data_client/models/external_competition_id.py +42 -0
  59. ffbb_data_client/models/external_id.py +72 -0
  60. ffbb_data_client/models/facet_distribution.py +13 -0
  61. ffbb_data_client/models/facet_stats.py +13 -0
  62. ffbb_data_client/models/field_set.py +10 -0
  63. ffbb_data_client/models/folder.py +35 -0
  64. ffbb_data_client/models/formation_session.py +60 -0
  65. ffbb_data_client/models/formations_facet_distribution.py +61 -0
  66. ffbb_data_client/models/formations_facet_stats.py +14 -0
  67. ffbb_data_client/models/formations_hit.py +277 -0
  68. ffbb_data_client/models/formations_multi_search_query.py +41 -0
  69. ffbb_data_client/models/game_stats_model.py +57 -0
  70. ffbb_data_client/models/game_stats_models.py +5 -0
  71. ffbb_data_client/models/generic_search.py +92 -0
  72. ffbb_data_client/models/geo.py +27 -0
  73. ffbb_data_client/models/geo_sort_order.py +6 -0
  74. ffbb_data_client/models/get_commune_response.py +18 -0
  75. ffbb_data_client/models/get_competition_response.py +523 -0
  76. ffbb_data_client/models/get_configuration_response.py +45 -0
  77. ffbb_data_client/models/get_engagement_response.py +23 -0
  78. ffbb_data_client/models/get_entraineur_response.py +18 -0
  79. ffbb_data_client/models/get_formation_response.py +28 -0
  80. ffbb_data_client/models/get_officiel_response.py +18 -0
  81. ffbb_data_client/models/get_organisme_response.py +476 -0
  82. ffbb_data_client/models/get_poule_response.py +68 -0
  83. ffbb_data_client/models/get_pratique_response.py +18 -0
  84. ffbb_data_client/models/get_rencontre_response.py +93 -0
  85. ffbb_data_client/models/get_saisons_response.py +56 -0
  86. ffbb_data_client/models/get_salle_response.py +20 -0
  87. ffbb_data_client/models/get_terrain_response.py +16 -0
  88. ffbb_data_client/models/get_tournoi_response.py +16 -0
  89. ffbb_data_client/models/gradient_color.py +27 -0
  90. ffbb_data_client/models/hit.py +16 -0
  91. ffbb_data_client/models/id_engagement_equipe.py +32 -0
  92. ffbb_data_client/models/id_organisme_equipe.py +51 -0
  93. ffbb_data_client/models/id_organisme_equipe1_logo.py +28 -0
  94. ffbb_data_client/models/id_poule.py +27 -0
  95. ffbb_data_client/models/jour.py +11 -0
  96. ffbb_data_client/models/label.py +15 -0
  97. ffbb_data_client/models/labellisation.py +30 -0
  98. ffbb_data_client/models/live.py +192 -0
  99. ffbb_data_client/models/lives.py +6 -0
  100. ffbb_data_client/models/logo.py +28 -0
  101. ffbb_data_client/models/multi_search_queries.py +24 -0
  102. ffbb_data_client/models/multi_search_query.py +96 -0
  103. ffbb_data_client/models/multi_search_result_competitions.py +14 -0
  104. ffbb_data_client/models/multi_search_result_engagements.py +14 -0
  105. ffbb_data_client/models/multi_search_result_formations.py +12 -0
  106. ffbb_data_client/models/multi_search_result_organismes.py +12 -0
  107. ffbb_data_client/models/multi_search_result_pratiques.py +12 -0
  108. ffbb_data_client/models/multi_search_result_rencontres.py +12 -0
  109. ffbb_data_client/models/multi_search_result_salles.py +12 -0
  110. ffbb_data_client/models/multi_search_result_terrains.py +12 -0
  111. ffbb_data_client/models/multi_search_result_tournois.py +12 -0
  112. ffbb_data_client/models/multi_search_results.py +103 -0
  113. ffbb_data_client/models/multi_search_results_class.py +96 -0
  114. ffbb_data_client/models/nature_sol.py +57 -0
  115. ffbb_data_client/models/niveau.py +10 -0
  116. ffbb_data_client/models/niveau_class.py +27 -0
  117. ffbb_data_client/models/niveau_extractor.py +214 -0
  118. ffbb_data_client/models/niveau_info.py +64 -0
  119. ffbb_data_client/models/niveau_models.py +14 -0
  120. ffbb_data_client/models/niveau_type.py +10 -0
  121. ffbb_data_client/models/objectif.py +7 -0
  122. ffbb_data_client/models/organisateur.py +197 -0
  123. ffbb_data_client/models/organisateur_type.py +6 -0
  124. ffbb_data_client/models/organisme_fields.py +327 -0
  125. ffbb_data_client/models/organisme_id_pere.py +177 -0
  126. ffbb_data_client/models/organismes_facet_distribution.py +46 -0
  127. ffbb_data_client/models/organismes_facet_stats.py +14 -0
  128. ffbb_data_client/models/organismes_hit.py +196 -0
  129. ffbb_data_client/models/organismes_multi_search_query.py +41 -0
  130. ffbb_data_client/models/organismes_query.py +8 -0
  131. ffbb_data_client/models/phase_code.py +23 -0
  132. ffbb_data_client/models/poule.py +35 -0
  133. ffbb_data_client/models/poule_fields.py +261 -0
  134. ffbb_data_client/models/poule_rencontre_item_model.py +69 -0
  135. ffbb_data_client/models/poules_models.py +6 -0
  136. ffbb_data_client/models/poules_query.py +9 -0
  137. ffbb_data_client/models/pratique.py +7 -0
  138. ffbb_data_client/models/pratiques_facet_distribution.py +29 -0
  139. ffbb_data_client/models/pratiques_facet_stats.py +14 -0
  140. ffbb_data_client/models/pratiques_hit.py +310 -0
  141. ffbb_data_client/models/pratiques_hit_type.py +9 -0
  142. ffbb_data_client/models/pratiques_multi_search_query.py +41 -0
  143. ffbb_data_client/models/pratiques_type_class.py +45 -0
  144. ffbb_data_client/models/publication_internet.py +6 -0
  145. ffbb_data_client/models/purple_logo.py +24 -0
  146. ffbb_data_client/models/query_fields_manager.py +75 -0
  147. ffbb_data_client/models/ranking_engagement.py +41 -0
  148. ffbb_data_client/models/rankings_models.py +6 -0
  149. ffbb_data_client/models/rencontres_engagement.py +23 -0
  150. ffbb_data_client/models/rencontres_facet_distribution.py +65 -0
  151. ffbb_data_client/models/rencontres_facet_stats.py +14 -0
  152. ffbb_data_client/models/rencontres_hit.py +271 -0
  153. ffbb_data_client/models/rencontres_multi_search_query.py +41 -0
  154. ffbb_data_client/models/saison.py +23 -0
  155. ffbb_data_client/models/saison_fields.py +36 -0
  156. ffbb_data_client/models/saisons_models.py +6 -0
  157. ffbb_data_client/models/saisons_query.py +9 -0
  158. ffbb_data_client/models/salle.py +56 -0
  159. ffbb_data_client/models/salles_facet_distribution.py +14 -0
  160. ffbb_data_client/models/salles_facet_stats.py +14 -0
  161. ffbb_data_client/models/salles_hit.py +153 -0
  162. ffbb_data_client/models/salles_multi_search_query.py +40 -0
  163. ffbb_data_client/models/sexe.py +9 -0
  164. ffbb_data_client/models/sexe_class.py +31 -0
  165. ffbb_data_client/models/source.py +5 -0
  166. ffbb_data_client/models/status.py +5 -0
  167. ffbb_data_client/models/team_engagement.py +56 -0
  168. ffbb_data_client/models/team_ranking.py +108 -0
  169. ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +5 -0
  170. ffbb_data_client/models/terrains_facet_distribution.py +41 -0
  171. ffbb_data_client/models/terrains_facet_stats.py +14 -0
  172. ffbb_data_client/models/terrains_hit.py +223 -0
  173. ffbb_data_client/models/terrains_multi_search_query.py +42 -0
  174. ffbb_data_client/models/terrains_name.py +5 -0
  175. ffbb_data_client/models/terrains_sexe_enum.py +7 -0
  176. ffbb_data_client/models/terrains_storage.py +5 -0
  177. ffbb_data_client/models/tournoi_type_class.py +35 -0
  178. ffbb_data_client/models/tournoi_type_enum.py +7 -0
  179. ffbb_data_client/models/tournoi_types_3x3.py +43 -0
  180. ffbb_data_client/models/tournoi_types_3x3_libelle.py +60 -0
  181. ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +10 -0
  182. ffbb_data_client/models/tournois_facet_distribution.py +41 -0
  183. ffbb_data_client/models/tournois_facet_stats.py +14 -0
  184. ffbb_data_client/models/tournois_hit.py +132 -0
  185. ffbb_data_client/models/tournois_hit_type.py +5 -0
  186. ffbb_data_client/models/tournois_libelle.py +7 -0
  187. ffbb_data_client/models/tournois_multi_search_query.py +40 -0
  188. ffbb_data_client/models/type_association.py +23 -0
  189. ffbb_data_client/models/type_association_libelle.py +30 -0
  190. ffbb_data_client/models/type_class.py +23 -0
  191. ffbb_data_client/models/type_competition.py +8 -0
  192. ffbb_data_client/models/type_competition_generique.py +31 -0
  193. ffbb_data_client/models/type_enum.py +7 -0
  194. ffbb_data_client/models/type_league.py +6 -0
  195. ffbb_data_client/py.typed +0 -0
  196. ffbb_data_client/utils/__init__.py +27 -0
  197. ffbb_data_client/utils/cache_manager.py +393 -0
  198. ffbb_data_client/utils/converter_utils.py +329 -0
  199. ffbb_data_client/utils/input_validation.py +360 -0
  200. ffbb_data_client/utils/retry_utils.py +478 -0
  201. ffbb_data_client/utils/secure_logging.py +153 -0
  202. ffbb_data_client/utils/token_manager.py +115 -0
  203. ffbb_data_client-2.0.0.dist-info/METADATA +339 -0
  204. ffbb_data_client-2.0.0.dist-info/RECORD +207 -0
  205. ffbb_data_client-2.0.0.dist-info/WHEEL +5 -0
  206. ffbb_data_client-2.0.0.dist-info/licenses/LICENSE.txt +201 -0
  207. ffbb_data_client-2.0.0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,25 @@
1
+ """
2
+ Backward-compatibility shim for ffbb_api_client_v3.
3
+
4
+ This package has been renamed to ``ffbb_data_client``.
5
+ Update your imports::
6
+
7
+ # Old (deprecated)
8
+ from ffbb_api_client_v3 import FFBBAPIClientV3
9
+
10
+ # New
11
+ from ffbb_data_client import FFBBDataClient
12
+ """
13
+
14
+ import warnings # noqa: E402
15
+
16
+ from ffbb_data_client import FFBBDataClient as FFBBAPIClientV3 # noqa: E402, F401
17
+ from ffbb_data_client import * # noqa: E402, F401, F403
18
+ from ffbb_data_client import __all__, __version__ # noqa: E402, F401
19
+
20
+ warnings.warn(
21
+ "The 'ffbb_api_client_v3' package has been renamed to 'ffbb_data_client'. "
22
+ "Please update your imports. This shim will be removed in a future release.",
23
+ DeprecationWarning,
24
+ stacklevel=2,
25
+ )
@@ -0,0 +1,175 @@
1
+ """
2
+ FFBB Data Client.
3
+
4
+ A Python client library for the French Basketball Federation (FFBB) API,
5
+ providing access to clubs, competitions, matches, and other basketball data.
6
+ """
7
+
8
+ from .clients.api_ffbb_app_client import ApiFFBBAppClient
9
+ from .clients.ffbb_data_client import FFBBDataClient
10
+ from .clients.meilisearch_client import MeilisearchClient
11
+ from .clients.meilisearch_ffbb_client import MeilisearchFFBBClient
12
+ from .helpers.meilisearch_client_extension import MeilisearchClientExtension
13
+ from .helpers.multi_search_query_helper import generate_queries
14
+ from .models.club_contacts import ClubContacts
15
+ from .models.competitions_facet_distribution import CompetitionsFacetDistribution
16
+ from .models.competitions_facet_stats import CompetitionsFacetStats
17
+ from .models.competitions_hit import CompetitionsHit
18
+ from .models.contact_info import ContactInfo
19
+ from .models.engagement_contacts import EngagementContacts
20
+ from .models.engagements_facet_distribution import EngagementsFacetDistribution
21
+ from .models.engagements_facet_stats import EngagementsFacetStats
22
+ from .models.engagements_hit import EngagementsHit
23
+ from .models.field_set import FieldSet
24
+ from .models.formations_facet_distribution import FormationsFacetDistribution
25
+ from .models.formations_facet_stats import FormationsFacetStats
26
+ from .models.formations_hit import FormationsHit
27
+ from .models.generic_search import (
28
+ GaleriesMultiSearchResult,
29
+ GenericSearchHit,
30
+ NewsMultiSearchResult,
31
+ RssMultiSearchResult,
32
+ YoutubeVideosMultiSearchResult,
33
+ )
34
+ from .models.get_competition_response import GetCompetitionResponse
35
+ from .models.get_organisme_response import GetOrganismeResponse
36
+ from .models.multi_search_query import MultiSearchQuery
37
+ from .models.multi_search_result_competitions import CompetitionsMultiSearchResult
38
+ from .models.multi_search_result_engagements import EngagementsMultiSearchResult
39
+ from .models.multi_search_result_formations import FormationsMultiSearchResult
40
+ from .models.multi_search_result_organismes import OrganismesMultiSearchResult
41
+ from .models.multi_search_result_pratiques import PratiquesMultiSearchResult
42
+ from .models.multi_search_result_rencontres import RencontresMultiSearchResult
43
+ from .models.multi_search_result_salles import SallesMultiSearchResult
44
+ from .models.multi_search_result_terrains import TerrainsMultiSearchResult
45
+ from .models.multi_search_result_tournois import TournoisMultiSearchResult
46
+ from .models.organismes_facet_distribution import OrganismesFacetDistribution
47
+ from .models.organismes_facet_stats import OrganismesFacetStats
48
+ from .models.organismes_hit import OrganismesHit
49
+ from .models.poules_models import GetPouleResponse
50
+ from .models.pratiques_facet_distribution import PratiquesFacetDistribution
51
+ from .models.pratiques_facet_stats import PratiquesFacetStats
52
+ from .models.pratiques_hit import PratiquesHit
53
+ from .models.query_fields_manager import QueryFieldsManager
54
+ from .models.rankings_models import RankingEngagement, TeamRanking
55
+ from .models.rencontres_facet_distribution import RencontresFacetDistribution
56
+ from .models.rencontres_facet_stats import RencontresFacetStats
57
+ from .models.rencontres_hit import RencontresHit
58
+ from .models.salles_facet_distribution import SallesFacetDistribution
59
+ from .models.salles_facet_stats import SallesFacetStats
60
+ from .models.salles_hit import SallesHit
61
+ from .models.terrains_facet_distribution import TerrainsFacetDistribution
62
+ from .models.terrains_facet_stats import TerrainsFacetStats
63
+ from .models.terrains_hit import TerrainsHit
64
+ from .models.tournois_facet_distribution import TournoisFacetDistribution
65
+ from .models.tournois_facet_stats import TournoisFacetStats
66
+ from .models.tournois_hit import TournoisHit
67
+ from .utils.token_manager import FFBBTokens, TokenManager
68
+
69
+ # Public API exports
70
+ __all__ = [
71
+ # Clients
72
+ "ApiFFBBAppClient",
73
+ "FFBBDataClient",
74
+ "MeilisearchClient",
75
+ "MeilisearchFFBBClient",
76
+ # Helpers
77
+ "MeilisearchClientExtension",
78
+ "generate_queries",
79
+ "QueryFieldsManager",
80
+ # Query
81
+ "MultiSearchQuery",
82
+ "FieldSet",
83
+ # Responses
84
+ "GetCompetitionResponse",
85
+ "GetOrganismeResponse",
86
+ "ContactInfo",
87
+ "ClubContacts",
88
+ "EngagementContacts",
89
+ "GetPouleResponse",
90
+ # Rankings
91
+ "RankingEngagement",
92
+ "TeamRanking",
93
+ # Competitions
94
+ "CompetitionsFacetDistribution",
95
+ "CompetitionsFacetStats",
96
+ "CompetitionsHit",
97
+ "CompetitionsMultiSearchResult",
98
+ # Engagements
99
+ "EngagementsFacetDistribution",
100
+ "EngagementsFacetStats",
101
+ "EngagementsHit",
102
+ "EngagementsMultiSearchResult",
103
+ # Formations
104
+ "FormationsFacetDistribution",
105
+ "FormationsFacetStats",
106
+ "FormationsHit",
107
+ "FormationsMultiSearchResult",
108
+ # Content indexes
109
+ "GenericSearchHit",
110
+ "NewsMultiSearchResult",
111
+ "YoutubeVideosMultiSearchResult",
112
+ "RssMultiSearchResult",
113
+ "GaleriesMultiSearchResult",
114
+ # Organismes
115
+ "OrganismesFacetDistribution",
116
+ "OrganismesFacetStats",
117
+ "OrganismesHit",
118
+ "OrganismesMultiSearchResult",
119
+ # Pratiques
120
+ "PratiquesFacetDistribution",
121
+ "PratiquesFacetStats",
122
+ "PratiquesHit",
123
+ "PratiquesMultiSearchResult",
124
+ # Rencontres
125
+ "RencontresFacetDistribution",
126
+ "RencontresFacetStats",
127
+ "RencontresHit",
128
+ "RencontresMultiSearchResult",
129
+ # Salles
130
+ "SallesFacetDistribution",
131
+ "SallesFacetStats",
132
+ "SallesHit",
133
+ "SallesMultiSearchResult",
134
+ # Terrains
135
+ "TerrainsFacetDistribution",
136
+ "TerrainsFacetStats",
137
+ "TerrainsHit",
138
+ "TerrainsMultiSearchResult",
139
+ # Tournois
140
+ "TournoisFacetDistribution",
141
+ "TournoisFacetStats",
142
+ "TournoisHit",
143
+ "TournoisMultiSearchResult",
144
+ # Token management
145
+ "FFBBTokens",
146
+ "TokenManager",
147
+ ]
148
+
149
+ from importlib.metadata import PackageNotFoundError, version
150
+
151
+ try:
152
+ DIST_NAME = __name__
153
+ __version__ = version(DIST_NAME)
154
+ except PackageNotFoundError:
155
+ __version__ = "unknown"
156
+ finally:
157
+ del version, PackageNotFoundError
158
+
159
+
160
+ # ---------------------------------------------------------------------------
161
+ # Backward-compatibility alias (deprecated)
162
+ # ---------------------------------------------------------------------------
163
+ import warnings as _warnings
164
+
165
+
166
+ def __getattr__(name: str):
167
+ if name == "FFBBAPIClientV3":
168
+ _warnings.warn(
169
+ "FFBBAPIClientV3 has been renamed to FFBBDataClient. "
170
+ "Update your imports: from ffbb_data_client import FFBBDataClient",
171
+ DeprecationWarning,
172
+ stacklevel=2,
173
+ )
174
+ return FFBBDataClient
175
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
@@ -0,0 +1,13 @@
1
+ """Client classes for FFBB API interactions."""
2
+
3
+ from .api_ffbb_app_client import ApiFFBBAppClient
4
+ from .ffbb_data_client import FFBBDataClient
5
+ from .meilisearch_client import MeilisearchClient
6
+ from .meilisearch_ffbb_client import MeilisearchFFBBClient
7
+
8
+ __all__ = [
9
+ "ApiFFBBAppClient",
10
+ "FFBBDataClient",
11
+ "MeilisearchClient",
12
+ "MeilisearchFFBBClient",
13
+ ]