orionis 0.44.0__py3-none-any.whl → 0.46.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- orionis/cli_manager.py +16 -30
- orionis/contracts/bootstrap/i_command_bootstrapper.py +59 -0
- orionis/contracts/bootstrap/i_config_bootstrapper.py +112 -0
- orionis/contracts/bootstrap/i_environment_bootstrapper.py +33 -0
- orionis/{luminate/contracts/console/base/base_command_interface.py → contracts/console/base/i_command.py} +0 -1
- orionis/contracts/facades/config/i_config_facade.py +37 -0
- orionis/contracts/facades/environment/i_environment_facade.py +40 -0
- orionis/{luminate/contracts/facades/paths_interface.py → contracts/facades/files/i_path_facade.py} +27 -20
- orionis/contracts/facades/log/i_log_facade.py +83 -0
- orionis/{luminate/contracts/facades/tests_interface.py → contracts/facades/tests/i_tests_facade.py} +3 -6
- orionis/{luminate/contracts/console/scripts/management_interface.py → contracts/installer/i_installer_manager.py} +19 -16
- orionis/contracts/installer/i_installer_output.py +101 -0
- orionis/contracts/installer/i_installer_setup.py +59 -0
- orionis/contracts/providers/i_service_provider.py +27 -0
- orionis/contracts/services/config/i_config_service.py +37 -0
- orionis/contracts/services/files/i_path_service.py +31 -0
- orionis/contracts/services/log/i_log_service.py +89 -0
- orionis/{luminate/facades/environment.py → contracts/support/i_environment.py} +25 -32
- orionis/{luminate/contracts/tools/exception_to_dict_interface.py → contracts/support/i_exception_to_dict.py} +0 -9
- orionis/{luminate/contracts/tools/reflection_interface.py → contracts/support/i_reflection.py} +17 -8
- orionis/{luminate/contracts/tools/std_interface.py → contracts/support/i_std.py} +3 -16
- orionis/framework.py +1 -1
- orionis/{luminate/console/scripts/management.py → installer/installer_manager.py} +22 -16
- orionis/{luminate/installer/output.py → installer/installer_output.py} +16 -10
- orionis/{luminate/installer/setup.py → installer/installer_setup.py} +13 -25
- orionis/luminate/app.py +15 -11
- orionis/luminate/bootstrap/command_bootstrapper.py +150 -0
- orionis/luminate/bootstrap/config_bootstrapper.py +168 -0
- orionis/luminate/bootstrap/environment_bootstrapper.py +67 -0
- orionis/luminate/config/helpers.py +20 -0
- orionis/luminate/console/base/command.py +1 -3
- orionis/luminate/console/command_filter.py +2 -2
- orionis/luminate/console/commands/cache_clear.py +17 -5
- orionis/luminate/console/commands/help.py +19 -13
- orionis/luminate/console/commands/schedule_work.py +6 -3
- orionis/luminate/console/commands/tests.py +1 -6
- orionis/luminate/console/commands/version.py +0 -5
- orionis/luminate/console/exceptions/cli_exception.py +1 -4
- orionis/luminate/console/kernel.py +2 -2
- orionis/luminate/console/output/console.py +2 -2
- orionis/luminate/console/output/executor.py +1 -1
- orionis/luminate/console/output/progress_bar.py +1 -1
- orionis/luminate/console/parser.py +2 -2
- orionis/luminate/console/runner.py +127 -126
- orionis/luminate/console/tasks/scheduler.py +8 -7
- orionis/luminate/container/container.py +1 -1
- orionis/luminate/container/types.py +38 -12
- orionis/luminate/facades/config/config_facade.py +43 -0
- orionis/luminate/facades/environment/environment_facade.py +68 -0
- orionis/luminate/facades/{paths.py → files/path_facade.py} +50 -6
- orionis/luminate/facades/log/__init__.py +0 -0
- orionis/luminate/facades/log/log_facade.py +95 -0
- orionis/luminate/facades/tests/__init__.py +0 -0
- orionis/luminate/facades/{tests.py → tests/tests_facade.py} +1 -1
- orionis/luminate/patterns/__init__.py +0 -0
- orionis/luminate/pipelines/cli_pipeline.py +122 -116
- orionis/luminate/providers/__init__.py +0 -0
- orionis/luminate/providers/config/__init__.py +0 -0
- orionis/luminate/providers/config/config_service_provider.py +26 -0
- orionis/luminate/providers/files/__init__.py +0 -0
- orionis/luminate/providers/files/path_service_provider.py +26 -0
- orionis/luminate/providers/log/__init__.py +0 -0
- orionis/luminate/providers/log/log_service_provider.py +26 -0
- orionis/luminate/services/__init__.py +0 -0
- orionis/luminate/services/config/__init__.py +0 -0
- orionis/luminate/services/config/config_service.py +72 -0
- orionis/luminate/services/files/__init__.py +0 -0
- orionis/luminate/services/files/path_service.py +71 -0
- orionis/luminate/services/log/__init__.py +0 -0
- orionis/luminate/services/log/log_service.py +159 -0
- orionis/luminate/{config → support}/environment.py +21 -32
- orionis/luminate/{tools → support}/exception_to_dict.py +1 -1
- orionis/luminate/{tools → support}/reflection.py +1 -1
- orionis/luminate/{tools → support}/std.py +1 -1
- orionis/luminate/test/unit_test.py +1 -2
- {orionis-0.44.0.dist-info → orionis-0.46.0.dist-info}/METADATA +1 -1
- orionis-0.46.0.dist-info/RECORD +157 -0
- tests/tools/test_reflection.py +1 -1
- orionis/luminate/bootstrap/commands/bootstrapper.py +0 -101
- orionis/luminate/bootstrap/commands/register.py +0 -92
- orionis/luminate/bootstrap/config/bootstrapper.py +0 -79
- orionis/luminate/bootstrap/config/parser.py +0 -53
- orionis/luminate/bootstrap/config/register.py +0 -76
- orionis/luminate/cache/app/config.py +0 -91
- orionis/luminate/cache/console/commands.py +0 -97
- orionis/luminate/console/cache.py +0 -87
- orionis/luminate/console/command.py +0 -40
- orionis/luminate/contracts/bootstrap/commands/bootstrapper_interface.py +0 -44
- orionis/luminate/contracts/bootstrap/commands/register_interface.py +0 -33
- orionis/luminate/contracts/bootstrap/config/bootstrapper_interface.py +0 -40
- orionis/luminate/contracts/bootstrap/config/parser_interface.py +0 -46
- orionis/luminate/contracts/bootstrap/config/register_interface.py +0 -47
- orionis/luminate/contracts/cache/app/config_interface.py +0 -76
- orionis/luminate/contracts/cache/console/commands_interface.py +0 -78
- orionis/luminate/contracts/config/environment_interface.py +0 -64
- orionis/luminate/contracts/console/command_interface.py +0 -36
- orionis/luminate/contracts/console/runner_interface.py +0 -50
- orionis/luminate/contracts/facades/env_interface.py +0 -64
- orionis/luminate/contracts/facades/log_interface.py +0 -48
- orionis/luminate/contracts/files/paths_interface.py +0 -29
- orionis/luminate/contracts/installer/output_interface.py +0 -125
- orionis/luminate/contracts/installer/setup_interface.py +0 -29
- orionis/luminate/contracts/installer/upgrade_interface.py +0 -24
- orionis/luminate/contracts/log/logger_interface.py +0 -33
- orionis/luminate/contracts/pipelines/cli_pipeline_interface.py +0 -84
- orionis/luminate/contracts/publisher/pypi_publisher_interface.py +0 -36
- orionis/luminate/contracts/test/unit_test_interface.py +0 -51
- orionis/luminate/facades/config.py +0 -10
- orionis/luminate/facades/log.py +0 -56
- orionis/luminate/files/paths.py +0 -56
- orionis/luminate/installer/upgrade.py +0 -42
- orionis/luminate/log/logger.py +0 -116
- orionis/luminate/publisher/pypi.py +0 -215
- orionis-0.44.0.dist-info/RECORD +0 -156
- /orionis/{luminate/bootstrap/config → contracts}/__init__.py +0 -0
- /orionis/{luminate/cache → contracts/config}/__init__.py +0 -0
- /orionis/{luminate/contracts/config/config_interface.py → contracts/config/i_config.py} +0 -0
- /orionis/{luminate/cache/app → contracts/console}/__init__.py +0 -0
- /orionis/{luminate/cache/console → contracts/console/base}/__init__.py +0 -0
- /orionis/{luminate/contracts/console/command_filter_interface.py → contracts/console/i_command_filter.py} +0 -0
- /orionis/{luminate/contracts/console/kernel_interface.py → contracts/console/i_kernel.py} +0 -0
- /orionis/{luminate/contracts/console/parser_interface.py → contracts/console/i_parser.py} +0 -0
- /orionis/{luminate/contracts/console/task_manager_interface.py → contracts/console/i_task_manager.py} +0 -0
- /orionis/{luminate/config/dataclass → contracts/console/output}/__init__.py +0 -0
- /orionis/{luminate/contracts/console/output/console_interface.py → contracts/console/output/i_console.py} +0 -0
- /orionis/{luminate/contracts/console/output/executor_interface.py → contracts/console/output/i_executor.py} +0 -0
- /orionis/{luminate/contracts/console/output/progress_bar_interface.py → contracts/console/output/i_progress_bar.py} +0 -0
- /orionis/{luminate/console/scripts → contracts/console/tasks}/__init__.py +0 -0
- /orionis/{luminate/contracts/console/tasks/schedule_interface.py → contracts/console/tasks/i_schedule.py} +0 -0
- /orionis/{luminate/contracts/container/container_interface.py → contracts/container/i_container.py} +0 -0
- /orionis/{luminate/contracts/container/types_interface.py → contracts/container/i_types.py} +0 -0
- /orionis/{luminate/contracts → contracts/facades}/__init__.py +0 -0
- /orionis/{luminate/contracts/cache → contracts/facades/config}/__init__.py +0 -0
- /orionis/{luminate/contracts/config → contracts/facades/environment}/__init__.py +0 -0
- /orionis/{luminate/contracts/console → contracts/facades/files}/__init__.py +0 -0
- /orionis/{luminate/contracts/facades → contracts/facades/log}/__init__.py +0 -0
- /orionis/{luminate/contracts/files → contracts/facades/tests}/__init__.py +0 -0
- /orionis/{luminate/contracts → contracts}/installer/__init__.py +0 -0
- /orionis/{luminate/contracts/log → contracts/providers}/__init__.py +0 -0
- /orionis/{luminate/contracts/publisher → contracts/services}/__init__.py +0 -0
- /orionis/{luminate/contracts/test → contracts/services/config}/__init__.py +0 -0
- /orionis/{luminate/contracts/tools → contracts/services/files}/__init__.py +0 -0
- /orionis/{luminate/files → contracts/services/log}/__init__.py +0 -0
- /orionis/{luminate/installer → installer}/__init__.py +0 -0
- /orionis/luminate/bootstrap/{cli_exception.py → exception_bootstrapper.py} +0 -0
- /orionis/luminate/config/{dataclass/app.py → app.py} +0 -0
- /orionis/luminate/config/{dataclass/auth.py → auth.py} +0 -0
- /orionis/luminate/config/{dataclass/cache.py → cache.py} +0 -0
- /orionis/luminate/config/{dataclass/cors.py → cors.py} +0 -0
- /orionis/luminate/config/{dataclass/database.py → database.py} +0 -0
- /orionis/luminate/config/{dataclass/filesystems.py → filesystems.py} +0 -0
- /orionis/luminate/config/{dataclass/logging.py → logging.py} +0 -0
- /orionis/luminate/config/{dataclass/mail.py → mail.py} +0 -0
- /orionis/luminate/config/{dataclass/queue.py → queue.py} +0 -0
- /orionis/luminate/config/{dataclass/session.py → session.py} +0 -0
- /orionis/luminate/{log → facades/config}/__init__.py +0 -0
- /orionis/luminate/{publisher → facades/environment}/__init__.py +0 -0
- /orionis/luminate/{tools → facades/files}/__init__.py +0 -0
- /orionis/luminate/{tools → support}/dot_dict.py +0 -0
- /orionis/{luminate/installer → static/ascii}/icon.ascii +0 -0
- /orionis/{luminate/installer → static/ascii}/info.ascii +0 -0
- /orionis/{luminate/static → static}/bg/galaxy.jpg +0 -0
- /orionis/{luminate/static → static}/favicon/OrionisFrameworkFavicon.png +0 -0
- /orionis/{luminate/static → static}/logos/OrionisFramework.jpg +0 -0
- /orionis/{luminate/static → static}/logos/OrionisFramework.png +0 -0
- /orionis/{luminate/static → static}/logos/OrionisFramework.psd +0 -0
- /orionis/{luminate/static → static}/logos/OrionisFramework2.png +0 -0
- /orionis/{luminate/static → static}/logos/OrionisFramework3.png +0 -0
- {orionis-0.44.0.dist-info → orionis-0.46.0.dist-info}/LICENCE +0 -0
- {orionis-0.44.0.dist-info → orionis-0.46.0.dist-info}/WHEEL +0 -0
- {orionis-0.44.0.dist-info → orionis-0.46.0.dist-info}/entry_points.txt +0 -0
- {orionis-0.44.0.dist-info → orionis-0.46.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
from typing import Any, Optional
|
2
|
+
from orionis.contracts.services.config.i_config_service import IConfigService
|
3
|
+
from orionis.luminate.container.container import Container
|
4
|
+
|
5
|
+
class ConfigService(IConfigService):
|
6
|
+
|
7
|
+
def __init__(self, container: Container) -> None:
|
8
|
+
"""
|
9
|
+
Initializes the ConfigService with the provided configuration.
|
10
|
+
|
11
|
+
Args:
|
12
|
+
config (dict): A dictionary containing configuration settings.
|
13
|
+
"""
|
14
|
+
self.container = container
|
15
|
+
self._config = self.container._config
|
16
|
+
|
17
|
+
def set(self, key: str, value: Any) -> None:
|
18
|
+
"""
|
19
|
+
Dynamically sets a configuration value using dot notation.
|
20
|
+
|
21
|
+
Parameters
|
22
|
+
----------
|
23
|
+
key : str
|
24
|
+
The configuration key (e.g., 'app.debug').
|
25
|
+
value : Any
|
26
|
+
The value to set.
|
27
|
+
"""
|
28
|
+
keys = key.split(".")
|
29
|
+
section = keys[0]
|
30
|
+
sub_keys = keys[1:]
|
31
|
+
|
32
|
+
if section not in self._config:
|
33
|
+
self._config[section] = {}
|
34
|
+
|
35
|
+
current = self._config[section]
|
36
|
+
for sub_key in sub_keys[:-1]:
|
37
|
+
if sub_key not in current:
|
38
|
+
current[sub_key] = {}
|
39
|
+
current = current[sub_key]
|
40
|
+
|
41
|
+
current[sub_keys[-1]] = value
|
42
|
+
|
43
|
+
def get(self, key: str, default: Optional[Any] = None) -> Any:
|
44
|
+
"""
|
45
|
+
Retrieves a configuration value using dot notation.
|
46
|
+
|
47
|
+
Parameters
|
48
|
+
----------
|
49
|
+
key : str
|
50
|
+
The configuration key (e.g., 'app.debug').
|
51
|
+
default : Optional[Any]
|
52
|
+
The default value to return if the key is not found.
|
53
|
+
|
54
|
+
Returns
|
55
|
+
-------
|
56
|
+
Any
|
57
|
+
The configuration value or the default value if the key is not found.
|
58
|
+
"""
|
59
|
+
keys = key.split(".")
|
60
|
+
section = keys[0]
|
61
|
+
sub_keys = keys[1:]
|
62
|
+
|
63
|
+
if section not in self._config:
|
64
|
+
return default
|
65
|
+
|
66
|
+
current = self._config[section]
|
67
|
+
for sub_key in sub_keys:
|
68
|
+
if sub_key not in current:
|
69
|
+
return default
|
70
|
+
current = current[sub_key]
|
71
|
+
|
72
|
+
return current
|
File without changes
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import os
|
2
|
+
from pathlib import Path
|
3
|
+
from orionis.contracts.services.files.i_path_service import IPathService
|
4
|
+
|
5
|
+
class PathService(IPathService):
|
6
|
+
"""
|
7
|
+
A service class for resolving and validating absolute paths.
|
8
|
+
|
9
|
+
This class resolves the absolute path for a given relative directory or file path
|
10
|
+
based on the script's execution directory. It ensures that the requested path is valid
|
11
|
+
(either a directory or a file) and provides methods to retrieve the resolved path.
|
12
|
+
|
13
|
+
Attributes
|
14
|
+
----------
|
15
|
+
route : str
|
16
|
+
The resolved absolute path to the directory or file.
|
17
|
+
|
18
|
+
Methods
|
19
|
+
-------
|
20
|
+
__init__(route: str)
|
21
|
+
Initializes the `PathService` and resolves the absolute path.
|
22
|
+
resolve() -> str
|
23
|
+
Returns the resolved absolute path as a string.
|
24
|
+
__str__() -> str
|
25
|
+
Returns the resolved absolute path as a string (dunder method).
|
26
|
+
"""
|
27
|
+
|
28
|
+
def __init__(self) -> None:
|
29
|
+
"""
|
30
|
+
Initializes the `PathService` and resolves the absolute path for a given relative path.
|
31
|
+
|
32
|
+
The path is resolved relative to the script's execution directory. It validates
|
33
|
+
that the resolved path exists and is either a directory or a file.
|
34
|
+
"""
|
35
|
+
self.base_path = Path(os.getcwd())
|
36
|
+
|
37
|
+
|
38
|
+
def resolve(self, route: str) -> str:
|
39
|
+
"""
|
40
|
+
Resolves and returns the absolute path as a string.
|
41
|
+
|
42
|
+
This method combines the base path (current working directory) with the provided
|
43
|
+
relative path, resolves it to an absolute path, and validates that it exists
|
44
|
+
and is either a directory or a file.
|
45
|
+
|
46
|
+
Parameters
|
47
|
+
----------
|
48
|
+
route : str
|
49
|
+
The relative directory or file path to be resolved.
|
50
|
+
|
51
|
+
Returns
|
52
|
+
-------
|
53
|
+
str
|
54
|
+
The absolute path to the directory or file.
|
55
|
+
|
56
|
+
Raises
|
57
|
+
------
|
58
|
+
ValueError
|
59
|
+
If the resolved path does not exist or is neither a directory nor a file.
|
60
|
+
"""
|
61
|
+
|
62
|
+
# Combine base path with the relative route
|
63
|
+
real_path = (self.base_path / route).resolve()
|
64
|
+
|
65
|
+
# Validate that the path exists and is either a directory or a file
|
66
|
+
if not real_path.exists():
|
67
|
+
raise ValueError(f"The requested path does not exist: {real_path}")
|
68
|
+
if not (real_path.is_dir() or real_path.is_file()):
|
69
|
+
raise ValueError(f"The requested path is neither a directory nor a file: {real_path}")
|
70
|
+
|
71
|
+
self.route = str(real_path)
|
File without changes
|
@@ -0,0 +1,159 @@
|
|
1
|
+
import os
|
2
|
+
import logging
|
3
|
+
from pathlib import Path
|
4
|
+
from typing import Optional
|
5
|
+
from orionis.contracts.services.log.i_log_service import ILogguerService
|
6
|
+
|
7
|
+
class LogguerService(ILogguerService):
|
8
|
+
"""
|
9
|
+
A service class for logging messages with different severity levels.
|
10
|
+
|
11
|
+
This class initializes a logger that can write logs to a file. It supports
|
12
|
+
various log levels such as INFO, ERROR, SUCCESS, WARNING, and DEBUG.
|
13
|
+
|
14
|
+
Attributes
|
15
|
+
----------
|
16
|
+
logger : logging.Logger
|
17
|
+
The logger instance used to log messages.
|
18
|
+
|
19
|
+
Methods
|
20
|
+
-------
|
21
|
+
__init__(path: Optional[str] = None, level: int = logging.INFO, filename: Optional[str] = 'orionis.log')
|
22
|
+
Initializes the logger with the specified path, log level, and filename.
|
23
|
+
_initialize_logger(path: Optional[str], level: int, filename: Optional[str] = 'orionis.log')
|
24
|
+
Configures the logger with the specified settings.
|
25
|
+
info(message: str) -> None
|
26
|
+
Logs an informational message.
|
27
|
+
error(message: str) -> None
|
28
|
+
Logs an error message.
|
29
|
+
success(message: str) -> None
|
30
|
+
Logs a success message (treated as info).
|
31
|
+
warning(message: str) -> None
|
32
|
+
Logs a warning message.
|
33
|
+
debug(message: str) -> None
|
34
|
+
Logs a debug message.
|
35
|
+
"""
|
36
|
+
|
37
|
+
def __init__(self, path: Optional[str] = None, level: int = logging.INFO, filename: Optional[str] = 'orionis.log'):
|
38
|
+
"""
|
39
|
+
Initializes the logger with the specified path, log level, and filename.
|
40
|
+
|
41
|
+
Parameters
|
42
|
+
----------
|
43
|
+
path : Optional[str]
|
44
|
+
The directory path where the log file will be stored. If not provided,
|
45
|
+
it defaults to a 'logs' directory inside the 'storage' folder of the
|
46
|
+
current working directory.
|
47
|
+
level : int
|
48
|
+
The logging level (e.g., logging.INFO, logging.ERROR). Defaults to logging.INFO.
|
49
|
+
filename : Optional[str]
|
50
|
+
The name of the log file. Defaults to 'orionis.log'.
|
51
|
+
"""
|
52
|
+
self._initialize_logger(path, level, filename)
|
53
|
+
|
54
|
+
def _initialize_logger(self, path: Optional[str], level: int, filename: Optional[str] = 'orionis.log'):
|
55
|
+
"""
|
56
|
+
Configures the logger with the specified settings.
|
57
|
+
|
58
|
+
This method sets up the logger to write logs to a file. If the specified
|
59
|
+
directory does not exist, it creates it. The log format includes the
|
60
|
+
timestamp and the log message.
|
61
|
+
|
62
|
+
Parameters
|
63
|
+
----------
|
64
|
+
path : Optional[str]
|
65
|
+
The directory path where the log file will be stored.
|
66
|
+
level : int
|
67
|
+
The logging level (e.g., logging.INFO, logging.ERROR).
|
68
|
+
filename : Optional[str]
|
69
|
+
The name of the log file.
|
70
|
+
|
71
|
+
Raises
|
72
|
+
------
|
73
|
+
RuntimeError
|
74
|
+
If the logger cannot be initialized due to an error.
|
75
|
+
"""
|
76
|
+
try:
|
77
|
+
# Resolve the log directory and file path
|
78
|
+
if path is None:
|
79
|
+
base_path = Path(os.getcwd())
|
80
|
+
log_dir = base_path / "storage" / "logs"
|
81
|
+
|
82
|
+
# Create the log directory if it does not exist
|
83
|
+
if not log_dir.exists():
|
84
|
+
log_dir.mkdir(parents=True, exist_ok=True)
|
85
|
+
|
86
|
+
path = log_dir / filename
|
87
|
+
|
88
|
+
# Configure the logger
|
89
|
+
logging.basicConfig(
|
90
|
+
level=level,
|
91
|
+
format="%(asctime)s - %(message)s",
|
92
|
+
datefmt="%Y-%m-%d %H:%M:%S",
|
93
|
+
encoding="utf-8",
|
94
|
+
handlers=[
|
95
|
+
logging.FileHandler(path) # Log to a file
|
96
|
+
# logging.StreamHandler() # Uncomment to also log to the console
|
97
|
+
]
|
98
|
+
)
|
99
|
+
|
100
|
+
# Get the logger instance
|
101
|
+
self.logger = logging.getLogger(__name__)
|
102
|
+
|
103
|
+
except Exception as e:
|
104
|
+
raise RuntimeError(f"Failed to initialize logger: {e}")
|
105
|
+
|
106
|
+
def info(self, message: str) -> None:
|
107
|
+
"""
|
108
|
+
Logs an informational message.
|
109
|
+
|
110
|
+
Parameters
|
111
|
+
----------
|
112
|
+
message : str
|
113
|
+
The message to log.
|
114
|
+
"""
|
115
|
+
self.logger.info(f"[INFO] - {message}")
|
116
|
+
|
117
|
+
def error(self, message: str) -> None:
|
118
|
+
"""
|
119
|
+
Logs an error message.
|
120
|
+
|
121
|
+
Parameters
|
122
|
+
----------
|
123
|
+
message : str
|
124
|
+
The message to log.
|
125
|
+
"""
|
126
|
+
self.logger.error(f"[ERROR] - {message}")
|
127
|
+
|
128
|
+
def success(self, message: str) -> None:
|
129
|
+
"""
|
130
|
+
Logs a success message (treated as info).
|
131
|
+
|
132
|
+
Parameters
|
133
|
+
----------
|
134
|
+
message : str
|
135
|
+
The message to log.
|
136
|
+
"""
|
137
|
+
self.logger.info(f"[SUCCESS] - {message}")
|
138
|
+
|
139
|
+
def warning(self, message: str) -> None:
|
140
|
+
"""
|
141
|
+
Logs a warning message.
|
142
|
+
|
143
|
+
Parameters
|
144
|
+
----------
|
145
|
+
message : str
|
146
|
+
The message to log.
|
147
|
+
"""
|
148
|
+
self.logger.warning(f"[WARNING] - {message}")
|
149
|
+
|
150
|
+
def debug(self, message: str) -> None:
|
151
|
+
"""
|
152
|
+
Logs a debug message.
|
153
|
+
|
154
|
+
Parameters
|
155
|
+
----------
|
156
|
+
message : str
|
157
|
+
The message to log.
|
158
|
+
"""
|
159
|
+
self.logger.debug(f"[DEBUG] - {message}")
|
@@ -1,42 +1,19 @@
|
|
1
1
|
import os
|
2
|
-
import threading
|
3
2
|
from pathlib import Path
|
4
3
|
from dotenv import set_key, unset_key, dotenv_values
|
5
|
-
from orionis.
|
4
|
+
from orionis.contracts.support.i_environment import IEnvironment
|
5
|
+
from orionis.luminate.patterns.singleton import SingletonMeta
|
6
6
|
|
7
|
-
class Environment(IEnvironment):
|
8
|
-
"""
|
9
|
-
Singleton class to manage environment variables from a .env file.
|
10
|
-
Ensures a single instance handles environment variable access,
|
11
|
-
modification, and deletion.
|
12
|
-
"""
|
7
|
+
class Environment(IEnvironment, metaclass=SingletonMeta):
|
13
8
|
|
14
|
-
|
15
|
-
_instance = None
|
16
|
-
|
17
|
-
# Thread lock to control instance creation
|
18
|
-
_lock = threading.Lock()
|
19
|
-
|
20
|
-
def __new__(cls, path: str = None):
|
9
|
+
def __init__(self, path: str = None):
|
21
10
|
"""
|
22
|
-
|
23
|
-
Ensures thread-safe initialization using a lock.
|
24
|
-
|
25
|
-
Parameters
|
26
|
-
----------
|
27
|
-
path : str, optional
|
28
|
-
Path to the .env file. Defaults to None.
|
11
|
+
Initialize the environment configuration.
|
29
12
|
|
30
|
-
|
31
|
-
|
32
|
-
_Environment
|
33
|
-
The singleton instance of _Environment.
|
13
|
+
Args:
|
14
|
+
path (str, optional): The path to the configuration file. Defaults to None.
|
34
15
|
"""
|
35
|
-
|
36
|
-
if cls._instance is None:
|
37
|
-
cls._instance = super().__new__(cls)
|
38
|
-
cls._instance._initialize(path)
|
39
|
-
return cls._instance
|
16
|
+
self._initialize(path)
|
40
17
|
|
41
18
|
def _initialize(self, path: str = None):
|
42
19
|
"""
|
@@ -48,9 +25,11 @@ class Environment(IEnvironment):
|
|
48
25
|
path : str, optional
|
49
26
|
Path to the .env file. Defaults to None.
|
50
27
|
"""
|
28
|
+
|
29
|
+
# Set the path to the .env file
|
51
30
|
self.path = Path(path) if path else Path(os.getcwd()) / ".env"
|
52
31
|
|
53
|
-
#
|
32
|
+
# Create the .env file if it does not exist
|
54
33
|
if not self.path.exists():
|
55
34
|
self.path.touch()
|
56
35
|
|
@@ -71,7 +50,11 @@ class Environment(IEnvironment):
|
|
71
50
|
str
|
72
51
|
The value of the environment variable or the default value.
|
73
52
|
"""
|
53
|
+
|
54
|
+
# Get the value from the .env file
|
74
55
|
value = dotenv_values(self.path).get(key)
|
56
|
+
|
57
|
+
# Return the value or the default value
|
75
58
|
return value if value is not None else os.getenv(key, default)
|
76
59
|
|
77
60
|
def set(self, key: str, value: str) -> None:
|
@@ -85,6 +68,8 @@ class Environment(IEnvironment):
|
|
85
68
|
value : str
|
86
69
|
The value to set.
|
87
70
|
"""
|
71
|
+
|
72
|
+
# Set the value in the .env file
|
88
73
|
set_key(str(self.path), key, value)
|
89
74
|
|
90
75
|
def unset(self, key: str) -> None:
|
@@ -96,6 +81,8 @@ class Environment(IEnvironment):
|
|
96
81
|
key : str
|
97
82
|
The key of the environment variable to remove.
|
98
83
|
"""
|
84
|
+
|
85
|
+
# Remove the key from the .env file
|
99
86
|
unset_key(str(self.path), key)
|
100
87
|
|
101
88
|
def all(self) -> dict:
|
@@ -107,4 +94,6 @@ class Environment(IEnvironment):
|
|
107
94
|
dict
|
108
95
|
A dictionary of all environment variables and their values.
|
109
96
|
"""
|
97
|
+
|
98
|
+
# Return all environment variables
|
110
99
|
return dotenv_values(self.path)
|
@@ -3,7 +3,7 @@ import inspect
|
|
3
3
|
import importlib
|
4
4
|
from enum import Enum
|
5
5
|
from typing import Any, List, Optional
|
6
|
-
from orionis.
|
6
|
+
from orionis.contracts.support.i_reflection import IReflection
|
7
7
|
|
8
8
|
class Reflection(IReflection):
|
9
9
|
"""
|
@@ -3,9 +3,8 @@ import re
|
|
3
3
|
import unittest
|
4
4
|
from contextlib import redirect_stdout
|
5
5
|
from orionis.luminate.console.output.console import Console
|
6
|
-
from orionis.luminate.contracts.test.unit_test_interface import IUnitTest
|
7
6
|
|
8
|
-
class UnitTest
|
7
|
+
class UnitTest:
|
9
8
|
"""
|
10
9
|
A testing framework for discovering and running unit tests in a structured way.
|
11
10
|
|
@@ -0,0 +1,157 @@
|
|
1
|
+
orionis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
+
orionis/cli_manager.py,sha256=0bM-hABXJSoPGuvEgnqeaj9qcLP8VjTQ3z9Mb0TSEUI,1381
|
3
|
+
orionis/framework.py,sha256=i_9PM0t-50ZKJ4wgi0wvjWQGYJP2A-J1ZMBPgcu-go0,1386
|
4
|
+
orionis/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
+
orionis/contracts/bootstrap/i_command_bootstrapper.py,sha256=kdabnjTRXcab0Kelcst8MhuJ_iP0XX8taChMupwzF1M,1901
|
6
|
+
orionis/contracts/bootstrap/i_config_bootstrapper.py,sha256=x38bXXX49ASm5yZ0O6vwssmtiLMsF-fkxFcq-Cqf5GM,3480
|
7
|
+
orionis/contracts/bootstrap/i_environment_bootstrapper.py,sha256=MEeZmh0XWvzvWHFB5ZOp5SKY89F1IHsIXJvdjmEncJU,1076
|
8
|
+
orionis/contracts/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
+
orionis/contracts/config/i_config.py,sha256=rbeojO2gm8XhSXIPY8EnUt4e0wO633OKF9Nx_tN5y60,785
|
10
|
+
orionis/contracts/console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
+
orionis/contracts/console/i_command_filter.py,sha256=g66AlKNjTyQfdarO23r27nFqwiCnrP6kjaZ7tUGql-c,937
|
12
|
+
orionis/contracts/console/i_kernel.py,sha256=GtiGlWe7EQ9aeChHpQ-GlIJlJ5tEqpZYYkjNcrwXI94,945
|
13
|
+
orionis/contracts/console/i_parser.py,sha256=vMmTK0wMfTjt7H-tRf-WRLI8R-ghUzJauctwtgj0jFU,2082
|
14
|
+
orionis/contracts/console/i_task_manager.py,sha256=sOmeifoncpWCG2WYh4q3QZ7M7w7P9Onb3Jxw9X2lpXE,1197
|
15
|
+
orionis/contracts/console/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
|
+
orionis/contracts/console/base/i_command.py,sha256=godE5t2r5Vrc5jYu_bsJnlSj8DjFWqtZYe14S7sKxwE,12239
|
17
|
+
orionis/contracts/console/output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
|
+
orionis/contracts/console/output/i_console.py,sha256=bkYTT5oIK3NP-p7XONgi1z_SO50ZvJu31Nv7cjs4t7s,8902
|
19
|
+
orionis/contracts/console/output/i_executor.py,sha256=MGMTTPSwF8dgCjHD3A4CKtYDaCcD-KU28dorC61Q04k,1411
|
20
|
+
orionis/contracts/console/output/i_progress_bar.py,sha256=sOkQzQsliFemqZHMyzs4fWhNJfXDTk5KH3aExReetSE,1760
|
21
|
+
orionis/contracts/console/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
|
+
orionis/contracts/console/tasks/i_schedule.py,sha256=_dsR0gCvJ7_67lwPUAzBwQFHNvWM6jVjcg1EdPqDIIo,10117
|
23
|
+
orionis/contracts/container/i_container.py,sha256=c_QRQHXGIujiDnYXyt--3J2LKXngVtoB3O-qchPmFDQ,6899
|
24
|
+
orionis/contracts/container/i_types.py,sha256=GCH7x3PjpXKPET3l84GcXbcM8cpne8AGrmTw-uFaT24,526
|
25
|
+
orionis/contracts/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
+
orionis/contracts/facades/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
|
+
orionis/contracts/facades/config/i_config_facade.py,sha256=Yzc0mB4W9XF8cZTdTO78AKUiyGaiShl1k8nJiecvKTc,970
|
28
|
+
orionis/contracts/facades/environment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
+
orionis/contracts/facades/environment/i_environment_facade.py,sha256=CFJ8mbPZceblufxzRJ3kMweRuG4KkJyx5JzAqQ91FXY,1221
|
30
|
+
orionis/contracts/facades/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
31
|
+
orionis/contracts/facades/files/i_path_facade.py,sha256=-6OWYFsXmQ2vOBlp6uBwN0TnwTB-otaBEJiYO7ZKVoQ,4497
|
32
|
+
orionis/contracts/facades/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
+
orionis/contracts/facades/log/i_log_facade.py,sha256=xkdR6nMAENv9NLOFUAnk1WRh9bYuisSAhnlkdlD5O7g,1894
|
34
|
+
orionis/contracts/facades/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
35
|
+
orionis/contracts/facades/tests/i_tests_facade.py,sha256=GM6d9skPZwynx1lu_abfuJ_L5GvG9b12vI-KX7phYJc,890
|
36
|
+
orionis/contracts/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
+
orionis/contracts/installer/i_installer_manager.py,sha256=Zfndhuyu0JaTKo3PsGsKmVsvotQMw8Pmt4KQp97elY8,1567
|
38
|
+
orionis/contracts/installer/i_installer_output.py,sha256=SQZeXg5HRu-x1697HCdoU1-RVJWEqCWY-zNboWnc_vs,2897
|
39
|
+
orionis/contracts/installer/i_installer_setup.py,sha256=enXOusaAJVWamTpH9FjXpJf-o35twEJPaEkHz7fvB48,1711
|
40
|
+
orionis/contracts/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
+
orionis/contracts/providers/i_service_provider.py,sha256=zoBAsGE-KrNfCsF3u876oxoa518zMuBD9npRK7BixUs,791
|
42
|
+
orionis/contracts/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
43
|
+
orionis/contracts/services/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
44
|
+
orionis/contracts/services/config/i_config_service.py,sha256=TdlEEsd8jvzBGozwaZtQ9KYHisY4ACL-VUOtydidHeE,989
|
45
|
+
orionis/contracts/services/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
|
+
orionis/contracts/services/files/i_path_service.py,sha256=Le5sax8c_PjUyb5Hg7AVQALGjxlym5cc6OSPvGCKBKk,866
|
47
|
+
orionis/contracts/services/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
+
orionis/contracts/services/log/i_log_service.py,sha256=1RD3u-a5ZDMbg7AYE8y2SW8QNRybAU3De0mEA0dAeNo,2167
|
49
|
+
orionis/contracts/support/i_environment.py,sha256=sng4uN4D74MGy71J45m1oRmkKpNWLn79OEuOsf9ZuWQ,1952
|
50
|
+
orionis/contracts/support/i_exception_to_dict.py,sha256=LZpbCNDYQJs3j2mIM-NRFl0IfA8I0GFHExgRSO6K2FQ,780
|
51
|
+
orionis/contracts/support/i_reflection.py,sha256=Ht5_FsFbCb-APRXX3HdsfKl3cDZU8DyXGXPWKTn05uQ,8429
|
52
|
+
orionis/contracts/support/i_std.py,sha256=IihREHnJ_D2LqsrwtnGsIRYr0UsJsQezYPSPO6UaBQ4,992
|
53
|
+
orionis/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
|
+
orionis/installer/installer_manager.py,sha256=Hb6T0bmSl39T30maY-nUWkrLhG77JdrKe4cZHF7epEY,3134
|
55
|
+
orionis/installer/installer_output.py,sha256=Vn8g5fKWYh6X2I44ERvrjuVAI6n1DYzWeTMIXEXumpk,7226
|
56
|
+
orionis/installer/installer_setup.py,sha256=c2HtVklSa-2_-YVonc7fwtoK-RTDqBS2Ybvbekgfqtc,6970
|
57
|
+
orionis/luminate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
|
+
orionis/luminate/app.py,sha256=VUJMl5G3UAY6DaG3oqS5a9J2mBGH0DTlLjssHub4fNw,3310
|
59
|
+
orionis/luminate/app_context.py,sha256=XREVkOHU6aP8UB2daA2QbFcOCB8HRmcGXjVbrlW1AHQ,1827
|
60
|
+
orionis/luminate/bootstrap/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
|
+
orionis/luminate/bootstrap/command_bootstrapper.py,sha256=fXOvdeyNoB2oN_o1YzhWMbjLa3Nubgwo5QaTNAfm9N4,6297
|
62
|
+
orionis/luminate/bootstrap/config_bootstrapper.py,sha256=Ep300UwgJvatv4TUfPy6KeqrYKjCr13eFTbKtMBsHZs,6137
|
63
|
+
orionis/luminate/bootstrap/environment_bootstrapper.py,sha256=kBTpc5j01_O5hwTLpKxwx2kOwwjOgJlrqoxlYflmHlE,2758
|
64
|
+
orionis/luminate/bootstrap/exception_bootstrapper.py,sha256=wDKfEW295c7-bavr7YUHK2CLYcTSZgjT9ZRSBne6GOE,1356
|
65
|
+
orionis/luminate/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
|
+
orionis/luminate/config/app.py,sha256=7teuVPuaV2ao0M5Bv-jhSgjEwb9DtVwde2saTRmYru4,1737
|
67
|
+
orionis/luminate/config/auth.py,sha256=CG8F0pfVjKz4DY3d1Wi7gscdhnp4TT-Q8SJ2sdsHh18,523
|
68
|
+
orionis/luminate/config/cache.py,sha256=nBKmDFDb91sbBriEsVLjMhrNb__j7YsRzZGQRDdALtA,1338
|
69
|
+
orionis/luminate/config/cors.py,sha256=zWKUylPiaUzGXTJM3eLmwY0HcAD7iOLp9QiAoTyAL08,2275
|
70
|
+
orionis/luminate/config/database.py,sha256=oj-FQWtbwIYrJAQktSGBl96EZu78fr6IBcQxHbWDVBM,5619
|
71
|
+
orionis/luminate/config/filesystems.py,sha256=fAn4Wx6naIb8E4U2TXJhVnx0Ipxpxc_Ee2w_FWfwlHI,2444
|
72
|
+
orionis/luminate/config/helpers.py,sha256=qkWDmrfjCxaSJ3P8hJlJ32xSPnKyOnJhmUn2jigPtx0,585
|
73
|
+
orionis/luminate/config/logging.py,sha256=H110K6LyTCNgxZPqiGGn0z8FZ2I6kW5ZKfsVhoWB4KM,2832
|
74
|
+
orionis/luminate/config/mail.py,sha256=3iYXG72bXiVns4sEPZ_A3-cGcFjGEGDXkuLKkk-hKtY,2102
|
75
|
+
orionis/luminate/config/queue.py,sha256=DYjP5zD09ISsIX117wtOfjiG_iQrcrPoQVeeftmuO3c,1739
|
76
|
+
orionis/luminate/config/session.py,sha256=7mOC_DfGIBDqAClSiewHoTA9Kht_zdHApvALcZc7cfY,1861
|
77
|
+
orionis/luminate/console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
|
+
orionis/luminate/console/command_filter.py,sha256=os5BxR6Rcmihrv34pD-fFTkRms_nZzCIrV7vr4RNuIU,1322
|
79
|
+
orionis/luminate/console/kernel.py,sha256=uh3IeR3qI3X0esyw9dxE0LzQ6ueSd_2suMijtQn3HWM,939
|
80
|
+
orionis/luminate/console/parser.py,sha256=qif0eR54bwaVOiugVQh-NUks35XD2VofWbJlRpfR8lg,5579
|
81
|
+
orionis/luminate/console/runner.py,sha256=7oLEZpJ4lPf4YkP9bj7wvgT9GJ2gUJv81JKXEdD0gA0,4820
|
82
|
+
orionis/luminate/console/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
|
+
orionis/luminate/console/base/command.py,sha256=YGHd5xVYILcNhQumi74IRnzvagvjufEO2Bx1CwHRToY,12544
|
84
|
+
orionis/luminate/console/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
|
+
orionis/luminate/console/commands/cache_clear.py,sha256=KyXVSwtLaV1O1cTEkNzX9czCwEoeQlAjiT0jUFMO8iE,2684
|
86
|
+
orionis/luminate/console/commands/help.py,sha256=jIcCs-yByFO7Xmv3QwCaOug1Jd-6G_wAezOrE8sIeEc,2363
|
87
|
+
orionis/luminate/console/commands/schedule_work.py,sha256=r9Q-CgX1N_R1qcy0gQuUS6P7ZmAcZ6SALVnJUZmWnQg,1981
|
88
|
+
orionis/luminate/console/commands/tests.py,sha256=Z7e6aM5Vu8C7R8iC8sJgUYVN9aJgtVMkqjUEFxPq91o,1281
|
89
|
+
orionis/luminate/console/commands/version.py,sha256=llVPK6ELtf8dIdPvLbybrtipWwZkzV0EXc9ShL-C-GY,1140
|
90
|
+
orionis/luminate/console/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
91
|
+
orionis/luminate/console/exceptions/cli_exception.py,sha256=T5rFjBEXWQf3RbpMb7KDoYayylm5DLPUPLC5OzkZ2-I,4623
|
92
|
+
orionis/luminate/console/output/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
|
+
orionis/luminate/console/output/console.py,sha256=khlnCmhGW3Iu2YYO8GG7YLtnLeqysy-olGED5zcTU6A,16338
|
94
|
+
orionis/luminate/console/output/executor.py,sha256=0_6AGM1vE5umdpVVogQUE5eW9cu5UUQwc-ZvuccTI8E,3362
|
95
|
+
orionis/luminate/console/output/progress_bar.py,sha256=ssi8Drryr-shl7OxweTgGOhvRvAlCVxjBGm1L1qyO84,3089
|
96
|
+
orionis/luminate/console/output/styles.py,sha256=2e1_FJdNpKaVqmdlCx-udzTleH_6uEFE9_TjH7T1ZUk,3696
|
97
|
+
orionis/luminate/console/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
98
|
+
orionis/luminate/console/tasks/scheduler.py,sha256=YdXOdpGaezuPymVh-QnI4lAT99dKDBADDyU3ceLjU_A,22732
|
99
|
+
orionis/luminate/container/container.py,sha256=92Vh6IRx6BSWucdg6ls5Oh41KhHkPeIRD_LIHio3nhc,16400
|
100
|
+
orionis/luminate/container/exception.py,sha256=ap1SqYEjQEEHXJJTNmL7V1jrmRjgT5_7geZ95MYkhMA,1691
|
101
|
+
orionis/luminate/container/types.py,sha256=BDcXN0__voRNHZ5Gr5dF0sWIYAQyNk4TxAwILBWyDAA,1735
|
102
|
+
orionis/luminate/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
103
|
+
orionis/luminate/facades/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
104
|
+
orionis/luminate/facades/config/config_facade.py,sha256=GLQ6JiD2dB7WLyhUZ4SGBSNo7VuwHpX_QrrQcvjoAi8,1429
|
105
|
+
orionis/luminate/facades/environment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
106
|
+
orionis/luminate/facades/environment/environment_facade.py,sha256=AgLeECJU8N2qcs6JAyGkQTF1Amq9co0Ser0SZerjx74,2236
|
107
|
+
orionis/luminate/facades/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
108
|
+
orionis/luminate/facades/files/path_facade.py,sha256=9cEi66nwW4RD8Xc8cTa2RE9YfqW1-fbD4HXPfwce6bE,9159
|
109
|
+
orionis/luminate/facades/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
110
|
+
orionis/luminate/facades/log/log_facade.py,sha256=r8D9T9MoHriq9Ro7vkrmoZUt774Go5Z9vbZh-ZRgVB4,2729
|
111
|
+
orionis/luminate/facades/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
112
|
+
orionis/luminate/facades/tests/tests_facade.py,sha256=eH_fyXjzEVw8aqEwxAgSujFUItz2woau6hc2Mf4VlkE,1660
|
113
|
+
orionis/luminate/patterns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
114
|
+
orionis/luminate/patterns/singleton.py,sha256=b3U0nubKSQWyal5wTXADVPtOztkaTk-M8Zwy-bje1L0,1425
|
115
|
+
orionis/luminate/pipelines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
116
|
+
orionis/luminate/pipelines/cli_pipeline.py,sha256=xpdwxArZrYqaeo4h375RQwY329V14S8DJC9z1w_Ar1s,4218
|
117
|
+
orionis/luminate/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
|
+
orionis/luminate/providers/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
119
|
+
orionis/luminate/providers/config/config_service_provider.py,sha256=B72XEIzbiFFojB3c361QFTVz3kuM9HEUHaW-whMgytw,946
|
120
|
+
orionis/luminate/providers/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
121
|
+
orionis/luminate/providers/files/path_service_provider.py,sha256=1FD87NxNogv0LFjOzZ7ts9b6JLh8HYVjcqm2Tk2oxsE,940
|
122
|
+
orionis/luminate/providers/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
123
|
+
orionis/luminate/providers/log/log_service_provider.py,sha256=ROvuiEaUAWN-KMZnW3CKoJMgPR8kP37kLB5y1ug03Jg,942
|
124
|
+
orionis/luminate/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
|
+
orionis/luminate/services/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
126
|
+
orionis/luminate/services/config/config_service.py,sha256=TZa3WZtDKEW6p0bMktzMXn85cOQy-q21myiYu3rZA34,2147
|
127
|
+
orionis/luminate/services/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
128
|
+
orionis/luminate/services/files/path_service.py,sha256=ttsa7wmw1Lm9eDJdXxUY4ZJYhDtpaPrGJgrTGNu9L3I,2519
|
129
|
+
orionis/luminate/services/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
130
|
+
orionis/luminate/services/log/log_service.py,sha256=OAqxr1I6GgylpuY6PXqXjAF1CXQaxzLp6bH3qnY5-AQ,5261
|
131
|
+
orionis/luminate/support/dot_dict.py,sha256=FVHfBuAGTTVMjNG01Fix645fRNKKUMmNx61pYkxPL5c,1253
|
132
|
+
orionis/luminate/support/environment.py,sha256=BkjZstF7TwRA13al20rqz-n5hcsDd6eypnfFHk0_IME,2973
|
133
|
+
orionis/luminate/support/exception_to_dict.py,sha256=jpQ-c7ud1JLm8dTWbvMT1dI-rL3yTB2P8VxNscAX71k,2098
|
134
|
+
orionis/luminate/support/reflection.py,sha256=VYpluTQJ0W_m6jYQ9_L02sYFrk2wlLYtLY2yp9rZMKA,11944
|
135
|
+
orionis/luminate/support/std.py,sha256=pOdpQBOxVAcS8GdkOYpyDKGVpICRd8IN8CE63q6WjGk,1383
|
136
|
+
orionis/luminate/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
137
|
+
orionis/luminate/test/exception.py,sha256=VJaZ7VMZfdKW1ov_GwKp2HAz_NYobujJxDt5RaPHuVQ,1395
|
138
|
+
orionis/luminate/test/unit_test.py,sha256=7pZWRYRtLRz5_EZBWuXHZShRm7y5ICtl-52FTrsUqso,3652
|
139
|
+
orionis/static/ascii/icon.ascii,sha256=B1TAXYes9sQVg284MdVYNJh2LvIH88-MuHUyyKaBsNM,714
|
140
|
+
orionis/static/ascii/info.ascii,sha256=DV0NZRDuYXujymer8YAbg0PC8xejDEh7LSLZFGuOdw0,773
|
141
|
+
orionis/static/bg/galaxy.jpg,sha256=_FuPghOe9LBrIWv1eKZ9fiZR72sEz5obvXGDnD7MzTc,172244
|
142
|
+
orionis/static/favicon/OrionisFrameworkFavicon.png,sha256=bvkLzn0PfYHY9f-AfgRzclt4RNSFaKhMCH_TgwqsMKU,31301
|
143
|
+
orionis/static/logos/OrionisFramework.jpg,sha256=ezZlrcoknKvtl6YFwSIVfecRFm9fjAMKXHmuabMpImM,716918
|
144
|
+
orionis/static/logos/OrionisFramework.png,sha256=nmS5HoYu4NwmrcTtVj8gtjutgnW8EstgRkli_Ks1Chs,291370
|
145
|
+
orionis/static/logos/OrionisFramework.psd,sha256=QFMRe_HENaIgQi9VWMvNV3OHKOFofFGOGwQk6fqebrU,2904849
|
146
|
+
orionis/static/logos/OrionisFramework2.png,sha256=Z_-yBHNSo33QeSTyi-8GfiFozdRqUomIZ28bGx6Py5c,256425
|
147
|
+
orionis/static/logos/OrionisFramework3.png,sha256=BPG9ZB58vDALavI9OMmr8Ym0DQa44s5NL_3M4M6dIYs,193734
|
148
|
+
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
149
|
+
tests/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
150
|
+
tests/tools/class_example.py,sha256=dIPD997Y15n6WmKhWoOFSwEldRm9MdOHTZZ49eF1p3c,1056
|
151
|
+
tests/tools/test_reflection.py,sha256=bhLQ7VGVod4B8sv-rW9AjnOumvaBVsoxieA3sdoM2yM,5244
|
152
|
+
orionis-0.46.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
|
153
|
+
orionis-0.46.0.dist-info/METADATA,sha256=wE_Kr1LwGz1ybgfkFknD7EFVqzeNmO3nEkLftDDIAEA,2978
|
154
|
+
orionis-0.46.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
155
|
+
orionis-0.46.0.dist-info/entry_points.txt,sha256=eef1_CVewfokKjrGBynXa06KabSJYo7LlDKKIKvs1cM,53
|
156
|
+
orionis-0.46.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
|
157
|
+
orionis-0.46.0.dist-info/RECORD,,
|
tests/tools/test_reflection.py
CHANGED