omdev 0.0.0.dev304__tar.gz → 0.0.0.dev306__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.0.dev304/omdev.egg-info → omdev-0.0.0.dev306}/PKG-INFO +2 -2
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/.manifests.json +12 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/data/specs.py +1 -1
- omdev-0.0.0.dev306/omdev/cmdlog/__init__.py +7 -0
- omdev-0.0.0.dev306/omdev/cmdlog/__main__.py +11 -0
- omdev-0.0.0.dev306/omdev/cmdlog/_cmdlog.py +73 -0
- omdev-0.0.0.dev306/omdev/cmdlog/cli.py +67 -0
- omdev-0.0.0.dev306/omdev/cmdlog/cmdlog.py +86 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306/omdev.egg-info}/PKG-INFO +2 -2
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev.egg-info/SOURCES.txt +5 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev.egg-info/requires.txt +1 -1
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/pyproject.toml +2 -2
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/LICENSE +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/README.md +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/__about__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/gen.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/imports.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/main.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/manifests.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/resources.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/srcfiles.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/strip.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/types.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/amalg/typing.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/antlr/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/antlr/consts.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/antlr/gen.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/compose.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/clipboard/clipboard.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/clipboard/darwin_cf.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/clipboard/linux_x11.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/manifests/build.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/apps/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/apps/ncdu.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/LICENSE +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/border.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/markdown.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/parser.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/styles.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/tags.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/ptk/markdown/utils.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/classdot.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/findimports.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/scripts/execstat.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/cexts.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/resources/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/resources/docker-dev.sh +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/scripts/ci.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/scripts/interp.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/scripts/pyproject.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tokens/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tokens/all.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tokens/utils.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/diff.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/intellij.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev304 → omdev-0.0.0.dev306}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev306
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -12,7 +12,7 @@ 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: omlish==0.0.0.
|
15
|
+
Requires-Dist: omlish==0.0.0.dev306
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -47,6 +47,18 @@
|
|
47
47
|
}
|
48
48
|
}
|
49
49
|
},
|
50
|
+
{
|
51
|
+
"module": ".cmdlog.__main__",
|
52
|
+
"attr": "_CLI_MODULE",
|
53
|
+
"file": "omdev/cmdlog/__main__.py",
|
54
|
+
"line": 4,
|
55
|
+
"value": {
|
56
|
+
"$.cli.types.CliModule": {
|
57
|
+
"cmd_name": "cmdlog",
|
58
|
+
"mod_name": "omdev.cmdlog.__main__"
|
59
|
+
}
|
60
|
+
}
|
61
|
+
},
|
50
62
|
{
|
51
63
|
"module": ".imgur",
|
52
64
|
"attr": "_FOO_CLI_MODULE",
|
@@ -63,7 +63,7 @@ class UrlSpec(Spec):
|
|
63
63
|
|
64
64
|
_: dc.KW_ONLY
|
65
65
|
|
66
|
-
headers: ta.Mapping[str, str] | None = dc.field(default=None) | msh.
|
66
|
+
headers: ta.Mapping[str, str] | None = dc.field(default=None) | msh.with_field_metadata(omit_if=operator.not_)
|
67
67
|
|
68
68
|
@cached.property
|
69
69
|
def file_name_or_default(self) -> str:
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# NOTE: not '@omlish-lite' due to root level __init__ imports, but effectively lite.
|
2
|
+
import dataclasses as dc
|
3
|
+
import fcntl
|
4
|
+
import json
|
5
|
+
import os.path
|
6
|
+
import shutil
|
7
|
+
import sys
|
8
|
+
import time
|
9
|
+
import typing as ta
|
10
|
+
|
11
|
+
|
12
|
+
##
|
13
|
+
|
14
|
+
|
15
|
+
@dc.dataclass(frozen=True)
|
16
|
+
class CmdLogEntry:
|
17
|
+
cmd: str
|
18
|
+
pid: int
|
19
|
+
ppid: int
|
20
|
+
time: float
|
21
|
+
cwd: str
|
22
|
+
|
23
|
+
argv: ta.Sequence[str]
|
24
|
+
env: ta.Mapping[str, str]
|
25
|
+
|
26
|
+
|
27
|
+
##
|
28
|
+
|
29
|
+
|
30
|
+
LOG_FILE_ENV_VAR: str = '_CMD_LOG_FILE'
|
31
|
+
|
32
|
+
|
33
|
+
def _main() -> None:
|
34
|
+
cmd = os.path.basename(sys.argv[0])
|
35
|
+
|
36
|
+
entry = CmdLogEntry(
|
37
|
+
cmd=cmd,
|
38
|
+
pid=os.getpid(),
|
39
|
+
ppid=os.getppid(),
|
40
|
+
time=time.time(),
|
41
|
+
cwd=os.getcwd(),
|
42
|
+
|
43
|
+
argv=sys.argv,
|
44
|
+
env=dict(os.environ),
|
45
|
+
)
|
46
|
+
|
47
|
+
entry_json = json.dumps(dc.asdict(entry), separators=(',', ':'), indent=None)
|
48
|
+
|
49
|
+
log_file = os.environ[LOG_FILE_ENV_VAR]
|
50
|
+
fd = os.open(log_file, os.O_WRONLY | os.O_CREAT | os.O_APPEND)
|
51
|
+
fcntl.flock(fd, fcntl.LOCK_EX)
|
52
|
+
os.write(fd, entry_json.encode() + b'\n')
|
53
|
+
os.close(fd)
|
54
|
+
|
55
|
+
u_ap = None # type: str | None
|
56
|
+
self_ap = os.path.abspath(os.path.realpath(__file__))
|
57
|
+
for p in os.environ.get('PATH', '').split(os.pathsep):
|
58
|
+
if (p_cmd := shutil.which(cmd, path=p)) is None:
|
59
|
+
continue
|
60
|
+
p_ap = os.path.abspath(os.path.realpath(p_cmd))
|
61
|
+
if p_ap == self_ap:
|
62
|
+
continue
|
63
|
+
u_ap = p_ap
|
64
|
+
break
|
65
|
+
|
66
|
+
if u_ap is None:
|
67
|
+
raise FileNotFoundError(cmd)
|
68
|
+
|
69
|
+
os.execl(u_ap, cmd, *sys.argv[1:])
|
70
|
+
|
71
|
+
|
72
|
+
if __name__ == '__main__':
|
73
|
+
_main()
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import argparse
|
2
|
+
import os.path
|
3
|
+
import subprocess
|
4
|
+
import sys
|
5
|
+
import typing as ta
|
6
|
+
|
7
|
+
from omlish.formats import json
|
8
|
+
|
9
|
+
from .cmdlog import CmdLog
|
10
|
+
|
11
|
+
|
12
|
+
##
|
13
|
+
|
14
|
+
|
15
|
+
DEFAULT_PROXIED_CMDS: ta.Collection[str] = [
|
16
|
+
'ar',
|
17
|
+
'as',
|
18
|
+
'clang',
|
19
|
+
'clang++',
|
20
|
+
'g++',
|
21
|
+
'gcc',
|
22
|
+
'ld',
|
23
|
+
'lld',
|
24
|
+
'make',
|
25
|
+
]
|
26
|
+
|
27
|
+
|
28
|
+
def _main() -> None:
|
29
|
+
parser = argparse.ArgumentParser()
|
30
|
+
parser.add_argument('cmd', nargs=argparse.REMAINDER)
|
31
|
+
parser.add_argument('-l', '--log-file')
|
32
|
+
parser.add_argument('-P', '--print', action='store_true')
|
33
|
+
parser.add_argument('-p', '--proxy', action='append')
|
34
|
+
args = parser.parse_args()
|
35
|
+
|
36
|
+
if not args.cmd:
|
37
|
+
parser.error('Must specify cmd')
|
38
|
+
raise RuntimeError # noqa
|
39
|
+
|
40
|
+
exec_cmd, *exec_argv = args.cmd
|
41
|
+
|
42
|
+
#
|
43
|
+
|
44
|
+
cl = CmdLog(
|
45
|
+
args.proxy if args.proxy is not None else DEFAULT_PROXIED_CMDS,
|
46
|
+
log_file=os.path.abspath(args.log_file) if args.log_file is not None else None,
|
47
|
+
)
|
48
|
+
cl.exe()
|
49
|
+
cl.proxy_cmds()
|
50
|
+
|
51
|
+
rc = subprocess.call(
|
52
|
+
[exec_cmd, *exec_argv],
|
53
|
+
env=cl.child_env(),
|
54
|
+
)
|
55
|
+
|
56
|
+
if args.log_file is None or args.print:
|
57
|
+
if os.path.exists(cl.log_file()):
|
58
|
+
with open(cl.log_file()) as f:
|
59
|
+
log_lines = f.readlines()
|
60
|
+
entry_dcts = [json.loads(sl) for l in log_lines if (sl := l.strip())]
|
61
|
+
print(json.dumps_compact(entry_dcts))
|
62
|
+
|
63
|
+
sys.exit(rc)
|
64
|
+
|
65
|
+
|
66
|
+
if __name__ == '__main__':
|
67
|
+
_main()
|
@@ -0,0 +1,86 @@
|
|
1
|
+
import inspect
|
2
|
+
import os.path
|
3
|
+
import sys
|
4
|
+
import tempfile
|
5
|
+
import typing as ta
|
6
|
+
|
7
|
+
from omlish import cached
|
8
|
+
from omlish import check
|
9
|
+
|
10
|
+
from . import _cmdlog
|
11
|
+
|
12
|
+
|
13
|
+
##
|
14
|
+
|
15
|
+
|
16
|
+
class CmdLog:
|
17
|
+
def __init__(
|
18
|
+
self,
|
19
|
+
proxied_cmds: ta.Iterable[str],
|
20
|
+
*,
|
21
|
+
tmp_dir: str | None = None,
|
22
|
+
log_file: str | None = None,
|
23
|
+
exe_name: str | None = None,
|
24
|
+
) -> None:
|
25
|
+
super().__init__()
|
26
|
+
|
27
|
+
self._proxied_cmds = {
|
28
|
+
check.non_empty_str(c)
|
29
|
+
for c in check.not_isinstance(proxied_cmds, str)
|
30
|
+
}
|
31
|
+
|
32
|
+
self._given_tmp_dir = tmp_dir
|
33
|
+
self._given_log_file = log_file
|
34
|
+
self._exe_name = check.non_empty_str(exe_name) if exe_name is not None else self.DEFAULT_EXE_NAME
|
35
|
+
|
36
|
+
#
|
37
|
+
|
38
|
+
@cached.function
|
39
|
+
def tmp_dir(self) -> str:
|
40
|
+
if (gtd := self._given_tmp_dir) is not None:
|
41
|
+
return gtd
|
42
|
+
return tempfile.mkdtemp()
|
43
|
+
|
44
|
+
#
|
45
|
+
|
46
|
+
DEFAULT_LOG_FILE_NAME: ta.ClassVar[str] = '_cmdlog.jsonl'
|
47
|
+
|
48
|
+
@cached.function
|
49
|
+
def log_file(self) -> str:
|
50
|
+
if (glf := self._given_log_file) is not None:
|
51
|
+
return glf
|
52
|
+
return os.path.join(self.tmp_dir(), self.DEFAULT_LOG_FILE_NAME)
|
53
|
+
|
54
|
+
#
|
55
|
+
|
56
|
+
DEFAULT_EXE_NAME: ta.ClassVar[str] = '_cmdlog.py'
|
57
|
+
|
58
|
+
@cached.function
|
59
|
+
def exe(self) -> str:
|
60
|
+
src = '\n'.join([
|
61
|
+
f'#!{os.path.abspath(sys.executable)}',
|
62
|
+
inspect.getsource(_cmdlog),
|
63
|
+
])
|
64
|
+
|
65
|
+
exe = os.path.join(self.tmp_dir(), self._exe_name)
|
66
|
+
|
67
|
+
with open(exe, 'w') as f:
|
68
|
+
f.write(src)
|
69
|
+
|
70
|
+
os.chmod(exe, 0o550) # noqa
|
71
|
+
|
72
|
+
return exe
|
73
|
+
|
74
|
+
#
|
75
|
+
|
76
|
+
def proxy_cmds(self) -> None:
|
77
|
+
for p_c in self._proxied_cmds:
|
78
|
+
os.symlink(self._exe_name, os.path.join(self.tmp_dir(), p_c))
|
79
|
+
|
80
|
+
#
|
81
|
+
|
82
|
+
def child_env(self) -> ta.Mapping[str, str]:
|
83
|
+
return {
|
84
|
+
_cmdlog.LOG_FILE_ENV_VAR: self.log_file(),
|
85
|
+
'PATH': os.pathsep.join([self.tmp_dir(), os.environ['PATH']]),
|
86
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev306
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -12,7 +12,7 @@ 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: omlish==0.0.0.
|
15
|
+
Requires-Dist: omlish==0.0.0.dev306
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -124,6 +124,11 @@ omdev/clipboard/__init__.py
|
|
124
124
|
omdev/clipboard/clipboard.py
|
125
125
|
omdev/clipboard/darwin_cf.py
|
126
126
|
omdev/clipboard/linux_x11.py
|
127
|
+
omdev/cmdlog/__init__.py
|
128
|
+
omdev/cmdlog/__main__.py
|
129
|
+
omdev/cmdlog/_cmdlog.py
|
130
|
+
omdev/cmdlog/cli.py
|
131
|
+
omdev/cmdlog/cmdlog.py
|
127
132
|
omdev/dataserver/__init__.py
|
128
133
|
omdev/dataserver/handlers.py
|
129
134
|
omdev/dataserver/http.py
|
@@ -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.dev306'
|
16
16
|
classifiers = [
|
17
17
|
'License :: OSI Approved :: BSD License',
|
18
18
|
'Development Status :: 2 - Pre-Alpha',
|
@@ -22,7 +22,7 @@ classifiers = [
|
|
22
22
|
]
|
23
23
|
description = 'omdev'
|
24
24
|
dependencies = [
|
25
|
-
'omlish == 0.0.0.
|
25
|
+
'omlish == 0.0.0.dev306',
|
26
26
|
]
|
27
27
|
|
28
28
|
[project.optional-dependencies]
|
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
|