omdev 0.0.0.dev429__tar.gz → 0.0.0.dev430__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.dev429/omdev.egg-info → omdev-0.0.0.dev430}/PKG-INFO +2 -2
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/scripts/ci.py +67 -31
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/scripts/interp.py +47 -13
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/scripts/pyproject.py +67 -31
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430/omdev.egg-info}/PKG-INFO +2 -2
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev.egg-info/requires.txt +1 -1
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/pyproject.toml +2 -2
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/LICENSE +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/README.md +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/.omlish-manifests.json +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/__about__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/cli/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/cli/main.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/gen.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/imports.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/manifests.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/resources.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/srcfiles.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/strip.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/types.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/gen/typing.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/amalg/sources.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/darwin/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/darwin/aps.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/darwin/ax.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/darwin/cf.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/darwin/cg.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/linux/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/capi/linux/x11.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cc/srclangs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/compose.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/clipboard/clipboard.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/clipboard/darwin_cf.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/clipboard/linux_x11.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cmdlog/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cmdlog/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cmdlog/_cmdlog.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cmdlog/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/cmdlog/cmdlog.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataclasses/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataclasses/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataclasses/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataclasses/codegen.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/intellij/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/intellij/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/intellij/ides.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/intellij/open.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/manifests/_dumping.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/manifests/building.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/mypy/report.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/precheck/unicode.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/apps/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/apps/ncdu.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/confirm.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/LICENSE +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/border.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/markdown.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/parser.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/styles.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/tags.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/ptk/markdown/utils.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/classdot.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/LICENSE +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/attrdoc.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/common.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/epydoc.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/google.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/numpydoc.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/parser.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/docstrings/rest.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/findimports.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/scripts/execstat.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/cexts.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/resources/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/resources/docker-dev.sh +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tokens/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tokens/all.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tokens/utils.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/diff.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/git/cloning.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/jsonview/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/jsonview/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/jsonview/cli.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/jsonview/resources/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/jsonview/resources/jsonview.css +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/jsonview/resources/jsonview.js +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/shell.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev.egg-info/SOURCES.txt +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev429 → omdev-0.0.0.dev430}/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.dev430
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License-Expression: BSD-3-Clause
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Python: >=3.13
|
15
15
|
Description-Content-Type: text/markdown
|
16
16
|
License-File: LICENSE
|
17
|
-
Requires-Dist: omlish==0.0.0.
|
17
|
+
Requires-Dist: omlish==0.0.0.dev430
|
18
18
|
Provides-Extra: all
|
19
19
|
Requires-Dist: black~=25.1; extra == "all"
|
20
20
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -1833,8 +1833,8 @@ class LoggingSourceFileInfo(ta.NamedTuple):
|
|
1833
1833
|
return None
|
1834
1834
|
|
1835
1835
|
return cls(
|
1836
|
-
file_name,
|
1837
|
-
module,
|
1836
|
+
file_name=file_name,
|
1837
|
+
module=module,
|
1838
1838
|
)
|
1839
1839
|
|
1840
1840
|
|
@@ -1851,9 +1851,9 @@ class LoggingThreadInfo(ta.NamedTuple):
|
|
1851
1851
|
@classmethod
|
1852
1852
|
def build(cls) -> 'LoggingThreadInfo':
|
1853
1853
|
return cls(
|
1854
|
-
threading.get_ident(),
|
1855
|
-
threading.get_native_id() if hasattr(threading, 'get_native_id') else None,
|
1856
|
-
threading.current_thread().name,
|
1854
|
+
ident=threading.get_ident(),
|
1855
|
+
native_id=threading.get_native_id() if hasattr(threading, 'get_native_id') else None,
|
1856
|
+
name=threading.current_thread().name,
|
1857
1857
|
)
|
1858
1858
|
|
1859
1859
|
|
@@ -1868,7 +1868,7 @@ class LoggingProcessInfo(ta.NamedTuple):
|
|
1868
1868
|
@classmethod
|
1869
1869
|
def build(cls) -> 'LoggingProcessInfo':
|
1870
1870
|
return cls(
|
1871
|
-
os.getpid(),
|
1871
|
+
pid=os.getpid(),
|
1872
1872
|
)
|
1873
1873
|
|
1874
1874
|
|
@@ -1887,7 +1887,7 @@ class LoggingMultiprocessingInfo(ta.NamedTuple):
|
|
1887
1887
|
return None
|
1888
1888
|
|
1889
1889
|
return cls(
|
1890
|
-
mp.current_process().name,
|
1890
|
+
process_name=mp.current_process().name,
|
1891
1891
|
)
|
1892
1892
|
|
1893
1893
|
|
@@ -1914,7 +1914,7 @@ class LoggingAsyncioTaskInfo(ta.NamedTuple):
|
|
1914
1914
|
return None
|
1915
1915
|
|
1916
1916
|
return cls(
|
1917
|
-
task.get_name(), # Always non-None
|
1917
|
+
name=task.get_name(), # Always non-None
|
1918
1918
|
)
|
1919
1919
|
|
1920
1920
|
|
@@ -1937,36 +1937,66 @@ class NamedLogLevel(int):
|
|
1937
1937
|
|
1938
1938
|
#
|
1939
1939
|
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1940
|
+
_CACHE: ta.ClassVar[ta.MutableMapping[int, 'NamedLogLevel']] = {}
|
1941
|
+
|
1942
|
+
@ta.overload
|
1943
|
+
def __new__(cls, name: str, offset: int = 0, /) -> 'NamedLogLevel':
|
1944
|
+
...
|
1945
|
+
|
1946
|
+
@ta.overload
|
1947
|
+
def __new__(cls, i: int, /) -> 'NamedLogLevel':
|
1948
|
+
...
|
1949
|
+
|
1950
|
+
def __new__(cls, x, offset=0, /):
|
1951
|
+
if isinstance(x, str):
|
1952
|
+
return cls(cls._INTS_BY_NAME[x.upper()] + offset)
|
1953
|
+
elif not offset and (c := cls._CACHE.get(x)) is not None:
|
1954
|
+
return c
|
1955
|
+
else:
|
1956
|
+
return super().__new__(cls, x + offset)
|
1943
1957
|
|
1944
|
-
|
1958
|
+
#
|
1959
|
+
|
1960
|
+
_name_and_offset: ta.Tuple[str, int]
|
1945
1961
|
|
1946
1962
|
@property
|
1947
|
-
def
|
1963
|
+
def name_and_offset(self) -> ta.Tuple[str, int]:
|
1948
1964
|
try:
|
1949
|
-
return self.
|
1965
|
+
return self._name_and_offset
|
1950
1966
|
except AttributeError:
|
1951
1967
|
pass
|
1952
1968
|
|
1953
|
-
if (n := self.
|
1969
|
+
if (n := self._NAMES_BY_INT.get(self)) is not None:
|
1970
|
+
t = (n, 0)
|
1971
|
+
else:
|
1954
1972
|
for n, i in self._NAME_INT_PAIRS: # noqa
|
1955
1973
|
if self >= i:
|
1974
|
+
t = (n, (self - i))
|
1956
1975
|
break
|
1957
1976
|
else:
|
1958
|
-
|
1977
|
+
t = ('NOTSET', int(self))
|
1978
|
+
|
1979
|
+
self._name_and_offset = t
|
1980
|
+
return t
|
1959
1981
|
|
1960
|
-
|
1982
|
+
@property
|
1983
|
+
def exact_name(self) -> ta.Optional[str]:
|
1984
|
+
n, o = self.name_and_offset
|
1985
|
+
return n if not o else None
|
1986
|
+
|
1987
|
+
@property
|
1988
|
+
def effective_name(self) -> str:
|
1989
|
+
n, _ = self.name_and_offset
|
1961
1990
|
return n
|
1962
1991
|
|
1963
1992
|
#
|
1964
1993
|
|
1965
|
-
def __repr__(self) -> str:
|
1966
|
-
return f'{self.__class__.__name__}({int(self)})'
|
1967
|
-
|
1968
1994
|
def __str__(self) -> str:
|
1969
|
-
return self.exact_name or f'{self.effective_name
|
1995
|
+
return self.exact_name or f'{self.effective_name}{int(self):+}'
|
1996
|
+
|
1997
|
+
def __repr__(self) -> str:
|
1998
|
+
n, o = self.name_and_offset
|
1999
|
+
return f'{self.__class__.__name__}({n!r}{f", {int(o)}" if o else ""})'
|
1970
2000
|
|
1971
2001
|
#
|
1972
2002
|
|
@@ -1986,6 +2016,9 @@ NamedLogLevel.DEBUG = NamedLogLevel(logging.DEBUG)
|
|
1986
2016
|
NamedLogLevel.NOTSET = NamedLogLevel(logging.NOTSET)
|
1987
2017
|
|
1988
2018
|
|
2019
|
+
NamedLogLevel._CACHE.update({i: NamedLogLevel(i) for i in NamedLogLevel._NAMES_BY_INT}) # noqa
|
2020
|
+
|
2021
|
+
|
1989
2022
|
########################################
|
1990
2023
|
# ../../../omlish/logs/std/filters.py
|
1991
2024
|
|
@@ -5008,10 +5041,10 @@ class LoggingCaller(ta.NamedTuple):
|
|
5008
5041
|
sinfo = sinfo[:-1]
|
5009
5042
|
|
5010
5043
|
return cls(
|
5011
|
-
f.f_code.co_filename,
|
5012
|
-
f.f_lineno or 0,
|
5013
|
-
f.f_code.co_name,
|
5014
|
-
sinfo,
|
5044
|
+
file_path=f.f_code.co_filename,
|
5045
|
+
line_no=f.f_lineno or 0,
|
5046
|
+
name=f.f_code.co_name,
|
5047
|
+
stack_info=sinfo,
|
5015
5048
|
)
|
5016
5049
|
|
5017
5050
|
|
@@ -5022,6 +5055,7 @@ class LoggingCaller(ta.NamedTuple):
|
|
5022
5055
|
##
|
5023
5056
|
|
5024
5057
|
|
5058
|
+
@ta.runtime_checkable
|
5025
5059
|
class LoggerLike(ta.Protocol):
|
5026
5060
|
"""Satisfied by both our Logger and stdlib logging.Logger."""
|
5027
5061
|
|
@@ -5160,9 +5194,9 @@ class LoggingTimeFields(ta.NamedTuple):
|
|
5160
5194
|
relative_created = (time_ns - start_time_ns) / 1e6
|
5161
5195
|
|
5162
5196
|
return cls(
|
5163
|
-
created,
|
5164
|
-
msecs,
|
5165
|
-
relative_created,
|
5197
|
+
created=created,
|
5198
|
+
msecs=msecs,
|
5199
|
+
relative_created=relative_created,
|
5166
5200
|
)
|
5167
5201
|
|
5168
5202
|
|
@@ -9436,7 +9470,6 @@ class CoroHttpServer:
|
|
9436
9470
|
|
9437
9471
|
|
9438
9472
|
class AnyLogger(Abstract, ta.Generic[T]):
|
9439
|
-
@ta.final
|
9440
9473
|
def is_enabled_for(self, level: LogLevel) -> bool:
|
9441
9474
|
return level >= self.get_effective_level()
|
9442
9475
|
|
@@ -9635,7 +9668,7 @@ class AsyncLogger(AnyLogger[ta.Awaitable[None]], Abstract):
|
|
9635
9668
|
class AnyNopLogger(AnyLogger[T], Abstract):
|
9636
9669
|
@ta.final
|
9637
9670
|
def get_effective_level(self) -> LogLevel:
|
9638
|
-
return 999
|
9671
|
+
return -999
|
9639
9672
|
|
9640
9673
|
|
9641
9674
|
@ta.final
|
@@ -11138,7 +11171,7 @@ class CoroHttpServerSocketHandler(SocketHandler_):
|
|
11138
11171
|
|
11139
11172
|
|
11140
11173
|
########################################
|
11141
|
-
# ../../../omlish/logs/std/
|
11174
|
+
# ../../../omlish/logs/std/loggers.py
|
11142
11175
|
|
11143
11176
|
|
11144
11177
|
##
|
@@ -11154,6 +11187,9 @@ class StdLogger(Logger):
|
|
11154
11187
|
def std(self) -> logging.Logger:
|
11155
11188
|
return self._std
|
11156
11189
|
|
11190
|
+
def is_enabled_for(self, level: LogLevel) -> bool:
|
11191
|
+
return self._std.isEnabledFor(level)
|
11192
|
+
|
11157
11193
|
def get_effective_level(self) -> LogLevel:
|
11158
11194
|
return self._std.getEffectiveLevel()
|
11159
11195
|
|
@@ -1407,36 +1407,66 @@ class NamedLogLevel(int):
|
|
1407
1407
|
|
1408
1408
|
#
|
1409
1409
|
|
1410
|
-
|
1411
|
-
|
1412
|
-
|
1410
|
+
_CACHE: ta.ClassVar[ta.MutableMapping[int, 'NamedLogLevel']] = {}
|
1411
|
+
|
1412
|
+
@ta.overload
|
1413
|
+
def __new__(cls, name: str, offset: int = 0, /) -> 'NamedLogLevel':
|
1414
|
+
...
|
1415
|
+
|
1416
|
+
@ta.overload
|
1417
|
+
def __new__(cls, i: int, /) -> 'NamedLogLevel':
|
1418
|
+
...
|
1419
|
+
|
1420
|
+
def __new__(cls, x, offset=0, /):
|
1421
|
+
if isinstance(x, str):
|
1422
|
+
return cls(cls._INTS_BY_NAME[x.upper()] + offset)
|
1423
|
+
elif not offset and (c := cls._CACHE.get(x)) is not None:
|
1424
|
+
return c
|
1425
|
+
else:
|
1426
|
+
return super().__new__(cls, x + offset)
|
1427
|
+
|
1428
|
+
#
|
1413
1429
|
|
1414
|
-
|
1430
|
+
_name_and_offset: ta.Tuple[str, int]
|
1415
1431
|
|
1416
1432
|
@property
|
1417
|
-
def
|
1433
|
+
def name_and_offset(self) -> ta.Tuple[str, int]:
|
1418
1434
|
try:
|
1419
|
-
return self.
|
1435
|
+
return self._name_and_offset
|
1420
1436
|
except AttributeError:
|
1421
1437
|
pass
|
1422
1438
|
|
1423
|
-
if (n := self.
|
1439
|
+
if (n := self._NAMES_BY_INT.get(self)) is not None:
|
1440
|
+
t = (n, 0)
|
1441
|
+
else:
|
1424
1442
|
for n, i in self._NAME_INT_PAIRS: # noqa
|
1425
1443
|
if self >= i:
|
1444
|
+
t = (n, (self - i))
|
1426
1445
|
break
|
1427
1446
|
else:
|
1428
|
-
|
1447
|
+
t = ('NOTSET', int(self))
|
1448
|
+
|
1449
|
+
self._name_and_offset = t
|
1450
|
+
return t
|
1451
|
+
|
1452
|
+
@property
|
1453
|
+
def exact_name(self) -> ta.Optional[str]:
|
1454
|
+
n, o = self.name_and_offset
|
1455
|
+
return n if not o else None
|
1429
1456
|
|
1430
|
-
|
1457
|
+
@property
|
1458
|
+
def effective_name(self) -> str:
|
1459
|
+
n, _ = self.name_and_offset
|
1431
1460
|
return n
|
1432
1461
|
|
1433
1462
|
#
|
1434
1463
|
|
1435
|
-
def __repr__(self) -> str:
|
1436
|
-
return f'{self.__class__.__name__}({int(self)})'
|
1437
|
-
|
1438
1464
|
def __str__(self) -> str:
|
1439
|
-
return self.exact_name or f'{self.effective_name
|
1465
|
+
return self.exact_name or f'{self.effective_name}{int(self):+}'
|
1466
|
+
|
1467
|
+
def __repr__(self) -> str:
|
1468
|
+
n, o = self.name_and_offset
|
1469
|
+
return f'{self.__class__.__name__}({n!r}{f", {int(o)}" if o else ""})'
|
1440
1470
|
|
1441
1471
|
#
|
1442
1472
|
|
@@ -1456,6 +1486,9 @@ NamedLogLevel.DEBUG = NamedLogLevel(logging.DEBUG)
|
|
1456
1486
|
NamedLogLevel.NOTSET = NamedLogLevel(logging.NOTSET)
|
1457
1487
|
|
1458
1488
|
|
1489
|
+
NamedLogLevel._CACHE.update({i: NamedLogLevel(i) for i in NamedLogLevel._NAMES_BY_INT}) # noqa
|
1490
|
+
|
1491
|
+
|
1459
1492
|
########################################
|
1460
1493
|
# ../../../omlish/logs/std/filters.py
|
1461
1494
|
|
@@ -2826,6 +2859,7 @@ class PredicateTimeout(Timeout):
|
|
2826
2859
|
##
|
2827
2860
|
|
2828
2861
|
|
2862
|
+
@ta.runtime_checkable
|
2829
2863
|
class LoggerLike(ta.Protocol):
|
2830
2864
|
"""Satisfied by both our Logger and stdlib logging.Logger."""
|
2831
2865
|
|
@@ -2992,8 +2992,8 @@ class LoggingSourceFileInfo(ta.NamedTuple):
|
|
2992
2992
|
return None
|
2993
2993
|
|
2994
2994
|
return cls(
|
2995
|
-
file_name,
|
2996
|
-
module,
|
2995
|
+
file_name=file_name,
|
2996
|
+
module=module,
|
2997
2997
|
)
|
2998
2998
|
|
2999
2999
|
|
@@ -3010,9 +3010,9 @@ class LoggingThreadInfo(ta.NamedTuple):
|
|
3010
3010
|
@classmethod
|
3011
3011
|
def build(cls) -> 'LoggingThreadInfo':
|
3012
3012
|
return cls(
|
3013
|
-
threading.get_ident(),
|
3014
|
-
threading.get_native_id() if hasattr(threading, 'get_native_id') else None,
|
3015
|
-
threading.current_thread().name,
|
3013
|
+
ident=threading.get_ident(),
|
3014
|
+
native_id=threading.get_native_id() if hasattr(threading, 'get_native_id') else None,
|
3015
|
+
name=threading.current_thread().name,
|
3016
3016
|
)
|
3017
3017
|
|
3018
3018
|
|
@@ -3027,7 +3027,7 @@ class LoggingProcessInfo(ta.NamedTuple):
|
|
3027
3027
|
@classmethod
|
3028
3028
|
def build(cls) -> 'LoggingProcessInfo':
|
3029
3029
|
return cls(
|
3030
|
-
os.getpid(),
|
3030
|
+
pid=os.getpid(),
|
3031
3031
|
)
|
3032
3032
|
|
3033
3033
|
|
@@ -3046,7 +3046,7 @@ class LoggingMultiprocessingInfo(ta.NamedTuple):
|
|
3046
3046
|
return None
|
3047
3047
|
|
3048
3048
|
return cls(
|
3049
|
-
mp.current_process().name,
|
3049
|
+
process_name=mp.current_process().name,
|
3050
3050
|
)
|
3051
3051
|
|
3052
3052
|
|
@@ -3073,7 +3073,7 @@ class LoggingAsyncioTaskInfo(ta.NamedTuple):
|
|
3073
3073
|
return None
|
3074
3074
|
|
3075
3075
|
return cls(
|
3076
|
-
task.get_name(), # Always non-None
|
3076
|
+
name=task.get_name(), # Always non-None
|
3077
3077
|
)
|
3078
3078
|
|
3079
3079
|
|
@@ -3096,36 +3096,66 @@ class NamedLogLevel(int):
|
|
3096
3096
|
|
3097
3097
|
#
|
3098
3098
|
|
3099
|
-
|
3100
|
-
|
3101
|
-
|
3099
|
+
_CACHE: ta.ClassVar[ta.MutableMapping[int, 'NamedLogLevel']] = {}
|
3100
|
+
|
3101
|
+
@ta.overload
|
3102
|
+
def __new__(cls, name: str, offset: int = 0, /) -> 'NamedLogLevel':
|
3103
|
+
...
|
3104
|
+
|
3105
|
+
@ta.overload
|
3106
|
+
def __new__(cls, i: int, /) -> 'NamedLogLevel':
|
3107
|
+
...
|
3108
|
+
|
3109
|
+
def __new__(cls, x, offset=0, /):
|
3110
|
+
if isinstance(x, str):
|
3111
|
+
return cls(cls._INTS_BY_NAME[x.upper()] + offset)
|
3112
|
+
elif not offset and (c := cls._CACHE.get(x)) is not None:
|
3113
|
+
return c
|
3114
|
+
else:
|
3115
|
+
return super().__new__(cls, x + offset)
|
3102
3116
|
|
3103
|
-
|
3117
|
+
#
|
3118
|
+
|
3119
|
+
_name_and_offset: ta.Tuple[str, int]
|
3104
3120
|
|
3105
3121
|
@property
|
3106
|
-
def
|
3122
|
+
def name_and_offset(self) -> ta.Tuple[str, int]:
|
3107
3123
|
try:
|
3108
|
-
return self.
|
3124
|
+
return self._name_and_offset
|
3109
3125
|
except AttributeError:
|
3110
3126
|
pass
|
3111
3127
|
|
3112
|
-
if (n := self.
|
3128
|
+
if (n := self._NAMES_BY_INT.get(self)) is not None:
|
3129
|
+
t = (n, 0)
|
3130
|
+
else:
|
3113
3131
|
for n, i in self._NAME_INT_PAIRS: # noqa
|
3114
3132
|
if self >= i:
|
3133
|
+
t = (n, (self - i))
|
3115
3134
|
break
|
3116
3135
|
else:
|
3117
|
-
|
3136
|
+
t = ('NOTSET', int(self))
|
3137
|
+
|
3138
|
+
self._name_and_offset = t
|
3139
|
+
return t
|
3118
3140
|
|
3119
|
-
|
3141
|
+
@property
|
3142
|
+
def exact_name(self) -> ta.Optional[str]:
|
3143
|
+
n, o = self.name_and_offset
|
3144
|
+
return n if not o else None
|
3145
|
+
|
3146
|
+
@property
|
3147
|
+
def effective_name(self) -> str:
|
3148
|
+
n, _ = self.name_and_offset
|
3120
3149
|
return n
|
3121
3150
|
|
3122
3151
|
#
|
3123
3152
|
|
3124
|
-
def __repr__(self) -> str:
|
3125
|
-
return f'{self.__class__.__name__}({int(self)})'
|
3126
|
-
|
3127
3153
|
def __str__(self) -> str:
|
3128
|
-
return self.exact_name or f'{self.effective_name
|
3154
|
+
return self.exact_name or f'{self.effective_name}{int(self):+}'
|
3155
|
+
|
3156
|
+
def __repr__(self) -> str:
|
3157
|
+
n, o = self.name_and_offset
|
3158
|
+
return f'{self.__class__.__name__}({n!r}{f", {int(o)}" if o else ""})'
|
3129
3159
|
|
3130
3160
|
#
|
3131
3161
|
|
@@ -3145,6 +3175,9 @@ NamedLogLevel.DEBUG = NamedLogLevel(logging.DEBUG)
|
|
3145
3175
|
NamedLogLevel.NOTSET = NamedLogLevel(logging.NOTSET)
|
3146
3176
|
|
3147
3177
|
|
3178
|
+
NamedLogLevel._CACHE.update({i: NamedLogLevel(i) for i in NamedLogLevel._NAMES_BY_INT}) # noqa
|
3179
|
+
|
3180
|
+
|
3148
3181
|
########################################
|
3149
3182
|
# ../../../omlish/logs/std/filters.py
|
3150
3183
|
|
@@ -5588,10 +5621,10 @@ class LoggingCaller(ta.NamedTuple):
|
|
5588
5621
|
sinfo = sinfo[:-1]
|
5589
5622
|
|
5590
5623
|
return cls(
|
5591
|
-
f.f_code.co_filename,
|
5592
|
-
f.f_lineno or 0,
|
5593
|
-
f.f_code.co_name,
|
5594
|
-
sinfo,
|
5624
|
+
file_path=f.f_code.co_filename,
|
5625
|
+
line_no=f.f_lineno or 0,
|
5626
|
+
name=f.f_code.co_name,
|
5627
|
+
stack_info=sinfo,
|
5595
5628
|
)
|
5596
5629
|
|
5597
5630
|
|
@@ -5602,6 +5635,7 @@ class LoggingCaller(ta.NamedTuple):
|
|
5602
5635
|
##
|
5603
5636
|
|
5604
5637
|
|
5638
|
+
@ta.runtime_checkable
|
5605
5639
|
class LoggerLike(ta.Protocol):
|
5606
5640
|
"""Satisfied by both our Logger and stdlib logging.Logger."""
|
5607
5641
|
|
@@ -5740,9 +5774,9 @@ class LoggingTimeFields(ta.NamedTuple):
|
|
5740
5774
|
relative_created = (time_ns - start_time_ns) / 1e6
|
5741
5775
|
|
5742
5776
|
return cls(
|
5743
|
-
created,
|
5744
|
-
msecs,
|
5745
|
-
relative_created,
|
5777
|
+
created=created,
|
5778
|
+
msecs=msecs,
|
5779
|
+
relative_created=relative_created,
|
5746
5780
|
)
|
5747
5781
|
|
5748
5782
|
|
@@ -7581,7 +7615,6 @@ InterpProviders = ta.NewType('InterpProviders', ta.Sequence[InterpProvider])
|
|
7581
7615
|
|
7582
7616
|
|
7583
7617
|
class AnyLogger(Abstract, ta.Generic[T]):
|
7584
|
-
@ta.final
|
7585
7618
|
def is_enabled_for(self, level: LogLevel) -> bool:
|
7586
7619
|
return level >= self.get_effective_level()
|
7587
7620
|
|
@@ -7780,7 +7813,7 @@ class AsyncLogger(AnyLogger[ta.Awaitable[None]], Abstract):
|
|
7780
7813
|
class AnyNopLogger(AnyLogger[T], Abstract):
|
7781
7814
|
@ta.final
|
7782
7815
|
def get_effective_level(self) -> LogLevel:
|
7783
|
-
return 999
|
7816
|
+
return -999
|
7784
7817
|
|
7785
7818
|
|
7786
7819
|
@ta.final
|
@@ -8390,7 +8423,7 @@ class InterpResolver:
|
|
8390
8423
|
|
8391
8424
|
|
8392
8425
|
########################################
|
8393
|
-
# ../../../omlish/logs/std/
|
8426
|
+
# ../../../omlish/logs/std/loggers.py
|
8394
8427
|
|
8395
8428
|
|
8396
8429
|
##
|
@@ -8406,6 +8439,9 @@ class StdLogger(Logger):
|
|
8406
8439
|
def std(self) -> logging.Logger:
|
8407
8440
|
return self._std
|
8408
8441
|
|
8442
|
+
def is_enabled_for(self, level: LogLevel) -> bool:
|
8443
|
+
return self._std.isEnabledFor(level)
|
8444
|
+
|
8409
8445
|
def get_effective_level(self) -> LogLevel:
|
8410
8446
|
return self._std.getEffectiveLevel()
|
8411
8447
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev430
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License-Expression: BSD-3-Clause
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Python: >=3.13
|
15
15
|
Description-Content-Type: text/markdown
|
16
16
|
License-File: LICENSE
|
17
|
-
Requires-Dist: omlish==0.0.0.
|
17
|
+
Requires-Dist: omlish==0.0.0.dev430
|
18
18
|
Provides-Extra: all
|
19
19
|
Requires-Dist: black~=25.1; extra == "all"
|
20
20
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -13,7 +13,7 @@ urls = {source = 'https://github.com/wrmsr/omlish'}
|
|
13
13
|
license = 'BSD-3-Clause'
|
14
14
|
readme = 'README.md'
|
15
15
|
requires-python = '>=3.13'
|
16
|
-
version = '0.0.0.
|
16
|
+
version = '0.0.0.dev430'
|
17
17
|
classifiers = [
|
18
18
|
'Development Status :: 2 - Pre-Alpha',
|
19
19
|
'Intended Audience :: Developers',
|
@@ -24,7 +24,7 @@ classifiers = [
|
|
24
24
|
]
|
25
25
|
description = 'omdev'
|
26
26
|
dependencies = [
|
27
|
-
'omlish == 0.0.0.
|
27
|
+
'omlish == 0.0.0.dev430',
|
28
28
|
]
|
29
29
|
|
30
30
|
[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
|