orionis 0.521.0__py3-none-any.whl → 0.523.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.
@@ -626,62 +626,89 @@ class Application(Container, IApplication):
626
626
  configuration system.
627
627
  """
628
628
 
629
+ # Convert dataclass instances to dictionaries
630
+ from orionis.services.introspection.dataclass.attributes import attributes
631
+
629
632
  # Load app configurator
633
+ if (isinstance(app, type) and issubclass(app, App)):
634
+ app = attributes(app)
630
635
  if not isinstance(app, (App, dict)):
631
636
  raise OrionisTypeError(f"Expected App instance or dict, got {type(app).__name__}")
632
637
  self.loadConfigApp(app)
633
638
 
634
639
  # Load auth configurator
640
+ if (isinstance(auth, type) and issubclass(auth, Auth)):
641
+ auth = attributes(auth)
635
642
  if not isinstance(auth, (Auth, dict)):
636
643
  raise OrionisTypeError(f"Expected Auth instance or dict, got {type(auth).__name__}")
637
644
  self.loadConfigAuth(auth)
638
645
 
639
646
  # Load cache configurator
647
+ if (isinstance(cache, type) and issubclass(cache, Cache)):
648
+ cache = attributes(cache)
640
649
  if not isinstance(cache, (Cache, dict)):
641
650
  raise OrionisTypeError(f"Expected Cache instance or dict, got {type(cache).__name__}")
642
651
  self.loadConfigCache(cache)
643
652
 
644
653
  # Load cors configurator
654
+ if (isinstance(cors, type) and issubclass(cors, Cors)):
655
+ cors = attributes(cors)
645
656
  if not isinstance(cors, (Cors, dict)):
646
657
  raise OrionisTypeError(f"Expected Cors instance or dict, got {type(cors).__name__}")
647
658
  self.loadConfigCors(cors)
648
659
 
649
660
  # Load database configurator
661
+ if (isinstance(database, type) and issubclass(database, Database)):
662
+ database = attributes(database)
650
663
  if not isinstance(database, (Database, dict)):
651
664
  raise OrionisTypeError(f"Expected Database instance or dict, got {type(database).__name__}")
652
665
  self.loadConfigDatabase(database)
653
666
 
654
667
  # Load filesystems configurator
668
+ if (isinstance(filesystems, type) and issubclass(filesystems, Filesystems)):
669
+ filesystems = attributes(filesystems)
655
670
  if not isinstance(filesystems, (Filesystems, dict)):
656
671
  raise OrionisTypeError(f"Expected Filesystems instance or dict, got {type(filesystems).__name__}")
657
672
  self.loadConfigFilesystems(filesystems)
658
673
 
659
674
  # Load logging configurator
675
+ if (isinstance(logging, type) and issubclass(logging, Logging)):
676
+ logging = attributes(logging)
660
677
  if not isinstance(logging, (Logging, dict)):
661
678
  raise OrionisTypeError(f"Expected Logging instance or dict, got {type(logging).__name__}")
662
679
  self.loadConfigLogging(logging)
663
680
 
664
681
  # Load mail configurator
682
+ if (isinstance(mail, type) and issubclass(mail, Mail)):
683
+ mail = attributes(mail)
665
684
  if not isinstance(mail, (Mail, dict)):
666
685
  raise OrionisTypeError(f"Expected Mail instance or dict, got {type(mail).__name__}")
667
686
  self.loadConfigMail(mail)
668
687
 
669
688
  # Load paths configurator
689
+ if (isinstance(path, type) and issubclass(path, Paths)):
690
+ path = attributes(path)
670
691
  if not isinstance(path, (Paths, dict)):
671
692
  raise OrionisTypeError(f"Expected Paths instance or dict, got {type(path).__name__}")
672
693
  self.loadPaths(path)
673
694
 
674
695
  # Load queue configurator
696
+ if (isinstance(queue, type) and issubclass(queue, Queue)):
697
+ queue = attributes(queue)
675
698
  if not isinstance(queue, (Queue, dict)):
676
699
  raise OrionisTypeError(f"Expected Queue instance or dict, got {type(queue).__name__}")
677
700
  self.loadConfigQueue(queue)
678
701
 
679
702
  # Load session configurator
703
+ if (isinstance(session, type) and issubclass(session, Session)):
704
+ session = attributes(session)
680
705
  if not isinstance(session, (Session, dict)):
681
706
  raise OrionisTypeError(f"Expected Session instance or dict, got {type(session).__name__}")
682
707
  self.loadConfigSession(session)
683
708
 
684
709
  # Load testing configurator
710
+ if (isinstance(testing, type) and issubclass(testing, Testing)):
711
+ testing = attributes(testing)
685
712
  if not isinstance(testing, (Testing, dict)):
686
713
  raise OrionisTypeError(f"Expected Testing instance or dict, got {type(testing).__name__}")
687
714
  self.loadConfigTesting(testing)
@@ -767,7 +794,9 @@ class Application(Container, IApplication):
767
794
 
768
795
  # If app is a dict, convert it to App instance
769
796
  if isinstance(app, dict):
770
- app = App(**app)
797
+ app = App(**app).toDict()
798
+ elif isinstance(app, App):
799
+ app = app.toDict()
771
800
 
772
801
  # Store the configuration
773
802
  self.__configurators['app'] = app
@@ -853,7 +882,9 @@ class Application(Container, IApplication):
853
882
 
854
883
  # If auth is a dict, convert it to Auth instance
855
884
  if isinstance(auth, dict):
856
- auth = Auth(**auth)
885
+ auth = Auth(**auth).toDict()
886
+ elif isinstance(auth, Auth):
887
+ auth = auth.toDict()
857
888
 
858
889
  # Store the configuration
859
890
  self.__configurators['auth'] = auth
@@ -939,7 +970,9 @@ class Application(Container, IApplication):
939
970
 
940
971
  # If cache is a dict, convert it to Cache instance
941
972
  if isinstance(cache, dict):
942
- cache = Cache(**cache)
973
+ cache = Cache(**cache).toDict()
974
+ elif isinstance(cache, Cache):
975
+ cache = cache.toDict()
943
976
 
944
977
  # Store the configuration
945
978
  self.__configurators['cache'] = cache
@@ -1025,7 +1058,9 @@ class Application(Container, IApplication):
1025
1058
 
1026
1059
  # If cors is a dict, convert it to Cors instance
1027
1060
  if isinstance(cors, dict):
1028
- cors = Cors(**cors)
1061
+ cors = Cors(**cors).toDict()
1062
+ elif isinstance(cors, Cors):
1063
+ cors = cors.toDict()
1029
1064
 
1030
1065
  # Store the configuration
1031
1066
  self.__configurators['cors'] = cors
@@ -1111,7 +1146,9 @@ class Application(Container, IApplication):
1111
1146
 
1112
1147
  # If database is a dict, convert it to Database instance
1113
1148
  if isinstance(database, dict):
1114
- database = Database(**database)
1149
+ database = Database(**database).toDict()
1150
+ elif isinstance(database, Database):
1151
+ database = database.toDict()
1115
1152
 
1116
1153
  # Store the configuration
1117
1154
  self.__configurators['database'] = database
@@ -1197,7 +1234,9 @@ class Application(Container, IApplication):
1197
1234
 
1198
1235
  # If filesystems is a dict, convert it to Filesystems instance
1199
1236
  if isinstance(filesystems, dict):
1200
- filesystems = Filesystems(**filesystems)
1237
+ filesystems = Filesystems(**filesystems).toDict()
1238
+ elif isinstance(filesystems, Filesystems):
1239
+ filesystems = filesystems.toDict()
1201
1240
 
1202
1241
  # Store the configuration
1203
1242
  self.__configurators['filesystems'] = filesystems
@@ -1283,7 +1322,9 @@ class Application(Container, IApplication):
1283
1322
 
1284
1323
  # If logging is a dict, convert it to Logging instance
1285
1324
  if isinstance(logging, dict):
1286
- logging = Logging(**logging)
1325
+ logging = Logging(**logging).toDict()
1326
+ elif isinstance(logging, Logging):
1327
+ logging = logging.toDict()
1287
1328
 
1288
1329
  # Store the configuration
1289
1330
  self.__configurators['logging'] = logging
@@ -1369,7 +1410,9 @@ class Application(Container, IApplication):
1369
1410
 
1370
1411
  # If mail is a dict, convert it to Mail instance
1371
1412
  if isinstance(mail, dict):
1372
- mail = Mail(**mail)
1413
+ mail = Mail(**mail).toDict()
1414
+ elif isinstance(mail, Mail):
1415
+ mail = mail.toDict()
1373
1416
 
1374
1417
  # Store the configuration
1375
1418
  self.__configurators['mail'] = mail
@@ -1558,7 +1601,12 @@ class Application(Container, IApplication):
1558
1601
  paths.update({
1559
1602
  'root': self.__bootstrap_base_path or str(Path.cwd().resolve())
1560
1603
  })
1561
- paths = Paths(**paths)
1604
+ paths = Paths(**paths).toDict()
1605
+ elif isinstance(paths, Paths):
1606
+ paths = paths.toDict()
1607
+ paths.update({
1608
+ 'root': self.__bootstrap_base_path or str(Path.cwd().resolve())
1609
+ })
1562
1610
 
1563
1611
  # Store the configuration
1564
1612
  self.__configurators['path'] = paths
@@ -1690,7 +1738,9 @@ class Application(Container, IApplication):
1690
1738
 
1691
1739
  # If queue is a dict, convert it to Queue instance
1692
1740
  if isinstance(queue, dict):
1693
- queue = Queue(**queue)
1741
+ queue = Queue(**queue).toDict()
1742
+ elif isinstance(queue, Queue):
1743
+ queue = queue.toDict()
1694
1744
 
1695
1745
  # Store the configuration
1696
1746
  self.__configurators['queue'] = queue
@@ -1776,7 +1826,9 @@ class Application(Container, IApplication):
1776
1826
 
1777
1827
  # If session is a dict, convert it to Session instance
1778
1828
  if isinstance(session, dict):
1779
- session = Session(**session)
1829
+ session = Session(**session).toDict()
1830
+ elif isinstance(session, Session):
1831
+ session = session.toDict()
1780
1832
 
1781
1833
  # Store the configuration
1782
1834
  self.__configurators['session'] = session
@@ -1862,7 +1914,9 @@ class Application(Container, IApplication):
1862
1914
 
1863
1915
  # If testing is a dict, convert it to Testing instance
1864
1916
  if isinstance(testing, dict):
1865
- testing = Testing(**testing)
1917
+ testing = Testing(**testing).toDict()
1918
+ elif isinstance(testing, Testing):
1919
+ testing = testing.toDict()
1866
1920
 
1867
1921
  # Store the configuration
1868
1922
  self.__configurators['testing'] = testing
@@ -92,6 +92,8 @@ class Session(BaseEntity):
92
92
  """
