ominfra 0.0.0.dev24__py3-none-any.whl → 0.0.0.dev26__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.
ominfra/__about__.py CHANGED
@@ -13,7 +13,7 @@ class Project(ProjectBase):
13
13
 
14
14
  optional_dependencies = {
15
15
  'ssh': [
16
- 'paramiko ~= 3.4', # !! LGPL
16
+ 'paramiko ~= 3.5', # !! LGPL
17
17
 
18
18
  'asyncssh ~= 2.17; python_version < "3.13"', # cffi
19
19
  ],
@@ -25,3 +25,13 @@ class Setuptools(SetuptoolsBase):
25
25
  'include': [Project.name, f'{Project.name}.*'],
26
26
  'exclude': [*SetuptoolsBase.find_packages['exclude']],
27
27
  }
28
+
29
+ package_data = {
30
+ **SetuptoolsBase.package_data,
31
+
32
+ '*': [
33
+ *SetuptoolsBase.package_data['*'],
34
+
35
+ 'Dockerfile',
36
+ ],
37
+ }
@@ -0,0 +1 @@
1
+ []
@@ -15,6 +15,7 @@ import typing as ta
15
15
  import urllib.parse
16
16
 
17
17
  from omlish import check
18
+ from omlish import lang
18
19
 
19
20
 
20
21
  ##
@@ -128,7 +129,7 @@ class V4AwsSigner:
128
129
  #
129
130
 
130
131
  if utcnow is None:
131
- utcnow = datetime.datetime.utcnow() # noqa
132
+ utcnow = lang.utcnow()
132
133
  req_dt = utcnow.strftime(_ISO8601)
133
134
 
134
135
  #
@@ -3,6 +3,7 @@
3
3
  # @omlish-lite
4
4
  # @omlish-script
5
5
  # @omdev-amalg-output executor/main.py
6
+ # ruff: noqa: N802 UP006 UP007 UP036
6
7
  r"""
7
8
  TODO:
8
9
  - flock
@@ -43,7 +44,6 @@ spec = <name>--<rev>--<when>
43
44
  https://docs.docker.com/config/containers/multi-service_container/#use-a-process-manager
44
45
  https://serverfault.com/questions/211525/supervisor-not-loading-new-configuration-files
45
46
  """ # noqa
46
- # ruff: noqa: UP007
47
47
  import abc
48
48
  import argparse
49
49
  import base64
@@ -70,6 +70,17 @@ import uuid
70
70
  import weakref # noqa
71
71
 
72
72
 
73
+ ########################################
74
+
75
+
76
+ if sys.version_info < (3, 8):
77
+ raise OSError(
78
+ f'Requires python (3, 8), got {sys.version_info} from {sys.executable}') # noqa
79
+
80
+
81
+ ########################################
82
+
83
+
73
84
  # ../../../../omlish/lite/check.py
74
85
  T = ta.TypeVar('T')
75
86
 
@@ -119,7 +130,6 @@ class cached_nullary: # noqa
119
130
 
120
131
  ########################################
121
132
  # ../../../../omlish/lite/check.py
122
- # ruff: noqa: UP006 UP007
123
133
 
124
134
 
125
135
  def check_isinstance(v: T, spec: ta.Union[ta.Type[T], tuple]) -> T:
