omdev 0.0.0.dev322__tar.gz → 0.0.0.dev324__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.dev322/omdev.egg-info → omdev-0.0.0.dev324}/PKG-INFO +4 -4
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/__about__.py +1 -1
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/data/cache.py +2 -2
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/mypy/debug.py +41 -4
- omdev-0.0.0.dev324/omdev/mypy/report.py +82 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/specifiers.py +1 -1
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/scripts/importtrace.py +1 -1
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/scripts/ci.py +1 -1
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/scripts/interp.py +2 -2
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/scripts/pyproject.py +2 -2
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/formats.py +9 -1
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324/omdev.egg-info}/PKG-INFO +4 -4
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev.egg-info/SOURCES.txt +1 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev.egg-info/requires.txt +3 -3
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/pyproject.toml +4 -4
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/LICENSE +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/README.md +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/.manifests.json +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/gen.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/imports.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/main.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/manifests.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/resources.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/srcfiles.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/strip.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/types.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/amalg/typing.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/compose.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/clipboard/clipboard.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/clipboard/darwin_cf.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/clipboard/linux_x11.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cmdlog/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cmdlog/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cmdlog/_cmdlog.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cmdlog/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/cmdlog/cmdlog.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/manifests/build.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/apps/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/apps/ncdu.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/confirm.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/LICENSE +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/border.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/markdown.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/parser.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/styles.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/tags.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/ptk/markdown/utils.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/classdot.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/LICENSE +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/attrdoc.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/common.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/epydoc.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/google.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/numpydoc.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/parser.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/docstrings/rest.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/findimports.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/scripts/execstat.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/cexts.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/resources/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/resources/docker-dev.sh +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tokens/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tokens/all.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tokens/utils.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/antlr/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/antlr/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/antlr/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/antlr/consts.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/antlr/gen.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/diff.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/intellij.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev322 → omdev-0.0.0.dev324}/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.dev324
|
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.dev324
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -21,7 +21,7 @@ Requires-Dist: docutils~=0.21; extra == "all"
|
|
21
21
|
Requires-Dist: markdown-it-py~=3.0; extra == "all"
|
22
22
|
Requires-Dist: mdit-py-plugins~=0.4; extra == "all"
|
23
23
|
Requires-Dist: pygments~=2.19; extra == "all"
|
24
|
-
Requires-Dist: mypy~=1.
|
24
|
+
Requires-Dist: mypy~=1.16; extra == "all"
|
25
25
|
Requires-Dist: gprof2dot~=2025.4; extra == "all"
|
26
26
|
Requires-Dist: prompt-toolkit~=3.0; extra == "all"
|
27
27
|
Requires-Dist: segno~=1.6; extra == "all"
|
@@ -36,7 +36,7 @@ Requires-Dist: markdown-it-py~=3.0; extra == "doc"
|
|
36
36
|
Requires-Dist: mdit-py-plugins~=0.4; extra == "doc"
|
37
37
|
Requires-Dist: pygments~=2.19; extra == "doc"
|
38
38
|
Provides-Extra: mypy
|
39
|
-
Requires-Dist: mypy~=1.
|
39
|
+
Requires-Dist: mypy~=1.16; extra == "mypy"
|
40
40
|
Provides-Extra: prof
|
41
41
|
Requires-Dist: gprof2dot~=2025.4; extra == "prof"
|
42
42
|
Provides-Extra: ptk
|
@@ -87,11 +87,11 @@ def _url_retrieve(
|
|
87
87
|
if size >= 0 and read < size:
|
88
88
|
raise urllib.error.ContentTooShortError(
|
89
89
|
f'retrieval incomplete: got only {read} out of {size} bytes',
|
90
|
-
result,
|
90
|
+
result,
|
91
91
|
)
|
92
92
|
|
93
93
|
success = True
|
94
|
-
return result
|
94
|
+
return result
|
95
95
|
|
96
96
|
|
97
97
|
class Cache:
|
@@ -3,6 +3,9 @@ import re
|
|
3
3
|
import sys
|
4
4
|
|
5
5
|
|
6
|
+
##
|
7
|
+
|
8
|
+
|
6
9
|
def _is_instance_or_subclass(obj, cls):
|
7
10
|
return (isinstance(obj, type) and issubclass(obj, cls)) or isinstance(obj, cls)
|
8
11
|
|
@@ -11,44 +14,57 @@ class MypyDebugPathFinder(importlib.machinery.PathFinder):
|
|
11
14
|
@classmethod
|
12
15
|
def _get_spec(cls, fullname, path, target=None): # noqa
|
13
16
|
namespace_path = []
|
17
|
+
|
14
18
|
for entry in path:
|
15
19
|
if not isinstance(entry, (str, bytes)):
|
16
20
|
continue
|
21
|
+
|
17
22
|
finder = cls._path_importer_cache(entry) # type: ignore # noqa
|
18
23
|
if finder is not None:
|
19
24
|
if isinstance(finder, importlib.machinery.FileFinder):
|
20
25
|
finder = importlib.machinery.FileFinder(
|
21
26
|
finder.path,
|
22
27
|
*[
|
23
|
-
(i, [s])
|
28
|
+
(i, [s])
|
29
|
+
for s, i in finder._loaders # type: ignore # noqa
|
24
30
|
if not _is_instance_or_subclass(i, importlib.machinery.ExtensionFileLoader)
|
25
31
|
],
|
26
32
|
)
|
33
|
+
|
27
34
|
if hasattr(finder, 'find_spec'):
|
28
35
|
spec = finder.find_spec(fullname, target)
|
29
36
|
else:
|
30
37
|
spec = cls._legacy_get_spec(fullname, finder) # type: ignore # noqa
|
38
|
+
|
31
39
|
if spec is None:
|
32
40
|
continue
|
41
|
+
|
33
42
|
if spec.loader is not None:
|
34
43
|
return spec
|
44
|
+
|
35
45
|
portions = spec.submodule_search_locations
|
36
46
|
if portions is None:
|
37
47
|
raise ImportError('spec missing loader')
|
48
|
+
|
38
49
|
namespace_path.extend(portions)
|
50
|
+
|
39
51
|
return None
|
40
52
|
|
41
53
|
@classmethod
|
42
54
|
def find_spec(cls, fullname, path=None, target=None): # noqa
|
43
55
|
if not fullname.startswith('mypy.') and fullname != 'mypy':
|
44
56
|
return None
|
57
|
+
|
45
58
|
if path is None:
|
46
59
|
path = sys.path
|
60
|
+
|
47
61
|
spec = cls._get_spec(fullname, path, target)
|
48
62
|
if spec is None:
|
49
63
|
return None
|
64
|
+
|
50
65
|
elif spec.loader is None:
|
51
66
|
namespace_path = spec.submodule_search_locations
|
67
|
+
|
52
68
|
if namespace_path:
|
53
69
|
spec.origin = None
|
54
70
|
spec.submodule_search_locations = importlib.machinery._NamespacePath( # type: ignore # noqa
|
@@ -57,29 +73,50 @@ class MypyDebugPathFinder(importlib.machinery.PathFinder):
|
|
57
73
|
cls._get_spec,
|
58
74
|
)
|
59
75
|
return spec
|
76
|
+
|
60
77
|
else:
|
61
78
|
return None
|
79
|
+
|
62
80
|
else:
|
63
81
|
return spec
|
64
82
|
|
65
83
|
|
66
|
-
def
|
84
|
+
def install_debug_path_finder() -> None:
|
67
85
|
for i, e in enumerate(sys.meta_path): # noqa
|
68
86
|
if _is_instance_or_subclass(e, importlib.machinery.PathFinder):
|
69
87
|
break
|
88
|
+
|
70
89
|
sys.meta_path.insert(i, MypyDebugPathFinder) # noqa
|
71
90
|
sys.path_importer_cache.clear()
|
72
91
|
importlib.invalidate_caches()
|
73
92
|
|
93
|
+
|
94
|
+
##
|
95
|
+
|
96
|
+
|
97
|
+
def run_mypy_main(
|
98
|
+
*,
|
99
|
+
show_traceback: bool = False,
|
100
|
+
) -> None:
|
74
101
|
from mypy.__main__ import console_entry # noqa
|
75
102
|
|
76
103
|
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
77
104
|
|
78
|
-
if
|
79
|
-
sys.argv
|
105
|
+
if show_traceback:
|
106
|
+
if not any(k in sys.argv[1:] for k in ['--show-traceback', '--tb']):
|
107
|
+
sys.argv.insert(1, '--show-traceback')
|
80
108
|
|
81
109
|
console_entry()
|
82
110
|
|
83
111
|
|
112
|
+
##
|
113
|
+
|
114
|
+
|
115
|
+
def _main() -> None:
|
116
|
+
install_debug_path_finder()
|
117
|
+
|
118
|
+
run_mypy_main(show_traceback=True)
|
119
|
+
|
120
|
+
|
84
121
|
if __name__ == '__main__':
|
85
122
|
_main()
|
@@ -0,0 +1,82 @@
|
|
1
|
+
"""
|
2
|
+
TODO:
|
3
|
+
- alt mode: --output=json, subprocess / tee
|
4
|
+
"""
|
5
|
+
import collections
|
6
|
+
import dataclasses as dc
|
7
|
+
import typing as ta
|
8
|
+
|
9
|
+
from .debug import install_debug_path_finder
|
10
|
+
from .debug import run_mypy_main
|
11
|
+
|
12
|
+
|
13
|
+
if ta.TYPE_CHECKING:
|
14
|
+
import mypy.build
|
15
|
+
import mypy.errors
|
16
|
+
|
17
|
+
|
18
|
+
##
|
19
|
+
|
20
|
+
|
21
|
+
@dc.dataclass(frozen=True, kw_only=True)
|
22
|
+
class JsonOutputError:
|
23
|
+
file: str
|
24
|
+
line: int
|
25
|
+
column: int
|
26
|
+
message: str
|
27
|
+
hint: ta.Any | None
|
28
|
+
code: str
|
29
|
+
severity: str # 'error' | 'note'
|
30
|
+
|
31
|
+
|
32
|
+
##
|
33
|
+
|
34
|
+
|
35
|
+
def _report_build_result(
|
36
|
+
result: 'mypy.build.BuildResult',
|
37
|
+
) -> None:
|
38
|
+
errors: ta.Sequence[mypy.errors.ErrorInfo] = [
|
39
|
+
e
|
40
|
+
for es in result.manager.errors.error_info_map.values()
|
41
|
+
for e in es
|
42
|
+
]
|
43
|
+
if errors:
|
44
|
+
count_by_code = collections.Counter(
|
45
|
+
e.code.code
|
46
|
+
for e in errors
|
47
|
+
if e.code is not None
|
48
|
+
)
|
49
|
+
|
50
|
+
print()
|
51
|
+
max_code_len = max(map(len, count_by_code))
|
52
|
+
for code, count in sorted(count_by_code.items(), key=lambda kv: -kv[1]):
|
53
|
+
print(f'{code.rjust(max_code_len)} : {count}')
|
54
|
+
print()
|
55
|
+
|
56
|
+
|
57
|
+
##
|
58
|
+
|
59
|
+
|
60
|
+
def _main() -> None:
|
61
|
+
install_debug_path_finder()
|
62
|
+
|
63
|
+
##
|
64
|
+
|
65
|
+
import mypy.main
|
66
|
+
|
67
|
+
old_run_build = mypy.main.run_build
|
68
|
+
|
69
|
+
def new_run_build(*args, **kwargs):
|
70
|
+
ret = old_run_build(*args, **kwargs)
|
71
|
+
_report_build_result(ta.cast('mypy.build.BuildResult', ret[0]))
|
72
|
+
return ret
|
73
|
+
|
74
|
+
mypy.main.run_build = new_run_build
|
75
|
+
|
76
|
+
##
|
77
|
+
|
78
|
+
run_mypy_main()
|
79
|
+
|
80
|
+
|
81
|
+
if __name__ == '__main__':
|
82
|
+
_main()
|
@@ -210,7 +210,7 @@ class ImportTracer:
|
|
210
210
|
|
211
211
|
for child in node.children:
|
212
212
|
seq = self._fixup_node(child, depth=depth + 1, seq=seq + 1)
|
213
|
-
node.child_stats += child.stats
|
213
|
+
node.child_stats += child.stats
|
214
214
|
|
215
215
|
node.self_stats = node.stats - node.child_stats # type: ignore
|
216
216
|
return seq
|
@@ -1739,7 +1739,7 @@ class ProxyLogHandler(ProxyLogFilterer, logging.Handler):
|
|
1739
1739
|
self._underlying.set_name(name)
|
1740
1740
|
|
1741
1741
|
@property
|
1742
|
-
def name(self):
|
1742
|
+
def name(self): # type: ignore[override]
|
1743
1743
|
return self._underlying.name
|
1744
1744
|
|
1745
1745
|
@property
|
@@ -1972,7 +1972,7 @@ class Specifier(BaseSpecifier):
|
|
1972
1972
|
|
1973
1973
|
self._prereleases = prereleases
|
1974
1974
|
|
1975
|
-
@property
|
1975
|
+
@property
|
1976
1976
|
def prereleases(self) -> bool:
|
1977
1977
|
if self._prereleases is not None:
|
1978
1978
|
return self._prereleases
|
@@ -3203,7 +3203,7 @@ class ProxyLogHandler(ProxyLogFilterer, logging.Handler):
|
|
3203
3203
|
self._underlying.set_name(name)
|
3204
3204
|
|
3205
3205
|
@property
|
3206
|
-
def name(self):
|
3206
|
+
def name(self): # type: ignore[override]
|
3207
3207
|
return self._underlying.name
|
3208
3208
|
|
3209
3209
|
@property
|
@@ -3667,7 +3667,7 @@ class Specifier(BaseSpecifier):
|
|
3667
3667
|
|
3668
3668
|
self._prereleases = prereleases
|
3669
3669
|
|
3670
|
-
@property
|
3670
|
+
@property
|
3671
3671
|
def prereleases(self) -> bool:
|
3672
3672
|
if self._prereleases is not None:
|
3673
3673
|
return self._prereleases
|
@@ -1,12 +1,14 @@
|
|
1
1
|
"""
|
2
2
|
TODO:
|
3
3
|
- options lol - csv header, newline, etc
|
4
|
+
- edn
|
4
5
|
"""
|
5
6
|
import dataclasses as dc
|
6
7
|
import enum
|
7
8
|
import json
|
8
9
|
import typing as ta
|
9
10
|
|
11
|
+
from omlish import check
|
10
12
|
from omlish import lang
|
11
13
|
|
12
14
|
|
@@ -44,6 +46,12 @@ class Format:
|
|
44
46
|
load: ta.Callable[[ta.TextIO], ta.Any]
|
45
47
|
|
46
48
|
|
49
|
+
def _load_xml(f: ta.TextIO) -> dict[str, ta.Any]:
|
50
|
+
tree = xml.parse_tree(f.read())
|
51
|
+
sel = xml.build_simple_element(check.not_none(tree.getroot()))
|
52
|
+
return sel.se_dict()
|
53
|
+
|
54
|
+
|
47
55
|
class Formats(enum.Enum):
|
48
56
|
JSON = Format(['json'], json.load)
|
49
57
|
|
@@ -59,7 +67,7 @@ class Formats(enum.Enum):
|
|
59
67
|
|
60
68
|
PY = Format(['py', 'python', 'repr'], lambda f: ast.literal_eval(f.read()))
|
61
69
|
|
62
|
-
XML = Format(['xml'],
|
70
|
+
XML = Format(['xml'], _load_xml)
|
63
71
|
|
64
72
|
CSV = Format(['csv'], lambda f: list(csv.DictReader(f)))
|
65
73
|
TSV = Format(['tsv'], lambda f: list(csv.DictReader(f, delimiter='\t')))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev324
|
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.dev324
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -21,7 +21,7 @@ Requires-Dist: docutils~=0.21; extra == "all"
|
|
21
21
|
Requires-Dist: markdown-it-py~=3.0; extra == "all"
|
22
22
|
Requires-Dist: mdit-py-plugins~=0.4; extra == "all"
|
23
23
|
Requires-Dist: pygments~=2.19; extra == "all"
|
24
|
-
Requires-Dist: mypy~=1.
|
24
|
+
Requires-Dist: mypy~=1.16; extra == "all"
|
25
25
|
Requires-Dist: gprof2dot~=2025.4; extra == "all"
|
26
26
|
Requires-Dist: prompt-toolkit~=3.0; extra == "all"
|
27
27
|
Requires-Dist: segno~=1.6; extra == "all"
|
@@ -36,7 +36,7 @@ Requires-Dist: markdown-it-py~=3.0; extra == "doc"
|
|
36
36
|
Requires-Dist: mdit-py-plugins~=0.4; extra == "doc"
|
37
37
|
Requires-Dist: pygments~=2.19; extra == "doc"
|
38
38
|
Provides-Extra: mypy
|
39
|
-
Requires-Dist: mypy~=1.
|
39
|
+
Requires-Dist: mypy~=1.16; extra == "mypy"
|
40
40
|
Provides-Extra: prof
|
41
41
|
Requires-Dist: gprof2dot~=2025.4; extra == "prof"
|
42
42
|
Provides-Extra: ptk
|
@@ -1,4 +1,4 @@
|
|
1
|
-
omlish==0.0.0.
|
1
|
+
omlish==0.0.0.dev324
|
2
2
|
|
3
3
|
[all]
|
4
4
|
black~=25.1
|
@@ -8,7 +8,7 @@ docutils~=0.21
|
|
8
8
|
markdown-it-py~=3.0
|
9
9
|
mdit-py-plugins~=0.4
|
10
10
|
pygments~=2.19
|
11
|
-
mypy~=1.
|
11
|
+
mypy~=1.16
|
12
12
|
gprof2dot~=2025.4
|
13
13
|
prompt-toolkit~=3.0
|
14
14
|
segno~=1.6
|
@@ -27,7 +27,7 @@ mdit-py-plugins~=0.4
|
|
27
27
|
pygments~=2.19
|
28
28
|
|
29
29
|
[mypy]
|
30
|
-
mypy~=1.
|
30
|
+
mypy~=1.16
|
31
31
|
|
32
32
|
[prof]
|
33
33
|
gprof2dot~=2025.4
|
@@ -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.dev324'
|
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.dev324',
|
26
26
|
]
|
27
27
|
|
28
28
|
[project.optional-dependencies]
|
@@ -34,7 +34,7 @@ all = [
|
|
34
34
|
'markdown-it-py ~= 3.0',
|
35
35
|
'mdit-py-plugins ~= 0.4',
|
36
36
|
'pygments ~= 2.19',
|
37
|
-
'mypy ~= 1.
|
37
|
+
'mypy ~= 1.16',
|
38
38
|
'gprof2dot ~= 2025.4',
|
39
39
|
'prompt-toolkit ~= 3.0',
|
40
40
|
'segno ~= 1.6',
|
@@ -53,7 +53,7 @@ doc = [
|
|
53
53
|
'pygments ~= 2.19',
|
54
54
|
]
|
55
55
|
mypy = [
|
56
|
-
'mypy ~= 1.
|
56
|
+
'mypy ~= 1.16',
|
57
57
|
]
|
58
58
|
prof = [
|
59
59
|
'gprof2dot ~= 2025.4',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|