orionis 0.23.0__tar.gz → 0.25.0__tar.gz
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.
- {orionis-0.23.0/orionis.egg-info → orionis-0.25.0}/PKG-INFO +1 -1
- {orionis-0.23.0 → orionis-0.25.0}/orionis/framework.py +1 -1
- orionis-0.25.0/orionis/luminate/app.py +6 -0
- orionis-0.25.0/orionis/luminate/bootstrap/config/bootstrapper.py +78 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/cache/app/config.py +6 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/bootstrap/config/bootstrapper_interface.py +0 -24
- {orionis-0.23.0 → orionis-0.25.0/orionis.egg-info}/PKG-INFO +1 -1
- orionis-0.23.0/orionis/luminate/app.py +0 -0
- orionis-0.23.0/orionis/luminate/bootstrap/config/bootstrapper.py +0 -111
- {orionis-0.23.0 → orionis-0.25.0}/LICENCE +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/MANIFEST.in +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/README.md +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/cli_manager.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/bootstrap/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/bootstrap/config/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/bootstrap/config/parser.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/bootstrap/config/register.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/cache/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/cache/app/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/cache/console/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/cache/console/commands.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/app.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/auth.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/cache.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/cors.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/database.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/filesystems.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/logging.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/mail.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/queue.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/dataclass/session.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/config/environment.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/base/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/base/command.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/cache.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/command.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/command_filter.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/commands/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/commands/cache_clear.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/commands/help.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/commands/schedule_work.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/commands/tests.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/commands/version.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/exceptions/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/exceptions/cli_exception.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/kernel.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/output/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/output/console.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/output/executor.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/output/progress_bar.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/output/styles.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/parser.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/register.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/runner.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/scripts/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/scripts/management.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/tasks/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/console/tasks/scheduler.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/container/container.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/container/exception.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/container/types.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/bootstrap/config/parser_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/bootstrap/config/register_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/cache/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/cache/cache_commands_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/config/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/config/config_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/config/environment_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/base_command_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/cli_cache_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/command_filter_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/command_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/console_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/executor_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/kernel_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/management_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/parser_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/progress_bar_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/register_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/runner_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/schedule_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/task_manager_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/container/container_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/container/types_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/facades/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/facades/env_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/facades/log_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/facades/paths_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/facades/tests_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/files/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/files/paths_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/installer/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/installer/output_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/installer/setup_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/installer/upgrade_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/log/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/log/logger_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/pipelines/cli_pipeline_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/publisher/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/publisher/pypi_publisher_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/test/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/test/unit_test_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/tools/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/tools/reflection_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/tools/std_interface.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/facades/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/facades/environment.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/facades/log.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/facades/paths.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/facades/tests.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/files/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/files/paths.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/installer/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/installer/icon.ascii +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/installer/info.ascii +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/installer/output.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/installer/setup.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/installer/upgrade.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/log/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/log/logger.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/pipelines/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/pipelines/cli_pipeline.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/publisher/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/publisher/pypi.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/bg/galaxy.jpg +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/favicon/OrionisFrameworkFavicon.png +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/logos/OrionisFramework.jpg +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/logos/OrionisFramework.png +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/logos/OrionisFramework.psd +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/logos/OrionisFramework2.png +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/logos/OrionisFramework3.png +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/test/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/test/exception.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/test/unit_test.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/tools/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/tools/dot_dict.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/tools/reflection.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/tools/std.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis.egg-info/SOURCES.txt +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis.egg-info/dependency_links.txt +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis.egg-info/entry_points.txt +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis.egg-info/requires.txt +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/orionis.egg-info/top_level.txt +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/setup.cfg +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/setup.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/tests/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/tests/tools/__init__.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/tests/tools/class_example.py +0 -0
- {orionis-0.23.0 → orionis-0.25.0}/tests/tools/test_reflection.py +0 -0
@@ -0,0 +1,78 @@
|
|
1
|
+
import importlib
|
2
|
+
import pathlib
|
3
|
+
from orionis.luminate.bootstrap.config.register import Register
|
4
|
+
from orionis.luminate.contracts.bootstrap.config.bootstrapper_interface import IBootstrapper
|
5
|
+
|
6
|
+
class Bootstrapper(IBootstrapper):
|
7
|
+
"""
|
8
|
+
Manages the automatic loading and registration of configuration classes
|
9
|
+
from Python files located in a specified directory.
|
10
|
+
|
11
|
+
The `Bootstrapper` class scans directories for Python files and dynamically
|
12
|
+
imports them to find configuration classes. Once found, the classes are
|
13
|
+
registered using the provided `Register` instance.
|
14
|
+
|
15
|
+
Attributes
|
16
|
+
----------
|
17
|
+
register : Register
|
18
|
+
An instance of the `Register` class used to register configuration classes.
|
19
|
+
|
20
|
+
Methods
|
21
|
+
-------
|
22
|
+
__init__(register: Register) -> None
|
23
|
+
Initializes the `Bootstrapper` with a `Register` instance.
|
24
|
+
|
25
|
+
_autoload(directory: str) -> None
|
26
|
+
Scans a directory for Python files, imports them, finds configuration classes,
|
27
|
+
and registers them using the `Register` instance.
|
28
|
+
"""
|
29
|
+
|
30
|
+
def __init__(self, register: Register) -> None:
|
31
|
+
"""
|
32
|
+
Initializes the `Bootstrapper` with a `Register` instance.
|
33
|
+
|
34
|
+
Parameters
|
35
|
+
----------
|
36
|
+
register : Register
|
37
|
+
An instance of the `Register` class used to register configuration classes.
|
38
|
+
"""
|
39
|
+
self.register = register
|
40
|
+
self._autoload()
|
41
|
+
|
42
|
+
def _autoload(self, directory: str = 'config') -> None:
|
43
|
+
"""
|
44
|
+
Automatically registers configuration classes found in a given directory.
|
45
|
+
|
46
|
+
This method walks through the specified directory, imports all Python files,
|
47
|
+
and scans for class definitions. If a class is found, it is registered using
|
48
|
+
the `Register` instance. Only classes defined in Python files (excluding
|
49
|
+
`__init__.py`) are considered.
|
50
|
+
|
51
|
+
Parameters
|
52
|
+
----------
|
53
|
+
directory : str
|
54
|
+
The directory to scan for Python configuration files.
|
55
|
+
|
56
|
+
Raises
|
57
|
+
------
|
58
|
+
FileNotFoundError
|
59
|
+
If the provided directory does not exist.
|
60
|
+
"""
|
61
|
+
base_path = pathlib.Path(directory).resolve()
|
62
|
+
|
63
|
+
if not base_path.exists():
|
64
|
+
raise FileNotFoundError(f"Directory {directory} does not exist.")
|
65
|
+
|
66
|
+
for file_path in base_path.rglob("*.py"):
|
67
|
+
if file_path.name == "__init__.py":
|
68
|
+
continue
|
69
|
+
|
70
|
+
module_path = ".".join(file_path.relative_to(base_path).with_suffix("").parts)
|
71
|
+
|
72
|
+
try:
|
73
|
+
module = importlib.import_module(f"{directory}.{module_path}")
|
74
|
+
if hasattr(module, "Config"):
|
75
|
+
self.register.config(getattr(module, "Config"))
|
76
|
+
except Exception as e:
|
77
|
+
raise RuntimeError(f"Error loading module {module_path}") from e
|
78
|
+
|
@@ -11,6 +11,12 @@ class CacheConfig:
|
|
11
11
|
A dictionary storing registered configuration sections.
|
12
12
|
"""
|
13
13
|
def __init__(self) -> None:
|
14
|
+
"""
|
15
|
+
Initializes a new instance of the class with an empty configuration dictionary.
|
16
|
+
|
17
|
+
Attributes:
|
18
|
+
config (dict): A dictionary to store configuration settings.
|
19
|
+
"""
|
14
20
|
self.config = {}
|
15
21
|
|
16
22
|
def register(self, section: str, data: Dict[str, Any]) -> None:
|
@@ -12,35 +12,11 @@ class IBootstrapper(ABC):
|
|
12
12
|
|
13
13
|
Methods
|
14
14
|
-------
|
15
|
-
findClasses(file_path: str) -> List[str]
|
16
|
-
Parses a Python file to extract and return all defined class names.
|
17
|
-
|
18
15
|
autoload(directory: str) -> None
|
19
16
|
Scans a directory for Python files, imports them, finds configuration classes,
|
20
17
|
and registers them using the `Register` instance.
|
21
18
|
"""
|
22
19
|
|
23
|
-
@abstractmethod
|
24
|
-
def _definitions(self, file_path: str):
|
25
|
-
"""
|
26
|
-
Parses a Python file to extract and return all defined class names.
|
27
|
-
|
28
|
-
This method opens the file at the given path, parses it using the Abstract
|
29
|
-
Syntax Tree (AST) module to extract class definitions, and returns a
|
30
|
-
list of class names found within the file.
|
31
|
-
|
32
|
-
Parameters
|
33
|
-
----------
|
34
|
-
file_path : str
|
35
|
-
The path to the Python file to parse.
|
36
|
-
|
37
|
-
Returns
|
38
|
-
-------
|
39
|
-
List[str]
|
40
|
-
A list of class names defined in the provided Python file.
|
41
|
-
"""
|
42
|
-
pass
|
43
|
-
|
44
20
|
@abstractmethod
|
45
21
|
def _autoload(self, directory: str) -> None:
|
46
22
|
"""
|
File without changes
|
@@ -1,111 +0,0 @@
|
|
1
|
-
import ast
|
2
|
-
import importlib
|
3
|
-
import os
|
4
|
-
from orionis.luminate.bootstrap.config.register import Register
|
5
|
-
from orionis.luminate.contracts.bootstrap.config.bootstrapper_interface import IBootstrapper
|
6
|
-
|
7
|
-
class Bootstrapper(IBootstrapper):
|
8
|
-
"""
|
9
|
-
Manages the automatic loading and registration of configuration classes
|
10
|
-
from Python files located in a specified directory.
|
11
|
-
|
12
|
-
The `Bootstrapper` class scans directories for Python files and dynamically
|
13
|
-
imports them to find configuration classes. Once found, the classes are
|
14
|
-
registered using the provided `Register` instance.
|
15
|
-
|
16
|
-
Attributes
|
17
|
-
----------
|
18
|
-
register : Register
|
19
|
-
An instance of the `Register` class used to register configuration classes.
|
20
|
-
|
21
|
-
Methods
|
22
|
-
-------
|
23
|
-
__init__(register: Register) -> None
|
24
|
-
Initializes the `Bootstrapper` with a `Register` instance.
|
25
|
-
|
26
|
-
_findClasses(file_path: str) -> List[str]
|
27
|
-
Parses a Python file to extract and return all defined class names.
|
28
|
-
|
29
|
-
_autoload(directory: str) -> None
|
30
|
-
Scans a directory for Python files, imports them, finds configuration classes,
|
31
|
-
and registers them using the `Register` instance.
|
32
|
-
"""
|
33
|
-
|
34
|
-
def __init__(self, register: Register) -> None:
|
35
|
-
"""
|
36
|
-
Initializes the `Bootstrapper` with a `Register` instance.
|
37
|
-
|
38
|
-
Parameters
|
39
|
-
----------
|
40
|
-
register : Register
|
41
|
-
An instance of the `Register` class used to register configuration classes.
|
42
|
-
"""
|
43
|
-
self.register = register
|
44
|
-
self._autoload()
|
45
|
-
|
46
|
-
def _definitions(self, file_path: str):
|
47
|
-
"""
|
48
|
-
Parses a Python file to extract and return all defined class names.
|
49
|
-
|
50
|
-
This method opens the file at the given path, parses it using the Abstract
|
51
|
-
Syntax Tree (AST) module to extract class definitions, and returns a
|
52
|
-
list of class names found within the file.
|
53
|
-
|
54
|
-
Parameters
|
55
|
-
----------
|
56
|
-
file_path : str
|
57
|
-
The path to the Python file to parse.
|
58
|
-
|
59
|
-
Returns
|
60
|
-
-------
|
61
|
-
List[str]
|
62
|
-
A list of class names defined in the provided Python file.
|
63
|
-
"""
|
64
|
-
classes = []
|
65
|
-
with open(file_path, "r", encoding="utf-8") as file:
|
66
|
-
tree = ast.parse(file.read())
|
67
|
-
|
68
|
-
for node in ast.walk(tree):
|
69
|
-
if isinstance(node, ast.ClassDef):
|
70
|
-
classes.append(node.name)
|
71
|
-
|
72
|
-
return classes
|
73
|
-
|
74
|
-
def _autoload(self, directory: str = 'config') -> None:
|
75
|
-
"""
|
76
|
-
Automatically registers configuration classes found in a given directory.
|
77
|
-
|
78
|
-
This method walks through the specified directory, imports all Python files,
|
79
|
-
and scans for class definitions. If a class is found, it is registered using
|
80
|
-
the `Register` instance. Only classes defined in Python files (excluding
|
81
|
-
`__init__.py`) are considered.
|
82
|
-
|
83
|
-
Parameters
|
84
|
-
----------
|
85
|
-
directory : str
|
86
|
-
The directory to scan for Python configuration files.
|
87
|
-
|
88
|
-
Raises
|
89
|
-
------
|
90
|
-
FileNotFoundError
|
91
|
-
If the provided directory does not exist.
|
92
|
-
"""
|
93
|
-
if not os.path.isdir(directory):
|
94
|
-
raise FileNotFoundError(f"Directory '{directory}' not found.")
|
95
|
-
|
96
|
-
for root, _, files in os.walk(directory):
|
97
|
-
for file in files:
|
98
|
-
if file.endswith(".py") and file != "__init__.py":
|
99
|
-
file_path = os.path.join(root, file)
|
100
|
-
# Get the class names defined in the file
|
101
|
-
classes = self._definitions(file_path)
|
102
|
-
|
103
|
-
if classes:
|
104
|
-
for class_name in classes:
|
105
|
-
# Construct the module path and import the module
|
106
|
-
module_path = root.replace(os.getcwd(), "").replace(os.sep, ".") + "." + file[:-3]
|
107
|
-
module = importlib.import_module(module_path)
|
108
|
-
class_obj = getattr(module, class_name)
|
109
|
-
|
110
|
-
# Register the class in the container using the Register instance
|
111
|
-
self.register.config(class_obj)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/bootstrap/config/parser_interface.py
RENAMED
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/bootstrap/config/register_interface.py
RENAMED
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/cache/cache_commands_interface.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/config/environment_interface.py
RENAMED
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/base_command_interface.py
RENAMED
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/command_filter_interface.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/management_interface.py
RENAMED
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/progress_bar_interface.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/console/task_manager_interface.py
RENAMED
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/container/container_interface.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/pipelines/cli_pipeline_interface.py
RENAMED
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/contracts/publisher/pypi_publisher_interface.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{orionis-0.23.0 → orionis-0.25.0}/orionis/luminate/static/favicon/OrionisFrameworkFavicon.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|