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.
- ffbb_api_client_v3/__init__.py +25 -0
- ffbb_data_client/__init__.py +175 -0
- ffbb_data_client/clients/__init__.py +13 -0
- ffbb_data_client/clients/api_ffbb_app_client.py +2475 -0
- ffbb_data_client/clients/ffbb_data_client.py +2789 -0
- ffbb_data_client/clients/meilisearch_client.py +218 -0
- ffbb_data_client/clients/meilisearch_ffbb_client.py +647 -0
- ffbb_data_client/config.py +153 -0
- ffbb_data_client/data/__init__.py +25 -0
- ffbb_data_client/data/collections.json +1364 -0
- ffbb_data_client/data/endpoint_discovery.json +1875 -0
- ffbb_data_client/data/indexes.json +501 -0
- ffbb_data_client/data/openapi.json +35713 -0
- ffbb_data_client/data/openapi_full.json +37622 -0
- ffbb_data_client/helpers/__init__.py +27 -0
- ffbb_data_client/helpers/http_requests_helper.py +73 -0
- ffbb_data_client/helpers/http_requests_utils.py +502 -0
- ffbb_data_client/helpers/meilisearch_client_extension.py +153 -0
- ffbb_data_client/helpers/multi_search_query_helper.py +35 -0
- ffbb_data_client/models/__init__.py +241 -0
- ffbb_data_client/models/affiche.py +45 -0
- ffbb_data_client/models/cartographie.py +82 -0
- ffbb_data_client/models/categorie.py +55 -0
- ffbb_data_client/models/categorie_type.py +42 -0
- ffbb_data_client/models/clock.py +38 -0
- ffbb_data_client/models/club_contacts.py +77 -0
- ffbb_data_client/models/code.py +7 -0
- ffbb_data_client/models/commune.py +66 -0
- ffbb_data_client/models/competition_fields.py +309 -0
- ffbb_data_client/models/competition_id.py +116 -0
- ffbb_data_client/models/competition_id_categorie.py +31 -0
- ffbb_data_client/models/competition_id_sexe.py +31 -0
- ffbb_data_client/models/competition_id_type_competition.py +27 -0
- ffbb_data_client/models/competition_id_type_competition_generique.py +24 -0
- ffbb_data_client/models/competition_origine.py +69 -0
- ffbb_data_client/models/competition_origine_categorie.py +23 -0
- ffbb_data_client/models/competition_origine_type_competition.py +14 -0
- ffbb_data_client/models/competition_origine_type_competition_generique.py +24 -0
- ffbb_data_client/models/competition_type.py +6 -0
- ffbb_data_client/models/competitions_facet_distribution.py +65 -0
- ffbb_data_client/models/competitions_facet_stats.py +14 -0
- ffbb_data_client/models/competitions_hit.py +232 -0
- ffbb_data_client/models/competitions_multi_search_query.py +40 -0
- ffbb_data_client/models/competitions_query.py +11 -0
- ffbb_data_client/models/configuration_models.py +5 -0
- ffbb_data_client/models/contact_info.py +18 -0
- ffbb_data_client/models/content_multi_search_query.py +93 -0
- ffbb_data_client/models/coordonnees.py +27 -0
- ffbb_data_client/models/coordonnees_type.py +5 -0
- ffbb_data_client/models/document_flyer.py +205 -0
- ffbb_data_client/models/document_flyer_type.py +6 -0
- ffbb_data_client/models/engagement_contacts.py +97 -0
- ffbb_data_client/models/engagements_facet_distribution.py +59 -0
- ffbb_data_client/models/engagements_facet_stats.py +14 -0
- ffbb_data_client/models/engagements_hit.py +192 -0
- ffbb_data_client/models/engagements_multi_search_query.py +41 -0
- ffbb_data_client/models/etat.py +6 -0
- ffbb_data_client/models/external_competition_id.py +42 -0
- ffbb_data_client/models/external_id.py +72 -0
- ffbb_data_client/models/facet_distribution.py +13 -0
- ffbb_data_client/models/facet_stats.py +13 -0
- ffbb_data_client/models/field_set.py +10 -0
- ffbb_data_client/models/folder.py +35 -0
- ffbb_data_client/models/formation_session.py +60 -0
- ffbb_data_client/models/formations_facet_distribution.py +61 -0
- ffbb_data_client/models/formations_facet_stats.py +14 -0
- ffbb_data_client/models/formations_hit.py +277 -0
- ffbb_data_client/models/formations_multi_search_query.py +41 -0
- ffbb_data_client/models/game_stats_model.py +57 -0
- ffbb_data_client/models/game_stats_models.py +5 -0
- ffbb_data_client/models/generic_search.py +92 -0
- ffbb_data_client/models/geo.py +27 -0
- ffbb_data_client/models/geo_sort_order.py +6 -0
- ffbb_data_client/models/get_commune_response.py +18 -0
- ffbb_data_client/models/get_competition_response.py +523 -0
- ffbb_data_client/models/get_configuration_response.py +45 -0
- ffbb_data_client/models/get_engagement_response.py +23 -0
- ffbb_data_client/models/get_entraineur_response.py +18 -0
- ffbb_data_client/models/get_formation_response.py +28 -0
- ffbb_data_client/models/get_officiel_response.py +18 -0
- ffbb_data_client/models/get_organisme_response.py +476 -0
- ffbb_data_client/models/get_poule_response.py +68 -0
- ffbb_data_client/models/get_pratique_response.py +18 -0
- ffbb_data_client/models/get_rencontre_response.py +93 -0
- ffbb_data_client/models/get_saisons_response.py +56 -0
- ffbb_data_client/models/get_salle_response.py +20 -0
- ffbb_data_client/models/get_terrain_response.py +16 -0
- ffbb_data_client/models/get_tournoi_response.py +16 -0
- ffbb_data_client/models/gradient_color.py +27 -0
- ffbb_data_client/models/hit.py +16 -0
- ffbb_data_client/models/id_engagement_equipe.py +32 -0
- ffbb_data_client/models/id_organisme_equipe.py +51 -0
- ffbb_data_client/models/id_organisme_equipe1_logo.py +28 -0
- ffbb_data_client/models/id_poule.py +27 -0
- ffbb_data_client/models/jour.py +11 -0
- ffbb_data_client/models/label.py +15 -0
- ffbb_data_client/models/labellisation.py +30 -0
- ffbb_data_client/models/live.py +192 -0
- ffbb_data_client/models/lives.py +6 -0
- ffbb_data_client/models/logo.py +28 -0
- ffbb_data_client/models/multi_search_queries.py +24 -0
- ffbb_data_client/models/multi_search_query.py +96 -0
- ffbb_data_client/models/multi_search_result_competitions.py +14 -0
- ffbb_data_client/models/multi_search_result_engagements.py +14 -0
- ffbb_data_client/models/multi_search_result_formations.py +12 -0
- ffbb_data_client/models/multi_search_result_organismes.py +12 -0
- ffbb_data_client/models/multi_search_result_pratiques.py +12 -0
- ffbb_data_client/models/multi_search_result_rencontres.py +12 -0
- ffbb_data_client/models/multi_search_result_salles.py +12 -0
- ffbb_data_client/models/multi_search_result_terrains.py +12 -0
- ffbb_data_client/models/multi_search_result_tournois.py +12 -0
- ffbb_data_client/models/multi_search_results.py +103 -0
- ffbb_data_client/models/multi_search_results_class.py +96 -0
- ffbb_data_client/models/nature_sol.py +57 -0
- ffbb_data_client/models/niveau.py +10 -0
- ffbb_data_client/models/niveau_class.py +27 -0
- ffbb_data_client/models/niveau_extractor.py +214 -0
- ffbb_data_client/models/niveau_info.py +64 -0
- ffbb_data_client/models/niveau_models.py +14 -0
- ffbb_data_client/models/niveau_type.py +10 -0
- ffbb_data_client/models/objectif.py +7 -0
- ffbb_data_client/models/organisateur.py +197 -0
- ffbb_data_client/models/organisateur_type.py +6 -0
- ffbb_data_client/models/organisme_fields.py +327 -0
- ffbb_data_client/models/organisme_id_pere.py +177 -0
- ffbb_data_client/models/organismes_facet_distribution.py +46 -0
- ffbb_data_client/models/organismes_facet_stats.py +14 -0
- ffbb_data_client/models/organismes_hit.py +196 -0
- ffbb_data_client/models/organismes_multi_search_query.py +41 -0
- ffbb_data_client/models/organismes_query.py +8 -0
- ffbb_data_client/models/phase_code.py +23 -0
- ffbb_data_client/models/poule.py +35 -0
- ffbb_data_client/models/poule_fields.py +261 -0
- ffbb_data_client/models/poule_rencontre_item_model.py +69 -0
- ffbb_data_client/models/poules_models.py +6 -0
- ffbb_data_client/models/poules_query.py +9 -0
- ffbb_data_client/models/pratique.py +7 -0
- ffbb_data_client/models/pratiques_facet_distribution.py +29 -0
- ffbb_data_client/models/pratiques_facet_stats.py +14 -0
- ffbb_data_client/models/pratiques_hit.py +310 -0
- ffbb_data_client/models/pratiques_hit_type.py +9 -0
- ffbb_data_client/models/pratiques_multi_search_query.py +41 -0
- ffbb_data_client/models/pratiques_type_class.py +45 -0
- ffbb_data_client/models/publication_internet.py +6 -0
- ffbb_data_client/models/purple_logo.py +24 -0
- ffbb_data_client/models/query_fields_manager.py +75 -0
- ffbb_data_client/models/ranking_engagement.py +41 -0
- ffbb_data_client/models/rankings_models.py +6 -0
- ffbb_data_client/models/rencontres_engagement.py +23 -0
- ffbb_data_client/models/rencontres_facet_distribution.py +65 -0
- ffbb_data_client/models/rencontres_facet_stats.py +14 -0
- ffbb_data_client/models/rencontres_hit.py +271 -0
- ffbb_data_client/models/rencontres_multi_search_query.py +41 -0
- ffbb_data_client/models/saison.py +23 -0
- ffbb_data_client/models/saison_fields.py +36 -0
- ffbb_data_client/models/saisons_models.py +6 -0
- ffbb_data_client/models/saisons_query.py +9 -0
- ffbb_data_client/models/salle.py +56 -0
- ffbb_data_client/models/salles_facet_distribution.py +14 -0
- ffbb_data_client/models/salles_facet_stats.py +14 -0
- ffbb_data_client/models/salles_hit.py +153 -0
- ffbb_data_client/models/salles_multi_search_query.py +40 -0
- ffbb_data_client/models/sexe.py +9 -0
- ffbb_data_client/models/sexe_class.py +31 -0
- ffbb_data_client/models/source.py +5 -0
- ffbb_data_client/models/status.py +5 -0
- ffbb_data_client/models/team_engagement.py +56 -0
- ffbb_data_client/models/team_ranking.py +108 -0
- ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +5 -0
- ffbb_data_client/models/terrains_facet_distribution.py +41 -0
- ffbb_data_client/models/terrains_facet_stats.py +14 -0
- ffbb_data_client/models/terrains_hit.py +223 -0
- ffbb_data_client/models/terrains_multi_search_query.py +42 -0
- ffbb_data_client/models/terrains_name.py +5 -0
- ffbb_data_client/models/terrains_sexe_enum.py +7 -0
- ffbb_data_client/models/terrains_storage.py +5 -0
- ffbb_data_client/models/tournoi_type_class.py +35 -0
- ffbb_data_client/models/tournoi_type_enum.py +7 -0
- ffbb_data_client/models/tournoi_types_3x3.py +43 -0
- ffbb_data_client/models/tournoi_types_3x3_libelle.py +60 -0
- ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +10 -0
- ffbb_data_client/models/tournois_facet_distribution.py +41 -0
- ffbb_data_client/models/tournois_facet_stats.py +14 -0
- ffbb_data_client/models/tournois_hit.py +132 -0
- ffbb_data_client/models/tournois_hit_type.py +5 -0
- ffbb_data_client/models/tournois_libelle.py +7 -0
- ffbb_data_client/models/tournois_multi_search_query.py +40 -0
- ffbb_data_client/models/type_association.py +23 -0
- ffbb_data_client/models/type_association_libelle.py +30 -0
- ffbb_data_client/models/type_class.py +23 -0
- ffbb_data_client/models/type_competition.py +8 -0
- ffbb_data_client/models/type_competition_generique.py +31 -0
- ffbb_data_client/models/type_enum.py +7 -0
- ffbb_data_client/models/type_league.py +6 -0
- ffbb_data_client/py.typed +0 -0
- ffbb_data_client/utils/__init__.py +27 -0
- ffbb_data_client/utils/cache_manager.py +393 -0
- ffbb_data_client/utils/converter_utils.py +329 -0
- ffbb_data_client/utils/input_validation.py +360 -0
- ffbb_data_client/utils/retry_utils.py +478 -0
- ffbb_data_client/utils/secure_logging.py +153 -0
- ffbb_data_client/utils/token_manager.py +115 -0
- ffbb_data_client-2.0.0.dist-info/METADATA +339 -0
- ffbb_data_client-2.0.0.dist-info/RECORD +207 -0
- ffbb_data_client-2.0.0.dist-info/WHEEL +5 -0
- ffbb_data_client-2.0.0.dist-info/licenses/LICENSE.txt +201 -0
- ffbb_data_client-2.0.0.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"""Token management for FFBB API clients."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
|
|
8
|
+
from ..config import (
|
|
9
|
+
API_FFBB_BASE_URL,
|
|
10
|
+
DEFAULT_USER_AGENT,
|
|
11
|
+
ENDPOINT_CONFIGURATION,
|
|
12
|
+
ENV_API_TOKEN,
|
|
13
|
+
ENV_MEILISEARCH_TOKEN,
|
|
14
|
+
)
|
|
15
|
+
from ..helpers.http_requests_helper import catch_result
|
|
16
|
+
from ..helpers.http_requests_utils import http_get_json
|
|
17
|
+
from ..models.configuration_models import GetConfigurationResponse
|
|
18
|
+
from ..utils.cache_manager import CacheConfig, CacheManager
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@dataclass
|
|
22
|
+
class FFBBTokens:
|
|
23
|
+
"""Container for FFBB API tokens."""
|
|
24
|
+
|
|
25
|
+
api_token: str
|
|
26
|
+
meilisearch_token: str
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class TokenManager:
|
|
30
|
+
"""
|
|
31
|
+
Manages FFBB API tokens.
|
|
32
|
+
|
|
33
|
+
Resolution order:
|
|
34
|
+
1. Environment variables
|
|
35
|
+
2. Fetch from FFBB API configuration endpoint (public, HTTP cached)
|
|
36
|
+
|
|
37
|
+
Example:
|
|
38
|
+
tokens = TokenManager.get_tokens()
|
|
39
|
+
client = FFBBDataClient.create(
|
|
40
|
+
api_bearer_token=tokens.api_token,
|
|
41
|
+
meilisearch_bearer_token=tokens.meilisearch_token
|
|
42
|
+
)
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
@staticmethod
|
|
46
|
+
def get_tokens(
|
|
47
|
+
cache_config: CacheConfig | None = None,
|
|
48
|
+
use_cache: bool | None = None,
|
|
49
|
+
) -> FFBBTokens:
|
|
50
|
+
"""
|
|
51
|
+
Get FFBB tokens from environment or API.
|
|
52
|
+
|
|
53
|
+
Args:
|
|
54
|
+
cache_config: Optional cache configuration object for advanced settings.
|
|
55
|
+
use_cache: Simple boolean to enable/disable caching (mutually exclusive with cache_config).
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
FFBBTokens with api_token and meilisearch_token
|
|
59
|
+
|
|
60
|
+
Raises:
|
|
61
|
+
ValueError: If both cache_config and use_cache are provided.
|
|
62
|
+
|
|
63
|
+
Note:
|
|
64
|
+
If neither cache_config nor use_cache is provided, default caching is used.
|
|
65
|
+
"""
|
|
66
|
+
if cache_config is not None and use_cache is not None:
|
|
67
|
+
raise ValueError(
|
|
68
|
+
"Cannot specify both 'cache_config' and 'use_cache' parameters"
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# Convert simple use_cache boolean to CacheConfig if provided
|
|
72
|
+
if use_cache is not None:
|
|
73
|
+
cache_config = CacheConfig(enabled=use_cache)
|
|
74
|
+
|
|
75
|
+
# Try environment variables first
|
|
76
|
+
api_token = os.getenv(ENV_API_TOKEN)
|
|
77
|
+
meilisearch_token = os.getenv(ENV_MEILISEARCH_TOKEN)
|
|
78
|
+
|
|
79
|
+
if api_token and meilisearch_token:
|
|
80
|
+
return FFBBTokens(api_token=api_token, meilisearch_token=meilisearch_token)
|
|
81
|
+
|
|
82
|
+
# Fetch from API (HTTP layer handles caching)
|
|
83
|
+
config = TokenManager._fetch_configuration(cache_config)
|
|
84
|
+
return FFBBTokens(
|
|
85
|
+
api_token=config.api_bearer_token,
|
|
86
|
+
meilisearch_token=config.meilisearch_token,
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
@staticmethod
|
|
90
|
+
def _fetch_configuration(
|
|
91
|
+
cache_config: CacheConfig | None = None,
|
|
92
|
+
) -> GetConfigurationResponse:
|
|
93
|
+
"""Fetch configuration from FFBB API (public endpoint)."""
|
|
94
|
+
cache_manager = CacheManager(cache_config)
|
|
95
|
+
cached_session = cache_manager.session
|
|
96
|
+
|
|
97
|
+
config_url = f"{API_FFBB_BASE_URL}{ENDPOINT_CONFIGURATION}"
|
|
98
|
+
headers = {"user-agent": DEFAULT_USER_AGENT}
|
|
99
|
+
|
|
100
|
+
data = catch_result(
|
|
101
|
+
lambda: http_get_json(
|
|
102
|
+
config_url,
|
|
103
|
+
headers,
|
|
104
|
+
cached_session=cached_session,
|
|
105
|
+
)
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
actual_data = data.get("data") if data and isinstance(data, dict) else data
|
|
109
|
+
|
|
110
|
+
if not actual_data:
|
|
111
|
+
raise RuntimeError("Failed to fetch configuration from FFBB API")
|
|
112
|
+
|
|
113
|
+
from pydantic import TypeAdapter
|
|
114
|
+
|
|
115
|
+
return TypeAdapter(GetConfigurationResponse).validate_python(actual_data)
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ffbb_data_client
|
|
3
|
+
Version: 2.0.0
|
|
4
|
+
Summary: FFBB API Python Client (V3) — SDK asynchrone pour les Statistiques de Basket France. Type-safe Pydantic models, async/sync, Meilisearch.
|
|
5
|
+
Home-page: https://github.com/nickdesi/ffbb-data-client
|
|
6
|
+
Author: nickdesi
|
|
7
|
+
Author-email: nicolas.desimone@gmail.com
|
|
8
|
+
License: Apache-2.0
|
|
9
|
+
Project-URL: Homepage, https://nickdesi.github.io/ffbb-data-client/
|
|
10
|
+
Project-URL: Documentation, https://nickdesi.github.io/ffbb-data-client/
|
|
11
|
+
Project-URL: Source, https://github.com/nickdesi/ffbb-data-client
|
|
12
|
+
Project-URL: Changelog, https://github.com/nickdesi/ffbb-data-client/blob/main/CHANGELOG.md
|
|
13
|
+
Project-URL: Tracker, https://github.com/nickdesi/ffbb-data-client/issues
|
|
14
|
+
Project-URL: Release Notes, https://github.com/nickdesi/ffbb-data-client/blob/main/RELEASE_NOTES.md
|
|
15
|
+
Keywords: ffbb,basketball,statistiques,france,api,python-sdk,pydantic,asynchrone,meilisearch,basket-france
|
|
16
|
+
Platform: any
|
|
17
|
+
Classifier: Development Status :: 4 - Beta
|
|
18
|
+
Classifier: Programming Language :: Python
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
|
+
Classifier: Intended Audience :: Developers
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
28
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
29
|
+
Classifier: Framework :: AsyncIO
|
|
30
|
+
Classifier: Operating System :: OS Independent
|
|
31
|
+
Classifier: Natural Language :: French
|
|
32
|
+
Requires-Python: >=3.10
|
|
33
|
+
Description-Content-Type: text/markdown; charset=UTF-8
|
|
34
|
+
License-File: LICENSE.txt
|
|
35
|
+
Requires-Dist: python-dotenv>=1.2.2
|
|
36
|
+
Requires-Dist: readme_renderer[md]>=44.0
|
|
37
|
+
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
38
|
+
Requires-Dist: httpx>=0.28.1
|
|
39
|
+
Requires-Dist: hishel[async]>=1.2.1
|
|
40
|
+
Requires-Dist: pydantic>=2.13.3
|
|
41
|
+
Provides-Extra: testing
|
|
42
|
+
Requires-Dist: setuptools>=82.0.1; extra == "testing"
|
|
43
|
+
Requires-Dist: coverage>=7.13.5; extra == "testing"
|
|
44
|
+
Requires-Dist: pytest>=9.0.3; extra == "testing"
|
|
45
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == "testing"
|
|
46
|
+
Requires-Dist: pytest-cov>=7.1.0; extra == "testing"
|
|
47
|
+
Requires-Dist: respx>=0.23.1; extra == "testing"
|
|
48
|
+
Requires-Dist: pytest-asyncio>=1.3.0; extra == "testing"
|
|
49
|
+
Provides-Extra: typing
|
|
50
|
+
Requires-Dist: types-python-dateutil>=2.9.0.20260408; extra == "typing"
|
|
51
|
+
Dynamic: license-file
|
|
52
|
+
|
|
53
|
+
<div align="center">
|
|
54
|
+
|
|
55
|
+
# 🏀 FFBB API Python Client V3
|
|
56
|
+
|
|
57
|
+
**SDK Python moderne, typé et asynchrone pour exploiter les données publiques FFBB : clubs, compétitions, rencontres, classements, salles, officiels et recherche Meilisearch.**
|
|
58
|
+
|
|
59
|
+
[](https://pypi.org/project/ffbb_data_client/)
|
|
60
|
+
[](https://pypi.org/project/ffbb_data_client/)
|
|
61
|
+
[](https://github.com/nickdesi/ffbb-data-client/actions/workflows/ci.yml)
|
|
62
|
+
[](https://coveralls.io/github/nickdesi/ffbb-data-client?branch=master)
|
|
63
|
+
[](LICENSE.txt)
|
|
64
|
+
[](https://github.com/nickdesi/FFBB-MCP-Server)
|
|
65
|
+
|
|
66
|
+
[Installation](#-installation) •
|
|
67
|
+
[Démarrage rapide](#-démarrage-rapide) •
|
|
68
|
+
[Fonctionnalités](#-fonctionnalités) •
|
|
69
|
+
[Recherche](#-recherche-meilisearch) •
|
|
70
|
+
[Async](#-utilisation-asynchrone) •
|
|
71
|
+
[Développement](#-développement-local)
|
|
72
|
+
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 📌 À propos
|
|
78
|
+
|
|
79
|
+
`ffbb_data_client` simplifie l'accès aux API FFBB et à leurs index Meilisearch avec :
|
|
80
|
+
|
|
81
|
+
- une façade unique : `FFBBDataClient` ;
|
|
82
|
+
- des modèles Pydantic v2 typés ;
|
|
83
|
+
- une API utilisable en synchrone ou en `async/await` ;
|
|
84
|
+
- une gestion automatique des tokens via `TokenManager` ;
|
|
85
|
+
- du cache HTTP configurable via `hishel` ;
|
|
86
|
+
- des helpers prêts pour l'intégration MCP / agents IA.
|
|
87
|
+
|
|
88
|
+
> La V3 remplace l’approche V2 basée sur des dictionnaires bruts et une configuration manuelle. Elle privilégie le typage, la robustesse réseau et les appels batchés.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 🚀 Version v1.7.0 — 30 avril 2026
|
|
93
|
+
|
|
94
|
+
Principales évolutions récentes :
|
|
95
|
+
|
|
96
|
+
- ajout d'entités REST et Meilisearch : rencontres, officiels, entraîneurs, communes et assets ;
|
|
97
|
+
- réutilisation des clients `httpx` synchrones et asynchrones ;
|
|
98
|
+
- cache Meilisearch optimisé pour limiter les copies coûteuses ;
|
|
99
|
+
- retries de transport configurables via `CacheConfig.transport_retries` ;
|
|
100
|
+
- mise à jour des schémas OpenAPI, collections et index ;
|
|
101
|
+
- stabilisation CI, typage, tests et formatage.
|
|
102
|
+
|
|
103
|
+
Voir aussi : [`CHANGELOG.md`](CHANGELOG.md) et [`RELEASE_NOTES.md`](RELEASE_NOTES.md).
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 📦 Installation
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
pip install ffbb_data_client
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Pour contribuer ou exécuter les tests :
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
git clone https://github.com/nickdesi/ffbb-data-client.git
|
|
117
|
+
cd ffbb-data-client
|
|
118
|
+
pip install -e ".[testing]"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Prérequis : Python `>=3.10`.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## ⚡ Démarrage rapide
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
from ffbb_data_client import FFBBDataClient
|
|
129
|
+
|
|
130
|
+
client = FFBBDataClient.create()
|
|
131
|
+
|
|
132
|
+
# Recherche globale sur les index FFBB
|
|
133
|
+
results = client.multi_search("Pau Orthez")
|
|
134
|
+
|
|
135
|
+
for result in results or []:
|
|
136
|
+
print(result.index_uid, len(result.hits or []))
|
|
137
|
+
|
|
138
|
+
# Lives en cours
|
|
139
|
+
lives = client.get_lives()
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
`FFBBDataClient.create()` résout automatiquement les tokens si aucun token n'est passé explicitement.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## ✨ Fonctionnalités
|
|
147
|
+
|
|
148
|
+
| Domaine | Capacités |
|
|
149
|
+
|---|---|
|
|
150
|
+
| API FFBB | clubs, compétitions, organismes, saisons, poules, classements, rencontres, lives |
|
|
151
|
+
| Recherche | organismes, compétitions, rencontres, salles, terrains, pratiques, tournois, engagements et formations |
|
|
152
|
+
| REST typé | récupération de ressources individuelles avec modèles Pydantic v2 |
|
|
153
|
+
| Async | méthodes `*_async()` pour les appels réseau non bloquants |
|
|
154
|
+
| Cache | cache HTTP `hishel`, sessions `httpx` réutilisées, retries configurables |
|
|
155
|
+
| Sécurité | masquage des tokens dans les logs |
|
|
156
|
+
| IA / MCP | structure compatible avec des wrappers MCP et agents IA |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 🔍 Recherche Meilisearch
|
|
161
|
+
|
|
162
|
+
### Recherche globale
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
results = client.multi_search("Clermont")
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Recherche ciblée
|
|
169
|
+
|
|
170
|
+
```python
|
|
171
|
+
organismes = client.search_organismes(
|
|
172
|
+
"Clermont",
|
|
173
|
+
filter=['codePostal = "63000"'],
|
|
174
|
+
sort=["nom:asc"],
|
|
175
|
+
limit=10,
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
rencontres = client.search_rencontres("N1M", limit=20)
|
|
179
|
+
salles = client.search_salles("Maison des Sports", limit=5)
|
|
180
|
+
engagements = client.search_engagements("U15M", limit=20)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Recherche géographique
|
|
184
|
+
|
|
185
|
+
```python
|
|
186
|
+
clubs = client.search_organismes_by_geo(
|
|
187
|
+
lat=45.7772,
|
|
188
|
+
lng=3.0870,
|
|
189
|
+
radius_km=20,
|
|
190
|
+
limit=20,
|
|
191
|
+
)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Principales méthodes exposées
|
|
195
|
+
|
|
196
|
+
| Ressource | Méthode sync | Méthode async |
|
|
197
|
+
|---|---|---|
|
|
198
|
+
| Recherche globale | `multi_search()` | `multi_search_async()` |
|
|
199
|
+
| Clubs / organismes | `search_organismes()` | `search_organismes_async()` |
|
|
200
|
+
| Compétitions | `search_competitions()` | `search_competitions_async()` |
|
|
201
|
+
| Rencontres | `search_rencontres()` | `search_rencontres_async()` |
|
|
202
|
+
| Salles | `search_salles()` | `search_salles_async()` |
|
|
203
|
+
| Terrains | `search_terrains()` | `search_terrains_async()` |
|
|
204
|
+
| Pratiques | `search_pratiques()` | `search_pratiques_async()` |
|
|
205
|
+
| Tournois | `search_tournois()` | `search_tournois_async()` |
|
|
206
|
+
| Engagements | `search_engagements()` | `search_engagements_async()` |
|
|
207
|
+
| Formations | `search_formations()` | `search_formations_async()` |
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 🧱 Accès REST typé
|
|
212
|
+
|
|
213
|
+
```python
|
|
214
|
+
# Ressources principales
|
|
215
|
+
organisme = client.get_organisme(12345)
|
|
216
|
+
competition = client.get_competition(67890)
|
|
217
|
+
poule = client.get_poule(11111)
|
|
218
|
+
|
|
219
|
+
# Ressources ajoutées récemment
|
|
220
|
+
rencontre = client.get_rencontre(22222)
|
|
221
|
+
officiel = client.get_officiel(33333)
|
|
222
|
+
entraineur = client.get_entraineur(44444)
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Les assets Directus et autres collections peuvent être exploités via les méthodes REST/listing dédiées exposées par le client lorsque disponibles.
|
|
226
|
+
|
|
227
|
+
Les réponses sont converties en modèles Pydantic lorsque le schéma est connu, ce qui apporte validation, autocomplétion et sérialisation propre.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## 🧵 Utilisation asynchrone
|
|
232
|
+
|
|
233
|
+
```python
|
|
234
|
+
import asyncio
|
|
235
|
+
from ffbb_data_client import FFBBDataClient
|
|
236
|
+
|
|
237
|
+
async def main() -> None:
|
|
238
|
+
client = FFBBDataClient.create()
|
|
239
|
+
|
|
240
|
+
results = await client.search_organismes_async("ASVEL")
|
|
241
|
+
lives = await client.get_lives_async()
|
|
242
|
+
|
|
243
|
+
print(results.estimated_total_hits if results else 0)
|
|
244
|
+
print(len(lives or []))
|
|
245
|
+
|
|
246
|
+
asyncio.run(main())
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 🔐 Tokens et configuration
|
|
252
|
+
|
|
253
|
+
Par défaut, le client utilise `TokenManager.get_tokens()` au moment de la création :
|
|
254
|
+
|
|
255
|
+
```python
|
|
256
|
+
from ffbb_data_client import FFBBDataClient, TokenManager
|
|
257
|
+
|
|
258
|
+
tokens = TokenManager.get_tokens()
|
|
259
|
+
|
|
260
|
+
client = FFBBDataClient.create(
|
|
261
|
+
api_bearer_token=tokens.api_token,
|
|
262
|
+
meilisearch_bearer_token=tokens.meilisearch_token,
|
|
263
|
+
)
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Il est donc possible de laisser le client résoudre les tokens automatiquement ou de les fournir explicitement selon le contexte d'exécution.
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## 🏗 Architecture
|
|
271
|
+
|
|
272
|
+
```text
|
|
273
|
+
src/ffbb_data_client/
|
|
274
|
+
├── clients/
|
|
275
|
+
│ ├── ffbb_data_client.py # Façade publique
|
|
276
|
+
│ ├── api_ffbb_app_client.py # Client REST FFBB
|
|
277
|
+
│ └── meilisearch_ffbb_client.py # Client recherche Meilisearch
|
|
278
|
+
├── helpers/ # Requêtes HTTP, multi-search, conversions
|
|
279
|
+
├── models/ # Modèles Pydantic v2
|
|
280
|
+
├── utils/ # cache, tokens, logging sécurisé
|
|
281
|
+
└── data/ # schémas et métadonnées embarqués
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## 🧪 Développement local
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
pip install -e ".[testing]"
|
|
290
|
+
pytest tests/
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Commandes utiles :
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
pytest tests/unit/
|
|
297
|
+
pytest tests/integration/
|
|
298
|
+
pytest tests/ --cov=src
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Documentation complémentaire :
|
|
302
|
+
|
|
303
|
+
- [`LOCAL_CI_GUIDE.md`](LOCAL_CI_GUIDE.md)
|
|
304
|
+
- [`docs/testing_conventions.md`](docs/testing_conventions.md)
|
|
305
|
+
- [`docs/architecture.rst`](docs/architecture.rst)
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## 🤖 Intégration IA / MCP
|
|
310
|
+
|
|
311
|
+
Le client sert de base au serveur MCP FFBB et expose une API stable pour construire des outils agent-friendly : recherche de clubs, récupération de poules, classements, lives, calendriers et détails de rencontres.
|
|
312
|
+
|
|
313
|
+
Projet associé : [FFBB-MCP-Server](https://github.com/nickdesi/FFBB-MCP-Server)
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 🤝 Contribuer
|
|
318
|
+
|
|
319
|
+
Les contributions sont bienvenues :
|
|
320
|
+
|
|
321
|
+
- ouvrez une [issue](https://github.com/nickdesi/ffbb-data-client/issues) pour un bug ;
|
|
322
|
+
- proposez une évolution via les [discussions](https://github.com/nickdesi/ffbb-data-client/discussions) ;
|
|
323
|
+
- lancez les tests localement avant une pull request.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 📄 Licence
|
|
328
|
+
|
|
329
|
+
Distribué sous licence Apache-2.0. Voir [`LICENSE.txt`](LICENSE.txt).
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
<div align="center">
|
|
334
|
+
|
|
335
|
+
**Si ce projet vous aide, une étoile est appréciée. ⭐**
|
|
336
|
+
|
|
337
|
+
[](https://github.com/nickdesi/ffbb-data-client/stargazers)
|
|
338
|
+
|
|
339
|
+
</div>
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
ffbb_api_client_v3/__init__.py,sha256=g_Lvo8LAHPMQmecCLLPt3-_6m5r_OU_GXz6BQ9gw-aE,736
|
|
2
|
+
ffbb_data_client/__init__.py,sha256=b9x5XJsqIUDoNlYaa7oqCrq1he5dETIve72Y4nWSCXA,6556
|
|
3
|
+
ffbb_data_client/config.py,sha256=MHcGXFOedAPf_i6De7jWL6hgnU2GMoFKvhtTGplNXhQ,4665
|
|
4
|
+
ffbb_data_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
ffbb_data_client/clients/__init__.py,sha256=y2dMaPmCH2E2jIB-7tPnlxD49xq1QFbQPbtsNbs8dZw,368
|
|
6
|
+
ffbb_data_client/clients/api_ffbb_app_client.py,sha256=p8Up53eQA7YJu9ig4yAaGlgKKVRt9Jm2URUtuEkn5Vg,87503
|
|
7
|
+
ffbb_data_client/clients/ffbb_data_client.py,sha256=abeiFkbw5L_us2Zb1RiTU1w2fU5XILtzewlWfPdNu8U,102076
|
|
8
|
+
ffbb_data_client/clients/meilisearch_client.py,sha256=n5RaHO8om4JKLaxvDcdBnlBQH16JoIBqP6ixkOUTj9U,7501
|
|
9
|
+
ffbb_data_client/clients/meilisearch_ffbb_client.py,sha256=-OrShwAYBFgQKqRhx6f5TES5m19Yru_MLUpY3LTrXUQ,21301
|
|
10
|
+
ffbb_data_client/data/__init__.py,sha256=JydabW1QdWT6euj_uKJ3x1slbhuJmQc1JTeSYWsia_0,629
|
|
11
|
+
ffbb_data_client/data/collections.json,sha256=md3ztxsuX0rbGpTM1a46o6xfUG3ATZZrHUeUIGIb3Vw,32308
|
|
12
|
+
ffbb_data_client/data/endpoint_discovery.json,sha256=rPz2OC_Mi8yqUO3YqzMQ_AeKOzcABpNgMGPpTRutFok,47285
|
|
13
|
+
ffbb_data_client/data/indexes.json,sha256=6Vp2zhAzMpgxor1fJzUHa9ODZI1RWAJDFEDaXuGM_9M,10775
|
|
14
|
+
ffbb_data_client/data/openapi.json,sha256=pDO9h97D5tyVA0j9pAtJJ5KpVYD8-vWxYXgPsGw2Nmg,978757
|
|
15
|
+
ffbb_data_client/data/openapi_full.json,sha256=COzzhYaKp01EDfujFOZgY3Gaqkry8APkslZfpk1oYhU,1033004
|
|
16
|
+
ffbb_data_client/helpers/__init__.py,sha256=t51TgI33J9zOVC8Wj3pIiPaY_gGaJfu4VMlmb75xk3Y,630
|
|
17
|
+
ffbb_data_client/helpers/http_requests_helper.py,sha256=LOn2eLdoHM9Tt84y_v9kuMPcUd9EpnvV18A0jyq1ueA,1975
|
|
18
|
+
ffbb_data_client/helpers/http_requests_utils.py,sha256=LB-GwPBrN_slKsIbS33LQlzRyAQqOpCNM7AEsIQu-TI,15838
|
|
19
|
+
ffbb_data_client/helpers/meilisearch_client_extension.py,sha256=xc7gvHQke5oAVIKKa2lyTSh1PdRZrhG8psSEpBhbfNk,5810
|
|
20
|
+
ffbb_data_client/helpers/multi_search_query_helper.py,sha256=SCk8uDoC3c5buAMyiGcEMOQIJ30D8FWbXudFIMrFwE0,1780
|
|
21
|
+
ffbb_data_client/models/__init__.py,sha256=FKUcoNUUSe94Pkg-3reUYR_abS73chl4ThfhEUvNFXs,8478
|
|
22
|
+
ffbb_data_client/models/affiche.py,sha256=eETToOKavwaNC2MXZTdtV5n8d7SpftMyP9KP8V6PiF8,1224
|
|
23
|
+
ffbb_data_client/models/cartographie.py,sha256=uyO7B_Th1DA49Jbyk2ZHKgcCT7_ybU6UZz0m-oTmSe4,2809
|
|
24
|
+
ffbb_data_client/models/categorie.py,sha256=pf0rt3s9KLj9BbtZ0zxSpGCqyJnMm-NCKbhKQY-7Pm8,1669
|
|
25
|
+
ffbb_data_client/models/categorie_type.py,sha256=jtnXS2MFVOhKdtu3_zDXcMwTt-DMaQ_t0uub6jPZYiA,833
|
|
26
|
+
ffbb_data_client/models/clock.py,sha256=sdRlH1rnjHXMbZScOlwBXpG8ER_vocIF_mTPs2ggm6k,1066
|
|
27
|
+
ffbb_data_client/models/club_contacts.py,sha256=z83zatuQdFYFtPO-qhqtmaqFtuLBA3Y4CgdTlvR6sPo,2536
|
|
28
|
+
ffbb_data_client/models/code.py,sha256=CNbKO-moSoW4vnlZsKm6ZImngygEWKbkyEUOfyOIBW4,86
|
|
29
|
+
ffbb_data_client/models/commune.py,sha256=-7jT5EVNqlBpHUGNCfkf07mUAhOvoWWlQnzgvAErKvs,2330
|
|
30
|
+
ffbb_data_client/models/competition_fields.py,sha256=VDHguZVSdL7_gSW1svTUzlBt2_Jjt332hiwwCb53rxk,12926
|
|
31
|
+
ffbb_data_client/models/competition_id.py,sha256=5YeCVx-Bfdiw423NPJm6IhQ4qqEJkwtF50R_Ak_SMNU,4571
|
|
32
|
+
ffbb_data_client/models/competition_id_categorie.py,sha256=CWsHm0BO5vAbrCPebtoWpx4hFwXqKKe0Ic-iIt7nvoM,900
|
|
33
|
+
ffbb_data_client/models/competition_id_sexe.py,sha256=p2sCt2d8Jgmiguaq9_ItUKA3domj0rdg_BnFGJeEvFg,921
|
|
34
|
+
ffbb_data_client/models/competition_id_type_competition.py,sha256=faKGBGRcJgQU5blWN-fKgB2ZoE_aLrZS62YAkLCSHgA,791
|
|
35
|
+
ffbb_data_client/models/competition_id_type_competition_generique.py,sha256=BG0db1ycEKTCa1pc3ZUb6mBw4HtBvdjRUo33gnIyViQ,730
|
|
36
|
+
ffbb_data_client/models/competition_origine.py,sha256=A5C0qHYwciHjPFbA5EQCW1o3xBzd3aSVTFfLduzwwKU,2378
|
|
37
|
+
ffbb_data_client/models/competition_origine_categorie.py,sha256=0NgeYFHNw0moDCE8S3OkbXFd5l08B8s4B3l1lEOekC0,583
|
|
38
|
+
ffbb_data_client/models/competition_origine_type_competition.py,sha256=WuPyW3gb1HUXJLUGWi_OrcpsXyADfyVbK_uTz8rQcLA,328
|
|
39
|
+
ffbb_data_client/models/competition_origine_type_competition_generique.py,sha256=L1KpAnRmQL72Knv3uBla2bhNZHv4zk4C-M_DUMtUHGQ,695
|
|
40
|
+
ffbb_data_client/models/competition_type.py,sha256=eOqfvmcbetx_VAJEMujB-9GilIvApS6FYFoSeoc3D8I,103
|
|
41
|
+
ffbb_data_client/models/competitions_facet_distribution.py,sha256=W7s9Yh48ehZKvy9NMN-zrMJL6eDmpMu0QcxYUqzni6Y,2975
|
|
42
|
+
ffbb_data_client/models/competitions_facet_stats.py,sha256=F44MGuCALLUXU2CdMg9TfRtk8A8vjYpR8rf8IOVJUHs,318
|
|
43
|
+
ffbb_data_client/models/competitions_hit.py,sha256=YgNz9mOq42F5sLZAWH6VhabLxKi2aUUfLSf4HZWRqkw,9614
|
|
44
|
+
ffbb_data_client/models/competitions_multi_search_query.py,sha256=qPtLQHsINOqSNyJzmpcBEnj-Ecq3031A7TiiAeDtVhQ,1350
|
|
45
|
+
ffbb_data_client/models/competitions_query.py,sha256=6NrHeSK-_6AxTy6z_XZdg6zwTEY2VEBnEh7FQMY2rSk,321
|
|
46
|
+
ffbb_data_client/models/configuration_models.py,sha256=b8S3H1wrDoLhXKDWeMFdewk98y5qNGXrRT4t90J7l1w,180
|
|
47
|
+
ffbb_data_client/models/contact_info.py,sha256=29dP0jn9kwPbwaYWIQ8-1RhwFA7S1x0kp47UAAnQTmQ,460
|
|
48
|
+
ffbb_data_client/models/content_multi_search_query.py,sha256=sHJs5pBqVJX83IioCcrcX9UdsfOJB0Z8egUniX2gZxg,2398
|
|
49
|
+
ffbb_data_client/models/coordonnees.py,sha256=cgrBUdQZIfbjBKGiBSQXhEYu_81sZpg_gx3b7Kn9-yA,759
|
|
50
|
+
ffbb_data_client/models/coordonnees_type.py,sha256=zfNjyn4c-Aqi8uYabQ7bCL_hjkQqOwOUWC0_tAeQbb4,73
|
|
51
|
+
ffbb_data_client/models/document_flyer.py,sha256=ssndp1IQATQHuFwBqExZdst9WfIO64Vrh2mAP_ts1uQ,8183
|
|
52
|
+
ffbb_data_client/models/document_flyer_type.py,sha256=nx6bB7FQOtSJWGh08T7y6vhnmKOhk1THkfwZA-I6QXQ,113
|
|
53
|
+
ffbb_data_client/models/engagement_contacts.py,sha256=Y0vFheTcskX_Ff7qNPAFyYBieXITM7be1zBRw4x-GCI,3265
|
|
54
|
+
ffbb_data_client/models/engagements_facet_distribution.py,sha256=i3t-Zc9GOltAvzUpMCf4rPvvcg3l8OY9hwPQNYCVUKg,2629
|
|
55
|
+
ffbb_data_client/models/engagements_facet_stats.py,sha256=o_-05vIVWMzhC9QZBlvn-AtyB6jOZC6boRuQhQKVDo0,315
|
|
56
|
+
ffbb_data_client/models/engagements_hit.py,sha256=KONm_jVmzIeKCCUe0SmQ-pnjvHdYFlJ__tJ1_Qqn2Co,7506
|
|
57
|
+
ffbb_data_client/models/engagements_multi_search_query.py,sha256=bPCGtGgRgBbAymDfiW3bUOwzgF7mvFG94ZMpL4s1nfE,1421
|
|
58
|
+
ffbb_data_client/models/etat.py,sha256=FqxyjROWJVf4xzlHF_LmBNw4QCeGQ9rIzFVHISD_e1Y,66
|
|
59
|
+
ffbb_data_client/models/external_competition_id.py,sha256=DaLNHj3BHkzHEF0m90b-5gz6T1IwdNhSkO3m2kcf7qk,1158
|
|
60
|
+
ffbb_data_client/models/external_id.py,sha256=4zmSINctnoBiBK2clzVeuxQkHv3K9jL0d_52xWqPTrU,2704
|
|
61
|
+
ffbb_data_client/models/facet_distribution.py,sha256=Ocez-lX8MiBIT6DgIzZ11RV5S74RMx0AJ9aZF2U8XJI,344
|
|
62
|
+
ffbb_data_client/models/facet_stats.py,sha256=MLG93BXS7JdLmt3C5SszhqB6pYFZUIJj30H_FWs3o-g,361
|
|
63
|
+
ffbb_data_client/models/field_set.py,sha256=OmfJdMVht5h4KN7RNGLwQTPutS95wfxC1rdmC1oNnx0,182
|
|
64
|
+
ffbb_data_client/models/folder.py,sha256=Ikc4lSftUrlc28F2r0Dw-hA99vYtd9_7k8wXWI_kTio,863
|
|
65
|
+
ffbb_data_client/models/formation_session.py,sha256=JMnCUDxa7cofzPFyb6Tj7Bz3tj_Pr1D8f42U2PHWA5s,2108
|
|
66
|
+
ffbb_data_client/models/formations_facet_distribution.py,sha256=SKQkXJFucKrjoAxOBSh3X-YbQ0yR742FpzTjtGe6SOs,2304
|
|
67
|
+
ffbb_data_client/models/formations_facet_stats.py,sha256=uck76NLcy7n0p8GXsJL0tmvGP3cjQcaGm44Ed4UFipM,312
|
|
68
|
+
ffbb_data_client/models/formations_hit.py,sha256=qeALpqnqBxziwtQa_xvHBL-BUAar5kQKnrADuIxeNv8,11399
|
|
69
|
+
ffbb_data_client/models/formations_multi_search_query.py,sha256=8qFdN19aIX82tjcL69aonu4SufgLL5C9gLTscyz4NKM,1407
|
|
70
|
+
ffbb_data_client/models/game_stats_model.py,sha256=QoIjhVr_aNpkuqbxhdccnGmIpVywiy14LyEl8QVwTmk,1932
|
|
71
|
+
ffbb_data_client/models/game_stats_models.py,sha256=uuSRai1Qgjz3MC4l75DAYmLjjLM_lMXiUBFEBxMNuKU,140
|
|
72
|
+
ffbb_data_client/models/generic_search.py,sha256=T7N_OhnnuYABH6nZgyVeRLceNK6mYTGemPeygaZi6Og,2641
|
|
73
|
+
ffbb_data_client/models/geo.py,sha256=y8SOKvcoHIEufQUeiyyZ5RVfes1CXwoLsIS0BgcyVFY,646
|
|
74
|
+
ffbb_data_client/models/geo_sort_order.py,sha256=2bdDnFZiXJIjSAcNe_e8ejti-7wGAzRx-djW7e8uZlI,109
|
|
75
|
+
ffbb_data_client/models/get_commune_response.py,sha256=QzGjPA61zJkAWszqSW8xNuAa8ulylhoBdw5zYgM4Vqo,468
|
|
76
|
+
ffbb_data_client/models/get_competition_response.py,sha256=IlIUd9Vc36ehnltfVuSmNLlRcQE2SLhiX29HeEecbrc,23259
|
|
77
|
+
ffbb_data_client/models/get_configuration_response.py,sha256=aUJgLB0dd36l-gtYX1C1s4VcbnEcYFXDoEmN_34kJ4Y,1426
|
|
78
|
+
ffbb_data_client/models/get_engagement_response.py,sha256=_sS88D3baQOsEkuWD330g601yetxcwLWpmzPmI4OvO8,677
|
|
79
|
+
ffbb_data_client/models/get_entraineur_response.py,sha256=KCxmfIeJ12MefZFOvPweEqbKSOE36WsvCUdDcocnOfc,450
|
|
80
|
+
ffbb_data_client/models/get_formation_response.py,sha256=7hnahTxqG1Z0XWeVbhQl-LKVoing3doYL2SAUob39M4,802
|
|
81
|
+
ffbb_data_client/models/get_officiel_response.py,sha256=Ogh_io0wLkgOH-S1LNdBVNBMzD0WQAqmNy9BKpLvH_s,446
|
|
82
|
+
ffbb_data_client/models/get_organisme_response.py,sha256=fc_UllH7s--3tVTfi7JQR89BlWIPCpY1pZk8YAWg7bk,16873
|
|
83
|
+
ffbb_data_client/models/get_poule_response.py,sha256=4mAb5DXokr3mBmNe4L6YlFo9DycktdRmvURhGoOYTXA,2549
|
|
84
|
+
ffbb_data_client/models/get_pratique_response.py,sha256=DgcGZ4kYVZj67GWjjj0a0WEGj8ZXjtynPaaZIxwyUTA,446
|
|
85
|
+
ffbb_data_client/models/get_rencontre_response.py,sha256=Hpe5wjp7ktSp5P8p8zz3J6dB-Rh7csq6Yb5YcYc_KRc,3555
|
|
86
|
+
ffbb_data_client/models/get_saisons_response.py,sha256=QBs9wHFFmPrA0eXgFKpa8hv8aMyrZB8gr77n5f4PTWM,1847
|
|
87
|
+
ffbb_data_client/models/get_salle_response.py,sha256=fZ3FyVXDdMHadh6nAdAaJ6FRNOdnRfIoiVik8NUm6EY,524
|
|
88
|
+
ffbb_data_client/models/get_terrain_response.py,sha256=81w1iGiMlP7mjFmz2ARjdXdm3mcff3S_jVRthOnUO-A,375
|
|
89
|
+
ffbb_data_client/models/get_tournoi_response.py,sha256=XB4xqdj6VOXnqO1BnkK5PGdh55ar_k9xUxq1sr6smsw,387
|
|
90
|
+
ffbb_data_client/models/gradient_color.py,sha256=b6YPuG77kzxYCwk2imJ-z7kwVE8QCABWV8eebOf07-E,638
|
|
91
|
+
ffbb_data_client/models/hit.py,sha256=rKjIy-NPSrw3tQORSSCIBFyGMz0y0t6n8El3BFQ9glE,362
|
|
92
|
+
ffbb_data_client/models/id_engagement_equipe.py,sha256=CjI7ofaaWiPoqKFyCjmbEIYsdX1BbsOShAMdL0A5wIk,928
|
|
93
|
+
ffbb_data_client/models/id_organisme_equipe.py,sha256=uQk2bLEBN28U5oWY98kI_2-QKykPPX6cO4mAuOEnUrM,1592
|
|
94
|
+
ffbb_data_client/models/id_organisme_equipe1_logo.py,sha256=I5uO_9KD7Pw2dfn80AVEh0sIrakS04y5Uqu704jbOvk,813
|
|
95
|
+
ffbb_data_client/models/id_poule.py,sha256=MV5_0kq2aY1HTSUuEjSIHZb6yW7jQpkPzgrCJv1POSE,640
|
|
96
|
+
ffbb_data_client/models/jour.py,sha256=ZBPjd69VAlp2zHD6p0EXwJycspzVeYabVRVqTEGt9gQ,207
|
|
97
|
+
ffbb_data_client/models/label.py,sha256=0SCYfJaL4c3x_1jND8BnYEyH02KgVuTJMhkXqiult2o,557
|
|
98
|
+
ffbb_data_client/models/labellisation.py,sha256=4cAWvmUWcbjurIjwWkHY52wNNcB1es-oi3zJL7gWrZU,961
|
|
99
|
+
ffbb_data_client/models/live.py,sha256=JqlU1BaDYI-ZedcO26j8B-8QkZDWyl5Bp_kKqr3HaSE,7795
|
|
100
|
+
ffbb_data_client/models/lives.py,sha256=T3zTpd3YwAtnuKrEVn0DCaZ_XgML50XGE9LWKIco8mY,192
|
|
101
|
+
ffbb_data_client/models/logo.py,sha256=xX24v3n9vAyedkcn38c0yyuGrPJH0EDcHUFNLRNC-s0,759
|
|
102
|
+
ffbb_data_client/models/multi_search_queries.py,sha256=6BXtStGs5QVpcRPaCTnDxNJj_eqdaMBAyt3lMEFDAHE,693
|
|
103
|
+
ffbb_data_client/models/multi_search_query.py,sha256=xharNIwaUaUYS8hGM9I-JLPIedEElxt_fA-rA1rVnSo,3132
|
|
104
|
+
ffbb_data_client/models/multi_search_result_competitions.py,sha256=sNyOqn8sm82WSiXl2tQFwt7eqLtiKYurdviGt9xvwAc,466
|
|
105
|
+
ffbb_data_client/models/multi_search_result_engagements.py,sha256=5FNlTpg-kRymlviG-39hF39lIZxlpA8YnIOxC5gAXa8,455
|
|
106
|
+
ffbb_data_client/models/multi_search_result_formations.py,sha256=6c5SrHMcI_Hg7vrmhpziUMznVKqMOX--2E-Hjp5FPGA,430
|
|
107
|
+
ffbb_data_client/models/multi_search_result_organismes.py,sha256=nqORa-_DoUhlkjLSbe2awSeD72at8EjddUhqsoyMcmQ,430
|
|
108
|
+
ffbb_data_client/models/multi_search_result_pratiques.py,sha256=5BpYIYEqDjVtd6kVtqXY5PFhWCmYvvAWeuAXiZGvjVE,419
|
|
109
|
+
ffbb_data_client/models/multi_search_result_rencontres.py,sha256=Nv9HMctxCJBkKgHhsxx9NYMJsm4bO2216Acm1A2se64,430
|
|
110
|
+
ffbb_data_client/models/multi_search_result_salles.py,sha256=szmBiUe71yBEIZepP2g7Fw1R7T3yn5Glr9CTq95DsEo,386
|
|
111
|
+
ffbb_data_client/models/multi_search_result_terrains.py,sha256=oXAj8n3TVqTRQsUtVp_sOGJQ25iopbV_wHYn1ks0fqA,408
|
|
112
|
+
ffbb_data_client/models/multi_search_result_tournois.py,sha256=6IEqlb3wOA_-BFxVJAGIpP-rfG6XXm24TXfi36cEMPw,408
|
|
113
|
+
ffbb_data_client/models/multi_search_results.py,sha256=tltyeFmhwG_o4MsgtMl5npIOiK52cAn3QAp1mTjAWDM,4081
|
|
114
|
+
ffbb_data_client/models/multi_search_results_class.py,sha256=GutznuFvU9CpHJgbX_qYjjp2ENXE7CKdM15NKn3l5Zw,3779
|
|
115
|
+
ffbb_data_client/models/nature_sol.py,sha256=G0Gai_tHcGhElQ6cgIpkwzUdNdKJ-IduI0l_fvJALoc,1693
|
|
116
|
+
ffbb_data_client/models/niveau.py,sha256=kekEeUR7YdQ2apDw5vMyzrkvx3W-5eR_gBJADpEDLwA,220
|
|
117
|
+
ffbb_data_client/models/niveau_class.py,sha256=qco97CuA5GaF2wPlKsF-i4NZ3cyuOe178osW_A2Xcfs,796
|
|
118
|
+
ffbb_data_client/models/niveau_extractor.py,sha256=Y7xusxOXtHAyBd-z2TD8amm1eMdxW0da30sZeZdW2s4,7999
|
|
119
|
+
ffbb_data_client/models/niveau_info.py,sha256=qWgaIEjyrUz2tgOV6PfX3vXwXk3y9J88rRXy6VVPYpc,2048
|
|
120
|
+
ffbb_data_client/models/niveau_models.py,sha256=hcnp8jD_DnNiy7tEJHIhywC4UKCC4ftYpXvMOF15dyo,387
|
|
121
|
+
ffbb_data_client/models/niveau_type.py,sha256=a4ipehu_kn7C-rMQYctK8oWC3d9IJ9WNsfyMSQr4SYE,252
|
|
122
|
+
ffbb_data_client/models/objectif.py,sha256=uqE1nnj5LL5Kwk4QkPV4ngOh4SWRS3Y8Yawh1NJpZtE,138
|
|
123
|
+
ffbb_data_client/models/organisateur.py,sha256=tsO6Fi21WZzrzkSoWQImYEvHQ7kEylElGYW49OXEfSA,7874
|
|
124
|
+
ffbb_data_client/models/organisateur_type.py,sha256=ca8_3VibJmCJLZ6wSybpNdDGj937XVePTsd9Rf_-zi0,78
|
|
125
|
+
ffbb_data_client/models/organisme_fields.py,sha256=UldaY2zxp0arVyNKhhAS0KBcc4lijukYUYv7vXje9bE,12407
|
|
126
|
+
ffbb_data_client/models/organisme_id_pere.py,sha256=aPYdtrpf53kxypOwrBCBCb8a0qohoQa-LBMGQNPlvzQ,6905
|
|
127
|
+
ffbb_data_client/models/organismes_facet_distribution.py,sha256=2j-HktiD00J6pPLByGUjSxO4pSGsemEYP1lVjN8o9mY,1784
|
|
128
|
+
ffbb_data_client/models/organismes_facet_stats.py,sha256=nTYZegFEMo3_2QIUcgMXUjJ8ONDPNMPduhsdXEe8xg8,312
|
|
129
|
+
ffbb_data_client/models/organismes_hit.py,sha256=GSzyhk46P8vBqq7HOrUaOqRv6rmS2GkJIq5CAF36B2M,7871
|
|
130
|
+
ffbb_data_client/models/organismes_multi_search_query.py,sha256=HpnaZC9zmg_TsuOvbCTD-OPkViuMk95gIGWvwjRnZyA,1407
|
|
131
|
+
ffbb_data_client/models/organismes_query.py,sha256=mMxtwrfQ2b-OU7x8lyNgQzlnPPBurn8rO5yKqkkcHn4,187
|
|
132
|
+
ffbb_data_client/models/phase_code.py,sha256=4-eFhE95dS2-5D_p5Qa4v3qGORndjK7Vst36buztAuM,347
|
|
133
|
+
ffbb_data_client/models/poule.py,sha256=AW53JK6vZwJybRhGJXQzH-98CLM4zTHJoXqKU9lkIqU,968
|
|
134
|
+
ffbb_data_client/models/poule_fields.py,sha256=qWZ57QPw2Vc_xYkKJzQnChzJaOVbSv8e7hvReNkWzI4,11965
|
|
135
|
+
ffbb_data_client/models/poule_rencontre_item_model.py,sha256=HpiN5A-PiKaD07HXfjtolzzET62YQ32QjYoR9B83hDc,1554
|
|
136
|
+
ffbb_data_client/models/poules_models.py,sha256=MfDGwI3Ao7tND75SvkhjAQMaimxAMK1NFMoXXr3lxrw,198
|
|
137
|
+
ffbb_data_client/models/poules_query.py,sha256=NNevHJBz3TyVYrKbgQbNoHsTncdAVyb3GV9vV3R3Dq4,269
|
|
138
|
+
ffbb_data_client/models/pratique.py,sha256=wQoD2z2K3Vtr8QxCwJztK2XtR4Ed2kJe_qmxmTB8zxA,118
|
|
139
|
+
ffbb_data_client/models/pratiques_facet_distribution.py,sha256=Opvdp9zYh3P9_vnmFDw0FIeV21s5Meyi5aaUzgL51N8,911
|
|
140
|
+
ffbb_data_client/models/pratiques_facet_stats.py,sha256=X0_Onb7XFFiPH2hvQEr-8RoFtwk-ZdQ27sQBiXgw15M,309
|
|
141
|
+
ffbb_data_client/models/pratiques_hit.py,sha256=kDdGDjs4wAPpTY3CmrC730Lvs1ybMOm1XzPJrHil_OY,13294
|
|
142
|
+
ffbb_data_client/models/pratiques_hit_type.py,sha256=y21ZeQ_XQeKnVJUR-gt_zHo2Cd50-h1CnBHFulLg2GQ,251
|
|
143
|
+
ffbb_data_client/models/pratiques_multi_search_query.py,sha256=K1NtTjl1FKvWb_E_HUuw_TXNPphJFek6je-WRTMb2ro,1393
|
|
144
|
+
ffbb_data_client/models/pratiques_type_class.py,sha256=Dh0dI0JX8ONKzxl_XpY1uX4DHiDvTBwyYGc0ETkOxrk,1679
|
|
145
|
+
ffbb_data_client/models/publication_internet.py,sha256=UIKUE_So9KuSQq9giY68hIH8MvcQ7iQIuT5s_cCKf24,101
|
|
146
|
+
ffbb_data_client/models/purple_logo.py,sha256=_XkIOlYRTAGdiD6hgfQmSYjSA8qlq-vX1BruO4OZniQ,538
|
|
147
|
+
ffbb_data_client/models/query_fields_manager.py,sha256=zMy5w7pnLts_Cjz3PWZ7hrSZBPH2O7YKTBR3pyP7Zxw,2836
|
|
148
|
+
ffbb_data_client/models/ranking_engagement.py,sha256=O5vJ4E1oCtN7RLWlIndaTDDJ7tsPk5weVt8E65r1Ci8,1302
|
|
149
|
+
ffbb_data_client/models/rankings_models.py,sha256=ZaXaVclzNCAJapBJeusklm_ksWjTnUfsvx2_XSTdVg8,217
|
|
150
|
+
ffbb_data_client/models/rencontres_engagement.py,sha256=c_rxNqZ-qnAK-r47mbNekxO1NGfxTNg1o_jprGQTalY,508
|
|
151
|
+
ffbb_data_client/models/rencontres_facet_distribution.py,sha256=AqWhEqoowBZrKvzRLVlX2QrAeKbwiUEWJ5YcNQD36Qo,2969
|
|
152
|
+
ffbb_data_client/models/rencontres_facet_stats.py,sha256=Hv1sNxOAV_iB7TidU4brhiTEfZP78xH7Aji0RNafnqo,312
|
|
153
|
+
ffbb_data_client/models/rencontres_hit.py,sha256=cYE3r28djWgCSqsvkWBME__smBSz3PC0NM-kXqXBzbY,11532
|
|
154
|
+
ffbb_data_client/models/rencontres_multi_search_query.py,sha256=PssdHDTodd2Enrv7otrovPZGFCiKSfqJmi5rIeqhXtc,1407
|
|
155
|
+
ffbb_data_client/models/saison.py,sha256=mqTz4FwYy2el2lhkhkXKxSC2IqpmV0FOiLoyhRMWVhg,512
|
|
156
|
+
ffbb_data_client/models/saison_fields.py,sha256=kui7M1Nf6baGesubrT9Vc_Fru69gzKBc34uPTgy4_jY,864
|
|
157
|
+
ffbb_data_client/models/saisons_models.py,sha256=N6UoYZiAivArSDDuhofVzEUa4YFIHJBvoBhlvknrhVA,208
|
|
158
|
+
ffbb_data_client/models/saisons_query.py,sha256=m_S-90th-h5RN7ZpCpiw7FFRdhvM-seCxD6otlE0Kl8,254
|
|
159
|
+
ffbb_data_client/models/salle.py,sha256=B7WR6NKM-_1XfEmnS_SwAaycLkJ6dDGIvszegVx1ccs,2043
|
|
160
|
+
ffbb_data_client/models/salles_facet_distribution.py,sha256=70kdzC3F18eoGpGVgEwWER1QdCr8HpEcSRhWa28fFyI,342
|
|
161
|
+
ffbb_data_client/models/salles_facet_stats.py,sha256=wNBeLlXzCwsZ_Fu5cwvpVh1wy0NRIZ5w4It5JPufYu4,300
|
|
162
|
+
ffbb_data_client/models/salles_hit.py,sha256=J45qqx5TrEpAGIwvRkilr8J7TlkbFGhCw2tp2cs9AEE,5921
|
|
163
|
+
ffbb_data_client/models/salles_multi_search_query.py,sha256=SUe4-PScxmTBzVqjuTRX_EdJxA4cknm7hur5EoHhd4o,1278
|
|
164
|
+
ffbb_data_client/models/sexe.py,sha256=X-SQljG_o2eeoNqnURr3B3saeCWhm0sGD_LJ8YfRYuw,151
|
|
165
|
+
ffbb_data_client/models/sexe_class.py,sha256=LvxqzF6OfqYYPUPE0S097Rs1wbFJoRV0g74Y0AGowGA,897
|
|
166
|
+
ffbb_data_client/models/source.py,sha256=VRDg-tg8pnH5RaGR6bLUOkJozYXzAjoGM-S5tinfAEk,78
|
|
167
|
+
ffbb_data_client/models/status.py,sha256=q13pO5EwD4F0811iGtx9Jf0wBTaRlBUaUKBC5pVMFog,64
|
|
168
|
+
ffbb_data_client/models/team_engagement.py,sha256=j9m9PamEyl8b4l0ImAHz5JHqtbEysTzMIrGByVGsPn8,1664
|
|
169
|
+
ffbb_data_client/models/team_ranking.py,sha256=PcuWR_Z_w00fzslgtj9EyvJyX9SmxjSo_3By8RG3SYc,4144
|
|
170
|
+
ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py,sha256=UxbVHB5qQyXkSasF6zMvTASzmnh84LWa3KHpkKToS-c,84
|
|
171
|
+
ffbb_data_client/models/terrains_facet_distribution.py,sha256=2nJTIdVFhRQwcDhRQwsU46U0aMhTKAbj6X2rS7o0GHI,1527
|
|
172
|
+
ffbb_data_client/models/terrains_facet_stats.py,sha256=vK1f2_emi4QegRrEQ0-wRiuhAFjYz1BhM57N5SrJouY,306
|
|
173
|
+
ffbb_data_client/models/terrains_hit.py,sha256=ThyGFK3b_hu3Q5pMLJDX6fNGp958gHvo2vo8V4jc8kA,9931
|
|
174
|
+
ffbb_data_client/models/terrains_multi_search_query.py,sha256=VPrF5LGvKmw40gvmQUfAzoDe_AmjUvrnHtayMtjxyYI,1370
|
|
175
|
+
ffbb_data_client/models/terrains_name.py,sha256=apcHnrVUpg0FCKpoW9oO3CzA4I_Oxvn85odCwFhRQeY,68
|
|
176
|
+
ffbb_data_client/models/terrains_sexe_enum.py,sha256=N9318BHF7QiA-aY2ckLyYn7gn4qEFIiPrdPbyxIIeVI,119
|
|
177
|
+
ffbb_data_client/models/terrains_storage.py,sha256=LbUQV-rBT7gqEj4zui6pgRugwOgW8CewR9bf9z0VNFs,65
|
|
178
|
+
ffbb_data_client/models/tournoi_type_class.py,sha256=KYgbwquoIDrzaZ4JLrSyVc_uAyaIQaSME7A7V4Ca2O4,1071
|
|
179
|
+
ffbb_data_client/models/tournoi_type_enum.py,sha256=z2QDJzzqctQf116HabWbXlnRDhysH0MbjC6ltZ4kOag,153
|
|
180
|
+
ffbb_data_client/models/tournoi_types_3x3.py,sha256=ohU6TpJcMn5SDtkGX42q9vrxtXKog2ge7ovhWhxvqDo,1387
|
|
181
|
+
ffbb_data_client/models/tournoi_types_3x3_libelle.py,sha256=6Sm_bSgn9XRVIIOFCi3syDtiUvJ1Oj9vedXfa3STJrE,2796
|
|
182
|
+
ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py,sha256=EcpjpY4Nu2AmMhcNmkRCGikNOi2tdi69vImjreVZ_Wo,473
|
|
183
|
+
ffbb_data_client/models/tournois_facet_distribution.py,sha256=6u9kJCbi6Exfv2CtPMmrKcyc8CrwzZJSHucLFloYkwU,1527
|
|
184
|
+
ffbb_data_client/models/tournois_facet_stats.py,sha256=J8TSr1ZbdSU2_UvwwPu-iW2T27845VUWrG4hW8WG63Q,306
|
|
185
|
+
ffbb_data_client/models/tournois_hit.py,sha256=kdBLKW_JGP7wCyRG2O0koqp0gk97lQeyoW0k2SSgR40,4611
|
|
186
|
+
ffbb_data_client/models/tournois_hit_type.py,sha256=mPafcm25HBxOEf-8YZOQ05neGRxEe_P71QJJEel1wGQ,69
|
|
187
|
+
ffbb_data_client/models/tournois_libelle.py,sha256=XEbaYPnM-_9A6M63bnoDUGJDTSuP86KHg3eXGKsvcf4,131
|
|
188
|
+
ffbb_data_client/models/tournois_multi_search_query.py,sha256=mfgI92J-YHn-CFWMw6vd1zMHbmYz4QjUACIgXfbWUIg,1356
|
|
189
|
+
ffbb_data_client/models/type_association.py,sha256=GJcerhw4hhDatl90gjAn4Pei6ZOV0W7SQU11UwCVPE0,563
|
|
190
|
+
ffbb_data_client/models/type_association_libelle.py,sha256=phryiGtbziZzIe9bSyIw6wDVrFbDKxooumTTF4tbtCE,952
|
|
191
|
+
ffbb_data_client/models/type_class.py,sha256=NegmNRPLgiiH__4oEg3p48iaIOGQYVdMYrICYVwb09U,569
|
|
192
|
+
ffbb_data_client/models/type_competition.py,sha256=Iujv3epgHa_sA4XWTlZD9qqONl3OqevzXD-wyx-_uV4,170
|
|
193
|
+
ffbb_data_client/models/type_competition_generique.py,sha256=r37t2ykqKEYF8yviylmfwvx-aB9V-Lq4UEsjXzaaM4Q,956
|
|
194
|
+
ffbb_data_client/models/type_enum.py,sha256=nTqBQIptXGnnfpRUKMUkHqwpVc9nl9kbvQQWVeGlrXg,124
|
|
195
|
+
ffbb_data_client/models/type_league.py,sha256=gffJUx6T_iMa-8xAXdlGw24jl3MGTUS_offhx1EddbU,92
|
|
196
|
+
ffbb_data_client/utils/__init__.py,sha256=JdM_VFTosc-j7A088FD1WjpHYJvAFwWUHu6QGIy8wFQ,436
|
|
197
|
+
ffbb_data_client/utils/cache_manager.py,sha256=N0vpAezs6A1Jqs13sCzN62VvbOszvXF5DFrHLN48gLk,12737
|
|
198
|
+
ffbb_data_client/utils/converter_utils.py,sha256=FfBdycW_BTH5iFl1pkqWJfjlHo-PhqPYHdARG-UyF-E,9489
|
|
199
|
+
ffbb_data_client/utils/input_validation.py,sha256=5SnnRYq0CAn3Vxh7VPbhgRGNMYxVhdlbF6TFmkhEmjM,10138
|
|
200
|
+
ffbb_data_client/utils/retry_utils.py,sha256=spRyALFPAgnqTA3PMqBQcgx5lT5BLVeCsAKUReRJwXA,14122
|
|
201
|
+
ffbb_data_client/utils/secure_logging.py,sha256=-6WiCd3urahn2Hco3TmLs3IkZCmQGpym33GTDQ4tH_0,5064
|
|
202
|
+
ffbb_data_client/utils/token_manager.py,sha256=cWXjviitdDUQdgHuzWI-0JugMqddRfcySAZ0TvqgmxM,3552
|
|
203
|
+
ffbb_data_client-2.0.0.dist-info/licenses/LICENSE.txt,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
204
|
+
ffbb_data_client-2.0.0.dist-info/METADATA,sha256=NR81et7tQazpF17jKP7GuYVtKcSTwnFl2j2uTbGCXcs,11235
|
|
205
|
+
ffbb_data_client-2.0.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
206
|
+
ffbb_data_client-2.0.0.dist-info/top_level.txt,sha256=2QSblPqCcppE_maoLmo6GZw2a4nmTqYyRD4HQ_NmY7E,36
|
|
207
|
+
ffbb_data_client-2.0.0.dist-info/RECORD,,
|