93
93
 
94
94
  # Validate secret_key
95
+ if self.secret_key is None:
96
+ self.secret_key = SecretKey.random()
95
97
  if not isinstance(self.secret_key, str) or not self.secret_key.strip():
96
98
  raise OrionisIntegrityException("Session secret_key must be a non-empty string")
97
99
 
@@ -5,7 +5,7 @@
5
5
  NAME = "orionis"
6
6
 
7
7
  # Current version of the framework
8
- VERSION = "0.521.0"
8
+ VERSION = "0.523.0"
9
9
 
10
10
  # Full name of the author or maintainer of the project
11
11
  AUTHOR = "Raul Mauricio Uñate Castro"
File without changes
@@ -0,0 +1,30 @@
1
+ class DataclassValues:
2
+
3
+ def __call__(self, dataclass_type: type) -> dict:
4
+ """
5
+ Extract attributes and their values from a given dataclass type.
6
+
7
+ This method retrieves all attributes defined in the provided dataclass type,
8
+ excluding special attributes (those whose names start with '__'). It returns
9
+ a dictionary where the keys are the attribute names and the values are the
10
+ corresponding attribute values.
11
+
12
+ Parameters
13
+ ----------
14
+ dataclass_type : type
15
+ The dataclass type from which to extract attributes.
16
+
17
+ Returns
18
+ -------
19
+ dict
20
+ A dictionary containing attribute names as keys and their corresponding
21
+ values as values. Special attributes (those starting with '__') are excluded.
22
+ """
23
+
24
+ # Retrieve all attributes from the dataclass type's __dict__ attribute
25
+ # Exclude special attributes (names starting with '__')
26
+ values = {k: v for k, v in dataclass_type.__dict__.items() if not k.startswith("__")}
27
+ return values
28
+
29
+ # Instantiate the DataclassValues callable
30
+ attributes = DataclassValues()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orionis
3
- Version: 0.521.0
3
+ Version: 0.523.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
@@ -15,7 +15,7 @@ orionis/console/commands/cache.py,sha256=8DsYoRzSBLn0P9qkGVItRbo0R6snWBDBg0_Xa7t
15
15
  orionis/console/commands/help.py,sha256=zfSw0pYaOnFN-_Ozdn4veBQDYMgSSDY10nPDCi-7tTY,3199
