ominfra 0.0.0.dev121__tar.gz → 0.0.0.dev123__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. {ominfra-0.0.0.dev121/ominfra.egg-info → ominfra-0.0.0.dev123}/PKG-INFO +3 -3
  2. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/_executor.py +10 -1
  3. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/journald/messages.py +1 -1
  4. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/pyremote/_runcommands.py +10 -1
  5. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/scripts/journald2aws.py +10 -2
  6. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/scripts/supervisor.py +2227 -2043
  7. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/context.py +16 -41
  8. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/dispatchers.py +88 -58
  9. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/events.py +59 -70
  10. ominfra-0.0.0.dev123/ominfra/supervisor/groups.py +162 -0
  11. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/main.py +27 -11
  12. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/poller.py +51 -53
  13. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/process.py +267 -352
  14. ominfra-0.0.0.dev123/ominfra/supervisor/signals.py +52 -0
  15. ominfra-0.0.0.dev123/ominfra/supervisor/states.py +57 -0
  16. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/supervisor.py +105 -81
  17. ominfra-0.0.0.dev123/ominfra/supervisor/types.py +105 -0
  18. ominfra-0.0.0.dev121/ominfra/supervisor/compat.py → ominfra-0.0.0.dev123/ominfra/supervisor/utils.py +34 -53
  19. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123/ominfra.egg-info}/PKG-INFO +3 -3
  20. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra.egg-info/SOURCES.txt +3 -1
  21. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra.egg-info/requires.txt +2 -2
  22. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/pyproject.toml +3 -3
  23. ominfra-0.0.0.dev121/ominfra/supervisor/states.py +0 -78
  24. ominfra-0.0.0.dev121/ominfra/supervisor/types.py +0 -54
  25. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/LICENSE +0 -0
  26. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/MANIFEST.in +0 -0
  27. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/README.rst +0 -0
  28. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/.manifests.json +0 -0
  29. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/__about__.py +0 -0
  30. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/__init__.py +0 -0
  31. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/__init__.py +0 -0
  32. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/__init__.py +0 -0
  33. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/__main__.py +0 -0
  34. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/auth.py +0 -0
  35. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/cli.py +0 -0
  36. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/dataclasses.py +0 -0
  37. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/journald2aws/__init__.py +0 -0
  38. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/journald2aws/__main__.py +0 -0
  39. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/journald2aws/cursor.py +0 -0
  40. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/journald2aws/driver.py +0 -0
  41. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/journald2aws/main.py +0 -0
  42. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/journald2aws/poster.py +0 -0
  43. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/logs.py +0 -0
  44. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/aws/metadata.py +0 -0
  45. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/gcp/__init__.py +0 -0
  46. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/clouds/gcp/auth.py +0 -0
  47. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/cmds.py +0 -0
  48. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/configs.py +0 -0
  49. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/__init__.py +0 -0
  50. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/configs.py +0 -0
  51. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/__init__.py +0 -0
  52. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/base.py +0 -0
  53. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/__init__.py +0 -0
  54. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/dirs.py +0 -0
  55. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/nginx.py +0 -0
  56. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/repo.py +0 -0
  57. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/supervisor.py +0 -0
  58. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/systemd.py +0 -0
  59. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/user.py +0 -0
  60. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/concerns/venv.py +0 -0
  61. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/executor/main.py +0 -0
  62. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/__init__.py +0 -0
  63. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/_main.py +0 -0
  64. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/base.py +0 -0
  65. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/configs.py +0 -0
  66. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/deploy.py +0 -0
  67. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/main.py +0 -0
  68. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/nginx.py +0 -0
  69. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/repo.py +0 -0
  70. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/runtime.py +0 -0
  71. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/site.py +0 -0
  72. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/supervisor.py +0 -0
  73. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/poly/venv.py +0 -0
  74. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/deploy/remote.py +0 -0
  75. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/journald/__init__.py +0 -0
  76. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/journald/fields.py +0 -0
  77. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/journald/genmessages.py +0 -0
  78. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/journald/tailer.py +0 -0
  79. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/manage/__init__.py +0 -0
  80. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/manage/manage.py +0 -0
  81. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/pyremote/__init__.py +0 -0
  82. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/pyremote/bootstrap.py +0 -0
  83. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/pyremote/runcommands.py +0 -0
  84. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/scripts/__init__.py +0 -0
  85. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/ssh.py +0 -0
  86. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/__init__.py +0 -0
  87. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/__main__.py +0 -0
  88. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/configs.py +0 -0
  89. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/datatypes.py +0 -0
  90. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/supervisor/exceptions.py +0 -0
  91. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/tailscale/__init__.py +0 -0
  92. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/tailscale/api.py +0 -0
  93. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/tailscale/cli.py +0 -0
  94. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/threadworkers.py +0 -0
  95. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/tools/__init__.py +0 -0
  96. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra/tools/listresources.py +0 -0
  97. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra.egg-info/dependency_links.txt +0 -0
  98. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra.egg-info/entry_points.txt +0 -0
  99. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/ominfra.egg-info/top_level.txt +0 -0
  100. {ominfra-0.0.0.dev121 → ominfra-0.0.0.dev123}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ominfra
3
- Version: 0.0.0.dev121
3
+ Version: 0.0.0.dev123
4
4
  Summary: ominfra
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,8 +12,8 @@ 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: omdev==0.0.0.dev121
16
- Requires-Dist: omlish==0.0.0.dev121
15
+ Requires-Dist: omdev==0.0.0.dev123
16
+ Requires-Dist: omlish==0.0.0.dev123
17
17
  Provides-Extra: all
18
18
  Requires-Dist: paramiko~=3.5; extra == "all"
19
19
  Requires-Dist: asyncssh~=2.18; extra == "all"
