orionis 0.456.0__py3-none-any.whl → 0.458.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.
@@ -0,0 +1,62 @@
1
+ from orionis.app import Orionis
2
+ from orionis.console.base.command import BaseCommand
3
+ from orionis.console.exceptions import CLIOrionisRuntimeError
4
+ from orionis.test.contracts.kernel import ITestKernel
5
+
6
+ class TestCommand(BaseCommand):
7
+ """
8
+ Command class to display usage information for the Orionis CLI.
9
+
10
+ Attributes
11
+ ----------
12
+ timestamps : bool
13
+ Indicates whether timestamps will be shown in the command output.
14
+ signature : str
15
+ The command signature.
16
+ description : str
17
+ A brief description of the command.
18
+ """
19
+
20
+ # Indicates whether timestamps will be shown in the command output
21
+ timestamps: bool = False
22
+
23
+ # Command signature and description
24
+ signature: str = "test"
25
+
26
+ # Command description
27
+ description: str = "Prints help information for the Orionis CLI commands."
28
+
29
+ def handle(self) -> None:
30
+ """
31
+ Executes the test command for the Orionis CLI.
32
+
33
+ This method initializes the Orionis application, retrieves the test kernel instance,
34
+ and runs the test suite using the kernel's handle method. If any exception occurs during
35
+ execution, it raises a CLIOrionisRuntimeError with the error details.
36
+
37
+ Returns
38
+ -------
39
+ None
40
+ This method does not return any value. It performs actions as a side effect,
41
+ such as running the test suite and handling exceptions.
42
+
43
+ Raises
44
+ ------
45
+ CLIOrionisRuntimeError
46
+ If an unexpected error occurs during the execution of the test command.
47
+ """
48
+ try:
49
+
50
+ # Initialize the Orionis application instance
51
+ app = Orionis()
52
+
53
+ # Retrieve the test kernel instance from the application container
54
+ kernel: ITestKernel = app.make(ITestKernel)
55
+
56
+ # Run the test suite using the kernel's handle method
57
+ kernel.handle()
58
+
59
+ except Exception as e:
60
+
61
+ # Raise a CLI-specific runtime error if any exception occurs
62
+ raise CLIOrionisRuntimeError(f"An unexpected error occurred: {e}") from e
@@ -6,22 +6,33 @@ from orionis.metadata import framework
6
6
 
7
7
  class VersionCommand(BaseCommand):
8
8
  """
9
- Command class to display the current version of the Orionis framework.
9
+ VersionCommand is a console command that displays the current version and metadata of the Orionis framework.
10
10
 
11
- This command prints the version number of the framework in use.
11
+ Attributes
12
+ ----------
13
+ timestamps : bool
14
+ Indicates whether timestamps should be included (default: False).
15
+ signature : str
16
+ The command signature used to invoke this command ("version").
17
+ description : str
18
+ A brief description of what the command does.
12
19
  """
20
+
21
+ # Indicates whether timestamps will be shown in the command output
13
22
  timestamps: bool = False
14
23
 
24
+ # Command signature and description
15
25
  signature: str = "version"
16
26
 
27
+ # Command description
17
28
  description: str = "Prints the version of the framework in use."
18
29
 
19
30
  def handle(self) -> None:
20
31
  """
21
- Executes the version command to display the current Orionis framework version.
32
+ Executes the version command to display the current Orionis framework version and metadata.
22
33
 
23
- This method retrieves the version number from the framework metadata and prints it
24
- in a formatted, bold, and successful style to the console. If an unexpected error occurs
34
+ This method retrieves the version number and additional metadata from the framework module,
35
+ then prints it in a formatted, styled panel to the console. If an unexpected error occurs
25
36
  during execution, it raises a CLIOrionisRuntimeError with the original exception message.
26
37
 
27
38
  Parameters
@@ -31,7 +42,8 @@ class VersionCommand(BaseCommand):
31
42
  Returns
32
43
  -------
33
44
  None
34
- This method does not return any value. It outputs the version information to the console.
45
+ This method does not return any value. It outputs the version and metadata information
46
+ to the console using rich formatting.
35
47
 
36
48
  Raises
37
49
  ------
@@ -39,14 +51,11 @@ class VersionCommand(BaseCommand):
39
51
  If an unexpected error occurs during execution, a CLIOrionisRuntimeError is raised
40
52
  with the original exception message.
41
53
  """
