ominfra 0.0.0.dev121__py3-none-any.whl → 0.0.0.dev123__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- ominfra/deploy/_executor.py +10 -1
- ominfra/journald/messages.py +1 -1
- ominfra/pyremote/_runcommands.py +10 -1
- ominfra/scripts/journald2aws.py +10 -2
- ominfra/scripts/supervisor.py +2227 -2043
- ominfra/supervisor/context.py +16 -41
- ominfra/supervisor/dispatchers.py +88 -58
- ominfra/supervisor/events.py +59 -70
- ominfra/supervisor/groups.py +162 -0
- ominfra/supervisor/main.py +27 -11
- ominfra/supervisor/poller.py +51 -53
- ominfra/supervisor/process.py +267 -352
- ominfra/supervisor/signals.py +52 -0
- ominfra/supervisor/states.py +26 -47
- ominfra/supervisor/supervisor.py +105 -81
- ominfra/supervisor/types.py +57 -6
- ominfra/supervisor/{compat.py → utils.py} +34 -53
- {ominfra-0.0.0.dev121.dist-info → ominfra-0.0.0.dev123.dist-info}/METADATA +3 -3
- {ominfra-0.0.0.dev121.dist-info → ominfra-0.0.0.dev123.dist-info}/RECORD +23 -21
- {ominfra-0.0.0.dev121.dist-info → ominfra-0.0.0.dev123.dist-info}/LICENSE +0 -0
- {ominfra-0.0.0.dev121.dist-info → ominfra-0.0.0.dev123.dist-info}/WHEEL +0 -0
- {ominfra-0.0.0.dev121.dist-info → ominfra-0.0.0.dev123.dist-info}/entry_points.txt +0 -0
- {ominfra-0.0.0.dev121.dist-info → ominfra-0.0.0.dev123.dist-info}/top_level.txt +0 -0
ominfra/deploy/_executor.py
CHANGED
@@ -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:
|
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__()))
|
ominfra/journald/messages.py
CHANGED
@@ -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)))
|
77
|
+
ret.append(self._make_message(check_isinstance(line, bytes)))
|
78
78
|
return ret
|
ominfra/pyremote/_runcommands.py
CHANGED
@@ -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:
|
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__()))
|
ominfra/scripts/journald2aws.py
CHANGED
@@ -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:
|
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)))
|
2707
|
+
ret.append(self._make_message(check_isinstance(line, bytes)))
|
2700
2708
|
return ret
|
2701
2709
|
|
2702
2710
|
|