ominfra 0.0.0.dev142__py3-none-any.whl → 0.0.0.dev144__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/manage/__init__.py +10 -0
- ominfra/manage/__main__.py +4 -0
- ominfra/manage/bootstrap.py +11 -0
- ominfra/manage/bootstrap_.py +18 -0
- ominfra/manage/commands/base.py +133 -1
- ominfra/manage/commands/execution.py +23 -0
- ominfra/manage/commands/inject.py +122 -0
- ominfra/manage/commands/marshal.py +26 -0
- ominfra/manage/config.py +10 -0
- ominfra/manage/deploy/__init__.py +0 -0
- ominfra/manage/deploy/command.py +23 -0
- ominfra/manage/deploy/inject.py +19 -0
- ominfra/manage/inject.py +58 -0
- ominfra/manage/main.py +64 -90
- ominfra/manage/marshal.py +12 -0
- ominfra/manage/remote/__init__.py +0 -0
- ominfra/manage/{protocol.py → remote/channel.py} +9 -2
- ominfra/manage/remote/config.py +12 -0
- ominfra/manage/remote/execution.py +193 -0
- ominfra/manage/remote/inject.py +29 -0
- ominfra/manage/{payload.py → remote/payload.py} +7 -1
- ominfra/manage/{spawning.py → remote/spawning.py} +29 -29
- ominfra/pyremote.py +40 -3
- ominfra/scripts/journald2aws.py +98 -50
- ominfra/scripts/manage.py +2025 -295
- ominfra/scripts/supervisor.py +99 -50
- ominfra/supervisor/inject.py +2 -1
- {ominfra-0.0.0.dev142.dist-info → ominfra-0.0.0.dev144.dist-info}/METADATA +3 -3
- {ominfra-0.0.0.dev142.dist-info → ominfra-0.0.0.dev144.dist-info}/RECORD +33 -17
- {ominfra-0.0.0.dev142.dist-info → ominfra-0.0.0.dev144.dist-info}/LICENSE +0 -0
- {ominfra-0.0.0.dev142.dist-info → ominfra-0.0.0.dev144.dist-info}/WHEEL +0 -0
- {ominfra-0.0.0.dev142.dist-info → ominfra-0.0.0.dev144.dist-info}/entry_points.txt +0 -0
- {ominfra-0.0.0.dev142.dist-info → ominfra-0.0.0.dev144.dist-info}/top_level.txt +0 -0
    
        ominfra/scripts/supervisor.py
    CHANGED
    
    | @@ -4735,21 +4735,26 @@ TODO: | |
| 4735 4735 | 
             
            ##
         | 
| 4736 4736 |  | 
| 4737 4737 |  | 
| 4738 | 
            +
            @dc.dataclass(frozen=True)
         | 
| 4739 | 
            +
            class ObjMarshalOptions:
         | 
| 4740 | 
            +
                raw_bytes: bool = False
         | 
| 4741 | 
            +
             | 
| 4742 | 
            +
             | 
| 4738 4743 | 
             
            class ObjMarshaler(abc.ABC):
         | 
| 4739 4744 | 
             
                @abc.abstractmethod
         | 
| 4740 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4745 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4741 4746 | 
             
                    raise NotImplementedError
         | 
| 4742 4747 |  | 
| 4743 4748 | 
             
                @abc.abstractmethod
         | 
| 4744 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4749 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4745 4750 | 
             
                    raise NotImplementedError
         | 
| 4746 4751 |  | 
| 4747 4752 |  | 
| 4748 4753 | 
             
            class NopObjMarshaler(ObjMarshaler):
         | 
| 4749 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4754 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4750 4755 | 
             
                    return o
         | 
| 4751 4756 |  | 
| 4752 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4757 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4753 4758 | 
             
                    return o
         | 
| 4754 4759 |  | 
| 4755 4760 |  | 
| @@ -4757,29 +4762,29 @@ class NopObjMarshaler(ObjMarshaler): | |
| 4757 4762 | 
             
            class ProxyObjMarshaler(ObjMarshaler):
         | 
| 4758 4763 | 
             
                m: ta.Optional[ObjMarshaler] = None
         | 
| 4759 4764 |  | 
| 4760 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4761 | 
            -
                    return check_not_none(self.m).marshal(o)
         | 
| 4765 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4766 | 
            +
                    return check_not_none(self.m).marshal(o, opts)
         | 
