orionis 0.612.0__py3-none-any.whl → 0.614.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 (36) hide show
  1. orionis/container/providers/service_provider.py +31 -9
  2. orionis/foundation/application.py +70 -48
  3. orionis/foundation/exceptions/application.py +51 -4
  4. orionis/foundation/providers/catch_provider.py +11 -32
  5. orionis/foundation/providers/cli_request_provider.py +13 -28
  6. orionis/foundation/providers/console_provider.py +14 -48
  7. orionis/foundation/providers/directory_provider.py +13 -39
  8. orionis/foundation/providers/dumper_provider.py +13 -63
  9. orionis/foundation/providers/executor_provider.py +13 -62
  10. orionis/foundation/providers/inspirational_provider.py +12 -65
  11. orionis/foundation/providers/logger_provider.py +15 -58
  12. orionis/foundation/providers/performance_counter_provider.py +13 -39
  13. orionis/foundation/providers/progress_bar_provider.py +11 -66
  14. orionis/foundation/providers/reactor_provider.py +14 -65
  15. orionis/foundation/providers/scheduler_provider.py +13 -35
  16. orionis/foundation/providers/testing_provider.py +9 -55
  17. orionis/foundation/providers/workers_provider.py +17 -76
  18. orionis/metadata/framework.py +1 -1
  19. orionis/support/facades/application.py +8 -10
  20. orionis/support/facades/console.py +8 -9
  21. orionis/support/facades/directory.py +9 -8
  22. orionis/support/facades/dumper.py +7 -8
  23. orionis/support/facades/executor.py +10 -11
  24. orionis/support/facades/inspire.py +9 -10
  25. orionis/support/facades/logger.py +10 -10
  26. orionis/support/facades/performance_counter.py +9 -8
  27. orionis/support/facades/progress_bar.py +10 -8
  28. orionis/support/facades/reactor.py +9 -9
  29. orionis/support/facades/testing.py +8 -9
  30. orionis/support/facades/workers.py +8 -8
  31. {orionis-0.612.0.dist-info → orionis-0.614.0.dist-info}/METADATA +1 -1
  32. {orionis-0.612.0.dist-info → orionis-0.614.0.dist-info}/RECORD +35 -36
  33. orionis/foundation/contracts/config.py +0 -31
  34. {orionis-0.612.0.dist-info → orionis-0.614.0.dist-info}/WHEEL +0 -0
  35. {orionis-0.612.0.dist-info → orionis-0.614.0.dist-info}/licenses/LICENCE +0 -0
  36. {orionis-0.612.0.dist-info → orionis-0.614.0.dist-info}/top_level.txt +0 -0
@@ -3,49 +3,21 @@ from orionis.console.output.executor import Executor
3
3
  from orionis.container.providers.service_provider import ServiceProvider
4
4
 
5
5
  class ConsoleExecuteProvider(ServiceProvider):
6
- """
7
- Console executor service provider for dependency injection container registration.
8
-
9
- This service provider is responsible for registering and configuring console executor
10
- services within the application's dependency injection container. It binds the
11
- IExecutor interface to its concrete Executor implementation, enabling standardized
12
- console operations throughout the application including command execution, output
13
- formatting, and process management.
14
-
15
- The provider follows the standard service provider lifecycle pattern, implementing
16
- both registration and boot phases to ensure proper service initialization and
17
- configuration within the application container.
18
-
19
- Attributes
20
- ----------
21
- app : Container
22
- The application's dependency injection container instance used for service
23
- registration and binding management.
24
-
25
- Methods
26
- -------
27
- register() -> None
28
- Registers the console executor service binding in the container.
29
- boot() -> None
30
- Performs post-registration initialization and configuration tasks.
31
-
32
- Notes
33
- -----
34
- This provider registers services as transient bindings to ensure isolated
35
- execution contexts for each console operation request.
36
- """
37
6
 
38
7
  def register(self) -> None:
