omdev 0.0.0.dev419__tar.gz → 0.0.0.dev420__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.dev419/omdev.egg-info → omdev-0.0.0.dev420}/PKG-INFO +2 -2
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/specifiers.py +37 -39
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/scripts/interp.py +36 -38
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/scripts/pyproject.py +37 -39
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420/omdev.egg-info}/PKG-INFO +2 -2
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev.egg-info/requires.txt +1 -1
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/pyproject.toml +2 -2
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/LICENSE +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/README.md +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/.manifests.json +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/__about__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/cli/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/cli/main.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/gen.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/imports.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/manifests.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/resources.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/srcfiles.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/strip.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/types.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/gen/typing.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/amalg/sources.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/darwin/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/darwin/aps.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/darwin/ax.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/darwin/cf.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/darwin/cg.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/linux/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/capi/linux/x11.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cc/srclangs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/compose.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/clipboard/clipboard.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/clipboard/darwin_cf.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/clipboard/linux_x11.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cmdlog/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cmdlog/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cmdlog/_cmdlog.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cmdlog/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/cmdlog/cmdlog.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataclasses/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataclasses/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataclasses/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataclasses/codegen.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/intellij/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/intellij/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/intellij/ides.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/intellij/open.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/manifests/_dumping.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/manifests/building.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/mypy/report.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/packaging/wheelfile.py +2 -2
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/precheck/unicode.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/apps/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/apps/ncdu.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/confirm.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/LICENSE +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/border.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/markdown.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/parser.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/styles.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/tags.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/ptk/markdown/utils.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/classdot.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/LICENSE +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/attrdoc.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/common.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/epydoc.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/google.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/numpydoc.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/parser.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/docstrings/rest.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/findimports.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/scripts/execstat.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/cexts.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/resources/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/resources/docker-dev.sh +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/scripts/ci.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tokens/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tokens/all.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tokens/utils.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/antlr/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/antlr/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/antlr/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/antlr/consts.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/antlr/gen.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/diff.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/git/cloning.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/jsonview/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/jsonview/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/jsonview/cli.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/jsonview/resources/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/jsonview/resources/jsonview.css +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/jsonview/resources/jsonview.js +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/shell.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev.egg-info/SOURCES.txt +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev419 → omdev-0.0.0.dev420}/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.dev420
|
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.dev420
|
18
18
|
Provides-Extra: all
|
19
19
|
Requires-Dist: black~=25.1; extra == "all"
|
20
20
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007 UP045
|
1
2
|
# @omlish-lite
|
2
3
|
# Copyright (c) Donald Stufft and individual contributors.
|
3
4
|
# All rights reserved.
|
@@ -20,8 +21,7 @@
|
|
20
21
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This file is dual licensed under the terms of the
|
21
22
|
# Apache License, Version 2.0, and the BSD License. See the LICENSE file in the root of this repository for complete
|
22
23
|
# details.
|
23
|
-
# https://github.com/pypa/packaging/blob/
|
24
|
-
# ruff: noqa: UP006 UP007 UP045
|
24
|
+
# https://github.com/pypa/packaging/blob/48125006684bb2d7d28c50af48a03176da45942d/src/packaging/specifiers.py
|
25
25
|
import abc
|
26
26
|
import itertools
|
27
27
|
import re
|
@@ -181,7 +181,7 @@ class Specifier(BaseSpecifier):
|
|
181
181
|
) -> None:
|
182
182
|
match = self._regex.search(spec)
|
183
183
|
if not match:
|
184
|
-
raise InvalidSpecifier(f
|
184
|
+
raise InvalidSpecifier(f'Invalid specifier: {spec!r}')
|
185
185
|
|
186
186
|
self._spec: ta.Tuple[str, str] = (
|
187
187
|
match.group('operator').strip(),
|
@@ -196,7 +196,7 @@ class Specifier(BaseSpecifier):
|
|
196
196
|
return self._prereleases
|
197
197
|
|
198
198
|
operator, version = self._spec
|
199
|
-
if operator in ['==', '>=', '<=', '~=', '===']:
|
199
|
+
if operator in ['==', '>=', '<=', '~=', '===', '>', '<']:
|
200
200
|
if operator == '==' and version.endswith('.*'):
|
201
201
|
version = version[:-2]
|
202
202
|
|
@@ -322,40 +322,38 @@ class Specifier(BaseSpecifier):
|
|
322
322
|
return self.contains(item)
|
323
323
|
|
324
324
|
def contains(self, item: UnparsedVersion, prereleases: ta.Optional[bool] = None) -> bool:
|
325
|
-
|
326
|
-
prereleases = self.prereleases
|
327
|
-
|
328
|
-
normalized_item = _coerce_version(item)
|
329
|
-
|
330
|
-
if normalized_item.is_prerelease and not prereleases:
|
331
|
-
return False
|
332
|
-
|
333
|
-
operator_callable: CallableVersionOperator = self._get_operator(self.operator)
|
334
|
-
return operator_callable(normalized_item, self.version)
|
325
|
+
return bool(list(self.filter([item], prereleases=prereleases)))
|
335
326
|
|
336
327
|
def filter(
|
337
328
|
self,
|
338
329
|
iterable: ta.Iterable[UnparsedVersionVar],
|
339
330
|
prereleases: ta.Optional[bool] = None,
|
340
331
|
) -> ta.Iterator[UnparsedVersionVar]:
|
341
|
-
|
342
|
-
|
332
|
+
prereleases_versions = []
|
333
|
+
found_non_prereleases = False
|
334
|
+
|
335
|
+
include_prereleases = (
|
336
|
+
prereleases if prereleases is not None else self.prereleases
|
337
|
+
)
|
343
338
|
|
344
|
-
|
339
|
+
operator_callable = self._get_operator(self.operator)
|
345
340
|
|
346
341
|
for version in iterable:
|
347
342
|
parsed_version = _coerce_version(version)
|
348
343
|
|
349
|
-
if
|
350
|
-
if parsed_version.is_prerelease
|
351
|
-
|
352
|
-
else:
|
353
|
-
yielded = True
|
344
|
+
if operator_callable(parsed_version, self.version):
|
345
|
+
if not parsed_version.is_prerelease or include_prereleases:
|
346
|
+
found_non_prereleases = True
|
354
347
|
yield version
|
348
|
+
elif prereleases is None and self._prereleases is not False:
|
349
|
+
prereleases_versions.append(version)
|
355
350
|
|
356
|
-
if
|
357
|
-
|
358
|
-
|
351
|
+
if (
|
352
|
+
not found_non_prereleases and
|
353
|
+
prereleases is None and
|
354
|
+
self._prereleases is not False
|
355
|
+
):
|
356
|
+
yield from prereleases_versions
|
359
357
|
|
360
358
|
|
361
359
|
_version_prefix_regex = re.compile(r'^([0-9]+)((?:a|b|c|rc)[0-9]+)$')
|
@@ -406,12 +404,15 @@ def _pad_version(left: ta.List[str], right: ta.List[str]) -> ta.Tuple[ta.List[st
|
|
406
404
|
class SpecifierSet(BaseSpecifier):
|
407
405
|
def __init__(
|
408
406
|
self,
|
409
|
-
specifiers: str = '',
|
407
|
+
specifiers: ta.Union[str, ta.Iterable['Specifier']] = '',
|
410
408
|
prereleases: ta.Optional[bool] = None,
|
411
409
|
) -> None:
|
412
|
-
|
410
|
+
if isinstance(specifiers, str):
|
411
|
+
split_specifiers = [s.strip() for s in specifiers.split(',') if s.strip()]
|
412
|
+
self._specs = frozenset(map(Specifier, split_specifiers))
|
413
|
+
else:
|
414
|
+
self._specs = frozenset(specifiers)
|
413
415
|
|
414
|
-
self._specs = frozenset(map(Specifier, split_specifiers))
|
415
416
|
self._prereleases = prereleases
|
416
417
|
|
417
418
|
@property
|
@@ -422,7 +423,10 @@ class SpecifierSet(BaseSpecifier):
|
|
422
423
|
if not self._specs:
|
423
424
|
return None
|
424
425
|
|
425
|
-
|
426
|
+
if any(s.prereleases for s in self._specs):
|
427
|
+
return True
|
428
|
+
|
429
|
+
return None
|
426
430
|
|
427
431
|
@prereleases.setter
|
428
432
|
def prereleases(self, value: bool) -> None:
|
@@ -489,28 +493,22 @@ class SpecifierSet(BaseSpecifier):
|
|
489
493
|
if not isinstance(item, Version):
|
490
494
|
item = Version(item)
|
491
495
|
|
492
|
-
if prereleases is None:
|
493
|
-
prereleases = self.prereleases
|
494
|
-
|
495
|
-
if not prereleases and item.is_prerelease:
|
496
|
-
return False
|
497
|
-
|
498
496
|
if installed and item.is_prerelease:
|
499
|
-
|
497
|
+
prereleases = True
|
500
498
|
|
501
|
-
return
|
499
|
+
return bool(list(self.filter([item], prereleases=prereleases)))
|
502
500
|
|
503
501
|
def filter(
|
504
502
|
self,
|
505
503
|
iterable: ta.Iterable[UnparsedVersionVar],
|
506
504
|
prereleases: ta.Optional[bool] = None,
|
507
505
|
) -> ta.Iterator[UnparsedVersionVar]:
|
508
|
-
if prereleases is None:
|
506
|
+
if prereleases is None and self.prereleases is not None:
|
509
507
|
prereleases = self.prereleases
|
510
508
|
|
511
509
|
if self._specs:
|
512
510
|
for spec in self._specs:
|
513
|
-
iterable = spec.filter(iterable, prereleases=
|
511
|
+
iterable = spec.filter(iterable, prereleases=prereleases)
|
514
512
|
return iter(iterable)
|
515
513
|
|
516
514
|
else:
|
@@ -1833,7 +1833,7 @@ class ProxyLogHandler(ProxyLogFilterer, logging.Handler):
|
|
1833
1833
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This file is dual licensed under the terms of the
|
1834
1834
|
# Apache License, Version 2.0, and the BSD License. See the LICENSE file in the root of this repository for complete
|
1835
1835
|
# details.
|
1836
|
-
# https://github.com/pypa/packaging/blob/
|
1836
|
+
# https://github.com/pypa/packaging/blob/48125006684bb2d7d28c50af48a03176da45942d/src/packaging/specifiers.py
|
1837
1837
|
|
1838
1838
|
|
1839
1839
|
##
|
@@ -1981,7 +1981,7 @@ class Specifier(BaseSpecifier):
|
|
1981
1981
|
) -> None:
|
1982
1982
|
match = self._regex.search(spec)
|
1983
1983
|
if not match:
|
1984
|
-
raise InvalidSpecifier(f
|
1984
|
+
raise InvalidSpecifier(f'Invalid specifier: {spec!r}')
|
1985
1985
|
|
1986
1986
|
self._spec: ta.Tuple[str, str] = (
|
1987
1987
|
match.group('operator').strip(),
|
@@ -1996,7 +1996,7 @@ class Specifier(BaseSpecifier):
|
|
1996
1996
|
return self._prereleases
|
1997
1997
|
|
1998
1998
|
operator, version = self._spec
|
1999
|
-
if operator in ['==', '>=', '<=', '~=', '===']:
|
1999
|
+
if operator in ['==', '>=', '<=', '~=', '===', '>', '<']:
|
2000
2000
|
if operator == '==' and version.endswith('.*'):
|
2001
2001
|
version = version[:-2]
|
2002
2002
|
|
@@ -2122,40 +2122,38 @@ class Specifier(BaseSpecifier):
|
|
2122
2122
|
return self.contains(item)
|
2123
2123
|
|
2124
2124
|
def contains(self, item: UnparsedVersion, prereleases: ta.Optional[bool] = None) -> bool:
|
2125
|
-
|
2126
|
-
prereleases = self.prereleases
|
2127
|
-
|
2128
|
-
normalized_item = _coerce_version(item)
|
2129
|
-
|
2130
|
-
if normalized_item.is_prerelease and not prereleases:
|
2131
|
-
return False
|
2132
|
-
|
2133
|
-
operator_callable: CallableVersionOperator = self._get_operator(self.operator)
|
2134
|
-
return operator_callable(normalized_item, self.version)
|
2125
|
+
return bool(list(self.filter([item], prereleases=prereleases)))
|
2135
2126
|
|
2136
2127
|
def filter(
|
2137
2128
|
self,
|
2138
2129
|
iterable: ta.Iterable[UnparsedVersionVar],
|
2139
2130
|
prereleases: ta.Optional[bool] = None,
|
2140
2131
|
) -> ta.Iterator[UnparsedVersionVar]:
|
2141
|
-
|
2142
|
-
|
2132
|
+
prereleases_versions = []
|
2133
|
+
found_non_prereleases = False
|
2143
2134
|
|
2144
|
-
|
2135
|
+
include_prereleases = (
|
2136
|
+
prereleases if prereleases is not None else self.prereleases
|
2137
|
+
)
|
2138
|
+
|
2139
|
+
operator_callable = self._get_operator(self.operator)
|
2145
2140
|
|
2146
2141
|
for version in iterable:
|
2147
2142
|
parsed_version = _coerce_version(version)
|
2148
2143
|
|
2149
|
-
if
|
2150
|
-
if parsed_version.is_prerelease
|
2151
|
-
|
2152
|
-
else:
|
2153
|
-
yielded = True
|
2144
|
+
if operator_callable(parsed_version, self.version):
|
2145
|
+
if not parsed_version.is_prerelease or include_prereleases:
|
2146
|
+
found_non_prereleases = True
|
2154
2147
|
yield version
|
2148
|
+
elif prereleases is None and self._prereleases is not False:
|
2149
|
+
prereleases_versions.append(version)
|
2155
2150
|
|
2156
|
-
if
|
2157
|
-
|
2158
|
-
|
2151
|
+
if (
|
2152
|
+
not found_non_prereleases and
|
2153
|
+
prereleases is None and
|
2154
|
+
self._prereleases is not False
|
2155
|
+
):
|
2156
|
+
yield from prereleases_versions
|
2159
2157
|
|
2160
2158
|
|
2161
2159
|
_version_prefix_regex = re.compile(r'^([0-9]+)((?:a|b|c|rc)[0-9]+)$')
|
@@ -2206,12 +2204,15 @@ def _pad_version(left: ta.List[str], right: ta.List[str]) -> ta.Tuple[ta.List[st
|
|
2206
2204
|
class SpecifierSet(BaseSpecifier):
|
2207
2205
|
def __init__(
|
2208
2206
|
self,
|
2209
|
-
specifiers: str = '',
|
2207
|
+
specifiers: ta.Union[str, ta.Iterable['Specifier']] = '',
|
2210
2208
|
prereleases: ta.Optional[bool] = None,
|
2211
2209
|
) -> None:
|
2212
|
-
|
2210
|
+
if isinstance(specifiers, str):
|
2211
|
+
split_specifiers = [s.strip() for s in specifiers.split(',') if s.strip()]
|
2212
|
+
self._specs = frozenset(map(Specifier, split_specifiers))
|
2213
|
+
else:
|
2214
|
+
self._specs = frozenset(specifiers)
|
2213
2215
|
|
2214
|
-
self._specs = frozenset(map(Specifier, split_specifiers))
|
2215
2216
|
self._prereleases = prereleases
|
2216
2217
|
|
2217
2218
|
@property
|
@@ -2222,7 +2223,10 @@ class SpecifierSet(BaseSpecifier):
|
|
2222
2223
|
if not self._specs:
|
2223
2224
|
return None
|
2224
2225
|
|
2225
|
-
|
2226
|
+
if any(s.prereleases for s in self._specs):
|
2227
|
+
return True
|
2228
|
+
|
2229
|
+
return None
|
2226
2230
|
|
2227
2231
|
@prereleases.setter
|
2228
2232
|
def prereleases(self, value: bool) -> None:
|
@@ -2289,28 +2293,22 @@ class SpecifierSet(BaseSpecifier):
|
|
2289
2293
|
if not isinstance(item, Version):
|
2290
2294
|
item = Version(item)
|
2291
2295
|
|
2292
|
-
if prereleases is None:
|
2293
|
-
prereleases = self.prereleases
|
2294
|
-
|
2295
|
-
if not prereleases and item.is_prerelease:
|
2296
|
-
return False
|
2297
|
-
|
2298
2296
|
if installed and item.is_prerelease:
|
2299
|
-
|
2297
|
+
prereleases = True
|
2300
2298
|
|
2301
|
-
return
|
2299
|
+
return bool(list(self.filter([item], prereleases=prereleases)))
|
2302
2300
|
|
2303
2301
|
def filter(
|
2304
2302
|
self,
|
2305
2303
|
iterable: ta.Iterable[UnparsedVersionVar],
|
2306
2304
|
prereleases: ta.Optional[bool] = None,
|
2307
2305
|
) -> ta.Iterator[UnparsedVersionVar]:
|
2308
|
-
if prereleases is None:
|
2306
|
+
if prereleases is None and self.prereleases is not None:
|
2309
2307
|
prereleases = self.prereleases
|
2310
2308
|
|
2311
2309
|
if self._specs:
|
2312
2310
|
for spec in self._specs:
|
2313
|
-
iterable = spec.filter(iterable, prereleases=
|
2311
|
+
iterable = spec.filter(iterable, prereleases=prereleases)
|
2314
2312
|
return iter(iterable)
|
2315
2313
|
|
2316
2314
|
else:
|
@@ -645,7 +645,6 @@ def canonicalize_version(
|
|
645
645
|
|
646
646
|
########################################
|
647
647
|
# ../../packaging/wheelfile.py
|
648
|
-
# https://github.com/pypa/wheel/blob/7bb46d7727e6e89fe56b3c78297b3af2672bbbe2/src/wheel/wheelfile.py
|
649
648
|
# MIT License
|
650
649
|
#
|
651
650
|
# Copyright (c) 2012 Daniel Holth <dholth@fastmail.fm> and contributors
|
@@ -662,6 +661,7 @@ def canonicalize_version(
|
|
662
661
|
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
663
662
|
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
664
663
|
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
664
|
+
# https://github.com/pypa/wheel/blob/7bb46d7727e6e89fe56b3c78297b3af2672bbbe2/src/wheel/wheelfile.py
|
665
665
|
|
666
666
|
|
667
667
|
##
|
@@ -3556,7 +3556,7 @@ def find_magic_py_modules(
|
|
3556
3556
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. This file is dual licensed under the terms of the
|
3557
3557
|
# Apache License, Version 2.0, and the BSD License. See the LICENSE file in the root of this repository for complete
|
3558
3558
|
# details.
|
3559
|
-
# https://github.com/pypa/packaging/blob/
|
3559
|
+
# https://github.com/pypa/packaging/blob/48125006684bb2d7d28c50af48a03176da45942d/src/packaging/specifiers.py
|
3560
3560
|
|
3561
3561
|
|
3562
3562
|
##
|
@@ -3704,7 +3704,7 @@ class Specifier(BaseSpecifier):
|
|
3704
3704
|
) -> None:
|
3705
3705
|
match = self._regex.search(spec)
|
3706
3706
|
if not match:
|
3707
|
-
raise InvalidSpecifier(f
|
3707
|
+
raise InvalidSpecifier(f'Invalid specifier: {spec!r}')
|
3708
3708
|
|
3709
3709
|
self._spec: ta.Tuple[str, str] = (
|
3710
3710
|
match.group('operator').strip(),
|
@@ -3719,7 +3719,7 @@ class Specifier(BaseSpecifier):
|
|
3719
3719
|
return self._prereleases
|
3720
3720
|
|
3721
3721
|
operator, version = self._spec
|
3722
|
-
if operator in ['==', '>=', '<=', '~=', '===']:
|
3722
|
+
if operator in ['==', '>=', '<=', '~=', '===', '>', '<']:
|
3723
3723
|
if operator == '==' and version.endswith('.*'):
|
3724
3724
|
version = version[:-2]
|
3725
3725
|
|
@@ -3845,40 +3845,38 @@ class Specifier(BaseSpecifier):
|
|
3845
3845
|
return self.contains(item)
|
3846
3846
|
|
3847
3847
|
def contains(self, item: UnparsedVersion, prereleases: ta.Optional[bool] = None) -> bool:
|
3848
|
-
|
3849
|
-
prereleases = self.prereleases
|
3850
|
-
|
3851
|
-
normalized_item = _coerce_version(item)
|
3852
|
-
|
3853
|
-
if normalized_item.is_prerelease and not prereleases:
|
3854
|
-
return False
|
3855
|
-
|
3856
|
-
operator_callable: CallableVersionOperator = self._get_operator(self.operator)
|
3857
|
-
return operator_callable(normalized_item, self.version)
|
3848
|
+
return bool(list(self.filter([item], prereleases=prereleases)))
|
3858
3849
|
|
3859
3850
|
def filter(
|
3860
3851
|
self,
|
3861
3852
|
iterable: ta.Iterable[UnparsedVersionVar],
|
3862
3853
|
prereleases: ta.Optional[bool] = None,
|
3863
3854
|
) -> ta.Iterator[UnparsedVersionVar]:
|
3864
|
-
|
3865
|
-
|
3855
|
+
prereleases_versions = []
|
3856
|
+
found_non_prereleases = False
|
3866
3857
|
|
3867
|
-
|
3858
|
+
include_prereleases = (
|
3859
|
+
prereleases if prereleases is not None else self.prereleases
|
3860
|
+
)
|
3861
|
+
|
3862
|
+
operator_callable = self._get_operator(self.operator)
|
3868
3863
|
|
3869
3864
|
for version in iterable:
|
3870
3865
|
parsed_version = _coerce_version(version)
|
3871
3866
|
|
3872
|
-
if
|
3873
|
-
if parsed_version.is_prerelease
|
3874
|
-
|
3875
|
-
else:
|
3876
|
-
yielded = True
|
3867
|
+
if operator_callable(parsed_version, self.version):
|
3868
|
+
if not parsed_version.is_prerelease or include_prereleases:
|
3869
|
+
found_non_prereleases = True
|
3877
3870
|
yield version
|
3871
|
+
elif prereleases is None and self._prereleases is not False:
|
3872
|
+
prereleases_versions.append(version)
|
3878
3873
|
|
3879
|
-
if
|
3880
|
-
|
3881
|
-
|
3874
|
+
if (
|
3875
|
+
not found_non_prereleases and
|
3876
|
+
prereleases is None and
|
3877
|
+
self._prereleases is not False
|
3878
|
+
):
|
3879
|
+
yield from prereleases_versions
|
3882
3880
|
|
3883
3881
|
|
3884
3882
|
_version_prefix_regex = re.compile(r'^([0-9]+)((?:a|b|c|rc)[0-9]+)$')
|
@@ -3929,12 +3927,15 @@ def _pad_version(left: ta.List[str], right: ta.List[str]) -> ta.Tuple[ta.List[st
|
|
3929
3927
|
class SpecifierSet(BaseSpecifier):
|
3930
3928
|
def __init__(
|
3931
3929
|
self,
|
3932
|
-
specifiers: str = '',
|
3930
|
+
specifiers: ta.Union[str, ta.Iterable['Specifier']] = '',
|
3933
3931
|
prereleases: ta.Optional[bool] = None,
|
3934
3932
|
) -> None:
|
3935
|
-
|
3933
|
+
if isinstance(specifiers, str):
|
3934
|
+
split_specifiers = [s.strip() for s in specifiers.split(',') if s.strip()]
|
3935
|
+
self._specs = frozenset(map(Specifier, split_specifiers))
|
3936
|
+
else:
|
3937
|
+
self._specs = frozenset(specifiers)
|
3936
3938
|
|
3937
|
-
self._specs = frozenset(map(Specifier, split_specifiers))
|
3938
3939
|
self._prereleases = prereleases
|
3939
3940
|
|
3940
3941
|
@property
|
@@ -3945,7 +3946,10 @@ class SpecifierSet(BaseSpecifier):
|
|
3945
3946
|
if not self._specs:
|
3946
3947
|
return None
|
3947
3948
|
|
3948
|
-
|
3949
|
+
if any(s.prereleases for s in self._specs):
|
3950
|
+
return True
|
3951
|
+
|
3952
|
+
return None
|
3949
3953
|
|
3950
3954
|
@prereleases.setter
|
3951
3955
|
def prereleases(self, value: bool) -> None:
|
@@ -4012,28 +4016,22 @@ class SpecifierSet(BaseSpecifier):
|
|
4012
4016
|
if not isinstance(item, Version):
|
4013
4017
|
item = Version(item)
|
4014
4018
|
|
4015
|
-
if prereleases is None:
|
4016
|
-
prereleases = self.prereleases
|
4017
|
-
|
4018
|
-
if not prereleases and item.is_prerelease:
|
4019
|
-
return False
|
4020
|
-
|
4021
4019
|
if installed and item.is_prerelease:
|
4022
|
-
|
4020
|
+
prereleases = True
|
4023
4021
|
|
4024
|
-
return
|
4022
|
+
return bool(list(self.filter([item], prereleases=prereleases)))
|
4025
4023
|
|
4026
4024
|
def filter(
|
4027
4025
|
self,
|
4028
4026
|
iterable: ta.Iterable[UnparsedVersionVar],
|
4029
4027
|
prereleases: ta.Optional[bool] = None,
|
4030
4028
|
) -> ta.Iterator[UnparsedVersionVar]:
|
4031
|
-
if prereleases is None:
|
4029
|
+
if prereleases is None and self.prereleases is not None:
|
4032
4030
|
prereleases = self.prereleases
|
4033
4031
|
|
4034
4032
|
if self._specs:
|
4035
4033
|
for spec in self._specs:
|
4036
|
-
iterable = spec.filter(iterable, prereleases=
|
4034
|
+
iterable = spec.filter(iterable, prereleases=prereleases)
|
4037
4035
|
return iter(iterable)
|
4038
4036
|
|
4039
4037
|
else:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev420
|
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.dev420
|
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.dev420'
|
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.dev420',
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|