16
16
  orionis/console/commands/publisher.py,sha256=FUg-EUzK7LLXsla10ZUZro8V0Z5S-KjmsaSdRHSSGbA,21381
17
17
  orionis/console/commands/scheduler_list.py,sha256=A2N_mEXEJDHO8DX2TDrL1ROeeRhFSkWD3rCw64Hrf0o,4763
18
- orionis/console/commands/scheduler_work.py,sha256=yHTbnDH1frAmyvPaUgn0a5q34Eym9QYMXdqYZWwodFs,6336
18
+ orionis/console/commands/scheduler_work.py,sha256=mzSFes8Wl1gCf253tNYClij0abT5HlpW1QZVFrU5EXo,6445
19
19
  orionis/console/commands/test.py,sha256=-EmQwFwMBuby3OI9HwqMIwuJzd2CGbWbOqmwrR25sOE,2402
20
20
  orionis/console/commands/version.py,sha256=SUuNDJ40f2uq69OQUmPQXJKaa9Bm_iVRDPmBd7zc1Yc,3658
21
21
  orionis/console/commands/workflow.py,sha256=NYOmjTSvm2o6AE4h9LSTZMFSYPQreNmEJtronyOxaYk,2451
@@ -81,7 +81,7 @@ orionis/console/request/cli_request.py,sha256=7-sgYmNUCipuHLVAwWLJiHv0cJCDmsM1Lu
81
81
  orionis/console/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  orionis/console/tasks/event.py,sha256=l4J-HEPaj1mxB_PYQMgG9dRHUe01wUag8fKLLnR2N2M,164395