39
8
  """
40
- Register the console executor service in the application container.
9
+ Registers the console executor service within the application container.
41
10
 
42
- This method binds the IExecutor interface to its concrete Executor implementation
43
- as a transient service. The transient binding ensures that a new instance of
44
- the Executor is created each time it is requested from the container, providing
45
- isolated execution contexts for console operations.
11
+ This method binds the `IExecutor` interface to its concrete `Executor` implementation
12
+ as a transient service. Each time the service is requested from the container, a new
13
+ instance of `Executor` is created, ensuring isolated execution contexts for console
14
+ operations. The service is registered with the alias
15
+ `"x-orionis.console.contracts.executor.IExecutor"` for convenient retrieval and
16
+ identification within the dependency injection container.
46
17
 
47
- The service is registered with the alias "x-orionis.console.output.executor" to
48
- enable easy retrieval and identification within the dependency injection container.
18
+ Parameters
19
+ ----------
20
+ None
49
21
 
50
22
  Returns
51
23
  -------
@@ -54,27 +26,6 @@ class ConsoleExecuteProvider(ServiceProvider):
54
26
  registering the executor service binding in the application container.
55
27
  """
56
28
 
57
- self.app.transient(IExecutor, Executor, alias=f"x-{IExecutor.__module__}.{IExecutor.__name__}")
58
-
59
- def boot(self) -> None:
60
- """
61
- Perform post-registration initialization for the console executor provider.
62
-
63
- This method is called after the service registration phase and provides
64
- an opportunity to perform additional setup, configuration, or initialization
65
- tasks that depend on the registered services. It follows the service provider
66
- lifecycle pattern where registration occurs first, followed by booting.
67
-
68
- Currently, this implementation serves as a placeholder and does not perform
69
- any specific initialization tasks. Subclasses or future implementations may
70
- override this method to add custom boot logic such as service validation,
71
- configuration setup, or dependent service initialization.
72
-
73
- Returns
74
- -------
75
- None
76
- This method does not return any value. It performs initialization
77
- side effects only.
78
- """
79
-
80
- pass
29
+ # Bind the IExecutor interface to the Executor implementation as a transient service.
30
+ # This ensures a new Executor instance is created on each request.
31
+ self.app.transient(IExecutor, Executor, alias="x-orionis.console.contracts.executor.IExecutor")
@@ -3,79 +3,26 @@ from orionis.services.inspirational.contracts.inspire import IInspire
3
3
  from orionis.services.inspirational.inspire import Inspire
4
4
 
5
5
  class InspirationalProvider(ServiceProvider):
6
- """
7
- Service provider for registering inspirational services in the application container.
8
-
9
- The InspirationalProvider handles the registration and configuration of inspirational
10
- services within the application's dependency injection container. This provider follows
11
- the service provider pattern, ensuring that inspirational service implementations are
12
- properly bound to their corresponding contracts and made available for dependency
13
- injection throughout the application lifecycle.
14
-
15
- The provider manages the binding of the IInspire contract to its concrete Inspire
16
- implementation, configuring it as a transient service to ensure fresh instances
17
- are created for each resolution request.
18
-
19
- Attributes
20
- ----------
21
- app : Application
22
- The application container instance used for service registration and dependency
23
- injection management.
24
-
25
- Notes
26
- -----
27
- This provider inherits from ServiceProvider and implements the standard service
28
- provider lifecycle methods (register and boot) to properly integrate inspirational
29
- services into the application's service container architecture.
30
- """
31
6
 
32
7
  def register(self) -> None:
33
8
  """
34
- Registers the inspirational service in the application container.
35
-
36
- This method binds the `IInspire` contract to its concrete implementation `Inspire`
37
- as a transient service within the application's service container. Transient
38
- services are created each time they are requested from the container, ensuring
39
- fresh instances for each resolution. The service is also registered with an
40
- alias to enable convenient resolution and identification throughout the application.
41
-
42
- The registration establishes the dependency injection mapping that allows other
43
- parts of the application to receive the inspirational service implementation
44
- when requesting the `IInspire` interface.
45
-
46
- Returns
47
- -------
48
- None
49
- This method performs service registration as a side effect and does not
50
- return any value.
51
- """
52
-
53
- self.app.transient(IInspire, Inspire, alias=f"x-{IInspire.__module__}.{IInspire.__name__}")
54
-
55
- def boot(self) -> None:
56
- """
57
- Executes post-registration initialization for the inspirational service.
58
-
59
- This method is called after all services have been registered in the
60
- application container and provides an opportunity to perform any additional
61
- setup, configuration, or initialization logic specific to the inspirational
62
- service. It follows the service provider lifecycle pattern where registration
63
- happens first, followed by booting for final setup tasks.
9
+ Registers the inspirational service as a transient binding in the application container.
64
10
 
65
- The boot phase is particularly useful for operations that depend on other
66
- services being available in the container, cross-service configuration,
67
- or initialization of resources that require the complete service graph
68
- to be established.
11
+ This method binds the `IInspire` interface to its concrete implementation `Inspire`
12
+ as a transient service within the application's service container. Each time the
13
+ service is requested, a new instance of `Inspire` will be provided. The service is
14
+ also registered with a specific alias to facilitate convenient resolution and
15
+ identification throughout the application.
69
16
 
70
- By default, this implementation performs no operations, but subclasses
71
- can override this method to implement custom initialization logic as
72
- required by specific use cases.
17
+ This registration enables dependency injection, allowing other components to
18
+ receive an instance of `Inspire` whenever the `IInspire` contract is requested.
73
19
 
74
20
  Returns
75
21
  -------
76
22
  None
77
- This method does not return any value. It performs initialization
78
- operations as side effects only.
23
+ This method does not return any value. It performs service registration as a side effect.
79
24
  """
80
25
 
81
- pass
26
+ # Register the IInspire contract to the Inspire implementation as a transient service.
27
+ # Each resolution from the container will provide a new instance.
28
+ self.app.transient(IInspire, Inspire, alias="x-orionis.services.inspirational.contracts.inspire.IInspire")
@@ -3,42 +3,20 @@ from orionis.services.log.contracts.log_service import ILogger
3
3
  from orionis.services.log.log_service import Logger
4
4
 
5
5
  class LoggerProvider(ServiceProvider):
6
- """
7
- Service provider for logging functionality within the Orionis framework.
8
-
9
- The LoggerProvider is responsible for registering and configuring the logging
10
- service implementation in the application's dependency injection container.
11
- It binds the concrete Logger to the ILogger interface, enabling
12
- application-wide access to structured logging capabilities.
13
-
14
- This provider handles the initialization of the logging service with the
15
- application's configuration and ensures proper registration under both the
16
- interface contract and an internal framework alias for service resolution.
17
-
18
- Attributes
19
- ----------
20
- app : Application
21
- The application container instance used for service registration and
22
- configuration retrieval. Inherited from the base ServiceProvider class.
23
-
24
- Notes
25
- -----
26
- This provider follows the two-phase initialization pattern:
27
- - register(): Performs service binding and container registration
28
- - boot(): Handles post-registration initialization and setup
29
- """
30
6
 
31
7
  def register(self) -> None:
32
8
  """
33
- Register the logging service in the application container.
9
+ Registers the Logger service implementation in the application container.
34
10
 
35
- This method binds the `Logger` implementation to the `ILogger`
36
- contract within the application's dependency injection container. The service
37
- is initialized with the application's logging configuration and registered
38
- with a specific alias for internal framework identification.
11
+ This method binds the `Logger` class to the `ILogger` contract within the application's
12
+ dependency injection container. It retrieves the logging configuration from the application,
13
+ creates a `Logger` instance using this configuration, and registers it with an alias for
14
+ internal framework identification. This setup allows the logging service to be resolved
15
+ and used throughout the application via the container.
39
16
 
40
- The registration enables application-wide access to logging functionality
41
- through the container's service resolution mechanism.
17
+ Parameters
18
+ ----------
19
+ None
42
20
 
43
21
  Returns
44
22
  -------
@@ -47,33 +25,12 @@ class LoggerProvider(ServiceProvider):
47
25
  as a side effect on the application container.
48
26
  """
