orionis 0.62.0__py3-none-any.whl → 0.63.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.
orionis/framework.py CHANGED
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.62.0"
8
+ VERSION = "0.63.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
@@ -1,7 +1,7 @@
1
1
  import inspect
2
2
  from collections import deque
3
3
  from threading import Lock
4
- from typing import Callable, Any, Dict
4
+ from typing import Callable, Any, Dict, get_args, get_origin
5
5
  from orionis.contracts.container.i_container import IContainer
6
6
  from orionis.luminate.container.exception import OrionisContainerException, OrionisContainerValueError, OrionisContainerTypeError
7
7
  from orionis.luminate.container.types import Types
@@ -375,27 +375,27 @@ class Container(IContainer):
375
375
  unresolved_dependencies.append(param_name)
376
376
  continue
377
377
 
378
+ # Resolve parameters with default values (without annotations)
379
+ if param.default is not param.empty:
380
+ resolved_dependencies[param_name] = param.default
381
+ continue
382
+
378
383
  # Resolve dependencies based on annotations (excluding primitive types)
379
384
  if param.annotation is not param.empty:
380
385
  param_type = param.annotation
381
386
 
382
- # Check if it's a registered service, if so, resolve it through the container
383
- if isinstance(param_type, type) and not isinstance(param_type, (int, str, bool, float)) and not issubclass(param_type, (int, str, bool, float)):
387
+ # Check if it's a generic type, get the origin type
388
+ if get_origin(param_type) is not None:
389
+ param_type = get_args(param_type)[0]
384
390
 
385
- # Check if the service is registered in the container
391
+ if isinstance(param_type, type) and not issubclass(param_type, (int, str, bool, float)):
386
392
  if self.has(param_type):
387
393
  resolved_dependencies[param_name] = self.make(f"{param_type.__module__}.{param_type.__name__}")
388
394
  else:
389
395
  resolved_dependencies[param_name] = self._resolve_dependency(param_type)
390
396
  else:
391
-
392
- # It's a primitive, use as-is
393
397
  resolved_dependencies[param_name] = param_type
394
398
 
395
- # Resolve parameters with default values (without annotations)
396
- elif param.default is not param.empty:
397
- resolved_dependencies[param_name] = param.default
398
-
399
399
  # Step 4: Resolve any remaining unresolved dependencies.
400
400
  while unresolved_dependencies:
401
401
  dep_name = unresolved_dependencies.popleft()
@@ -92,7 +92,7 @@ class LogguerService(ILogguerService):
92
92
  datefmt="%Y-%m-%d %H:%M:%S",
93
93
  encoding="utf-8",
94
94
  handlers=[
95
- logging.FileHandler(path) # Log to a file
95
+ logging.FileHandler(path, encoding="utf-8")
96
96
  # logging.StreamHandler() # Uncomment to also log to the console
97
97
  ]
98
98
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: orionis
3
- Version: 0.62.0
3
+ Version: 0.63.0
4
4
  Summary: Orionis Framework – Elegant, Fast, and Powerful.
5
5
  Home-page: https://github.com/orionis-framework/framework
6
6
  Author: Raul Mauricio Uñate Castro
@@ -1,6 +1,6 @@
1
1
  orionis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  orionis/cli_manager.py,sha256=0bM-hABXJSoPGuvEgnqeaj9qcLP8VjTQ3z9Mb0TSEUI,1381
3
- orionis/framework.py,sha256=HTxNkMZYihg6FyaLRbHW6lGFDSyb1N_HQUVKTvWmxaI,1386
3
+ orionis/framework.py,sha256=ZuUvKxunOXlKqb9G5nSdHe_2J3Jl6lcoo6_U7tIdNUg,1386
4
4
  orionis/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  orionis/contracts/bootstrap/i_command_bootstrapper.py,sha256=cfpYWSlNhOY1q_C9o0H7F381OoM0Oh0qaeqP-c85nzk,2457
6
6
  orionis/contracts/bootstrap/i_config_bootstrapper.py,sha256=d2TXT74H2fCBbzWgrt9-ZG11S_H_YPQOEcJoIOrsgb0,4462
