leaguemanager.dependency.dependency_registry

Module Contents

Classes

LeagueManager

Registry for managing services.

Data

__all__

settings

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 Registry is provided, one will be created. Keep in mind that there should only be one registry per application.

Services are kept in an svcs Container and 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 svcs Registry 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 configuration

Example: >>> 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 svcs Container 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.