| 4762 4767 |  | 
| 4763 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4764 | 
            -
                    return check_not_none(self.m).unmarshal(o)
         | 
| 4768 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4769 | 
            +
                    return check_not_none(self.m).unmarshal(o, opts)
         | 
| 4765 4770 |  | 
| 4766 4771 |  | 
| 4767 4772 | 
             
            @dc.dataclass(frozen=True)
         | 
| 4768 4773 | 
             
            class CastObjMarshaler(ObjMarshaler):
         | 
| 4769 4774 | 
             
                ty: type
         | 
| 4770 4775 |  | 
| 4771 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4776 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4772 4777 | 
             
                    return o
         | 
| 4773 4778 |  | 
| 4774 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4779 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4775 4780 | 
             
                    return self.ty(o)
         | 
| 4776 4781 |  | 
| 4777 4782 |  | 
| 4778 4783 | 
             
            class DynamicObjMarshaler(ObjMarshaler):
         | 
| 4779 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4784 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4780 4785 | 
             
                    return marshal_obj(o)
         | 
| 4781 4786 |  | 
| 4782 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4787 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4783 4788 | 
             
                    return o
         | 
| 4784 4789 |  | 
| 4785 4790 |  | 
| @@ -4787,21 +4792,36 @@ class DynamicObjMarshaler(ObjMarshaler): | |
| 4787 4792 | 
             
            class Base64ObjMarshaler(ObjMarshaler):
         | 
| 4788 4793 | 
             
                ty: type
         | 
| 4789 4794 |  | 
| 4790 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4795 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4791 4796 | 
             
                    return base64.b64encode(o).decode('ascii')
         | 
| 4792 4797 |  | 
| 4793 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4798 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4794 4799 | 
             
                    return self.ty(base64.b64decode(o))
         | 
| 4795 4800 |  | 
| 4796 4801 |  | 
| 4802 | 
            +
            @dc.dataclass(frozen=True)
         | 
| 4803 | 
            +
            class BytesSwitchedObjMarshaler(ObjMarshaler):
         | 
| 4804 | 
            +
                m: ObjMarshaler
         | 
| 4805 | 
            +
             | 
| 4806 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4807 | 
            +
                    if opts.raw_bytes:
         | 
| 4808 | 
            +
                        return o
         | 
| 4809 | 
            +
                    return self.m.marshal(o, opts)
         | 
| 4810 | 
            +
             | 
| 4811 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4812 | 
            +
                    if opts.raw_bytes:
         | 
| 4813 | 
            +
                        return o
         | 
| 4814 | 
            +
                    return self.m.unmarshal(o, opts)
         | 
| 4815 | 
            +
             | 
| 4816 | 
            +
             | 
| 4797 4817 | 
             
            @dc.dataclass(frozen=True)
         | 
| 4798 4818 | 
             
            class EnumObjMarshaler(ObjMarshaler):
         | 
| 4799 4819 | 
             
                ty: type
         | 
| 4800 4820 |  | 
| 4801 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4821 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4802 4822 | 
             
                    return o.name
         | 
| 4803 4823 |  | 
| 4804 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4824 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4805 4825 | 
             
                    return self.ty.__members__[o]  # type: ignore
         | 
| 4806 4826 |  | 
| 4807 4827 |  | 
| @@ -4809,15 +4829,15 @@ class EnumObjMarshaler(ObjMarshaler): | |
| 4809 4829 | 
             
            class OptionalObjMarshaler(ObjMarshaler):
         | 
| 4810 4830 | 
             
                item: ObjMarshaler
         | 
| 4811 4831 |  | 
| 4812 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4832 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4813 4833 | 
             
                    if o is None:
         | 
| 4814 4834 | 
             
                        return None
         | 
| 4815 | 
            -
                    return self.item.marshal(o)
         | 
| 4835 | 
            +
                    return self.item.marshal(o, opts)
         | 
| 4816 4836 |  | 
| 4817 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4837 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4818 4838 | 
             
                    if o is None:
         | 
| 4819 4839 | 
             
                        return None
         | 
| 4820 | 
            -
                    return self.item.unmarshal(o)
         | 
| 4840 | 
            +
                    return self.item.unmarshal(o, opts)
         | 
| 4821 4841 |  | 
| 4822 4842 |  | 
| 4823 4843 | 
             
            @dc.dataclass(frozen=True)
         | 