@@ -179,7 +189,6 @@ json_dumps_compact: ta.Callable[..., str] = functools.partial(json.dumps, **JSON
179
189
 
180
190
  ########################################
181
191
  # ../../../../omlish/lite/reflect.py
182
- # ruff: noqa: UP006
183
192
 
184
193
 
185
194
  _GENERIC_ALIAS_TYPES = (
@@ -232,7 +241,6 @@ TODO:
232
241
  - translate json keys
233
242
  - debug
234
243
  """
235
- # ruff: noqa: UP006 UP007 N802
236
244
 
237
245
 
238
246
  log = logging.getLogger(__name__)
@@ -431,46 +439,51 @@ def configure_standard_logging(
431
439
  *,
432
440
  json: bool = False,
433
441
  target: ta.Optional[logging.Logger] = None,
434
- no_check: bool = False,
442
+ force: bool = False,
435
443
  ) -> ta.Optional[StandardLogHandler]:
436
- if target is None:
437
- target = logging.root
444
+ logging._acquireLock() # type: ignore # noqa
445
+ try:
446
+ if target is None:
447
+ target = logging.root
438
448
 
439
- #
449
+ #
440
450
 
441
- if not no_check:
442
- if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
443
- return None
451
+ if not force:
452
+ if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
453
+ return None
444
454
 
445
- #
455
+ #
446
456
 
447
- handler = logging.StreamHandler()
457
+ handler = logging.StreamHandler()
448
458
 
449
- #
459
+ #
450
460
 
451
- formatter: logging.Formatter
452
- if json:
453
- formatter = JsonLogFormatter()
454
- else:
455
- formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
456
- handler.setFormatter(formatter)
461
+ formatter: logging.Formatter
462
+ if json:
463
+ formatter = JsonLogFormatter()
464
+ else:
465
+ formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
466
+ handler.setFormatter(formatter)
467
+
468
+ #
457
469
 
458
- #
470
+ handler.addFilter(TidLogFilter())
459
471
 
460
- handler.addFilter(TidLogFilter())
472
+ #
461
473
 
462
- #
474
+ target.addHandler(handler)
463
475
 
464
- target.addHandler(handler)
476
+ #
465
477
 
466
- #
478
+ if level is not None:
479
+ target.setLevel(level)
467
480
 
468
- if level is not None:
469
- target.setLevel(level)
481
+ #
470
482
 
471
- #
483
+ return StandardLogHandler(handler)
472
484
 
473
- return StandardLogHandler(handler)
485
+ finally:
486
+ logging._releaseLock() # type: ignore # noqa
474
487
 
475
488
 
476
489
  ########################################
@@ -480,7 +493,6 @@ TODO:
480
493
  - pickle stdlib objs? have to pin to 3.8 pickle protocol, will be cross-version
481
494
  - nonstrict toggle
482
495
  """
483
- # ruff: noqa: UP006 UP007
484
496
 
485
497
 
486
498
  ##
@@ -796,7 +808,6 @@ def check_runtime_version() -> None:
796
808
 
797
809
  ########################################
798
810
  # ../../../../omlish/lite/subprocesses.py
799
- # ruff: noqa: UP006 UP007
800
811
 
801
812
 
802
813
  ##
@@ -903,7 +914,6 @@ def subprocess_try_output_str(*args: str, **kwargs: ta.Any) -> ta.Optional[str]:
903
914
 
904
915
  ########################################
905
916
  # ../base.py
906
- # ruff: noqa: UP006
907
917
 
908
918
 
909
919
  ##
@@ -3,6 +3,7 @@
3
3
  # @omlish-lite
4
4
  # @omlish-script
5
5
  # @omdev-amalg-output main.py
6
+ # ruff: noqa: N802 UP006 UP007 UP036
6
7
  import abc
7
8
  import dataclasses as dc
8
9
  import datetime
@@ -21,6 +22,17 @@ import threading
21
22
  import typing as ta
22
23
 
23
24
 
25
+ ########################################
26
+
27
+
28
+ if sys.version_info < (3, 8):
29
+ raise OSError(
30
+ f'Requires python (3, 8), got {sys.version_info} from {sys.executable}') # noqa
31
+
32
+
33
+ ########################################
34
+
35
+
24
36
  # ../base.py
25
37
  T = ta.TypeVar('T')
26
38
  ConcernT = ta.TypeVar('ConcernT')
@@ -31,7 +43,6 @@ DeployConcernConfigT = ta.TypeVar('DeployConcernConfigT', bound='DeployConcernCo
31
43
 
32
44
  ########################################
33
45
  # ../configs.py
34
- # ruff: noqa: UP006
35
46
 
36
47
 
37
48
  ##
@@ -122,7 +133,6 @@ json_dumps_compact: ta.Callable[..., str] = functools.partial(json.dumps, **JSON
122
133
 
123
134
  ########################################
124
135
  # ../base.py
125
- # ruff: noqa: UP006 UP007
126
136
 
127
137
 
128
138
  ##
@@ -295,7 +305,6 @@ TODO:
295
305
  - translate json keys
296
306
  - debug
297
307
  """
298
- # ruff: noqa: UP006 UP007 N802
299
308
 
300
309
 
301
310
  log = logging.getLogger(__name__)
@@ -494,46 +503,51 @@ def configure_standard_logging(
494
503
  *,
495
504
  json: bool = False,
496
505
  target: ta.Optional[logging.Logger] = None,
497
- no_check: bool = False,
506
+ force: bool = False,
498
507
  ) -> ta.Optional[StandardLogHandler]:
499
- if target is None:
500
- target = logging.root
508
+ logging._acquireLock() # type: ignore # noqa
509
+ try:
510
+ if target is None:
511
+ target = logging.root
501
512
 
502
- #
513
+ #
503
514
 
504
- if not no_check:
505
- if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
506
- return None
515
+ if not force:
516
+ if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
517
+ return None
507
518
 
508
- #
519
+ #
509
520
 
510
- handler = logging.StreamHandler()
521
+ handler = logging.StreamHandler()
511
522
 
512
- #
523
+ #
513
524
 
514
- formatter: logging.Formatter
515
- if json:
516
- formatter = JsonLogFormatter()
517
- else:
518
- formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
519
- handler.setFormatter(formatter)
525
+ formatter: logging.Formatter
526
+ if json:
527
+ formatter = JsonLogFormatter()
528
+ else:
529
+ formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
530
+ handler.setFormatter(formatter)
531
+
532
+ #
520
533
 
521
- #
534
+ handler.addFilter(TidLogFilter())
522
535
 
523
- handler.addFilter(TidLogFilter())
536
+ #
524
537
 
525
- #
538
+ target.addHandler(handler)
526
539
 
527
- target.addHandler(handler)
540
+ #
528
541
 
529
- #
542
+ if level is not None:
543
+ target.setLevel(level)
530
544
 
531
- if level is not None:
532
- target.setLevel(level)
545
+ #
533
546
 
534
- #
547
+ return StandardLogHandler(handler)
535
548
 
536
- return StandardLogHandler(handler)
549
+ finally:
550
+ logging._releaseLock() # type: ignore # noqa
537
551
 
538
552
 
539
553
  ########################################
@@ -676,7 +690,6 @@ class SiteImpl(Site):
676
690
 
677
691
  ########################################
678
692
  # ../../../../omlish/lite/subprocesses.py
679
- # ruff: noqa: UP006 UP007
680
693
 
681
694
 
682
695
  ##
@@ -783,7 +796,6 @@ def subprocess_try_output_str(*args: str, **kwargs: ta.Any) -> ta.Optional[str]:
783
796
 
784
797
  ########################################
785
798
  # ../runtime.py
786
- # ruff: noqa: UP007
787
799
 
788
800
 
789
801
  class RuntimeImpl(Runtime):
ominfra/manage/manage.py CHANGED
@@ -5,4 +5,8 @@ Jobs:
5
5
  - pyenv
6
6
  - tailscale
7
7
  - docker
8
+ - system nginx
9
+ - system service manager - systemd / supervisor
10
+ - users
11
+ - firewall
8
12
  """
@@ -3,7 +3,7 @@
3
3
  # @omlish-lite
4
4
  # @omlish-script
5
5
  # @omdev-amalg-output runcommands.py
6
- # ruff: noqa: UP006 UP007
6
+ # ruff: noqa: N802 UP006 UP007 UP036
7
7
  import abc
8
8
  import base64
9
9
  import collections.abc
@@ -29,6 +29,17 @@ import weakref # noqa
29
29
  import zlib
30
30
 
31
31
 
32
+ ########################################
33
+
34
+
35
+ if sys.version_info < (3, 8):
36
+ raise OSError(
37
+ f'Requires python (3, 8), got {sys.version_info} from {sys.executable}') # noqa
38
+
39
+
40
+ ########################################
41
+
42
+
32
43
  # ../../../omlish/lite/check.py
33
44
  T = ta.TypeVar('T')
34
45
 
@@ -202,7 +213,6 @@ class cached_nullary: # noqa
202
213
 
203
214
  ########################################
204
215
  # ../../../omlish/lite/check.py
205
- # ruff: noqa: UP006 UP007
206
216
 
207
217
 
208
218
  def check_isinstance(v: T, spec: ta.Union[ta.Type[T], tuple]) -> T:
@@ -262,7 +272,6 @@ json_dumps_compact: ta.Callable[..., str] = functools.partial(json.dumps, **JSON
262
272
 
263
273
  ########################################
264
274
  # ../../../omlish/lite/reflect.py
265
- # ruff: noqa: UP006
266
275
 
267
276
 
268
277
  _GENERIC_ALIAS_TYPES = (
@@ -315,7 +324,6 @@ TODO:
315
324
  - translate json keys
316
325
  - debug
317
326
  """
318
- # ruff: noqa: UP006 UP007 N802
319
327
 
320
328
 
321
329
  log = logging.getLogger(__name__)
@@ -514,46 +522,51 @@ def configure_standard_logging(
514
522
  *,
515
523
  json: bool = False,
516
524
  target: ta.Optional[logging.Logger] = None,
517
- no_check: bool = False,
525
+ force: bool = False,
518
526
  ) -> ta.Optional[StandardLogHandler]:
519
- if target is None:
520
- target = logging.root
527
+ logging._acquireLock() # type: ignore # noqa
528
+ try:
529
+ if target is None:
530
+ target = logging.root
521
531
 
522
- #
532
+ #
523
533
 
524
- if not no_check:
525
- if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
526
- return None
534
+ if not force:
535
+ if any(isinstance(h, StandardLogHandler) for h in list(target.handlers)):
536
+ return None
527
537
 
528
- #
538
+ #
529
539
 
530
- handler = logging.StreamHandler()
540
+ handler = logging.StreamHandler()
531
541
 
532
- #
542
+ #
533
543
 
534
- formatter: logging.Formatter
535
- if json:
536
- formatter = JsonLogFormatter()
537
- else:
538
- formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
539
- handler.setFormatter(formatter)
544
+ formatter: logging.Formatter
545
+ if json:
546
+ formatter = JsonLogFormatter()
547
+ else:
548
+ formatter = StandardLogFormatter(StandardLogFormatter.build_log_format(STANDARD_LOG_FORMAT_PARTS))
549
+ handler.setFormatter(formatter)
550
+
551
+ #
540
552
 
541
- #
553
+ handler.addFilter(TidLogFilter())
542
554
 
543
- handler.addFilter(TidLogFilter())
555
+ #
544
556
 
545
- #
557
+ target.addHandler(handler)
546
558
 
547
- target.addHandler(handler)
559
+ #
548
560
 
549
- #
561
+ if level is not None:
562
+ target.setLevel(level)
550
563
 
551
- if level is not None:
552
- target.setLevel(level)
564
+ #
553
565
 
554
- #
566
+ return StandardLogHandler(handler)
555
567
 
556
- return StandardLogHandler(handler)
568
+ finally:
569
+ logging._releaseLock() # type: ignore # noqa
557
570
 
558
571
 
559
572
  ########################################
@@ -563,7 +576,6 @@ TODO:
563
576
  - pickle stdlib objs? have to pin to 3.8 pickle protocol, will be cross-version
564
577
  - nonstrict toggle
565
578
  """
566
- # ruff: noqa: UP006 UP007
567
579
 
568
580
 
569
581
  ##
@@ -879,7 +891,6 @@ def check_runtime_version() -> None:
879
891
 
880
892
  ########################################
881
893
  # ../../../omlish/lite/subprocesses.py
882
- # ruff: noqa: UP006 UP007
883
894
 
884
895
 
885
896
  ##
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ominfra
3
- Version: 0.0.0.dev24
3
+ Version: 0.0.0.dev26
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,11 +12,11 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: ~=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish ==0.0.0.dev24
15
+ Requires-Dist: omlish ==0.0.0.dev26
16
16
  Provides-Extra: all
17
- Requires-Dist: paramiko ~=3.4 ; extra == 'all'
17
+ Requires-Dist: paramiko ~=3.5 ; extra == 'all'
18
18
  Requires-Dist: asyncssh ~=2.17 ; (python_version < "3.13") and extra == 'all'
19
19
  Provides-Extra: ssh
20
- Requires-Dist: paramiko ~=3.4 ; extra == 'ssh'
20
+ Requires-Dist: paramiko ~=3.5 ; extra == 'ssh'
21
21
  Requires-Dist: asyncssh ~=2.17 ; (python_version < "3.13") and extra == 'ssh'
22
22
 
@@ -1,12 +1,13 @@
1
- ominfra/__about__.py,sha256=5DfZfpjDGdRPquXrfFEFaeTLkc69qr1i-ELbJ0R-HKI,625
1
+ ominfra/__about__.py,sha256=85wKRxpYiPufujvp6ARwSgFG2VAikpx0ULgQ4l6plpU,793
2
2
  ominfra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ ominfra/_manifests.json,sha256=N1F-Xz3GaBn2H1p7uKzhkhKCQV8QVR0t76XD6wmFtXA,3
3
4
  ominfra/cmds.py,sha256=E0AfnvEmnKntXWvmLW5L05_NeDpBET1VBXn7vV6EwBQ,2083
4
5
  ominfra/ssh.py,sha256=U-JCvx41KI0B0riHy7cpFCKCx_LAHeSn-Irz5aAao2w,5393
5
6
  ominfra/clouds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
7
  ominfra/clouds/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- ominfra/clouds/aws/auth.py,sha256=eV6ayidQDKrhsgoRSg4_1tSvTMa1TzFvzxS7D_gjlCc,5499
8
+ ominfra/clouds/aws/auth.py,sha256=EW3lK1U0hnjXkTn1KWJeuv9GG0ibbKdvgLD0P6HJtwo,5502
8
9
  ominfra/deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- ominfra/deploy/_executor.py,sha256=txU0eH3rVc_8a8PLac9WXCD0EsdK8NDPf2PdE7TKIGc,31519
10
+ ominfra/deploy/_executor.py,sha256=b5no2fpqEDv3k8OnD-coYiLWcwuOKqWz57Rdj2R6Fhg,31832
10
11
  ominfra/deploy/configs.py,sha256=qi0kwT7G2NH7dXLOQic-u6R3yeadup_QtvrjwWIggbM,435
11
12
  ominfra/deploy/remote.py,sha256=LJSe3AJlpvNgb_5QtUiK2JIkKC2OgMvjSD1701_y2uI,2147
12
13
  ominfra/deploy/executor/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
@@ -21,7 +22,7 @@ ominfra/deploy/executor/concerns/systemd.py,sha256=MtsSEToEa1HNouern_JukcYTnypw_
21
22
  ominfra/deploy/executor/concerns/user.py,sha256=j5LDfQXquIp-eEM7t6aShsrYoQrM_ILXZycTmTcRVxA,686
22
23
  ominfra/deploy/executor/concerns/venv.py,sha256=jbRriqJHO4r9Zyo5Hfl_qVmcU6Qm6UgrouBroKcPn2g,775
23
24
  ominfra/deploy/poly/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
24
- ominfra/deploy/poly/_main.py,sha256=PtFGmt5MA87KTgni9goPaz0r4HuzD2HgpmsCtjFQ_v8,22751
25
+ ominfra/deploy/poly/_main.py,sha256=fg-lvMik6X0WVYl_AjvPuy8wv1IdiiY8WVaDnMe-f34,23110
25
26
  ominfra/deploy/poly/base.py,sha256=Bd-CzUTaDvTRbdXKiTxMxs77WCEXItwNoBYCRnTk1u4,4167
26
27
  ominfra/deploy/poly/configs.py,sha256=9bzWdbxhOk_Q4KokDjmRz254KHnUU71Vl1frLlhQyU4,584
27
28
  ominfra/deploy/poly/deploy.py,sha256=tMYKslXLjstcv86siRt5j37USsS0Wd6lsfeGRE26zio,544
@@ -33,15 +34,15 @@ ominfra/deploy/poly/site.py,sha256=QJwDDJoVm2-kxi4bxIrp-mn4y2qDLuW3CAUax3W8gv8,2
33
34
  ominfra/deploy/poly/supervisor.py,sha256=zkl6VQBcAZaMAhyR9DbbbqULcgFCDZoe9S_vP-mMFQ8,2289
34
35
  ominfra/deploy/poly/venv.py,sha256=BoipDEa4NTeodjf3L57KJfq9eGKLagFNKwD8pS4yrzA,1552
35
36
  ominfra/manage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- ominfra/manage/manage.py,sha256=gS2FvvdZTmNqD2dEXWTCFgCXNCepFSHVojBZ5WG6mqk,65
37
+ ominfra/manage/manage.py,sha256=BttL8LFEknHZE_h2Pt5dAqbfUkv6qy43WI0raXBZ1a8,151
37
38
  ominfra/pyremote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- ominfra/pyremote/_runcommands.py,sha256=Lo138TWUkFWhpIzNAllnUuTz5QgpqpnzdGNA2J3Nfj4,25339
39
+ ominfra/pyremote/_runcommands.py,sha256=TqivGhMdddcL5Z1Ml2W2C3FMw_woaKtrw9BEy5wQ1Vk,25666
39
40
  ominfra/pyremote/bootstrap.py,sha256=ybXxNitrNKuPAIl0SrU55Ktn-4R-bDveAm_ZURrmfF0,3368
40
41
  ominfra/pyremote/runcommands.py,sha256=hXXP41rvgL46Oe_HOcLSp2Y84ZMQfEZqqV_jNd1x7Ak,1570
41
42
  ominfra/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
43
  ominfra/tools/listresources.py,sha256=vgLgohPwRog8e5pEljI2hOGg-Li5fcwjj-nXj2j8IQo,5918
43
- ominfra-0.0.0.dev24.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
44
- ominfra-0.0.0.dev24.dist-info/METADATA,sha256=kpbIpcroublflte8heBWUXxAgKYZwOkfOnSvTqQnZr0,764
45
- ominfra-0.0.0.dev24.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
46
- ominfra-0.0.0.dev24.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
47
- ominfra-0.0.0.dev24.dist-info/RECORD,,
44
+ ominfra-0.0.0.dev26.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
45
+ ominfra-0.0.0.dev26.dist-info/METADATA,sha256=4QQEfPEH9yeS-os5LNXa7A1QehcqCDNEer9h7G9zJxE,764
46
+ ominfra-0.0.0.dev26.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
47
+ ominfra-0.0.0.dev26.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
48
+ ominfra-0.0.0.dev26.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.2)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5