@@ -66,6 +66,7 @@ import subprocess
66
66
  import sys
67
67
  import textwrap
68
68
  import threading
69
+ import types
69
70
  import typing as ta
70
71
  import uuid
71
72
  import weakref # noqa
@@ -137,7 +138,7 @@ def cached_nullary(fn): # ta.Callable[..., T]) -> ta.Callable[..., T]:
137
138
  # ../../../../omlish/lite/check.py
138
139
 
139
140
 
140
- def check_isinstance(v: T, spec: ta.Union[ta.Type[T], tuple]) -> T:
141
+ def check_isinstance(v: ta.Any, spec: ta.Union[ta.Type[T], tuple]) -> T:
141
142
  if not isinstance(v, spec):
142
143
  raise TypeError(v)
143
144
  return v
@@ -255,6 +256,14 @@ def get_optional_alias_arg(spec: ta.Any) -> ta.Any:
255
256
  return it
256
257
 
257
258
 
259
+ def is_new_type(spec: ta.Any) -> bool:
260
+ if isinstance(ta.NewType, type):
261
+ return isinstance(spec, ta.NewType)
262
+ else:
263
+ # Before https://github.com/python/cpython/commit/c2f33dfc83ab270412bf243fb21f724037effa1a
264
+ return isinstance(spec, types.FunctionType) and spec.__code__ is ta.NewType.__code__.co_consts[1] # type: ignore # noqa
265
+
266
+
258
267
  def deep_subclasses(cls: ta.Type[T]) -> ta.Iterator[ta.Type[T]]:
259
268
  seen = set()
260
269
  todo = list(reversed(cls.__subclasses__()))
@@ -74,5 +74,5 @@ class JournalctlMessageBuilder:
74
74
  def feed(self, data: bytes) -> ta.Sequence[JournalctlMessage]:
75
75
  ret: ta.List[JournalctlMessage] = []
76
76
  for line in self._buf.feed(data):
77
- ret.append(self._make_message(check_isinstance(line, bytes))) # type: ignore
77
+ ret.append(self._make_message(check_isinstance(line, bytes)))
78
78
  return ret
@@ -24,6 +24,7 @@ import subprocess
24
24
  import sys
25
25
  import textwrap
26
26
  import threading
27
+ import types
27
28
  import typing as ta
28
29
  import uuid
29
30
  import weakref # noqa
@@ -220,7 +221,7 @@ def cached_nullary(fn): # ta.Callable[..., T]) -> ta.Callable[..., T]:
220
221
  # ../../../omlish/lite/check.py
221
222
 
222
223
 
223
- def check_isinstance(v: T, spec: ta.Union[ta.Type[T], tuple]) -> T:
224
+ def check_isinstance(v: ta.Any, spec: ta.Union[ta.Type[T], tuple]) -> T:
224
225
  if not isinstance(v, spec):
225
226
  raise TypeError(v)
226
227
  return v
@@ -338,6 +339,14 @@ def get_optional_alias_arg(spec: ta.Any) -> ta.Any:
338
339
  return it
339
340
 
340
341
 
342
+ def is_new_type(spec: ta.Any) -> bool:
343
+ if isinstance(ta.NewType, type):
344
+ return isinstance(spec, ta.NewType)
345
+ else:
346
+ # Before https://github.com/python/cpython/commit/c2f33dfc83ab270412bf243fb21f724037effa1a
347
+ return isinstance(spec, types.FunctionType) and spec.__code__ is ta.NewType.__code__.co_consts[1] # type: ignore # noqa
348
+
349
+
341
350
  def deep_subclasses(cls: ta.Type[T]) -> ta.Iterator[ta.Type[T]]:
342
351
  seen = set()
343
352
  todo = list(reversed(cls.__subclasses__()))
@@ -917,7 +917,7 @@ def cached_nullary(fn): # ta.Callable[..., T]) -> ta.Callable[..., T]:
917
917
  # ../../../../../omlish/lite/check.py
918
918
 
919
919
 
920
- def check_isinstance(v: T, spec: ta.Union[ta.Type[T], tuple]) -> T:
920
+ def check_isinstance(v: ta.Any, spec: ta.Union[ta.Type[T], tuple]) -> T:
921
921
  if not isinstance(v, spec):
922
922
  raise TypeError(v)
923
923
  return v
@@ -1102,6 +1102,14 @@ def get_optional_alias_arg(spec: ta.Any) -> ta.Any:
1102
1102
  return it
1103
1103
 
1104
1104
 
1105
+ def is_new_type(spec: ta.Any) -> bool:
1106
+ if isinstance(ta.NewType, type):
1107
+ return isinstance(spec, ta.NewType)
1108
+ else:
1109
+ # Before https://github.com/python/cpython/commit/c2f33dfc83ab270412bf243fb21f724037effa1a
1110
+ return isinstance(spec, types.FunctionType) and spec.__code__ is ta.NewType.__code__.co_consts[1] # type: ignore # noqa
1111
+
1112
+
1105
1113
  def deep_subclasses(cls: ta.Type[T]) -> ta.Iterator[ta.Type[T]]:
1106
1114
  seen = set()
1107
1115
  todo = list(reversed(cls.__subclasses__()))
@@ -2696,7 +2704,7 @@ class JournalctlMessageBuilder:
2696
2704
  def feed(self, data: bytes) -> ta.Sequence[JournalctlMessage]:
2697
2705
  ret: ta.List[JournalctlMessage] = []
2698
2706
  for line in self._buf.feed(data):
2699
- ret.append(self._make_message(check_isinstance(line, bytes))) # type: ignore
2707
+ ret.append(self._make_message(check_isinstance(line, bytes)))
2700
2708
  return ret
2701
2709
 
2702
2710