| @@ -4826,11 +4846,11 @@ class MappingObjMarshaler(ObjMarshaler): | |
| 4826 4846 | 
             
                km: ObjMarshaler
         | 
| 4827 4847 | 
             
                vm: ObjMarshaler
         | 
| 4828 4848 |  | 
| 4829 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4830 | 
            -
                    return {self.km.marshal(k): self.vm.marshal(v) for k, v in o.items()}
         | 
| 4849 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4850 | 
            +
                    return {self.km.marshal(k, opts): self.vm.marshal(v, opts) for k, v in o.items()}
         | 
| 4831 4851 |  | 
| 4832 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4833 | 
            -
                    return self.ty((self.km.unmarshal(k), self.vm.unmarshal(v)) for k, v in o.items())
         | 
| 4852 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4853 | 
            +
                    return self.ty((self.km.unmarshal(k, opts), self.vm.unmarshal(v, opts)) for k, v in o.items())
         | 
| 4834 4854 |  | 
| 4835 4855 |  | 
| 4836 4856 | 
             
            @dc.dataclass(frozen=True)
         | 
| @@ -4838,11 +4858,11 @@ class IterableObjMarshaler(ObjMarshaler): | |
| 4838 4858 | 
             
                ty: type
         | 
| 4839 4859 | 
             
                item: ObjMarshaler
         | 
| 4840 4860 |  | 
| 4841 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4842 | 
            -
                    return [self.item.marshal(e) for e in o]
         | 
| 4861 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4862 | 
            +
                    return [self.item.marshal(e, opts) for e in o]
         | 
| 4843 4863 |  | 
| 4844 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4845 | 
            -
                    return self.ty(self.item.unmarshal(e) for e in o)
         | 
| 4864 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4865 | 
            +
                    return self.ty(self.item.unmarshal(e, opts) for e in o)
         | 
| 4846 4866 |  | 
| 4847 4867 |  | 
| 4848 4868 | 
             
            @dc.dataclass(frozen=True)
         | 
| @@ -4851,11 +4871,11 @@ class DataclassObjMarshaler(ObjMarshaler): | |
| 4851 4871 | 
             
                fs: ta.Mapping[str, ObjMarshaler]
         | 
| 4852 4872 | 
             
                nonstrict: bool = False
         | 
| 4853 4873 |  | 
| 4854 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4855 | 
            -
                    return {k: m.marshal(getattr(o, k)) for k, m in self.fs.items()}
         | 
| 4874 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4875 | 
            +
                    return {k: m.marshal(getattr(o, k), opts) for k, m in self.fs.items()}
         | 
| 4856 4876 |  | 
| 4857 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4858 | 
            -
                    return self.ty(**{k: self.fs[k].unmarshal(v) for k, v in o.items() if not self.nonstrict or k in self.fs})
         | 
| 4877 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4878 | 
            +
                    return self.ty(**{k: self.fs[k].unmarshal(v, opts) for k, v in o.items() if not self.nonstrict or k in self.fs})
         | 
| 4859 4879 |  | 
| 4860 4880 |  | 
| 4861 4881 | 
             
            @dc.dataclass(frozen=True)
         | 
| @@ -4875,50 +4895,50 @@ class PolymorphicObjMarshaler(ObjMarshaler): | |
| 4875 4895 | 
             
                        {i.tag: i for i in impls},
         | 
| 4876 4896 | 
             
                    )
         | 
| 4877 4897 |  | 
| 4878 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4898 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4879 4899 | 
             
                    impl = self.impls_by_ty[type(o)]
         | 
| 4880 | 
            -
                    return {impl.tag: impl.m.marshal(o)}
         | 
| 4900 | 
            +
                    return {impl.tag: impl.m.marshal(o, opts)}
         | 
| 4881 4901 |  | 
| 4882 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4902 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4883 4903 | 
             
                    [(t, v)] = o.items()
         | 
| 4884 4904 | 
             
                    impl = self.impls_by_tag[t]
         | 
| 4885 | 
            -
                    return impl.m.unmarshal(v)
         | 
| 4905 | 
            +
                    return impl.m.unmarshal(v, opts)
         | 
| 4886 4906 |  | 
| 4887 4907 |  | 
| 4888 4908 | 
             
            @dc.dataclass(frozen=True)
         | 
| 4889 4909 | 
             
            class DatetimeObjMarshaler(ObjMarshaler):
         | 
| 4890 4910 | 
             
                ty: type
         | 