83
83
  orionis/console/tasks/listener.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
- orionis/console/tasks/schedule.py,sha256=iHy6ihs1DkpMccmQbxsgjLh0VolIEIBUCOd2SjDk7Mg,62529
84
+ orionis/console/tasks/schedule.py,sha256=QQtETxI_SrApPN6JlyWgWB3ExkR3w2iFgeR-UCEV8fA,77612
85
85
  orionis/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
86
  orionis/container/container.py,sha256=aF_b6lTUpG4YCo9yFJEzsntTdIzgMMXFW5LyWqAJVBQ,87987
87
87
  orionis/container/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -123,7 +123,7 @@ orionis/failure/contracts/handler.py,sha256=4N9yMkMgdhtHbRGAyCtuTx3GmkPP74vhqdRL
123
123
  orionis/failure/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
124
  orionis/failure/entities/throwable.py,sha256=ogys062uhim5QMYU62ezlnumRAnYQlUf_vZvQY47S3U,1227
125
125
  orionis/foundation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- orionis/foundation/application.py,sha256=GmfLnpWuhX_6d1gzUk1v7jy_R72XpLJdA-hEOrXQn_Q,83792
126
+ orionis/foundation/application.py,sha256=OOe10s0Dpo3uC4L3xrhjRitaZo7ukaFJaRSJcpdl0cA,86448
127
127
  orionis/foundation/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  orionis/foundation/config/startup.py,sha256=vbzduprRCNyYeR2nnMaqc1uKXw6PTzAY2jVfXNQKN8I,9691
129
129
  orionis/foundation/config/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -204,7 +204,7 @@ orionis/foundation/config/roots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
204
204
  orionis/foundation/config/roots/paths.py,sha256=qQpghBFyF6hdtrt88sLX-4uqrq0frvaQrcDl0fmsTGU,10565
205
205
  orionis/foundation/config/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
206
206
  orionis/foundation/config/session/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
- orionis/foundation/config/session/entities/session.py,sha256=sJoD-_CiwUR88tva-rO22bagG3RTcHXrQGWbq4B5joM,5998
207
+ orionis/foundation/config/session/entities/session.py,sha256=G3dRlzDCsL5_2A2ZKpge2Jwcu6N-YVsum09pWk9oHDc,6085
208
208
  orionis/foundation/config/session/enums/__init__.py,sha256=bvjCUkQbSfKB0J8V1BwOHSjOyZn6xhOmamH3urhoKCA,84
209
209
  orionis/foundation/config/session/enums/same_site_policy.py,sha256=Oo05CJ-5keJWzfflylodyBquofsXqThQPcnar2-ChCw,645
210
210
  orionis/foundation/config/session/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -239,7 +239,7 @@ orionis/foundation/providers/scheduler_provider.py,sha256=72SoixFog9IOE9Ve9Xcfw6
