leaguemanager.dependency.managers

Module Contents

Classes

ServiceManagement

Manages a SQLAlchemySyncRepositoryService[ModelT] class.

ImporterManagement

Manages Importer services.

SchedulerManagement

Manages scheduling services.

Functions

service_provider

Data

__all__

API

leaguemanager.dependency.managers.__all__

[‘ServiceManagement’, ‘ImporterManagement’, ‘SchedulerManagement’]

class leaguemanager.dependency.managers.ServiceManagement

Manages a SQLAlchemySyncRepositoryService[ModelT] class.

TODO: Async support

Given the service_type and db_session, as well as a db_session, it will hold then provide the applicable service (for the corresponding service type.). The get_service property will return the appropriate service for the given service_type and db_session.

Attributes: service_type (type[SyncServiceT] | type[AsyncServiceT]): Service type to manage. model_type (type[ModelT]): Model type for the given service_type. db_session (Session | None): Database session to use for the service.

Example:

_service = ServiceManagement( … service_type=SeasonSyncService, model_type=Season, db_session=session … ) _service.get_service

service_type: type[leaguemanager._types.SyncServiceT[leaguemanager._types.ModelT] | leaguemanager._types.AsyncServiceT[leaguemanager._types.ModelT]]

‘field(…)’

db_session: sqlalchemy.orm.Session

‘field(…)’

config: type[advanced_alchemy.config.SQLAlchemySyncConfig | advanced_alchemy.config.SQLAlchemyAsyncConfig]

‘field(…)’

model_type: type[leaguemanager._types.ModelT]

‘field(…)’

__attrs_post_init__()
property get_service: Iterator[leaguemanager.dependency.managers.ServiceManagement]
property get_async_service: AsyncGenerator[leaguemanager.dependency.managers.ServiceManagement, None]

Asynchronous version of get_service.

property test_get_async_service: Iterator

Test method to get an async service.

leaguemanager.dependency.managers.service_provider(service_class: type[Union[leaguemanager._types.SyncServiceT[leaguemanager._types.ModelT], leaguemanager._types.AsyncServiceT[leaguemanager._types.ModelT]]], /, statement: Select[tuple[ModelT]] | None = None, session: Session | AsyncSession | None = None, config: SQLAlchemySyncConfig | SQLAlchemyAsyncConfig | None = None) Callable[..., Union[AsyncGenerator[AsyncServiceT[ModelT], None], Generator[SyncServiceT[ModelT], None, None]]]
class leaguemanager.dependency.managers.ImporterManagement

Manages Importer services.

Provides a basic utility to manage importers for league data. It takes an importer_type and provides an instance of that importer type through the get_importer property. It can be used to register a specific importer type for league data management.

Attributes: importer_type (type[ImporterT]): Importer type to manage.

Example:

_importer = ImporterManagement(importer_type=LeagueImporter) _importer.get_importer

importer_type: type[leaguemanager._types.ImporterT]

‘field(…)’

property get_importer: leaguemanager._types.ImporterT
class leaguemanager.dependency.managers.SchedulerManagement

Manages scheduling services.

Provides a basic utility to manage scheduling services for league data. It takes a scheduler_type and provides an instance of that scheduler type through the get_scheduler property. It can be used to register a specific scheduler type for league scheduling management.

Attributes: service_type (type[SyncServiceT]): Service type to manage.

Example:

_scheduler = SchedulerManagement(service_type=BracketSchedule) _scheduler.get_service

scheduler_type: type[leaguemanager._types.ScheduleServiceT]

‘field(…)’

property get_scheduler: leaguemanager._types.ScheduleServiceT