| 4891 4911 |  | 
| 4892 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4912 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4893 4913 | 
             
                    return o.isoformat()
         | 
| 4894 4914 |  | 
| 4895 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4915 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4896 4916 | 
             
                    return self.ty.fromisoformat(o)  # type: ignore
         | 
| 4897 4917 |  | 
| 4898 4918 |  | 
| 4899 4919 | 
             
            class DecimalObjMarshaler(ObjMarshaler):
         | 
| 4900 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4920 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4901 4921 | 
             
                    return str(check_isinstance(o, decimal.Decimal))
         | 
| 4902 4922 |  | 
| 4903 | 
            -
                def unmarshal(self, v: ta.Any) -> ta.Any:
         | 
| 4923 | 
            +
                def unmarshal(self, v: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4904 4924 | 
             
                    return decimal.Decimal(check_isinstance(v, str))
         | 
| 4905 4925 |  | 
| 4906 4926 |  | 
| 4907 4927 | 
             
            class FractionObjMarshaler(ObjMarshaler):
         | 
| 4908 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4928 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4909 4929 | 
             
                    fr = check_isinstance(o, fractions.Fraction)
         | 
| 4910 4930 | 
             
                    return [fr.numerator, fr.denominator]
         | 
| 4911 4931 |  | 
| 4912 | 
            -
                def unmarshal(self, v: ta.Any) -> ta.Any:
         | 
| 4932 | 
            +
                def unmarshal(self, v: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4913 4933 | 
             
                    num, denom = check_isinstance(v, list)
         | 
| 4914 4934 | 
             
                    return fractions.Fraction(num, denom)
         | 
| 4915 4935 |  | 
| 4916 4936 |  | 
| 4917 4937 | 
             
            class UuidObjMarshaler(ObjMarshaler):
         | 
| 4918 | 
            -
                def marshal(self, o: ta.Any) -> ta.Any:
         | 
| 4938 | 
            +
                def marshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4919 4939 | 
             
                    return str(o)
         | 
| 4920 4940 |  | 
| 4921 | 
            -
                def unmarshal(self, o: ta.Any) -> ta.Any:
         | 
| 4941 | 
            +
                def unmarshal(self, o: ta.Any, opts: ObjMarshalOptions) -> ta.Any:
         | 
| 4922 4942 | 
             
                    return uuid.UUID(o)
         | 
| 4923 4943 |  | 
| 4924 4944 |  | 
| @@ -4928,7 +4948,7 @@ class UuidObjMarshaler(ObjMarshaler): | |
| 4928 4948 | 
             
            _DEFAULT_OBJ_MARSHALERS: ta.Dict[ta.Any, ObjMarshaler] = {
         | 
| 4929 4949 | 
             
                **{t: NopObjMarshaler() for t in (type(None),)},
         | 
| 4930 4950 | 
             
                **{t: CastObjMarshaler(t) for t in (int, float, str, bool)},
         | 
| 4931 | 
            -
                **{t: Base64ObjMarshaler(t) for t in (bytes, bytearray)},
         | 
| 4951 | 
            +
                **{t: BytesSwitchedObjMarshaler(Base64ObjMarshaler(t)) for t in (bytes, bytearray)},
         | 
| 4932 4952 | 
             
                **{t: IterableObjMarshaler(t, DynamicObjMarshaler()) for t in (list, tuple, set, frozenset)},
         | 
| 4933 4953 | 
             
                **{t: MappingObjMarshaler(t, DynamicObjMarshaler(), DynamicObjMarshaler()) for t in (dict,)},
         | 
| 4934 4954 |  | 
| @@ -4961,12 +4981,16 @@ class ObjMarshalerManager: | |
| 4961 4981 | 
             
                def __init__(
         | 
| 4962 4982 | 
             
                        self,
         | 
| 4963 4983 | 
             
                        *,
         | 
| 4984 | 
            +
                        default_options: ObjMarshalOptions = ObjMarshalOptions(),
         | 
| 4985 | 
            +
             | 
| 4964 4986 | 
             
                        default_obj_marshalers: ta.Dict[ta.Any, ObjMarshaler] = _DEFAULT_OBJ_MARSHALERS,  # noqa
         | 
| 4965 4987 | 
             
                        generic_mapping_types: ta.Dict[ta.Any, type] = _OBJ_MARSHALER_GENERIC_MAPPING_TYPES,  # noqa
         | 
| 4966 4988 | 
             
                        generic_iterable_types: ta.Dict[ta.Any, type] = _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES,  # noqa
         | 
| 4967 4989 | 
             
                ) -> None:
         | 
| 4968 4990 | 
             
                    super().__init__()
         | 
| 4969 4991 |  | 
| 4992 | 
            +
                    self._default_options = default_options
         | 
| 4993 | 
            +
             | 
| 4970 4994 | 
             
                    self._obj_marshalers = dict(default_obj_marshalers)
         | 
| 4971 4995 | 
             
                    self._generic_mapping_types = generic_mapping_types
         | 
| 4972 4996 | 
             
                    self._generic_iterable_types = generic_iterable_types
         | 
| @@ -5075,11 +5099,35 @@ class ObjMarshalerManager: | |
| 5075 5099 |  | 
| 5076 5100 | 
             
                #
         | 
| 5077 5101 |  | 
| 5078 | 
            -
                def marshal_obj( | 
| 5079 | 
            -
             | 
| 5102 | 
            +
                def marshal_obj(
         | 
| 5103 | 
            +
                        self,
         | 
| 5104 | 
            +
                        o: ta.Any,
         | 
| 5105 | 
            +
                        ty: ta.Any = None,
         | 
| 5106 | 
            +
                        opts: ta.Optional[ObjMarshalOptions] = None,
         | 
| 5107 | 
            +
                ) -> ta.Any:
         | 
| 5108 | 
            +
                    m = self.get_obj_marshaler(ty if ty is not None else type(o))
         | 
| 5109 | 
            +
                    return m.marshal(o, opts or self._default_options)
         | 
| 5080 5110 |  | 
| 5081 | 
            -
                def unmarshal_obj( | 
| 5082 | 
            -
             | 
| 5111 | 
            +
                def unmarshal_obj(
         | 
| 5112 | 
            +
                        self,
         | 
| 5113 | 
            +
                        o: ta.Any,
         | 
| 5114 | 
            +
                        ty: ta.Union[ta.Type[T], ta.Any],
         | 
| 5115 | 
            +
                        opts: ta.Optional[ObjMarshalOptions] = None,
         | 
| 5116 | 
            +
                ) -> T:
         | 
| 5117 | 
            +
                    m = self.get_obj_marshaler(ty)
         | 
| 5118 | 
            +
                    return m.unmarshal(o, opts or self._default_options)
         | 
| 5119 | 
            +
             | 
| 5120 | 
            +
                def roundtrip_obj(
         | 
| 5121 | 
            +
                        self,
         | 
| 5122 | 
            +
                        o: ta.Any,
         | 
| 5123 | 
            +
                        ty: ta.Any = None,
         | 
| 5124 | 
            +
                        opts: ta.Optional[ObjMarshalOptions] = None,
         | 
| 5125 | 
            +
                ) -> ta.Any:
         | 
| 5126 | 
            +
                    if ty is None:
         | 
| 5127 | 
            +
                        ty = type(o)
         | 
| 5128 | 
            +
                    m: ta.Any = self.marshal_obj(o, ty, opts)
         | 
| 5129 | 
            +
                    u: ta.Any = self.unmarshal_obj(m, ty, opts)
         | 
| 5130 | 
            +
                    return u
         | 
| 5083 5131 |  | 
| 5084 5132 |  | 
| 5085 5133 | 
             
            ##
         | 
| @@ -8567,7 +8615,8 @@ def bind_server( | |
| 8567 8615 | 
             
                ]))
         | 
| 8568 8616 | 
             
                lst.extend([
         | 
| 8569 8617 | 
             
                    inj.bind(poller_impl, key=FdIoPoller, singleton=True),
         | 
| 8570 | 
            -
                    inj.bind(_FdIoPollerDaemonizeListener,  | 
| 8618 | 
            +
                    inj.bind(_FdIoPollerDaemonizeListener, singleton=True),
         | 
| 8619 | 
            +
                    inj.bind(DaemonizeListener, array=True, to_key=_FdIoPollerDaemonizeListener),
         | 
| 8571 8620 | 
             
                ])
         | 
| 8572 8621 |  | 
| 8573 8622 | 
             
                #
         | 
    
        ominfra/supervisor/inject.py
    CHANGED
    
    | @@ -125,7 +125,8 @@ def bind_server( | |
| 125 125 | 
             
                ]))
         | 
| 126 126 | 
             
                lst.extend([
         | 
| 127 127 | 
             
                    inj.bind(poller_impl, key=FdIoPoller, singleton=True),
         | 
| 128 | 
            -
                    inj.bind(_FdIoPollerDaemonizeListener,  | 
| 128 | 
            +
                    inj.bind(_FdIoPollerDaemonizeListener, singleton=True),
         | 
| 129 | 
            +
                    inj.bind(DaemonizeListener, array=True, to_key=_FdIoPollerDaemonizeListener),
         | 
| 129 130 | 
             
                ])
         | 
| 130 131 |  | 
| 131 132 | 
             
                #
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Metadata-Version: 2.1
         | 
| 2 2 | 
             
            Name: ominfra
         | 
| 3 | 
            -
            Version: 0.0.0. | 
| 3 | 
            +
            Version: 0.0.0.dev144
         | 
| 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. | 
| 16 | 
            -
            Requires-Dist: omlish==0.0.0. | 
| 15 | 
            +
            Requires-Dist: omdev==0.0.0.dev144
         | 
| 16 | 
            +
            Requires-Dist: omlish==0.0.0.dev144
         | 
| 17 17 | 
             
            Provides-Extra: all
         | 
| 18 18 | 
             
            Requires-Dist: paramiko~=3.5; extra == "all"
         | 
| 19 19 | 
             
            Requires-Dist: asyncssh~=2.18; extra == "all"
         | 
| @@ -3,7 +3,7 @@ ominfra/__about__.py,sha256=6i1AoruFYQCd-PyhhbDQDWY2d1tiQu9nkwWr-fXAqfY,705 | |
| 3 3 | 
             
            ominfra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 4 4 | 
             
            ominfra/cmds.py,sha256=E0AfnvEmnKntXWvmLW5L05_NeDpBET1VBXn7vV6EwBQ,2083
         | 
| 5 5 | 
             
            ominfra/configs.py,sha256=8aU1Qmbr-qjaE2iP3gAbA2SWJYMPZ-uGK007L01PoOI,1727
         | 
| 6 | 
            -
            ominfra/pyremote.py,sha256= | 
| 6 | 
            +
            ominfra/pyremote.py,sha256=PEKQP8CtJVyKWgDJ-FYcGxpxOPy2AYOZCOQRBFktg4E,14248
         | 
| 7 7 | 
             
            ominfra/ssh.py,sha256=jQpc4WvkMckIfk4vILda8zFaeharRqc_6wxW50b0OjQ,5431
         | 
| 8 8 | 
             
            ominfra/threadworkers.py,sha256=oX4ubZn7h932saXpRIJu2MNhBExgGGMuGhdXarZxLJw,4948
         | 
| 9 9 | 
             
            ominfra/clouds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| @@ -27,18 +27,34 @@ ominfra/journald/fields.py,sha256=NjjVn7GW4jkcGdyiiizVjEfQqSFnolXYk3kDcSQcMmc,12 | |
| 27 27 | 
             
            ominfra/journald/genmessages.py,sha256=rLTS-K2v7otNOtTz4RoOEVYCm0fQuuBzf47e0T61tA8,1857
         | 
| 28 28 | 
             
            ominfra/journald/messages.py,sha256=Wr7TjWMOySc0WnKwp_-idR8RfeKlbyJQ_KkELr0VB70,2192
         | 
| 29 29 | 
             
            ominfra/journald/tailer.py,sha256=5abcFMfgi7fnY9ZEQe2ZVobaJxjQkeu6d9Kagw33a1w,33525
         | 
| 30 | 
            -
            ominfra/manage/__init__.py,sha256= | 
| 31 | 
            -
            ominfra/manage/ | 
| 32 | 
            -
            ominfra/manage/ | 
| 33 | 
            -
            ominfra/manage/ | 
| 34 | 
            -
            ominfra/manage/ | 
| 30 | 
            +
            ominfra/manage/__init__.py,sha256=aykrEASTHEtJ-o97jUHRIv8oea41tO7RDHB56cQfmis,265
         | 
| 31 | 
            +
            ominfra/manage/__main__.py,sha256=5IeIERm-371fSI5ZvPv8eldAJBwgKwpR0R49pTsILNM,76
         | 
| 32 | 
            +
            ominfra/manage/bootstrap.py,sha256=puGpmK6b6ZCAX5E_HI9ucUuWlXB4U_4Xwc2x8GAKSVo,240
         | 
| 33 | 
            +
            ominfra/manage/bootstrap_.py,sha256=WVry3P5ViPpdEC_-EFBouZTECMxs4CwRbek4Oz_iRbc,517
         | 
| 34 | 
            +
            ominfra/manage/config.py,sha256=1y2N_8nXHBZc6YbW6BaRZoDDCTBmiHuWtTOQ7zdr5VE,184
         | 
| 35 | 
            +
            ominfra/manage/inject.py,sha256=jGjGqlecpxzpJR3-RqQhEBOmpsix5UwSsvrz5DbayC4,1395
         | 
| 36 | 
            +
            ominfra/manage/main.py,sha256=F8XJx8JvDDoDRUGgDyMb22dCuyySUkUvZW-XtGwKHMU,2909
         | 
| 37 | 
            +
            ominfra/manage/marshal.py,sha256=WKj7IU9bo4fBMSSzT6ZMm_WFalXIJZ-V7j8oi92fNhk,305
         | 
| 35 38 | 
             
            ominfra/manage/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 36 | 
            -
            ominfra/manage/commands/base.py,sha256= | 
| 39 | 
            +
            ominfra/manage/commands/base.py,sha256=yhOAh893iJrk0SvgkRZQMLw8cvStEI2IaHKP9Ifg7N0,3966
         | 
| 40 | 
            +
            ominfra/manage/commands/execution.py,sha256=FBkc9tA_QeKfeajijhsgIiIbqwE9LVwI63QoVs--mf0,609
         | 
| 41 | 
            +
            ominfra/manage/commands/inject.py,sha256=00QL4Xui5oHXbUG6F8QvJXeIdh2YKThKzqsusZUmfN4,3439
         | 
| 42 | 
            +
            ominfra/manage/commands/marshal.py,sha256=4DSCMPzRiRhufIB_9DPL6LrZkRZOle5ruOWU4MVlcXM,694
         | 
| 37 43 | 
             
            ominfra/manage/commands/subprocess.py,sha256=3JaOt56uPqW3jYRtpBpHk5zm3ZzOXzCK-feyDBkq8P4,2198
         | 
| 44 | 
            +
            ominfra/manage/deploy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 45 | 
            +
            ominfra/manage/deploy/command.py,sha256=mTBjerB7lIBdPrivgyWkoAYDY76cfHexjEFYTzanURY,493
         | 
| 46 | 
            +
            ominfra/manage/deploy/inject.py,sha256=j5LYK5y_nZgdaNLde8sV2w_---GvmibgO_ZBT8qzeFM,499
         | 
| 47 | 
            +
            ominfra/manage/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 48 | 
            +
            ominfra/manage/remote/channel.py,sha256=l3bsuE6JZ3VD5abxsWys7m-4kFjOr_B-27bEMgz4K4Q,1325
         | 
| 49 | 
            +
            ominfra/manage/remote/config.py,sha256=yMJsz8zB5i3ytiS-YaCb6-qXumMKXh18SjmtzPVO44c,280
         | 
| 50 | 
            +
            ominfra/manage/remote/execution.py,sha256=ro0qBqbPTb3T6R4aL0sKeDodwCpS_DCuGEwEm7J5qyM,4820
         | 
| 51 | 
            +
            ominfra/manage/remote/inject.py,sha256=0TEODiCirwlApejbAR7-0ZGkNXA99IHZdmAFKliyJYw,783
         | 
| 52 | 
            +
            ominfra/manage/remote/payload.py,sha256=Rn-Yo26POpHEOOfUHX3jWkqcQVEAvkJ_5Bu13jwoob4,944
         | 
| 53 | 
            +
            ominfra/manage/remote/spawning.py,sha256=6JLs_IsMjNQr6i8vROUjHsqmNFno1Ykh3oBXOOHBFYY,2614
         | 
| 38 54 | 
             
            ominfra/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 39 | 
            -
            ominfra/scripts/journald2aws.py,sha256= | 
| 40 | 
            -
            ominfra/scripts/manage.py,sha256= | 
| 41 | 
            -
            ominfra/scripts/supervisor.py,sha256= | 
| 55 | 
            +
            ominfra/scripts/journald2aws.py,sha256=s_ratu1H5K76uM0sx0gMX1Y8pSDO29YqW6x5UrV8jTI,135495
         | 
| 56 | 
            +
            ominfra/scripts/manage.py,sha256=sljVPfvf1pvzJU-NZVxKqikMYc-uFbvkeARE3GB5PWY,92967
         | 
| 57 | 
            +
            ominfra/scripts/supervisor.py,sha256=OTBihWooI6yRzY-kw20vMBqZmrKMKfZkVUcwd_xZ7ZM,249541
         | 
| 42 58 | 
             
            ominfra/supervisor/LICENSE.txt,sha256=yvqaMNsDhWxziHa9ien6qCW1SkZv-DQlAg96XjfSee8,1746
         | 
| 43 59 | 
             
            ominfra/supervisor/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
         | 
| 44 60 | 
             
            ominfra/supervisor/__main__.py,sha256=I0yFw-C08OOiZ3BF6lF1Oiv789EQXu-_j6whDhQUTEA,66
         | 
| @@ -50,7 +66,7 @@ ominfra/supervisor/exceptions.py,sha256=Qbu211H3CLlSmi9LsSikOwrcL5HgJP9ugvcKWlGT | |
| 50 66 | 
             
            ominfra/supervisor/groups.py,sha256=MBbsbt8Zh_WEYkGOr1KXa82gnPVw9wPB2lAnqhugXSc,2457
         | 
| 51 67 | 
             
            ominfra/supervisor/groupsimpl.py,sha256=nIrW4SmB0W6c2jOR_HhkfVcH4eHyLZnG1FJ0MCzc6mQ,2292
         | 
| 52 68 | 
             
            ominfra/supervisor/http.py,sha256=VqE3Q-5nJavMEZJ_MrDsmZmlmJ2mu_rlnyj9gN4hRVI,3473
         | 
| 53 | 
            -
            ominfra/supervisor/inject.py,sha256= | 
| 69 | 
            +
            ominfra/supervisor/inject.py,sha256=NtxlJvRANXFRt0pQZ9RS34dyNxY1Xkx7MTL_9N3YXL4,4701
         | 
| 54 70 | 
             
            ominfra/supervisor/io.py,sha256=_G66luJDF-i1JPM-qJiREMdmHk2ul7n-kjr7ex1sF6s,3200
         | 
| 55 71 | 
             
            ominfra/supervisor/main.py,sha256=oqaWOcnHJgaxNhjyphPgjaNjHPjDcx7kzYMjtZpwSxE,4253
         | 
| 56 72 | 
             
            ominfra/supervisor/pipes.py,sha256=2ZihNTnRNjnIPOtPbm3_pyqO15f7BNs7WnNtO5V8ahM,2231
         | 
| @@ -80,9 +96,9 @@ ominfra/tailscale/api.py,sha256=C5-t_b6jZXUWcy5k8bXm7CFnk73pSdrlMOgGDeGVrpw,1370 | |
| 80 96 | 
             
            ominfra/tailscale/cli.py,sha256=DSGp4hn5xwOW-l_u_InKlSF6kIobxtUtVssf_73STs0,3567
         | 
| 81 97 | 
             
            ominfra/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 82 98 | 
             
            ominfra/tools/listresources.py,sha256=4qVg5txsb10EHhvqXXeM6gJ2jx9LbroEnPydDv1uXs0,6176
         | 
| 83 | 
            -
            ominfra-0.0.0. | 
| 84 | 
            -
            ominfra-0.0.0. | 
| 85 | 
            -
            ominfra-0.0.0. | 
| 86 | 
            -
            ominfra-0.0.0. | 
| 87 | 
            -
            ominfra-0.0.0. | 
| 88 | 
            -
            ominfra-0.0.0. | 
| 99 | 
            +
            ominfra-0.0.0.dev144.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
         | 
| 100 | 
            +
            ominfra-0.0.0.dev144.dist-info/METADATA,sha256=svnd2N9jZtxI9FCLy1qVR8vuz4lD7GbuXvHq1nnC2Ko,731
         | 
| 101 | 
            +
            ominfra-0.0.0.dev144.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
         | 
| 102 | 
            +
            ominfra-0.0.0.dev144.dist-info/entry_points.txt,sha256=kgecQ2MgGrM9qK744BoKS3tMesaC3yjLnl9pa5CRczg,37
         | 
| 103 | 
            +
            ominfra-0.0.0.dev144.dist-info/top_level.txt,sha256=E-b2OHkk_AOBLXHYZQ2EOFKl-_6uOGd8EjeG-Zy6h_w,8
         | 
| 104 | 
            +
            ominfra-0.0.0.dev144.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         |