49
27
 
50
- # Retrieve logging configuration from application config
28
+ # Retrieve the logging configuration from the application
51
29
  logging_config = self.app.config('logging')
52
30
 
53
- # Create Logger instance with the retrieved configuration
54
- logger_service = Logger(logging_config)
55
-
56
- # Register the service instance in the container with interface binding and alias
57
- self.app.instance(ILogger, logger_service, alias=f"x-{ILogger.__module__}.{ILogger.__name__}")
58
-
59
- def boot(self) -> None:
60
- """
61
- Perform post-registration initialization for the logging service.
62
-
63
- This method is called after all service providers have been registered
64
- and allows for any additional configuration, setup, or initialization
65
- logic that depends on other services being available in the container.
66
-
67
- Currently, this method serves as a placeholder and performs no operations,
68
- but it can be extended to include logging service initialization tasks
69
- such as setting up log handlers, configuring formatters, or establishing
70
- connections to external logging systems.
71
-
72
- Returns
73
- -------
74
- None
75
- This method does not return any value. It performs initialization
76
- operations as side effects during the application boot process.
77
- """
31
+ # Instantiate the Logger with the retrieved configuration
32
+ logger_instance = Logger(logging_config)
78
33
 
79
- pass
34
+ # Register the Logger instance in the application container,
35
+ # binding it to the ILogger contract and assigning an alias
36
+ self.app.instance(ILogger, logger_instance, alias="x-orionis.services.log.contracts.log_service.ILogger")
@@ -8,14 +8,14 @@ class PerformanceCounterProvider(ServiceProvider):
8
8
  """
9
9
  Registers the performance counter service as a transient dependency in the application container.
10
10
 
11
- This method binds the `IPerformanceCounter` interface contract to the `PerformanceCounter`
12
- concrete implementation within the application's dependency injection container. The binding
13
- is configured with a transient lifetime, ensuring that each resolution of the service yields
14
- a new instance of `PerformanceCounter`. This approach is suitable for scenarios requiring
15
- independent timing or measurement operations across different parts of the application.
11
+ This method binds the `IPerformanceCounter` interface to the `PerformanceCounter` implementation
12
+ within the application's dependency injection container. The binding uses a transient lifetime,
13
+ ensuring that each resolution of the service provides a new instance of `PerformanceCounter`.
14
+ This is useful for scenarios where independent timing or measurement operations are required
15
+ across different parts of the application.
16
16
 
17
- Additionally, an alias `"x-orionis.support.performance.counter"` is assigned to this binding,
18
- allowing for alternative resolution or referencing of the service.
17
+ An alias, `"x-orionis.support.performance.contracts.counter.IPerformanceCounter"`, is also
18
+ assigned to this binding, enabling alternative resolution or referencing of the service by name.
19
19
 
20
20
  Parameters
21
21
  ----------
@@ -24,41 +24,15 @@ class PerformanceCounterProvider(ServiceProvider):
24
24
  Returns
25
25
  -------
26
26
  None
27
- This method performs service registration as a side effect and does not return any value.
27
+ This method does not return any value. It performs service registration as a side effect.
28
28
 
29
29
  Notes
30
30
  -----
31
- - The transient lifetime ensures isolation between different consumers of the service.
32
- - The alias facilitates flexible service resolution by name.
31
+ - The transient lifetime ensures that each consumer receives a separate instance of the service.
32
+ - The alias allows for flexible service resolution by a specific name.
33
33
  """
34
34
 
35
35
  # Register the IPerformanceCounter interface to the PerformanceCounter implementation
