omdev 0.0.28__tar.gz → 0.0.29__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.
- {omdev-0.0.28/omdev.egg-info → omdev-0.0.29}/PKG-INFO +32 -35
- omdev-0.0.29/README.md +49 -0
- omdev-0.0.29/omdev/README.md +49 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/cli.py +4 -4
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/clicli.py +1 -1
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/install.py +1 -1
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/cli.py +2 -2
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/config.toml +3 -3
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/.python-versions.json +3 -3
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/jdk.sh +1 -1
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/run.py +3 -3
- {omdev-0.0.28 → omdev-0.0.29}/omdev/home/paths.py +4 -4
- {omdev-0.0.28 → omdev-0.0.29}/omdev/home/secrets.py +1 -1
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/providers/standalone.py +1 -1
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/pkg.py +105 -1
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/tools/buildrs.py +1 -1
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/ci.py +61 -49
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/formats/goyaml.py +54 -42
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/pidfiles.py +52 -40
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/pyproject.py +158 -42
- {omdev-0.0.28 → omdev-0.0.29/omdev.egg-info}/PKG-INFO +32 -35
- {omdev-0.0.28 → omdev-0.0.29}/omdev.egg-info/requires.txt +5 -5
- {omdev-0.0.28 → omdev-0.0.29}/pyproject.toml +7 -8
- omdev-0.0.28/README.md +0 -51
- omdev-0.0.28/omdev/README.md +0 -51
- {omdev-0.0.28 → omdev-0.0.29}/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/MANIFEST.in +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/.om-manifests.json +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/__about__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/cli/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/cli/main.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/gen.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/imports.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/manifests.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/resources.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/srcfiles.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/strip.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/gen/typing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/info.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/amalg/sources.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/darwin/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/darwin/aps.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/darwin/ax.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/darwin/cf.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/darwin/cg.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/linux/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/capi/linux/x11.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cc/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cc/srclangs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/build.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/cache.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/ci.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/compose.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/consts.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/shell.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/ci/utils.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/main.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/managers.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cli/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/clipboard/capi/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/clipboard/capi/darwin_cf.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/clipboard/capi/linux_x11.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/clipboard/commands.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/clipboard/platform.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/clipboard/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cmake.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cmdlog/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cmdlog/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cmdlog/_cmdlog.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cmdlog/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/cmdlog/cmdlog.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataclasses/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataclasses/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataclasses/_dumping.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataclasses/_template.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataclasses/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataclasses/codegen.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataclasses/dumping.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/diffs/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/diffs/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/diffs/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/diffs/parsing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/diffs/rendering.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/diffs/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/build.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/config.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/content.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/gen.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/helpers.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/ops.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/rendering.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/configs/.sqliterc +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/configs/.vimrc +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/depsets/python.toml +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/depsets/system.toml +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/chgrp.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/go.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/man.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/rbenv.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/user.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/uv.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/workdir.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/scripts/install-claude +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/scripts/install-codex +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/scripts/install-pi +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/scripts/run-dbus +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/resources/shift-uid.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/dockerdev/utils.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/git/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/git/magic.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/git/revisions.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/git/shallow.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/git/status.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/home/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/home/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/home/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/home/shadow.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/imgur.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/intellij/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/intellij/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/intellij/ides.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/intellij/open.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/default.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/java/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/java/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/java/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/java/pomgen.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/java/utils.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/java/xml.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/magic/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/magic/find.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/magic/magic.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/magic/styles.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/manifests/_dumping.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/manifests/building.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/manifests/main.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/markdown/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/markdown/incparse.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/markdown/tokens.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/mypy/report.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/names.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pip.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/base.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/blanklines.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/git.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/main.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/precheck/unicode.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/asts/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/asts/parents.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/asts/toplevel.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/asts/visitors.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/classdot.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/attrdoc.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/common.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/epydoc.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/google.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/numpydoc.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/parser.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/docstrings/rest.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/findimports.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/reprs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tokens/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tokens/all.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tokens/tokenizert.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tokens/utils.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tools/fixdocstrings.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py/tools/pipdepup.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/py.typed +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/resources/dockerdev.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/tools/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/tools/aboutdeps.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/tools/pyversions.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/pyproject/versions.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/rs/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/interp.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/formats/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/inject.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/io/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/io/pipelines.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/io/streambufs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/logs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/lib/marshal.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/messages/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/messages/base.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/messages/formats.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/messages/messages.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/messages/parsing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/numerics/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/numerics/formats.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/numerics/numerics.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/numerics/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/consts.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/errors.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/message.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/nuh.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/parsing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/rendering.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/tags.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/irc/protocol/utils.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/analysis.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/config.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/errors.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/generator.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/ir.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/names.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/rendering.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/transforms.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/jsonschema/codegen/typing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/building.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/compression.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/data.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/datarefs.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/dataserver.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/loading.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/media.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/pack/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/pack/packing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/pack/repositories.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/pack/unpacking.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/repositories.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/specs/oci/tars.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tagstrings.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/diff.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/doc.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/docker.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/git/cloning.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/jsonview/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/jsonview/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/jsonview/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/jsonview/resources/jsonview.css +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/jsonview/resources/jsonview.js +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/ocr.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/pawk/README.md +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/pip.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/prof.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/qr.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/shell.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/edit/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/edit/main.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/irc/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/irc/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/irc/app.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/irc/client.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/irc/commands.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/irc/main.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/app.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/styles/layout.tcss +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/utils.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/jtree/widgets.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/markdown/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/markdown/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/apps/markdown/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/console2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/__main__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/_compat.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/cli.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/renderables.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/rendering.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/diff/underlinebar.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/markdown2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/textual/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/textual/dark.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/textual/dump.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/textual/themes.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/rich/trirule.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/actionmenu.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/client.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/previews/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/previews/borders.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/previews/colors.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/previews/colors.tcss +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/previews/easing.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/previews/easing.tcss +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/previews/keys.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/protocol.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/redirect_output.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/renderables.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/server.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/service.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/tools/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/altdevtools/tools/diagnose.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/app2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/autocomplete/LICENSE +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/autocomplete/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/autocomplete/matching.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/autocomplete/paths.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/autocomplete/widget.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/binding2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/clipboard.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/debug/__init__.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/debug/dominfo.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/debug/screen.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/devtools.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/dom2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/drivers2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/logging2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/render2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/screen2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/types.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev/tui/textual/widgets2.py +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev.egg-info/SOURCES.txt +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.28 → omdev-0.0.29}/setup.cfg +0 -0
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.29
|
|
4
4
|
Summary: omdev
|
|
5
5
|
Author: wrmsr
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
7
|
-
Project-URL: source, https://github.com/wrmsr/
|
|
8
|
-
Classifier: Development Status :: 2 - Pre-Alpha
|
|
7
|
+
Project-URL: source, https://github.com/wrmsr/om
|
|
9
8
|
Classifier: Intended Audience :: Developers
|
|
10
9
|
Classifier: Operating System :: OS Independent
|
|
11
10
|
Classifier: Operating System :: POSIX
|
|
@@ -14,10 +13,10 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
14
13
|
Requires-Python: >=3.14
|
|
15
14
|
Description-Content-Type: text/markdown
|
|
16
15
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: omcore==0.0.
|
|
16
|
+
Requires-Dist: omcore==0.0.29
|
|
18
17
|
Provides-Extra: all
|
|
19
|
-
Requires-Dist: ominfra==0.0.
|
|
20
|
-
Requires-Dist: omllm==0.0.
|
|
18
|
+
Requires-Dist: ominfra==0.0.29; extra == "all"
|
|
19
|
+
Requires-Dist: omllm==0.0.29; extra == "all"
|
|
21
20
|
Requires-Dist: black~=26.5; extra == "all"
|
|
22
21
|
Requires-Dist: pycparser~=3.0; extra == "all"
|
|
23
22
|
Requires-Dist: pcpp~=1.30; extra == "all"
|
|
@@ -36,9 +35,9 @@ Requires-Dist: textual~=8.2; extra == "all"
|
|
|
36
35
|
Requires-Dist: textual-dev~=1.8; extra == "all"
|
|
37
36
|
Requires-Dist: textual-speedups~=0.2; extra == "all"
|
|
38
37
|
Provides-Extra: ominfra
|
|
39
|
-
Requires-Dist: ominfra==0.0.
|
|
38
|
+
Requires-Dist: ominfra==0.0.29; extra == "ominfra"
|
|
40
39
|
Provides-Extra: omllm
|
|
41
|
-
Requires-Dist: omllm==0.0.
|
|
40
|
+
Requires-Dist: omllm==0.0.29; extra == "omllm"
|
|
42
41
|
Provides-Extra: black
|
|
43
42
|
Requires-Dist: black~=26.5; extra == "black"
|
|
44
43
|
Provides-Extra: c
|
|
@@ -73,48 +72,46 @@ Development utilities and support code.
|
|
|
73
72
|
|
|
74
73
|
# Notable packages
|
|
75
74
|
|
|
76
|
-
- **[cli](https://github.com/wrmsr/
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
- **[cli](https://github.com/wrmsr/om/blob/master/omdev/cli)** - The codebase's all-in-one CLI. This is not installed as
|
|
76
|
+
an entrypoint / command when this package is itself installed - that is separated into the `omdev-cli` installable
|
|
77
|
+
package so as to not pollute users' bin/ directories when depping this lib for its utility code.
|
|
79
78
|
|
|
80
|
-
- **[amalg](https://github.com/wrmsr/
|
|
79
|
+
- **[amalg](https://github.com/wrmsr/om/blob/master/omdev/amalg)** - The [amalgamator](#amalgamation).
|
|
81
80
|
|
|
82
|
-
- **[pyproject](https://github.com/wrmsr/
|
|
83
|
-
([amalg](https://github.com/wrmsr/
|
|
81
|
+
- **[pyproject](https://github.com/wrmsr/om/blob/master/omdev/pyproject)**
|
|
82
|
+
([amalg](https://github.com/wrmsr/om/blob/master/omdev/scripts/pyproject.py)) - python project management tool.
|
|
84
83
|
wrangles but does not replace tools like venv, pip, setuptools, and uv. does things like sets up venvs, generates
|
|
85
|
-
[`.pkg`](https://github.com/wrmsr/
|
|
84
|
+
[`.pkg`](https://github.com/wrmsr/om/blob/master/.pkg) directories and their `pyproject.toml`'s (from their
|
|
86
85
|
`__about__.py`'s), and packages them. this should grow to eat more and more of the Makefile. as it is amalgamated it
|
|
87
86
|
requires no installation and can just be dropped into other projects / repos.
|
|
88
87
|
|
|
89
|
-
- **[ci](https://github.com/wrmsr/
|
|
90
|
-
([amalg](https://github.com/wrmsr/
|
|
91
|
-
[`compose.yml`](https://github.com/wrmsr/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
- **[ci](https://github.com/wrmsr/om/blob/master/omdev/ci)**
|
|
89
|
+
([amalg](https://github.com/wrmsr/om/blob/master/omdev/scripts/ci.py)) - ci runner. given a
|
|
90
|
+
[`compose.yml`](https://github.com/wrmsr/om/blob/master/docker/compose.yml) and requirements.txt files, takes care of
|
|
91
|
+
building and caching of containers and venvs and execution of required ci commands. detects and [natively
|
|
92
|
+
uses](https://github.com/wrmsr/om/blob/master/omdev/ci/github/api/v2) github-action's caching system. unifies ci
|
|
93
|
+
execution between local dev and github runners.
|
|
95
94
|
|
|
96
|
-
- **[tools.json](https://github.com/wrmsr/
|
|
97
|
-
|
|
98
|
-
[jmespath](https://github.com/wrmsr/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
formats.
|
|
95
|
+
- **[tools.json](https://github.com/wrmsr/om/blob/master/omdev/tools/json)** (cli: `om j`) - a tool for json-like data,
|
|
96
|
+
obviously in the vein of [jq](https://github.com/jqlang/jq) but using the internal
|
|
97
|
+
[jmespath](https://github.com/wrmsr/om/blob/master/omcore/specs/jmespath) engine. supports [true
|
|
98
|
+
streaming](https://github.com/wrmsr/om/blob/master/omcore/formats/json/stream) json input and output, as well as
|
|
99
|
+
[various other](https://github.com/wrmsr/om/blob/master/omdev/tools/json/formats.py) non-streaming input formats.
|
|
102
100
|
|
|
103
|
-
- **[tools.git](https://github.com/wrmsr/
|
|
104
|
-
|
|
101
|
+
- **[tools.git](https://github.com/wrmsr/om/blob/master/omdev/tools/git)** (cli: `om git`) - a tool for various lazy git
|
|
102
|
+
operations, including the one that (poorly) writes all of these commit messages.
|
|
105
103
|
|
|
106
104
|
# Amalgamation
|
|
107
105
|
|
|
108
106
|
Amalgamation is the process of stitching together multiple python source files into a single self-contained python
|
|
109
|
-
script. ['lite'](https://github.com/wrmsr/
|
|
110
|
-
this.
|
|
107
|
+
script. ['lite'](https://github.com/wrmsr/om/blob/master/omcore#lite-code) code is written in a style conducive to this.
|
|
111
108
|
|
|
112
109
|
# Local storage
|
|
113
110
|
|
|
114
111
|
Some of this code, when asked, will store things on the local filesystem. The only directories used (outside of ones
|
|
115
112
|
explicitly specified as command or function arguments) are managed in
|
|
116
|
-
[home.paths](https://github.com/wrmsr/
|
|
113
|
+
[home.paths](https://github.com/wrmsr/om/blob/master/omdev/home/paths.py), and are the following:
|
|
117
114
|
|
|
118
|
-
- `$
|
|
119
|
-
- `$
|
|
120
|
-
|
|
115
|
+
- `$OM_HOME`, default of `~/.om` - persistent things like config and state.
|
|
116
|
+
- `$OM_CACHE`, default of `~/.cache/om` - used for things like the local ci cache and [various
|
|
117
|
+
other](https://github.com/search?q=repo%3Awrmsr%2Fom+%22dcache.%22&type=code) cached data.
|
omdev-0.0.29/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Overview
|
|
2
|
+
|
|
3
|
+
Development utilities and support code.
|
|
4
|
+
|
|
5
|
+
# Notable packages
|
|
6
|
+
|
|
7
|
+
- **[cli](https://github.com/wrmsr/om/blob/master/omdev/cli)** - The codebase's all-in-one CLI. This is not installed as
|
|
8
|
+
an entrypoint / command when this package is itself installed - that is separated into the `omdev-cli` installable
|
|
9
|
+
package so as to not pollute users' bin/ directories when depping this lib for its utility code.
|
|
10
|
+
|
|
11
|
+
- **[amalg](https://github.com/wrmsr/om/blob/master/omdev/amalg)** - The [amalgamator](#amalgamation).
|
|
12
|
+
|
|
13
|
+
- **[pyproject](https://github.com/wrmsr/om/blob/master/omdev/pyproject)**
|
|
14
|
+
([amalg](https://github.com/wrmsr/om/blob/master/omdev/scripts/pyproject.py)) - python project management tool.
|
|
15
|
+
wrangles but does not replace tools like venv, pip, setuptools, and uv. does things like sets up venvs, generates
|
|
16
|
+
[`.pkg`](https://github.com/wrmsr/om/blob/master/.pkg) directories and their `pyproject.toml`'s (from their
|
|
17
|
+
`__about__.py`'s), and packages them. this should grow to eat more and more of the Makefile. as it is amalgamated it
|
|
18
|
+
requires no installation and can just be dropped into other projects / repos.
|
|
19
|
+
|
|
20
|
+
- **[ci](https://github.com/wrmsr/om/blob/master/omdev/ci)**
|
|
21
|
+
([amalg](https://github.com/wrmsr/om/blob/master/omdev/scripts/ci.py)) - ci runner. given a
|
|
22
|
+
[`compose.yml`](https://github.com/wrmsr/om/blob/master/docker/compose.yml) and requirements.txt files, takes care of
|
|
23
|
+
building and caching of containers and venvs and execution of required ci commands. detects and [natively
|
|
24
|
+
uses](https://github.com/wrmsr/om/blob/master/omdev/ci/github/api/v2) github-action's caching system. unifies ci
|
|
25
|
+
execution between local dev and github runners.
|
|
26
|
+
|
|
27
|
+
- **[tools.json](https://github.com/wrmsr/om/blob/master/omdev/tools/json)** (cli: `om j`) - a tool for json-like data,
|
|
28
|
+
obviously in the vein of [jq](https://github.com/jqlang/jq) but using the internal
|
|
29
|
+
[jmespath](https://github.com/wrmsr/om/blob/master/omcore/specs/jmespath) engine. supports [true
|
|
30
|
+
streaming](https://github.com/wrmsr/om/blob/master/omcore/formats/json/stream) json input and output, as well as
|
|
31
|
+
[various other](https://github.com/wrmsr/om/blob/master/omdev/tools/json/formats.py) non-streaming input formats.
|
|
32
|
+
|
|
33
|
+
- **[tools.git](https://github.com/wrmsr/om/blob/master/omdev/tools/git)** (cli: `om git`) - a tool for various lazy git
|
|
34
|
+
operations, including the one that (poorly) writes all of these commit messages.
|
|
35
|
+
|
|
36
|
+
# Amalgamation
|
|
37
|
+
|
|
38
|
+
Amalgamation is the process of stitching together multiple python source files into a single self-contained python
|
|
39
|
+
script. ['lite'](https://github.com/wrmsr/om/blob/master/omcore#lite-code) code is written in a style conducive to this.
|
|
40
|
+
|
|
41
|
+
# Local storage
|
|
42
|
+
|
|
43
|
+
Some of this code, when asked, will store things on the local filesystem. The only directories used (outside of ones
|
|
44
|
+
explicitly specified as command or function arguments) are managed in
|
|
45
|
+
[home.paths](https://github.com/wrmsr/om/blob/master/omdev/home/paths.py), and are the following:
|
|
46
|
+
|
|
47
|
+
- `$OM_HOME`, default of `~/.om` - persistent things like config and state.
|
|
48
|
+
- `$OM_CACHE`, default of `~/.cache/om` - used for things like the local ci cache and [various
|
|
49
|
+
other](https://github.com/search?q=repo%3Awrmsr%2Fom+%22dcache.%22&type=code) cached data.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Overview
|
|
2
|
+
|
|
3
|
+
Development utilities and support code.
|
|
4
|
+
|
|
5
|
+
# Notable packages
|
|
6
|
+
|
|
7
|
+
- **[cli](https://github.com/wrmsr/om/blob/master/omdev/cli)** - The codebase's all-in-one CLI. This is not installed as
|
|
8
|
+
an entrypoint / command when this package is itself installed - that is separated into the `omdev-cli` installable
|
|
9
|
+
package so as to not pollute users' bin/ directories when depping this lib for its utility code.
|
|
10
|
+
|
|
11
|
+
- **[amalg](https://github.com/wrmsr/om/blob/master/omdev/amalg)** - The [amalgamator](#amalgamation).
|
|
12
|
+
|
|
13
|
+
- **[pyproject](https://github.com/wrmsr/om/blob/master/omdev/pyproject)**
|
|
14
|
+
([amalg](https://github.com/wrmsr/om/blob/master/omdev/scripts/pyproject.py)) - python project management tool.
|
|
15
|
+
wrangles but does not replace tools like venv, pip, setuptools, and uv. does things like sets up venvs, generates
|
|
16
|
+
[`.pkg`](https://github.com/wrmsr/om/blob/master/.pkg) directories and their `pyproject.toml`'s (from their
|
|
17
|
+
`__about__.py`'s), and packages them. this should grow to eat more and more of the Makefile. as it is amalgamated it
|
|
18
|
+
requires no installation and can just be dropped into other projects / repos.
|
|
19
|
+
|
|
20
|
+
- **[ci](https://github.com/wrmsr/om/blob/master/omdev/ci)**
|
|
21
|
+
([amalg](https://github.com/wrmsr/om/blob/master/omdev/scripts/ci.py)) - ci runner. given a
|
|
22
|
+
[`compose.yml`](https://github.com/wrmsr/om/blob/master/docker/compose.yml) and requirements.txt files, takes care of
|
|
23
|
+
building and caching of containers and venvs and execution of required ci commands. detects and [natively
|
|
24
|
+
uses](https://github.com/wrmsr/om/blob/master/omdev/ci/github/api/v2) github-action's caching system. unifies ci
|
|
25
|
+
execution between local dev and github runners.
|
|
26
|
+
|
|
27
|
+
- **[tools.json](https://github.com/wrmsr/om/blob/master/omdev/tools/json)** (cli: `om j`) - a tool for json-like data,
|
|
28
|
+
obviously in the vein of [jq](https://github.com/jqlang/jq) but using the internal
|
|
29
|
+
[jmespath](https://github.com/wrmsr/om/blob/master/omcore/specs/jmespath) engine. supports [true
|
|
30
|
+
streaming](https://github.com/wrmsr/om/blob/master/omcore/formats/json/stream) json input and output, as well as
|
|
31
|
+
[various other](https://github.com/wrmsr/om/blob/master/omdev/tools/json/formats.py) non-streaming input formats.
|
|
32
|
+
|
|
33
|
+
- **[tools.git](https://github.com/wrmsr/om/blob/master/omdev/tools/git)** (cli: `om git`) - a tool for various lazy git
|
|
34
|
+
operations, including the one that (poorly) writes all of these commit messages.
|
|
35
|
+
|
|
36
|
+
# Amalgamation
|
|
37
|
+
|
|
38
|
+
Amalgamation is the process of stitching together multiple python source files into a single self-contained python
|
|
39
|
+
script. ['lite'](https://github.com/wrmsr/om/blob/master/omcore#lite-code) code is written in a style conducive to this.
|
|
40
|
+
|
|
41
|
+
# Local storage
|
|
42
|
+
|
|
43
|
+
Some of this code, when asked, will store things on the local filesystem. The only directories used (outside of ones
|
|
44
|
+
explicitly specified as command or function arguments) are managed in
|
|
45
|
+
[home.paths](https://github.com/wrmsr/om/blob/master/omdev/home/paths.py), and are the following:
|
|
46
|
+
|
|
47
|
+
- `$OM_HOME`, default of `~/.om` - persistent things like config and state.
|
|
48
|
+
- `$OM_CACHE`, default of `~/.cache/om` - used for things like the local ci cache and [various
|
|
49
|
+
other](https://github.com/search?q=repo%3Awrmsr%2Fom+%22dcache.%22&type=code) cached data.
|
|
@@ -8,12 +8,12 @@ Inputs:
|
|
|
8
8
|
|
|
9
9
|
==
|
|
10
10
|
|
|
11
|
-
run --cache-dir omdev/ci/tests/cache -e CI=1 omdev/ci/tests/project
|
|
11
|
+
run --cache-dir omdev/ci/tests/cache -e CI=1 omdev/ci/tests/project om-ci pytest tests
|
|
12
12
|
|
|
13
|
-
run --cache-dir omdev/ci/tests/cache --cache-served-docker --always-build -e CI=1 omdev/ci/tests/project
|
|
14
|
-
run --cache-dir omdev/ci/tests/cache --cache-served-docker --always-build --always-pull -e CI=1 omdev/ci/tests/project
|
|
13
|
+
run --cache-dir omdev/ci/tests/cache --cache-served-docker --always-build -e CI=1 omdev/ci/tests/project om-ci pytest tests
|
|
14
|
+
run --cache-dir omdev/ci/tests/cache --cache-served-docker --always-build --always-pull -e CI=1 omdev/ci/tests/project om-ci pytest tests
|
|
15
15
|
|
|
16
|
-
run --cache-dir ~/.cache/
|
|
16
|
+
run --cache-dir ~/.cache/om/ci . om-ci bash
|
|
17
17
|
""" # noqa
|
|
18
18
|
import argparse
|
|
19
19
|
import asyncio
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# ruff: noqa: UP045
|
|
3
3
|
# @om-lite
|
|
4
4
|
# @om-script
|
|
5
|
-
"""curl -LsSf 'https://raw.githubusercontent.com/wrmsr/
|
|
5
|
+
"""curl -LsSf 'https://raw.githubusercontent.com/wrmsr/om/master/omdev/cli/install.py' | python3 -"""
|
|
6
6
|
import abc
|
|
7
7
|
import argparse
|
|
8
8
|
import dataclasses as dc
|
|
@@ -8,7 +8,7 @@ TODO:
|
|
|
8
8
|
- can fast-build new (temp) image w preamble (probably slow and garbagey)
|
|
9
9
|
- launch / manage compose services
|
|
10
10
|
- more cache dirs
|
|
11
|
-
- --mount=type=bind,src="$(pwd)",dst=/
|
|
11
|
+
- --mount=type=bind,src="$(pwd)",dst=/om/pwd
|
|
12
12
|
- build --no-cache / cache bust
|
|
13
13
|
- build args
|
|
14
14
|
- `run --pull=never`, `build --pull=false`
|
|
@@ -22,7 +22,7 @@ if [ -t 1 ] ; then TTY_ENV_ARGS="-e LINES=$(tput lines) -e COLUMNS=$(tput cols)"
|
|
|
22
22
|
|
|
23
23
|
====
|
|
24
24
|
|
|
25
|
-
tag = f'
|
|
25
|
+
tag = f'om-dockerdev--{time.time_ns()}--{os.getpid()}'
|
|
26
26
|
subprocess.check_call(['docker', 'tag', obi, tag])
|
|
27
27
|
try:
|
|
28
28
|
cfg = dc.replace(cfg, base_image=tag) # noqa
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
base_image = 'ubuntu:24.04'
|
|
2
2
|
|
|
3
|
-
user = '
|
|
3
|
+
user = 'om'
|
|
4
4
|
|
|
5
5
|
dep_sets = [
|
|
6
6
|
'system',
|
|
@@ -44,5 +44,5 @@ pyenv_version_keys = [
|
|
|
44
44
|
workdir = '/work'
|
|
45
45
|
|
|
46
46
|
[cache_mounts]
|
|
47
|
-
'pip' = '/
|
|
48
|
-
'uv' = '/
|
|
47
|
+
'pip' = '/om/.cache/pip'
|
|
48
|
+
'uv' = '/om/.cache/uv'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sudo apt install gnupg ca-certificates curl ;
|
|
1
|
+
sudo apt install -y gnupg ca-certificates curl ;
|
|
2
2
|
curl -s 'https://repos.azul.com/azul-repo.key' | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg ;
|
|
3
3
|
echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list ;
|
|
4
4
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
--user=0:0 \
|
|
6
6
|
--env=EXTERNAL_UID=1000 \
|
|
7
7
|
--env=EXTERNAL_GID=1000 \
|
|
8
|
-
--env=INTERNAL_USER=
|
|
8
|
+
--env=INTERNAL_USER=om \
|
|
9
9
|
--rm -it bash
|
|
10
10
|
|
|
11
11
|
====
|
|
@@ -40,7 +40,7 @@ unset INTERNAL_USER
|
|
|
40
40
|
unset INTERNAL_UID
|
|
41
41
|
unset INTERNAL_HOME
|
|
42
42
|
|
|
43
|
-
exec gosu
|
|
43
|
+
exec gosu om bash # "$@"
|
|
44
44
|
"""
|
|
45
45
|
import os.path
|
|
46
46
|
import platform
|
|
@@ -96,7 +96,7 @@ class RunArgs:
|
|
|
96
96
|
extra_args: ta.Sequence[str] | None = None
|
|
97
97
|
|
|
98
98
|
|
|
99
|
-
LABEL_PREFIX = '
|
|
99
|
+
LABEL_PREFIX = 'om.dockerdev'
|
|
100
100
|
|
|
101
101
|
|
|
102
102
|
@dc.dataclass(frozen=True)
|
|
@@ -14,8 +14,8 @@ from omcore.os.environ import EnvVar
|
|
|
14
14
|
##
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
HOME_DIR_ENV_VAR = EnvVar('
|
|
18
|
-
DEFAULT_HOME_DIR = '~/.
|
|
17
|
+
HOME_DIR_ENV_VAR = EnvVar('OM_HOME')
|
|
18
|
+
DEFAULT_HOME_DIR = '~/.om'
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
def get_home_dir() -> str:
|
|
@@ -99,8 +99,8 @@ def get_home_paths() -> HomePaths:
|
|
|
99
99
|
##
|
|
100
100
|
|
|
101
101
|
|
|
102
|
-
CACHE_DIR_ENV_VAR = EnvVar('
|
|
103
|
-
DEFAULT_CACHE_DIR = '~/.cache/
|
|
102
|
+
CACHE_DIR_ENV_VAR = EnvVar('OM_CACHE')
|
|
103
|
+
DEFAULT_CACHE_DIR = '~/.cache/om'
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
def get_cache_dir() -> str:
|
|
@@ -23,7 +23,7 @@ https://github.com/pypa/sampleproject/blob/db5806e0a3204034c51b1c00dde7d5eb3fa25
|
|
|
23
23
|
|
|
24
24
|
https://pip.pypa.io/en/stable/cli/pip_install/#vcs-support
|
|
25
25
|
vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir
|
|
26
|
-
'git+https://github.com/wrmsr/
|
|
26
|
+
'git+https://github.com/wrmsr/om@master#subdirectory=.pip/omcore'
|
|
27
27
|
""" # noqa
|
|
28
28
|
import abc
|
|
29
29
|
import dataclasses as dc
|
|
@@ -90,6 +90,7 @@ class BasePyprojectPackageGenerator(Abstract):
|
|
|
90
90
|
|
|
91
91
|
_GIT_IGNORE: ta.Sequence[str] = [
|
|
92
92
|
'/*.egg-info/',
|
|
93
|
+
'/build',
|
|
93
94
|
'/dist',
|
|
94
95
|
]
|
|
95
96
|
|
|
@@ -357,6 +358,7 @@ class PyprojectPackageGenerator(BasePyprojectPackageGenerator):
|
|
|
357
358
|
|
|
358
359
|
for k in [
|
|
359
360
|
'cext',
|
|
361
|
+
'mypyc',
|
|
360
362
|
'rs',
|
|
361
363
|
]:
|
|
362
364
|
st.pop(k, None)
|
|
@@ -441,6 +443,14 @@ class PyprojectPackageGenerator(BasePyprojectPackageGenerator):
|
|
|
441
443
|
pkg_suffix='-cext',
|
|
442
444
|
))
|
|
443
445
|
|
|
446
|
+
# FIXME:
|
|
447
|
+
# if self.build_specs().setuptools.get('mypyc'):
|
|
448
|
+
# out.append(_PyprojectMypycPackageGenerator(
|
|
449
|
+
# self._dir_name,
|
|
450
|
+
# self._pkgs_root,
|
|
451
|
+
# pkg_suffix='-mypyc',
|
|
452
|
+
# ))
|
|
453
|
+
|
|
444
454
|
if self.build_specs().setuptools.get('rs'):
|
|
445
455
|
out.append(_PyprojectRsPackageGenerator(
|
|
446
456
|
self._dir_name,
|
|
@@ -485,6 +495,7 @@ class _PyprojectExtensionPackageGenerator(BasePyprojectPackageGenerator, Abstrac
|
|
|
485
495
|
|
|
486
496
|
for k in [
|
|
487
497
|
'cext',
|
|
498
|
+
'mypyc',
|
|
488
499
|
'rs',
|
|
489
500
|
|
|
490
501
|
'find_packages',
|
|
@@ -589,6 +600,98 @@ class _PyprojectCextPackageGenerator(_PyprojectExtensionPackageGenerator):
|
|
|
589
600
|
)
|
|
590
601
|
|
|
591
602
|
|
|
603
|
+
class _PyprojectMypycPackageGenerator(_PyprojectExtensionPackageGenerator):
|
|
604
|
+
@cached_nullary
|
|
605
|
+
def find_mypyc_dirs(self) -> ta.Sequence[str]:
|
|
606
|
+
return sorted(
|
|
607
|
+
dp
|
|
608
|
+
for dp, dns, fns in os.walk(self._dir_name)
|
|
609
|
+
for fn in fns
|
|
610
|
+
if fn == '.om-mypyc-ext'
|
|
611
|
+
)
|
|
612
|
+
|
|
613
|
+
#
|
|
614
|
+
|
|
615
|
+
@cached_nullary
|
|
616
|
+
def file_contents(self) -> _PyprojectExtensionPackageGenerator.FileContents:
|
|
617
|
+
prj = self._build_project_dict()
|
|
618
|
+
st = self._build_setuptools_dict()
|
|
619
|
+
|
|
620
|
+
#
|
|
621
|
+
|
|
622
|
+
prj['dependencies'] = [
|
|
623
|
+
*prj.get('dependencies', []),
|
|
624
|
+
'librt',
|
|
625
|
+
]
|
|
626
|
+
|
|
627
|
+
#
|
|
628
|
+
|
|
629
|
+
pyp_dct = {}
|
|
630
|
+
|
|
631
|
+
pyp_dct['build-system'] = {
|
|
632
|
+
'requires': [
|
|
633
|
+
'setuptools',
|
|
634
|
+
'mypy',
|
|
635
|
+
f'{prj["name"]} == {prj["version"]}',
|
|
636
|
+
],
|
|
637
|
+
'build-backend': 'setuptools.build_meta',
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
pyp_dct['project'] = prj
|
|
641
|
+
pyp_dct['tool.setuptools'] = st
|
|
642
|
+
|
|
643
|
+
#
|
|
644
|
+
|
|
645
|
+
ext_dirs = sorted(self.find_mypyc_dirs())
|
|
646
|
+
|
|
647
|
+
# pyp_dct['tool.setuptools.packages.find'] = {
|
|
648
|
+
# 'include': [
|
|
649
|
+
# ext_dir.replace(os.sep, '.')
|
|
650
|
+
# for ext_dir in ext_dirs
|
|
651
|
+
# ],
|
|
652
|
+
# }
|
|
653
|
+
|
|
654
|
+
#
|
|
655
|
+
|
|
656
|
+
ext_lines: list = []
|
|
657
|
+
|
|
658
|
+
for ext_dir in ext_dirs: # noqa
|
|
659
|
+
ext_files = [
|
|
660
|
+
fp
|
|
661
|
+
for fn in sorted(os.listdir(ext_dir))
|
|
662
|
+
if os.path.isfile(fp := os.path.join(ext_dir, fn)) and
|
|
663
|
+
fp.endswith('.py')
|
|
664
|
+
]
|
|
665
|
+
ext_lines.extend([
|
|
666
|
+
'[',
|
|
667
|
+
*[
|
|
668
|
+
f' {fp!r},'
|
|
669
|
+
for fp in ext_files
|
|
670
|
+
],
|
|
671
|
+
'],',
|
|
672
|
+
])
|
|
673
|
+
|
|
674
|
+
src = '\n'.join([
|
|
675
|
+
'import mypyc.build as mcb',
|
|
676
|
+
'import setuptools as st',
|
|
677
|
+
'',
|
|
678
|
+
'',
|
|
679
|
+
'st.setup(',
|
|
680
|
+
' ext_modules=mcb.mypycify(',
|
|
681
|
+
*[' ' + l for l in ext_lines],
|
|
682
|
+
' ),',
|
|
683
|
+
')',
|
|
684
|
+
'',
|
|
685
|
+
])
|
|
686
|
+
|
|
687
|
+
#
|
|
688
|
+
|
|
689
|
+
return self.FileContents(
|
|
690
|
+
pyp_dct,
|
|
691
|
+
src,
|
|
692
|
+
)
|
|
693
|
+
|
|
694
|
+
|
|
592
695
|
class _PyprojectRsPackageGenerator(_PyprojectExtensionPackageGenerator):
|
|
593
696
|
@cached_nullary
|
|
594
697
|
def find_rs_dirs(self) -> ta.Sequence[str]:
|
|
@@ -737,6 +840,7 @@ class _PyprojectCliPackageGenerator(BasePyprojectPackageGenerator):
|
|
|
737
840
|
|
|
738
841
|
for k in [
|
|
739
842
|
'cext',
|
|
843
|
+
'mypyc',
|
|
740
844
|
'rs',
|
|
741
845
|
|
|
742
846
|
'find_packages',
|