239
239
  orionis/foundation/providers/testing_provider.py,sha256=SrJRpdvcblx9WvX7x9Y3zc7OQfiTf7la0HAJrm2ESlE,3725
240
240
  orionis/foundation/providers/workers_provider.py,sha256=oa_2NIDH6UxZrtuGkkoo_zEoNIMGgJ46vg5CCgAm7wI,3926
241
241
  orionis/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
- orionis/metadata/framework.py,sha256=-_fa2tqmC78B94qGtYCVfj_9ftofE2F8dwev3UI20JM,4109
242
+ orionis/metadata/framework.py,sha256=JjXMnmgYxlzZmmwSkOaQe2TZAI5nx3vfWRDzNbUMKVM,4109
243
243
  orionis/metadata/package.py,sha256=k7Yriyp5aUcR-iR8SK2ec_lf0_Cyc-C7JczgXa-I67w,16039
244
244
  orionis/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
245
245
  orionis/services/asynchrony/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -292,6 +292,8 @@ orionis/services/introspection/concretes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5
292
292
  orionis/services/introspection/concretes/reflection.py,sha256=5DkNr6gUYdccSo7htzILoV38OAJCwLz-jLXViqZg6eY,55916
293
293
  orionis/services/introspection/concretes/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
294
294
  orionis/services/introspection/concretes/contracts/reflection.py,sha256=LwEAgdN_WLCfS9b8pnFRVfN0PTRK4Br9qngu5km5aIk,24955
295
+ orionis/services/introspection/dataclass/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
+ orionis/services/introspection/dataclass/attributes.py,sha256=Z847Gya_0hdiK7eNCI8-tE1o2KtkxSKVcGxXYj94r_A,1186
295
297
  orionis/services/introspection/dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
298
  orionis/services/introspection/dependencies/reflection.py,sha256=VEe3cY6LTpOW3dm0IFECTHh7F_9_X-siTAeQc2XRQeM,13451
297
299
  orionis/services/introspection/dependencies/contracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -415,7 +417,7 @@ orionis/test/validators/web_report.py,sha256=n9BfzOZz6aEiNTypXcwuWbFRG0OdHNSmCNu
415
417
  orionis/test/validators/workers.py,sha256=rWcdRexINNEmGaO7mnc1MKUxkHKxrTsVuHgbnIfJYgc,1206
416
418
  orionis/test/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
417
419
  orionis/test/view/render.py,sha256=f-zNhtKSg9R5Njqujbg2l2amAs2-mRVESneLIkWOZjU,4082
418
- orionis-0.521.0.dist-info/licenses/LICENCE,sha256=JhC-z_9mbpUrCfPjcl3DhDA8trNDMzb57cvRSam1avc,1463
420
+ orionis-0.523.0.dist-info/licenses/LICENCE,sha256=JhC-z_9mbpUrCfPjcl3DhDA8trNDMzb57cvRSam1avc,1463
419
421
  tests/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
420
422
  tests/container/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
421
423
  tests/container/context/test_manager.py,sha256=wOwXpl9rHNfTTexa9GBKYMwK0_-KSQPbI-AEyGNkmAE,1356
@@ -561,8 +563,8 @@ tests/testing/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
561
563
  tests/testing/validators/test_testing_validators.py,sha256=WPo5GxTP6xE-Dw3X1vZoqOMpb6HhokjNSbgDsDRDvy4,16588
562
564
  tests/testing/view/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
563
565
  tests/testing/view/test_render.py,sha256=tnnMBwS0iKUIbogLvu-7Rii50G6Koddp3XT4wgdFEYM,1050
564
- orionis-0.521.0.dist-info/METADATA,sha256=dOEGgxOl4Q3GpYNTAAZEuCrr-Hs3zhoX7oIE-b2d3QA,4801
565
- orionis-0.521.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
566
- orionis-0.521.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
567
- orionis-0.521.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
568
- orionis-0.521.0.dist-info/RECORD,,
566
+ orionis-0.523.0.dist-info/METADATA,sha256=628aQJLd-wjZTMQT2KZF_n4t8gWzcu36dWBrrTQWEpw,4801
567
+ orionis-0.523.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
568
+ orionis-0.523.0.dist-info/top_level.txt,sha256=2bdoHgyGZhOtLAXS6Om8OCTmL24dUMC_L1quMe_ETbk,14
569
+ orionis-0.523.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
570
+ orionis-0.523.0.dist-info/RECORD,,