36
- # with a transient lifetime and assign an alias for alternative resolution.
37
- self.app.transient(IPerformanceCounter, PerformanceCounter, alias=f"x-{IPerformanceCounter.__module__}.{IPerformanceCounter.__name__}")
38
-
39
- def boot(self) -> None:
40
- """
41
- Performs initialization and configuration tasks for the performance counter provider during the application's bootstrapping phase.
42
-
43
- This method is automatically invoked when the provider is loaded by the application. It is intended for setting up or registering
44
- any performance counters or related resources required by the application. By default, this implementation does not perform any
45
- actions, but it can be extended in subclasses to include custom initialization logic as needed.
46
-
47
- Parameters
48
- ----------
49
- None
50
-
51
- Returns
52
- -------
53
- None
54
- This method does not return any value. It executes initialization logic as a side effect.
55
-
56
- Notes
57
- -----
58
- - Override this method in subclasses to implement custom bootstrapping behavior for performance counters.
59
- - This method is part of the provider lifecycle and is called after service registration.
60
- """
61
-
62
- # No initialization logic is required by default.
63
- # Override this method in subclasses to perform custom setup.
64
- pass
36
+ # with a transient lifetime. Each resolution yields a new instance.
37
+ # Assign an alias for alternative resolution by name.
38
+ self.app.transient(IPerformanceCounter, PerformanceCounter, alias="x-orionis.support.performance.contracts.counter.IPerformanceCounter")
@@ -3,73 +3,16 @@ from orionis.console.dynamic.progress_bar import ProgressBar
3
3
  from orionis.container.providers.service_provider import ServiceProvider
4
4
 
5
5
  class ProgressBarProvider(ServiceProvider):
6
- """
7
- Service provider for dynamic progress bar functionality.
8
-
9
- This provider is responsible for registering the dynamic progress bar service
10
- within the application's dependency injection container. It binds the IProgressBar
11
- interface to its concrete ProgressBar implementation, enabling the creation of
12
- visual progress indicators for long-running operations in console applications.
13
-
14
- The provider follows the transient lifetime pattern, ensuring that each request
15
- for a progress bar service creates a new, independent instance. This approach
16
- prevents state conflicts when multiple progress bars are used simultaneously
17
- across different parts of the application.
18
-
19
- Parameters
20
- ----------
21
- None
22
- This class does not accept initialization parameters beyond those
23
- inherited from the base ServiceProvider class.
24
-
25
- Returns
26
- -------
27
- None
28
- Service providers do not return values as they are used for
29
- registration and configuration purposes only.
30
-
31
- Notes
32
- -----
33
- The progress bar service is registered with the alias 'x-orionis.console.dynamic.progress_bar'
34
- to enable specific identification and retrieval from the container when needed.
35
- This provider requires the orionis container framework to be properly initialized
36
- before registration can occur.
37
- """
38
6
 
39
7
  def register(self) -> None:
40
8
  """
41
- Register the progress bar service in the application container.
42
-
43
- This method binds the IProgressBar interface to the ProgressBar concrete
44
- implementation using transient lifetime management. The service is registered
45
- with a specific alias for identification and retrieval within the container.
46
-
47
- The transient lifetime ensures that a new instance of ProgressBar is created
48
- each time the IProgressBar interface is resolved from the container.
49
-
50
- Parameters
51
- ----------
52
- None
53
-
54
- Returns
55
- -------
56
- None
57
- This method does not return any value. It performs service registration
58
- as a side effect on the application container.
59
- """
60
-
61
- self.app.transient(IProgressBar, ProgressBar, alias=f"x-{IProgressBar.__module__}.{IProgressBar.__name__}")
62
-
63
- def boot(self) -> None:
64
- """
65
- Perform post-registration initialization for the progress bar provider.
9
+ Registers the progress bar service in the application container.
66
10
 
67
- This method is called after all service providers have been registered
68
- in the application container. It provides an opportunity to perform
69
- any additional setup or configuration that depends on other services
70
- being available. For the progress bar provider, no additional
71
- initialization steps are required as the service is fully configured
72
- during registration.
11
+ This method binds the `IProgressBar` interface to its concrete implementation,
12
+ `ProgressBar`, using transient lifetime management. The service is registered
13
+ with a specific alias for easy identification and retrieval from the container.
14
+ Transient lifetime ensures that a new instance of `ProgressBar` is created
15
+ each time the `IProgressBar` interface is resolved.
73
16
 
74
17
  Parameters
75
18
  ----------
@@ -78,8 +21,10 @@ class ProgressBarProvider(ServiceProvider):
78
21
  Returns
79
22
  -------
80
23
  None
81
- This method does not return any value. It serves as a lifecycle
82
- hook for post-registration initialization.
24
+ This method does not return any value. It registers the service as a side effect
25
+ on the application container.
83
26
  """