42
-
43
- # Print the Orionis framework version in a bold, success style
44
54
  try:
45
-
46
55
  # Initialize the console for rich output
47
56
  console = Console()
48
57
 
49
- # Compose the main info
58
+ # Compose the main information strings using framework metadata
50
59
  title = f"[bold yellow]{framework.NAME.capitalize()} Framework[/bold yellow] [white]v{framework.VERSION}[/white]"
51
60
  author = f"[bold]Author:[/bold] {framework.AUTHOR} | [bold]Email:[/bold] {framework.AUTHOR_EMAIL}"
52
61
  desc = f"[italic]{framework.DESCRIPTION}[/italic]"
@@ -54,8 +63,10 @@ class VersionCommand(BaseCommand):
54
63
  docs = f"[bold]Docs:[/bold] [underline blue]{framework.DOCS}[/underline blue]"
55
64
  repo = f"[bold]Repo:[/bold] [underline blue]{framework.FRAMEWORK}[/underline blue]"
56
65
 
66
+ # Combine all information into the panel body
57
67
  body = "\n".join([desc, "", author, python_req, docs, repo, ""])
58
68
 
69
+ # Create a styled panel with the collected information
59
70
  panel = Panel(
60
71
  body,
61
72
  title=title,
@@ -65,10 +76,12 @@ class VersionCommand(BaseCommand):
65
76
  subtitle="[bold yellow]Orionis CLI[/bold yellow]",
66
77
  subtitle_align="right"
67
78
  )
79
+
80
+ # Print a blank line, the panel, and another blank line for spacing
68
81
  console.line()
69
82
  console.print(panel)
70
83
  console.line()
71
84
 
72
- # Raise a custom runtime error if any exception occurs
73
85
  except Exception as e:
86
+ # Raise a custom runtime error if any exception occurs
74
87
  raise CLIOrionisRuntimeError(f"An unexpected error occurred: {e}") from e
@@ -102,11 +102,13 @@ class Reactor(IReactor):
102
102
  # Import the core command class for version
103
103
  from orionis.console.commands.version import VersionCommand
104
104
  from orionis.console.commands.help import HelpCommand
105
+ from orionis.console.commands.test import TestCommand
105
106
 
106
107
  # List of core command classes to load (extend this list as more core commands are added)
107
108
  core_commands = [
108
109
  VersionCommand,
109
- HelpCommand
110
+ HelpCommand,
111
+ TestCommand
110
112
  ]
111
113
 
112
114
  # Iterate through the core command classes and register them
orionis/console/kernel.py CHANGED
@@ -3,6 +3,7 @@ from orionis.console.contracts.reactor import IReactor
3
3
  from orionis.console.output.contracts.console import IConsole
4
4
  from orionis.foundation.contracts.application import IApplication
5
5
  from orionis.console.exceptions import CLIOrionisValueError
6
+ from orionis.services.log.contracts.log_service import ILogger
6
7
 
7
8
  class KernelCLI(IKernelCLI):
8
9
 
@@ -42,6 +43,9 @@ class KernelCLI(IKernelCLI):
42
43
  # Retrieve and initialize the console instance for command output and error handling.
43
44
  self.__console: IConsole = app.make('x-orionis.console.output.console')
44
45
 
46
+ # Initialize the logger service for logging command execution details
47
+ self.__logger: ILogger = app.make('x-orionis.services.log.log_service')
48
+
45
49
  def handle(self, args: list) -> None:
46
50
  """
47
51
  Processes and dispatches command line arguments to the appropriate command handler.
@@ -90,10 +94,16 @@ class KernelCLI(IKernelCLI):
90
94
 
91
95
  except SystemExit as e:
92
96
 
97
+ # Log the SystemExit exception for debugging purposes
98
+ self.__logger.error(f"SystemExit encountered: {str(e)}")
99
+
93
100
  # Handle SystemExit exceptions gracefully, allowing for clean exits with error messages
94
101
  self.__console.exitError(str(e))
95
102
 
96
103
  except Exception as e:
97
104
 
105
+ # Log any unexpected exceptions that occur during command processing
106
+ self.__logger.error(f"An unexpected error occurred while processing command: {str(e)}")
107
+
98
108
  # Handle any other exceptions that may occur during command processing
99
109
  self.__console.exitError(f"An unexpected error occurred: {str(e)}")
@@ -54,11 +54,7 @@ class LoggerProvider(ServiceProvider):
54
54
  logger_service = Logger(logging_config)
55
55
 
56
56
  # Register the service instance in the container with interface binding and alias
57
- self.app.instance(
58
- ILogger, # Interface contract
59
- logger_service, # Concrete implementation instance
60
- alias="x-orionis.services.log.log_service" # Internal framework alias
61
- )
57
+ self.app.instance(ILogger, logger_service, alias="x-orionis.services.log.log_service")
62
58
 
63
59
  def boot(self) -> None:
64
60
  """
