ominfra 0.0.0.dev300__tar.gz → 0.0.0.dev302__tar.gz
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-0.0.0.dev300/ominfra.egg-info → ominfra-0.0.0.dev302}/PKG-INFO +3 -3
- ominfra-0.0.0.dev302/README.md +40 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/targets/bestpython.sh +1 -1
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/scripts/journald2aws.py +19 -2
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/scripts/manage.py +21 -4
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/scripts/supervisor.py +25 -2
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302/ominfra.egg-info}/PKG-INFO +3 -3
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra.egg-info/requires.txt +2 -2
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/pyproject.toml +3 -3
- ominfra-0.0.0.dev300/README.md +0 -31
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/LICENSE +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/MANIFEST.in +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/.manifests.json +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/__about__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/__main__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/auth.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/cli.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/dataclasses.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/instancetypes/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/instancetypes/__main__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/instancetypes/cache.json.gz +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/instancetypes/cache.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/instancetypes/cli.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/journald2aws/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/journald2aws/__main__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/journald2aws/cursor.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/journald2aws/driver.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/journald2aws/main.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/journald2aws/poster.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/logs.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/metadata.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/base.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/gen/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/gen/__main__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/gen/cli.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/gen/gen.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/ec2.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/lambda_.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/rds.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/s3.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/services.toml +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/gcp/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/gcp/api.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/gcp/auth.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/commands/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/commands/runners.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/commands/ssh.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/journald/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/journald/fields.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/journald/genmessages.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/journald/messages.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/journald/tailer.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/__main__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/bootstrap.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/bootstrap_.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/base.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/injection.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/local.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/marshal.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/ping.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/subprocess.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/commands/types.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/config.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/apps.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/commands.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/conf/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/conf/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/conf/manager.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/conf/specs.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/config.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/deploy.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/git.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/injection.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/interp.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/nginx.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/paths/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/paths/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/paths/manager.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/paths/owners.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/paths/paths.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/paths/specs.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/paths/types.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/specs.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/systemd.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/tags.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/tmp.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/types.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/deploy/venvs.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/main.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/marshal.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/_main.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/channel.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/config.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/connection.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/execution.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/payload.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/remote/spawning.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/system/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/system/commands.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/system/config.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/system/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/system/packages.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/system/platforms.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/targets/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/targets/bestpython.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/targets/connection.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/targets/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/manage/targets/targets.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/pyremote.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/scripts/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/LICENSE.txt +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/__main__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/configs.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/dispatchers.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/dispatchersimpl.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/errors.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/events.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/groups.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/groupsimpl.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/http.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/inject.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/io.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/main.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/pipes.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/privileges.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/process.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/processimpl.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/setup.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/setupimpl.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/signals.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/spawning.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/spawningimpl.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/states.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/supervisor.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/types.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/collections.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/diag.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/fds.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/fs.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/os.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/ostypes.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/signals.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/strings.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/supervisor/utils/users.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/systemd.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/tailscale/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/tailscale/api.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/tailscale/cli.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/threadworkers.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/tools/__init__.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/tools/listresources.py +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra.egg-info/SOURCES.txt +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra.egg-info/dependency_links.txt +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra.egg-info/entry_points.txt +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra.egg-info/top_level.txt +0 -0
- {ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ominfra
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev302
|
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.dev302
|
16
|
+
Requires-Dist: omlish==0.0.0.dev302
|
17
17
|
Provides-Extra: all
|
18
18
|
Requires-Dist: paramiko~=3.5; extra == "all"
|
19
19
|
Requires-Dist: asyncssh~=2.20; extra == "all"
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Overview
|
2
|
+
|
3
|
+
My python monorepo, the successor to my previous one `omnibus`(... 'ish').
|
4
|
+
|
5
|
+
Core libraries begin with `om`, scratch app is in `app`, temp / dump code is in `x`.
|
6
|
+
|
7
|
+
The core libraries have no required dependencies besides each other, but there are numerous optional ones - see their
|
8
|
+
respective `pyproject.toml` files for details.
|
9
|
+
|
10
|
+
General code is written for python 3.12+, '[lite](omlish#lite-code)' code for 3.8+.
|
11
|
+
|
12
|
+
# Core libraries
|
13
|
+
|
14
|
+
- **[omlish](omlish#readme)** - Core foundational code
|
15
|
+
- **[omdev](omdev#readme)** - Development utilities
|
16
|
+
- **[omserv](omserv)** - Production web server
|
17
|
+
- **[ominfra](ominfra)** - Infrastructure and cloud code
|
18
|
+
- **[ommlx](ommlx)** - ML / AI code
|
19
|
+
|
20
|
+
# Installation
|
21
|
+
|
22
|
+
Core libraries installable by name from pypi:
|
23
|
+
|
24
|
+
```bash
|
25
|
+
pip install omlish
|
26
|
+
```
|
27
|
+
|
28
|
+
Or directly from git via:
|
29
|
+
|
30
|
+
```bash
|
31
|
+
pip install 'git+https://github.com/wrmsr/omlish@master#subdirectory=.pkg/<pkg>'
|
32
|
+
```
|
33
|
+
|
34
|
+
The CLI is installable through uvx or pipx via:
|
35
|
+
|
36
|
+
```bash
|
37
|
+
curl -LsSf 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py' | python3 -
|
38
|
+
```
|
39
|
+
|
40
|
+
Additional deps to be injected may be appended to the command.
|
@@ -4,7 +4,7 @@ bx=""
|
|
4
4
|
for v in "" 3 3.{8..13}; do
|
5
5
|
x="python$v"
|
6
6
|
v=$($x -c "import sys; print((\"%02d\" * 3) % sys.version_info[:3])" 2>/dev/null)
|
7
|
-
if [ $? -eq 0 ] && ([ -z "$bv" ] || [ "$v" \> "$bv" ]); then
|
7
|
+
if [ $? -eq 0 ] && [ "$v" \> 030799 ] && ([ -z "$bv" ] || [ "$v" \> "$bv" ]); then
|
8
8
|
bv=$v
|
9
9
|
bx=$x
|
10
10
|
fi
|
@@ -224,6 +224,7 @@ class TomlDecodeError(ValueError):
|
|
224
224
|
|
225
225
|
def toml_load(fp: ta.BinaryIO, /, *, parse_float: TomlParseFloat = float) -> ta.Dict[str, ta.Any]:
|
226
226
|
"""Parse TOML from a binary file object."""
|
227
|
+
|
227
228
|
b = fp.read()
|
228
229
|
try:
|
229
230
|
s = b.decode()
|
@@ -1267,7 +1268,15 @@ class Checks:
|
|
1267
1268
|
spec = (object,)
|
1268
1269
|
return spec
|
1269
1270
|
|
1270
|
-
|
1271
|
+
@ta.overload
|
1272
|
+
def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
|
1273
|
+
...
|
1274
|
+
|
1275
|
+
@ta.overload
|
1276
|
+
def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
|
1277
|
+
...
|
1278
|
+
|
1279
|
+
def isinstance(self, v, spec, msg=None):
|
1271
1280
|
if not isinstance(v, self._unpack_isinstance_spec(spec)):
|
1272
1281
|
self._raise(
|
1273
1282
|
TypeError,
|
@@ -1279,7 +1288,15 @@ class Checks:
|
|
1279
1288
|
|
1280
1289
|
return v
|
1281
1290
|
|
1282
|
-
|
1291
|
+
@ta.overload
|
1292
|
+
def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
|
1293
|
+
...
|
1294
|
+
|
1295
|
+
@ta.overload
|
1296
|
+
def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
|
1297
|
+
...
|
1298
|
+
|
1299
|
+
def of_isinstance(self, spec, msg=None):
|
1283
1300
|
def inner(v):
|
1284
1301
|
return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
|
1285
1302
|
|
@@ -1463,6 +1463,7 @@ class TomlDecodeError(ValueError):
|
|
1463
1463
|
|
1464
1464
|
def toml_load(fp: ta.BinaryIO, /, *, parse_float: TomlParseFloat = float) -> ta.Dict[str, ta.Any]:
|
1465
1465
|
"""Parse TOML from a binary file object."""
|
1466
|
+
|
1466
1467
|
b = fp.read()
|
1467
1468
|
try:
|
1468
1469
|
s = b.decode()
|
@@ -2506,7 +2507,15 @@ class Checks:
|
|
2506
2507
|
spec = (object,)
|
2507
2508
|
return spec
|
2508
2509
|
|
2509
|
-
|
2510
|
+
@ta.overload
|
2511
|
+
def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
|
2512
|
+
...
|
2513
|
+
|
2514
|
+
@ta.overload
|
2515
|
+
def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
|
2516
|
+
...
|
2517
|
+
|
2518
|
+
def isinstance(self, v, spec, msg=None):
|
2510
2519
|
if not isinstance(v, self._unpack_isinstance_spec(spec)):
|
2511
2520
|
self._raise(
|
2512
2521
|
TypeError,
|
@@ -2518,7 +2527,15 @@ class Checks:
|
|
2518
2527
|
|
2519
2528
|
return v
|
2520
2529
|
|
2521
|
-
|
2530
|
+
@ta.overload
|
2531
|
+
def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
|
2532
|
+
...
|
2533
|
+
|
2534
|
+
@ta.overload
|
2535
|
+
def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
|
2536
|
+
...
|
2537
|
+
|
2538
|
+
def of_isinstance(self, spec, msg=None):
|
2522
2539
|
def inner(v):
|
2523
2540
|
return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
|
2524
2541
|
|
@@ -4936,7 +4953,7 @@ bx=""
|
|
4936
4953
|
for v in "" 3 3.{8..13}; do
|
4937
4954
|
x="python$v"
|
4938
4955
|
v=$($x -c "import sys; print((\\"%02d\\" * 3) % sys.version_info[:3])" 2>/dev/null)
|
4939
|
-
if [ $? -eq 0 ] && ([ -z "$bv" ] || [ "$v" \\> "$bv" ]); then
|
4956
|
+
if [ $? -eq 0 ] && [ "$v" \\> 030799 ] && ([ -z "$bv" ] || [ "$v" \\> "$bv" ]); then
|
4940
4957
|
bv=$v
|
4941
4958
|
bx=$x
|
4942
4959
|
fi
|
@@ -10883,7 +10900,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
|
|
10883
10900
|
async with self.popen(*run.cmd, **kwargs) as proc:
|
10884
10901
|
stdout, stderr = await self.communicate(proc, run.input, run.timeout)
|
10885
10902
|
|
10886
|
-
if check and proc.returncode:
|
10903
|
+
if run.check and proc.returncode:
|
10887
10904
|
raise subprocess.CalledProcessError(
|
10888
10905
|
proc.returncode,
|
10889
10906
|
run.cmd,
|
@@ -764,6 +764,7 @@ class TomlDecodeError(ValueError):
|
|
764
764
|
|
765
765
|
def toml_load(fp: ta.BinaryIO, /, *, parse_float: TomlParseFloat = float) -> ta.Dict[str, ta.Any]:
|
766
766
|
"""Parse TOML from a binary file object."""
|
767
|
+
|
767
768
|
b = fp.read()
|
768
769
|
try:
|
769
770
|
s = b.decode()
|
@@ -2036,7 +2037,15 @@ class Checks:
|
|
2036
2037
|
spec = (object,)
|
2037
2038
|
return spec
|
2038
2039
|
|
2039
|
-
|
2040
|
+
@ta.overload
|
2041
|
+
def isinstance(self, v: ta.Any, spec: ta.Type[T], msg: CheckMessage = None) -> T:
|
2042
|
+
...
|
2043
|
+
|
2044
|
+
@ta.overload
|
2045
|
+
def isinstance(self, v: ta.Any, spec: ta.Any, msg: CheckMessage = None) -> ta.Any:
|
2046
|
+
...
|
2047
|
+
|
2048
|
+
def isinstance(self, v, spec, msg=None):
|
2040
2049
|
if not isinstance(v, self._unpack_isinstance_spec(spec)):
|
2041
2050
|
self._raise(
|
2042
2051
|
TypeError,
|
@@ -2048,7 +2057,15 @@ class Checks:
|
|
2048
2057
|
|
2049
2058
|
return v
|
2050
2059
|
|
2051
|
-
|
2060
|
+
@ta.overload
|
2061
|
+
def of_isinstance(self, spec: ta.Type[T], msg: CheckMessage = None) -> ta.Callable[[ta.Any], T]:
|
2062
|
+
...
|
2063
|
+
|
2064
|
+
@ta.overload
|
2065
|
+
def of_isinstance(self, spec: ta.Any, msg: CheckMessage = None) -> ta.Callable[[ta.Any], ta.Any]:
|
2066
|
+
...
|
2067
|
+
|
2068
|
+
def of_isinstance(self, spec, msg=None):
|
2052
2069
|
def inner(v):
|
2053
2070
|
return self.isinstance(v, self._unpack_isinstance_spec(spec), msg)
|
2054
2071
|
|
@@ -4346,6 +4363,9 @@ class IncrementalWriteBuffer:
|
|
4346
4363
|
# ../../../omlish/io/fdio/handlers.py
|
4347
4364
|
|
4348
4365
|
|
4366
|
+
##
|
4367
|
+
|
4368
|
+
|
4349
4369
|
class FdioHandler(abc.ABC):
|
4350
4370
|
@abc.abstractmethod
|
4351
4371
|
def fd(self) -> int:
|
@@ -4410,6 +4430,9 @@ class SocketFdioHandler(FdioHandler, abc.ABC):
|
|
4410
4430
|
# ../../../omlish/io/fdio/kqueue.py
|
4411
4431
|
|
4412
4432
|
|
4433
|
+
##
|
4434
|
+
|
4435
|
+
|
4413
4436
|
KqueueFdioPoller: ta.Optional[ta.Type[FdioPoller]]
|
4414
4437
|
if sys.platform == 'darwin' or sys.platform.startswith('freebsd'):
|
4415
4438
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ominfra
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev302
|
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.dev302
|
16
|
+
Requires-Dist: omlish==0.0.0.dev302
|
17
17
|
Provides-Extra: all
|
18
18
|
Requires-Dist: paramiko~=3.5; extra == "all"
|
19
19
|
Requires-Dist: asyncssh~=2.20; extra == "all"
|
@@ -12,7 +12,7 @@ authors = [
|
|
12
12
|
urls = {source = 'https://github.com/wrmsr/omlish'}
|
13
13
|
license = {text = 'BSD-3-Clause'}
|
14
14
|
requires-python = '>=3.12'
|
15
|
-
version = '0.0.0.
|
15
|
+
version = '0.0.0.dev302'
|
16
16
|
classifiers = [
|
17
17
|
'License :: OSI Approved :: BSD License',
|
18
18
|
'Development Status :: 2 - Pre-Alpha',
|
@@ -22,8 +22,8 @@ classifiers = [
|
|
22
22
|
]
|
23
23
|
description = 'ominfra'
|
24
24
|
dependencies = [
|
25
|
-
'omdev == 0.0.0.
|
26
|
-
'omlish == 0.0.0.
|
25
|
+
'omdev == 0.0.0.dev302',
|
26
|
+
'omlish == 0.0.0.dev302',
|
27
27
|
]
|
28
28
|
|
29
29
|
[project.optional-dependencies]
|
ominfra-0.0.0.dev300/README.md
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
It's like my previous python monorepo-ey thing [`omnibus`](https://github.com/wrmsr/omnibus/tree/wrmsr_exp_split)... ish.
|
2
|
-
|
3
|
-
Core packages begin with `om`, scratch app is in `app`, temp / dump code is in `x`.
|
4
|
-
|
5
|
-
----
|
6
|
-
|
7
|
-
The core packages are:
|
8
|
-
|
9
|
-
- **omlish**: core foundational code
|
10
|
-
- **omdev**: development utilities
|
11
|
-
- **omserv**: production web server
|
12
|
-
- **ominfra**: infrastructure and cloud code
|
13
|
-
- **ommlx**: ml / ai code
|
14
|
-
|
15
|
-
----
|
16
|
-
|
17
|
-
Core packages installable from pypi, or from git via:
|
18
|
-
|
19
|
-
```bash
|
20
|
-
pip install 'git+https://github.com/wrmsr/omlish@master#subdirectory=.pkg/<pkg>'
|
21
|
-
```
|
22
|
-
|
23
|
-
Core packages have no required dependencies, but numerous optional ones - see their respective `pyproject.toml` files for details.
|
24
|
-
|
25
|
-
The CLI is installable through uvx or pipx via:
|
26
|
-
|
27
|
-
```bash
|
28
|
-
curl -LsSf 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py' | python3 -
|
29
|
-
```
|
30
|
-
|
31
|
-
Additional deps to be injected may be appended to the command.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/instancetypes/cache.json.gz
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ominfra-0.0.0.dev300 → ominfra-0.0.0.dev302}/ominfra/clouds/aws/models/services/services.toml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|