84
27
 
85
- pass
28
+ # Register the ProgressBar implementation as a transient service for IProgressBar.
29
+ # The alias allows for explicit retrieval from the container if needed.
30
+ self.app.transient(IProgressBar, ProgressBar, alias="x-orionis.console.contracts.progress_bar.IProgressBar")
@@ -3,40 +3,15 @@ from orionis.console.core.reactor import Reactor
3
3
  from orionis.container.providers.service_provider import ServiceProvider
4
4
 
5
5
  class ReactorProvider(ServiceProvider):
6
- """
7
- Service provider for worker management functionality within the Orionis framework.
8
-
9
- This provider is responsible for registering and configuring the worker management
10
- service implementation in the application's dependency injection container. It
11
- establishes the binding between the IReactor interface contract and its concrete
12
- Reactor implementation, enabling consistent reactor operations throughout the
13
- application lifecycle.
14
-
15
- The provider follows the standard service provider pattern, offering both
16
- registration and boot phases for complete service lifecycle management.
17
-
18
- Attributes
19
- ----------
20
- app : Application
21
- The main application container instance used for service registration
22
- and dependency injection management.
23
-
24
- Notes
25
- -----
26
- This provider registers the reactor service with a transient lifetime, ensuring
27
- that each request for reactor functionality receives a fresh instance. This
28
- approach is optimal for operations that may maintain temporary state or require
29
- isolation between different execution contexts.
30
- """
31
6
 
32
7
  def register(self) -> None:
33
8
  """
34
- Register the reactor management service in the application container.
9
+ Registers the reactor management service in the application container.
35
10
 
36
- This method binds the IReactor interface to a new instance of the Reactor
37
- implementation within the application's dependency injection container. The
38
- service is registered with a transient lifetime, ensuring that each resolution
39
- yields a new Reactor instance. An alias is provided for convenient retrieval.
11
+ This method binds the `IReactor` interface to the `Reactor` implementation
12
+ within the application's dependency injection container. The service is registered
13
+ as a singleton, ensuring that the same `Reactor` instance is returned for every
14
+ resolution. An alias is provided for convenient retrieval.
40
15
 
41
16
  Parameters
42
17
  ----------
@@ -45,44 +20,18 @@ class ReactorProvider(ServiceProvider):
45
20
  Returns
46
21
  -------
47
22
  None
48
- This method does not return any value. It performs registration
23
+ This method does not return any value. It performs service registration
49
24
  as a side effect on the application container.
50
25
 
51
26
  Notes
52
27
  -----
53
- - Each call to resolve IReactor will produce a new Reactor instance.
54
- - No singleton or caching behavior is applied.
55
- - The alias "x-orionis.console.core.reactor" can be used for explicit lookups.
56
- """
57
-
58
- # Register the Reactor service with the application container
59
- # as a singleton, allowing it to be resolved throughout the application lifecycle
60
- self.app.singleton(IReactor, Reactor, alias=f"x-{IReactor.__module__}.{IReactor.__name__}")
61
- def boot(self) -> None:
62
- """
63
- Perform post-registration initialization for the reactor management service.
64
-
65
- This method is invoked after all services have been registered in the container.
66
- It provides an opportunity for additional setup, configuration, or initialization
67
- logic that may depend on other services being available. Currently, this method
68
- does not perform any actions but serves as a placeholder for future enhancements.
69
-
70
- Parameters
71
- ----------
72
- None
73
-
74
- Returns
75
- -------
76
- None
77
- This method does not return any value. It only performs initialization
78
- side effects if required.
79
-
80
- Notes
81
- -----
82
- - Called automatically during the application boot sequence.
83
- - Intended for cross-service configuration or runtime setup.
84
- - No initialization is currently required for the reactor service.
28
+ - The `IReactor` interface is bound to the `Reactor` implementation.
29
+ - The service is registered as a singleton, so only one instance of `Reactor`
30
+ will exist throughout the application lifecycle.
31
+ - The alias "x-orionis.console.contracts.reactor.IReactor" can be used to
32
+ retrieve the service explicitly from the container.
85
33
  """