@@ -57,11 +57,7 @@ class ReactorProvider(ServiceProvider):
57
57
 
58
58
  # Register the Reactor service with the application container
59
59
  # as a singleton, allowing it to be resolved throughout the application lifecycle
60
- self.app.singleton(
61
- IReactor,
62
- Reactor,
63
- alias="x-orionis.console.core.reactor"
64
- )
60
+ self.app.singleton(IReactor, Reactor, alias="x-orionis.console.core.reactor")
65
61
 
66
62
  def boot(self) -> None:
67
63
  """
@@ -57,11 +57,7 @@ class WorkersProvider(ServiceProvider):
57
57
  - Suitable for stateless or short-lived worker operations
58
58
  """
59
59
 
60
- self.app.transient(
61
- IWorkers, # The interface contract that defines worker operations
62
- Workers, # The concrete implementation class
63
- alias="x-orionis.services.system.workers" # Descriptive alias for container lookup
64
- )
60
+ self.app.transient(IWorkers, Workers, alias="x-orionis.services.system.workers")
65
61
 
66
62
  def boot(self) -> None:
67
63
  """
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.456.0"
8
+ VERSION = "0.458.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
orionis/test/kernel.py CHANGED
@@ -1,5 +1,6 @@
1
1
  from orionis.console.output.contracts.console import IConsole
2
2
  from orionis.foundation.contracts.application import IApplication
3
+ from orionis.services.log.contracts.log_service import ILogger
3
4
  from orionis.test.contracts.kernel import ITestKernel
4
5
  from orionis.test.contracts.unit_test import IUnitTest
5
6
  from orionis.foundation.config.testing.entities.testing import Testing
@@ -70,6 +71,9 @@ class TestKernel(ITestKernel):
70
71
  # Resolve the console service from the application container
71
72
  self.__console: IConsole = app.make('x-orionis.console.output.console')
72
73
 
74
+ # Initialize the logger service for logging command execution details
75
+ self.__logger: ILogger = app.make('x-orionis.services.log.log_service')
76
+
73
77
  def handle(self) -> IUnitTest:
74
78
  """
75
79
  Execute the unit test suite and handle any exceptions that occur during testing.
@@ -94,12 +98,37 @@ class TestKernel(ITestKernel):
94
98
 
95
99
  # Execute the unit test suite through the injected unit test service
96
100
  try:
97
- return self.__unit_test.run()
101
+
102
+ # Log the start of test execution
103
+ ouput = self.__unit_test.run()
104
+
105
+ # Extract report details from output
106
+ total_tests = ouput.get("total_tests")
107
+ passed = ouput.get("passed")
108
+ failed = ouput.get("failed")
109
+ errors = ouput.get("errors")
110
+ skipped = ouput.get("skipped")
111
+ total_time = ouput.get("total_time")
112
+ success_rate = ouput.get("success_rate")
113
+ timestamp = ouput.get("timestamp")
114
+
115
+ # Log test execution completion with detailed summary
116
+ self.__logger.info(
117
+ f"Test execution completed at {timestamp} | "
118
+ f"Total: {total_tests}, Passed: {passed}, Failed: {failed}, "
119
+ f"Errors: {errors}, Skipped: {skipped}, "
120
+ f"Time: {total_time:.2f}s, Success rate: {success_rate:.2f}%"
121
+ )
122
+
123
+ # Report the test results to the console
124
+ return ouput
98
125
 
99
126
  # Handle expected test failures with a descriptive error message
100
127
  except OrionisTestFailureException as e:
128
+ self.__logger.error(f"Test execution failed: {e}")
101
129
  self.__console.exitError(f"Test execution failed: {e}")
102
130
 
103
131
  # Handle any unexpected errors that occur during test execution
104
132
  except Exception as e:
133
+ self.__logger.error(f"An unexpected error occurred while executing tests: {e}")
105
134
  self.__console.exitError(f"An unexpected error occurred: {e}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.456.0
3
+ Version: 0.458.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,7 +1,7 @@
1
1
  orionis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  orionis/app.py,sha256=b69fOzj2J8Aw5g0IldWZXixUDeeTO9vcHc_Njses9HU,603
3
3
  orionis/console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- orionis/console/kernel.py,sha256=NGiINJzYRpxjQslZeELxxySxI-tL_isRrUL0yn4uz5o,3942
4
+ orionis/console/kernel.py,sha256=xmESoZiQXXBufZipwNxc6MFkEiEUB4uyCbx6dR7w1Hg,4492
5
5
  orionis/console/args/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  orionis/console/args/argument.py,sha256=Is8Z8_kW4DvcK1nK1UU-sa6Pk0BeOdcRczCayW0ZVHc,20360
7
7
  orionis/console/args/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -12,12 +12,13 @@ orionis/console/base/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
12
12
  orionis/console/base/contracts/command.py,sha256=vmAJD0yMQ5-AD_s9_xCFEAl64sKk65z7U2E196dALQM,5760
13
13
  orionis/console/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  orionis/console/commands/help.py,sha256=EGg5FfWnLasi7I7gCTBLyvau6I0gVpc2ewNefyJlHeE,1494
15
- orionis/console/commands/version.py,sha256=0neKUq7MulO0hLZyU9LLfIQYEaQtnm3faIjIfeK52V8,2886
15
+ orionis/console/commands/test.py,sha256=TgiK-6s23ZEiSdUekdngmpcmoqZYGcy8F7YoX-afk3Y,2151
16
+ orionis/console/commands/version.py,sha256=NhLzMrr022mIY4C4SjX_FfKNDXWfIPyWAqzpx_9Hi2k,3547
16
17
  orionis/console/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
18
  orionis/console/contracts/kernel.py,sha256=mh4LlhEYHh3FuGZZQ0GBhD6ZLa5YQvaNj2r01IIHI5Y,826
18
19
  orionis/console/contracts/reactor.py,sha256=fT49-794RI-y0ZhDyXf91VQoFdGx6kF1Kg-monJnj7s,1296
19
20
  orionis/console/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- orionis/console/core/reactor.py,sha256=DoloMbAw7WojH38rSKmrRAArl8rWVb5J_p1YLepUMpc,21619
21
+ orionis/console/core/reactor.py,sha256=0d-2Gp3PGoLQeDZwZemKnRjQaAs0O8O3cb2GZnm8OkA,21708
21
22
  orionis/console/dumper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
23
  orionis/console/dumper/dump.py,sha256=CATERiQ6XuIrKQsDaWcVxzTtlAJI9qLJX44fQxEX8ws,22443
23
24
  orionis/console/dumper/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -177,13 +178,13 @@ orionis/foundation/providers/console_provider.py,sha256=9oDHOGm79O8OtwTFPCYl4hNQ
177
178
  orionis/foundation/providers/dumper_provider.py,sha256=nKHjLDClCo-KnPloh6EYVySjgzf6SYSvoxVD6IwJt8M,3355
178
179
  orionis/foundation/providers/executor_provider.py,sha256=kwkH8YWEXoEoP51akJXQJ0U25rhlOLxnfE0s9fALr0I,3478
179
180
  orionis/foundation/providers/inspirational_provider.py,sha256=uq2o0uLd5p6PR99uH4cJAcc6NnU6nIOwe0ZIdzZcF4Q,3726
180
- orionis/foundation/providers/logger_provider.py,sha256=bEJug46TNNxuqfCI8eI-GSp0eyNromvBDszQGK-0roc,3607
181
+ orionis/foundation/providers/logger_provider.py,sha256=rs8UpaD_vSp3qNli0u9A4eRum3q3F0KEM0V6yhcl2GU,3417
181
182
  orionis/foundation/providers/progress_bar_provider.py,sha256=X4Ke7mPr0MgVp6WDNaQ3bI3Z_LOS8qE-wid0MQErKms,3367
182
- orionis/foundation/providers/reactor_provider.py,sha256=g7X5eyZviQkX2hD7jZof6h1hZmN8rNvODmhGFysfiEY,3712
183
+ orionis/foundation/providers/reactor_provider.py,sha256=P0KQcp4AFKTrD6BStGfCTqhGUlpKgsrZTZZKSqyGJQg,3662
183
184
  orionis/foundation/providers/testing_provider.py,sha256=SrJRpdvcblx9WvX7x9Y3zc7OQfiTf7la0HAJrm2ESlE,3725
184
- orionis/foundation/providers/workers_provider.py,sha256=5CvlUETdIblh7Wx8pT0MswTeTCGhYah-EvFqOrLu8Mo,4113
185
+ orionis/foundation/providers/workers_provider.py,sha256=oa_2NIDH6UxZrtuGkkoo_zEoNIMGgJ46vg5CCgAm7wI,3926
185
186
  orionis/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
- orionis/metadata/framework.py,sha256=F5pE_UIelgIj5tk73nlMNZoqHahNmXnoQAl4vkJJjmg,4088
187
+ orionis/metadata/framework.py,sha256=7YBgAPpg_ZsJ7stxuL9Lqnyh5ZLsIHGHL1rxkATjHmM,4088
187
188
  orionis/metadata/package.py,sha256=k7Yriyp5aUcR-iR8SK2ec_lf0_Cyc-C7JczgXa-I67w,16039
188
189
  orionis/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
190
  orionis/services/asynchrony/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -301,7 +302,7 @@ orionis/support/standard/exceptions/value.py,sha256=rsyWFQweImaJGTJa7Id7RhPlwWJ4
301
302
  orionis/support/wrapper/__init__.py,sha256=jGoWoIGYuRYqMYQKlrX7Dpcbg-AGkHoB_aM2xhu73yc,62
302
303
  orionis/support/wrapper/dot_dict.py,sha256=T8xWwwOhBZHNeXRwE_CxvOwG9UFxsLqNmOJjV2CNIrc,7284
303
304
  orionis/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
304
- orionis/test/kernel.py,sha256=iFJh72_YHPzQbeFyOJWU4R9vfWohfElLRU17Ak_Vhos,5024
305
+ orionis/test/kernel.py,sha256=gJuQkd76T3c_iXFpHHmGrOjH8A6xe8esH6SwEAKF--4,6362
305
306
  orionis/test/cases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
307
  orionis/test/cases/asynchronous.py,sha256=3e1Y3qzIxVU7i7lbLFEVyJ89IA74JsB7famx71W-p2E,1974
307
308
  orionis/test/cases/synchronous.py,sha256=S5jhuDEZ5I9wosrTFaCtowkD5r5HzJH6mKPOdEJcDJE,1734
@@ -348,7 +349,7 @@ orionis/test/validators/web_report.py,sha256=n9BfzOZz6aEiNTypXcwuWbFRG0OdHNSmCNu
348
349
  orionis/test/validators/workers.py,sha256=rWcdRexINNEmGaO7mnc1MKUxkHKxrTsVuHgbnIfJYgc,1206
349
350
  orionis/test/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
351
  orionis/test/view/render.py,sha256=f-zNhtKSg9R5Njqujbg2l2amAs2-mRVESneLIkWOZjU,4082
351
- orionis-0.456.0.dist-info/licenses/LICENCE,sha256=JhC-z_9mbpUrCfPjcl3DhDA8trNDMzb57cvRSam1avc,1463
352
+ orionis-0.458.0.dist-info/licenses/LICENCE,sha256=JhC-z_9mbpUrCfPjcl3DhDA8trNDMzb57cvRSam1avc,1463
352
353
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
353
354
  tests/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
354
355
  tests/container/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -491,8 +492,8 @@ tests/testing/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
491
492
  tests/testing/validators/test_testing_validators.py,sha256=WPo5GxTP6xE-Dw3X1vZoqOMpb6HhokjNSbgDsDRDvy4,16588
492
493
  tests/testing/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
493
494
  tests/testing/view/test_render.py,sha256=tnnMBwS0iKUIbogLvu-7Rii50G6Koddp3XT4wgdFEYM,1050
494
- orionis-0.456.0.dist-info/METADATA,sha256=CuJ0cT18-oNIn-451hxfWvnoA4an7SVDx3Lv9uTvSY4,4772
495
- orionis-0.456.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
496
- orionis-0.456.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
497
- orionis-0.456.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
498
- orionis-0.456.0.dist-info/RECORD,,
495
+ orionis-0.458.0.dist-info/METADATA,sha256=p8UY8y_1pRk9-SkzSGK3IaqBKZxKpvwuhIDm5ugAHYg,4772
496
+ orionis-0.458.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
497
+ orionis-0.458.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
498
+ orionis-0.458.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
499
+ orionis-0.458.0.dist-info/RECORD,,