leaguemanager.dependency.dependency_registry¶
Module Contents¶
Classes¶
Registry for managing services. |
Data¶
API¶
- leaguemanager.dependency.dependency_registry.__all__¶
[‘LeagueManager’]
- leaguemanager.dependency.dependency_registry.settings¶
‘get_settings(…)’
- class leaguemanager.dependency.dependency_registry.LeagueManager¶
Registry for managing services.
TODO: Serve up async repos/services
If no
Registryis provided, one will be created. Keep in mind that there should only be one registry per application.Services are kept in an svcs
Containerand are provided as needed. This includes a database session, League Manager “repositories” and “services” (which themselves provide common database operations), Advanced Alchemy database configuration objects, and other league related services (such as importers and schedulers).Attributes: registry (Registry | None): An
svcsRegistry for managing services. loader (DynamicObjectLoader): A DynamicObjectLoader for loading specific objects. local_services_dir (Path): The root directory where any “services” can be found. sync_services (list[type[SyncServiceT]]): List of services for sync database operations. async_services (list[type[AsyncServiceT]]): List of services for async database operations. async_config (SQLAlchemyAsyncConfigT): Async database configuration. sync_config (SQLAlchemySyncConfigT): Sync database configurationExample: >>> registry = LeagueManager() >>> season_service = registry.provide_db_service(SeasonSyncService) >>> team_service = registry.provide_db_service(TeamSyncService) >>> >>> season_service.create( … data … ) # Create a new season (data is a dict with season details) >>> season_service.list() # List all seasons >>> team_service.count() # Count number of teams
- registry: svcs.Registry | None¶
‘field(…)’
- loader: leaguemanager.dependency.loader.DynamicObjectLoader¶
‘field(…)’
- local_services_dir: pathlib.Path | None¶
None
- sync_services: list[type[leaguemanager._types.SyncServiceT]]¶
‘field(…)’
- async_services: list[type[leaguemanager._types.AsyncServiceT]]¶
‘field(…)’
- async_config: leaguemanager._types.SQLAlchemyAsyncConfigT¶
‘field(…)’
- sync_config: leaguemanager._types.SQLAlchemySyncConfigT¶
‘field(…)’
- __attrs_post_init__()¶
- property container¶
Provides the
svcsContainer associated with the League Manager’s registry.
- async get(*types: type[Any]) Any¶
- register_db_service(service_type: type[leaguemanager._types.SyncServiceT]) None¶
Register a League Manager service based on its type.
- test_register_async(service_type: type[leaguemanager._types.AsyncServiceT]) None¶
Test method to register an async League Manager service based on its type.
- register_async_db_service(service_type: type[leaguemanager._types.AsyncServiceT]) None¶
Register an async League Manager service based on its type.
- register_session_maker() None¶
Register a sync session.
- register_async_session_maker() None¶
Register an async session.
- property provide_sync_session: sqlalchemy.orm.Session¶
- _provide_db_service(service_type: type[leaguemanager._types.SyncServiceT] | type[leaguemanager._types.AsyncServiceT]) leaguemanager._types.SyncServiceT | leaguemanager._types.AsyncServiceT¶
Still testing this method to provide either sync or async services.
- provide_db_service(service_type: type[leaguemanager._types.SyncServiceT]) type[leaguemanager._types.SyncServiceT]¶
Provide a League Manager service based on its type.
- provide_async_db_service(service_type: type[leaguemanager._types.AsyncServiceT]) type[leaguemanager._types.AsyncServiceT]¶
Provide an async League Manager service based on its type.
- provide_importer_service(importer_type: type[leaguemanager._types.ImporterT]) leaguemanager._types.ImporterT¶
Provide an importer service based on the type specified.
- provide_scheduler_service(scheduler_type: type[leaguemanager._types.ScheduleServiceT]) leaguemanager._types.ScheduleServiceT¶
Provide a scheduling service based on the type specified.