86
34
 
87
- # No additional initialization required at this time
88
- pass
35
+ # Register the Reactor service as a singleton in the application container.
36
+ # This ensures only one instance of Reactor is created and shared.
37
+ self.app.singleton(IReactor, Reactor, alias="x-orionis.console.contracts.reactor.IReactor")
@@ -3,49 +3,27 @@ from orionis.console.tasks.schedule import Schedule
3
3
  from orionis.container.providers.service_provider import ServiceProvider
4
4
 
5
5
  class ScheduleProvider(ServiceProvider):
6
- """
7
- Service provider responsible for registering and bootstrapping the application's scheduling system.
8
-
9
- The ScheduleProvider binds the ISchedule interface to the Scheduler implementation as a singleton
10
- within the application's service container. It also provides an alias for convenient access.
11
- Override the `boot` method to configure and register scheduled tasks or jobs required by the application.
12
-
13
- Methods
14
- -------
15
- register() :
16
- Registers the Scheduler as a singleton service and binds it to the ISchedule interface.
17
- boot() :
18
- Initializes and configures scheduled tasks; intended to be overridden for custom jobs.
19
- """
20
6
 
21
7
  def register(self) -> None:
22
8
  """
23
- Register the Scheduler as a singleton service in the application container.
9
+ Registers the Scheduler as a singleton service in the application container.
24
10
 
25
- This method binds the ISchedule interface to the Scheduler implementation,
26
- making it available as a singleton throughout the application's lifecycle.
27
- An alias "x-orionis.console.contracts.schedule" is also provided for
28
- convenient access.
11
+ This method binds the `ISchedule` interface to the `Schedule` implementation,
12
+ ensuring that a single instance of the scheduler is used throughout the application's
13
+ lifecycle. Additionally, it provides an alias
14
+ ("x-orionis.console.contracts.schedule.ISchedule") for convenient access to the
15
+ scheduler service.
29
16
 
30
- Returns
31
- -------
17
+ Parameters
18
+ ----------
32
19
  None
33
- This method does not return any value.
34
- """
35
- # Bind Scheduler as a singleton to the ISchedule interface with an alias
36
- self.app.singleton(ISchedule, Schedule, alias=f"x-{ISchedule.__module__}.{ISchedule.__name__}")
37
-
38
- def boot(self) -> None:
39
- """
40
- Initialize and configure any scheduled tasks or jobs required by the application.
41
-
42
- This method is called automatically during the application's bootstrapping process.
43
- Override this method to register custom scheduled tasks.
44
20
 
45
21
  Returns
46
22
  -------
47
23
  None
48
- This method does not return any value.
24
+ This method does not return any value. It performs the registration as a side effect.
49
25
  """
50
- # No scheduled tasks are registered by default; override to add custom jobs
51
- pass
26
+
27
+ # Bind the Schedule implementation as a singleton to the ISchedule interface
28
+ # and provide an alias for easier access within the application container.
29
+ self.app.singleton(ISchedule, Schedule, alias="x-orionis.console.contracts.schedule.ISchedule")