@@ -94,7 +94,7 @@ orionis/luminate/console/output/progress_bar.py,sha256=ssi8Drryr-shl7OxweTgGOhvR
94
94
  orionis/luminate/console/output/styles.py,sha256=2e1_FJdNpKaVqmdlCx-udzTleH_6uEFE9_TjH7T1ZUk,3696
95
95
  orionis/luminate/console/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
96
  orionis/luminate/console/tasks/scheduler.py,sha256=zt4p2VGUYGGrG2-E-MxyheKjBqGDJB2c0irULDsBgIw,22678
97
- orionis/luminate/container/container.py,sha256=92Vh6IRx6BSWucdg6ls5Oh41KhHkPeIRD_LIHio3nhc,16400
97
+ orionis/luminate/container/container.py,sha256=SKC7IyiAaeySiSvlRbTZRTTe4i_Jvm2N8O9Di8It6_I,16350
98
98
  orionis/luminate/container/exception.py,sha256=ap1SqYEjQEEHXJJTNmL7V1jrmRjgT5_7geZ95MYkhMA,1691
99
99
  orionis/luminate/container/types.py,sha256=BDcXN0__voRNHZ5Gr5dF0sWIYAQyNk4TxAwILBWyDAA,1735
100
100
  orionis/luminate/facades/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -123,7 +123,7 @@ orionis/luminate/services/config/config_service.py,sha256=TZa3WZtDKEW6p0bMktzMXn
123
123
  orionis/luminate/services/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
124
  orionis/luminate/services/files/path_service.py,sha256=opLl1k0QLPv9u9GCKENyRsLKhupM_0BDjXE_elk47EU,3039
125
125
  orionis/luminate/services/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- orionis/luminate/services/log/log_service.py,sha256=OAqxr1I6GgylpuY6PXqXjAF1CXQaxzLp6bH3qnY5-AQ,5261
126
+ orionis/luminate/services/log/log_service.py,sha256=aiENimOQHqaEAsBJz2_698bt1IeJjddHnledLKfg25o,5262
127
127
  orionis/luminate/support/dot_dict.py,sha256=FVHfBuAGTTVMjNG01Fix645fRNKKUMmNx61pYkxPL5c,1253
128
128
  orionis/luminate/support/exception_to_dict.py,sha256=jpQ-c7ud1JLm8dTWbvMT1dI-rL3yTB2P8VxNscAX71k,2098
129
129
  orionis/luminate/support/reflection.py,sha256=VYpluTQJ0W_m6jYQ9_L02sYFrk2wlLYtLY2yp9rZMKA,11944
@@ -144,9 +144,9 @@ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
144
  tests/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
145
  tests/tools/class_example.py,sha256=dIPD997Y15n6WmKhWoOFSwEldRm9MdOHTZZ49eF1p3c,1056
146
146
  tests/tools/test_reflection.py,sha256=bhLQ7VGVod4B8sv-rW9AjnOumvaBVsoxieA3sdoM2yM,5244
147
- orionis-0.62.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
148
- orionis-0.62.0.dist-info/METADATA,sha256=rTftP4uxxhD0e3X4C6lwBSDHEKb2ylRyyB1Q8x-ZGZg,2978
149
- orionis-0.62.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
150
- orionis-0.62.0.dist-info/entry_points.txt,sha256=eef1_CVewfokKjrGBynXa06KabSJYo7LlDKKIKvs1cM,53
151
- orionis-0.62.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
152
- orionis-0.62.0.dist-info/RECORD,,
147
+ orionis-0.63.0.dist-info/LICENCE,sha256=-_4cF2EBKuYVS_SQpy1uapq0oJPUU1vl_RUWSy2jJTo,1111
148
+ orionis-0.63.0.dist-info/METADATA,sha256=kwu4WjDZvu4j6P41DLtWBKvHNa5oyKeG9N504f2DezM,2978
149
+ orionis-0.63.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
150
+ orionis-0.63.0.dist-info/entry_points.txt,sha256=eef1_CVewfokKjrGBynXa06KabSJYo7LlDKKIKvs1cM,53
151
+ orionis-0.63.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
152
+ orionis-0.63.0.dist-info/RECORD,,