omdev 0.0.25__tar.gz → 0.0.26__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.25/omdev.egg-info → omdev-0.0.26}/PKG-INFO +8 -8
- {omdev-0.0.25 → omdev-0.0.26}/omdev/__about__.py +1 -1
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/marshal.py +1 -1
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/wheelfile.py +1 -1
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/ci.py +55 -46
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/interp.py +1 -19
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/io/pipelines.py +29 -18
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/pidfiles.py +1 -19
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/pyproject.py +3 -21
- {omdev-0.0.25 → omdev-0.0.26/omdev.egg-info}/PKG-INFO +8 -8
- {omdev-0.0.25 → omdev-0.0.26}/omdev.egg-info/requires.txt +7 -7
- {omdev-0.0.25 → omdev-0.0.26}/pyproject.toml +8 -8
- {omdev-0.0.25 → omdev-0.0.26}/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/MANIFEST.in +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/README.md +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/.omlish-manifests.json +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/README.md +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/cli/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/cli/main.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/gen.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/imports.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/manifests.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/resources.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/srcfiles.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/strip.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/gen/typing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/info.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/amalg/sources.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/darwin/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/darwin/aps.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/darwin/ax.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/darwin/cf.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/darwin/cg.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/linux/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/capi/linux/x11.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cc/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cc/srclangs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/build.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/cache.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/ci.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/compose.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/consts.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/shell.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/ci/utils.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/install.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/main.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/managers.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cli/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/clipboard/capi/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/clipboard/capi/darwin_cf.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/clipboard/capi/linux_x11.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/clipboard/commands.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/clipboard/platform.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/clipboard/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cmake.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cmdlog/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cmdlog/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cmdlog/_cmdlog.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cmdlog/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/cmdlog/cmdlog.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataclasses/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataclasses/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataclasses/_dumping.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataclasses/_template.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataclasses/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataclasses/codegen.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataclasses/dumping.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/diffs/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/diffs/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/diffs/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/diffs/parsing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/diffs/rendering.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/diffs/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/build.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/config.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/config.toml +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/content.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/gen.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/helpers.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/ops.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/rendering.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/.python-versions.json +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/configs/.sqliterc +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/configs/.vimrc +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/depsets/python.toml +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/depsets/system.toml +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/chgrp.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/go.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/man.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/rbenv.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/user.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/uv.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/workdir.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/scripts/install-claude +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/scripts/install-codex +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/scripts/install-pi +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/scripts/run-dbus +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/resources/shift-uid.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/run.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/dockerdev/utils.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/git/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/git/magic.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/git/revisions.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/git/shallow.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/git/status.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/home/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/home/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/home/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/home/paths.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/home/secrets.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/home/shadow.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/imgur.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/intellij/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/intellij/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/intellij/ides.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/intellij/open.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/default.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/java/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/java/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/java/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/java/pomgen.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/java/utils.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/java/xml.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/magic/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/magic/find.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/magic/magic.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/magic/styles.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/manifests/_dumping.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/manifests/building.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/manifests/main.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/markdown/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/markdown/incparse.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/markdown/tokens.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/mypy/report.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/names.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pip.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/base.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/blanklines.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/git.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/main.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/precheck/unicode.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/asts/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/asts/parents.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/asts/toplevel.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/asts/visitors.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/classdot.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/attrdoc.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/common.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/epydoc.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/google.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/numpydoc.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/parser.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/docstrings/rest.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/findimports.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/reprs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tokens/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tokens/all.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tokens/tokenizert.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tokens/utils.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tools/fixdocstrings.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py/tools/pipdepup.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/py.typed +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/resources/dockerdev.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/tools/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/tools/aboutdeps.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/tools/buildrs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/tools/pyversions.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/pyproject/versions.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/rs/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/formats/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/formats/goyaml.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/inject.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/io/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/io/streams.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/logs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/lib/marshal.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/messages/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/messages/base.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/messages/formats.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/messages/messages.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/messages/parsing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/numerics/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/numerics/formats.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/numerics/numerics.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/numerics/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/consts.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/errors.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/message.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/nuh.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/parsing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/rendering.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/tags.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/irc/protocol/utils.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/analysis.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/config.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/errors.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/generator.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/ir.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/names.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/rendering.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/transforms.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/jsonschema/codegen/typing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/building.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/compression.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/data.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/datarefs.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/dataserver.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/loading.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/media.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/pack/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/pack/packing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/pack/repositories.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/pack/unpacking.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/repositories.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/specs/oci/tars.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/supervisor/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/supervisor/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/supervisor/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tagstrings.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/diff.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/doc.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/docker.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/git/cloning.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/jsonview/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/jsonview/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/jsonview/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/jsonview/resources/jsonview.css +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/jsonview/resources/jsonview.js +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/pawk/README.md +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/pip.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/prof.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/qr.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/shell.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/edit/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/edit/main.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/irc/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/irc/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/irc/app.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/irc/client.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/irc/commands.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/irc/main.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/app.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/styles/layout.tcss +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/utils.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/jtree/widgets.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/markdown/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/markdown/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/apps/markdown/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/console2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/__main__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/_compat.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/cli.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/renderables.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/rendering.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/diff/underlinebar.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/markdown2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/textual/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/textual/dark.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/textual/dump.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/textual/themes.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/rich/trirule.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/actionmenu.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/client.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/previews/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/previews/borders.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/previews/colors.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/previews/colors.tcss +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/previews/easing.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/previews/easing.tcss +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/previews/keys.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/protocol.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/redirect_output.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/renderables.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/server.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/service.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/tools/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/altdevtools/tools/diagnose.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/app2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/autocomplete/LICENSE +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/autocomplete/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/autocomplete/matching.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/autocomplete/paths.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/autocomplete/widget.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/binding2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/clipboard.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/debug/__init__.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/debug/dominfo.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/debug/screen.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/devtools.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/dom2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/drivers2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/logging2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/render2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/screen2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/types.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev/tui/textual/widgets2.py +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev.egg-info/SOURCES.txt +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.25 → omdev-0.0.26}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.26
|
|
4
4
|
Summary: omdev
|
|
5
5
|
Author: wrmsr
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -14,10 +14,10 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
14
14
|
Requires-Python: >=3.14
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: omlish==0.0.
|
|
17
|
+
Requires-Dist: omlish==0.0.26
|
|
18
18
|
Provides-Extra: all
|
|
19
|
-
Requires-Dist: ominfra==0.0.
|
|
20
|
-
Requires-Dist: ommlds==0.0.
|
|
19
|
+
Requires-Dist: ominfra==0.0.26; extra == "all"
|
|
20
|
+
Requires-Dist: ommlds==0.0.26; extra == "all"
|
|
21
21
|
Requires-Dist: black~=26.5; extra == "all"
|
|
22
22
|
Requires-Dist: pycparser~=3.0; extra == "all"
|
|
23
23
|
Requires-Dist: pcpp~=1.30; extra == "all"
|
|
@@ -25,7 +25,7 @@ Requires-Dist: docutils~=0.23; extra == "all"
|
|
|
25
25
|
Requires-Dist: markdown-it-py~=4.2; extra == "all"
|
|
26
26
|
Requires-Dist: mdit-py-plugins~=0.6; extra == "all"
|
|
27
27
|
Requires-Dist: pygments~=2.20; extra == "all"
|
|
28
|
-
Requires-Dist: mypy~=2.
|
|
28
|
+
Requires-Dist: mypy~=2.2; extra == "all"
|
|
29
29
|
Requires-Dist: gprof2dot~=2025.4; extra == "all"
|
|
30
30
|
Requires-Dist: segno~=1.6; extra == "all"
|
|
31
31
|
Requires-Dist: rich~=15.0; extra == "all"
|
|
@@ -33,9 +33,9 @@ Requires-Dist: textual~=8.2; extra == "all"
|
|
|
33
33
|
Requires-Dist: textual-dev~=1.8; extra == "all"
|
|
34
34
|
Requires-Dist: textual-speedups~=0.2; extra == "all"
|
|
35
35
|
Provides-Extra: ominfra
|
|
36
|
-
Requires-Dist: ominfra==0.0.
|
|
36
|
+
Requires-Dist: ominfra==0.0.26; extra == "ominfra"
|
|
37
37
|
Provides-Extra: ommlds
|
|
38
|
-
Requires-Dist: ommlds==0.0.
|
|
38
|
+
Requires-Dist: ommlds==0.0.26; extra == "ommlds"
|
|
39
39
|
Provides-Extra: black
|
|
40
40
|
Requires-Dist: black~=26.5; extra == "black"
|
|
41
41
|
Provides-Extra: c
|
|
@@ -47,7 +47,7 @@ Requires-Dist: markdown-it-py~=4.2; extra == "doc"
|
|
|
47
47
|
Requires-Dist: mdit-py-plugins~=0.6; extra == "doc"
|
|
48
48
|
Requires-Dist: pygments~=2.20; extra == "doc"
|
|
49
49
|
Provides-Extra: mypy
|
|
50
|
-
Requires-Dist: mypy~=2.
|
|
50
|
+
Requires-Dist: mypy~=2.2; extra == "mypy"
|
|
51
51
|
Provides-Extra: prof
|
|
52
52
|
Requires-Dist: gprof2dot~=2025.4; extra == "prof"
|
|
53
53
|
Provides-Extra: qr
|
|
@@ -45,7 +45,7 @@ class RequiresMarkerListMarshaler(msh.Marshaler):
|
|
|
45
45
|
|
|
46
46
|
class RequiresMarkerListMarshalerFactory(msh.MarshalerFactory):
|
|
47
47
|
def make_marshaler(self, ctx: msh.MarshalFactoryContext, rty: rfl.Type) -> ta.Callable[[], msh.Marshaler] | None:
|
|
48
|
-
if rty is not MarshalRequiresMarkerList:
|
|
48
|
+
if rty.runtime_object is not MarshalRequiresMarkerList:
|
|
49
49
|
return None
|
|
50
50
|
return lambda: RequiresMarkerListMarshaler(
|
|
51
51
|
ctx.make_marshaler(RequiresMarkerItem),
|
|
@@ -129,7 +129,7 @@ class WheelFile(zipfile.ZipFile):
|
|
|
129
129
|
def open( # type: ignore # noqa
|
|
130
130
|
self,
|
|
131
131
|
name_or_info: ta.Union[str, zipfile.ZipInfo],
|
|
132
|
-
mode:
|
|
132
|
+
mode: ta.Literal['r', 'w'] = 'r',
|
|
133
133
|
pwd: ta.Optional[bytes] = None,
|
|
134
134
|
) -> ta.IO[bytes]:
|
|
135
135
|
def _update_crc(newdata: bytes) -> None:
|
|
@@ -134,7 +134,7 @@ def __omlish_amalg__(): # noqa
|
|
|
134
134
|
dict(path='../../omlish/argparse/parsers.py', sha1='51044d7b7d1b1ca27173be2d3c007d574827a188'),
|
|
135
135
|
dict(path='../../omlish/formats/yaml/goyaml/errors.py', sha1='c4dda09d78bc14d9824e45e3d5d434185ee5598b'),
|
|
136
136
|
dict(path='../../omlish/http/headers.py', sha1='aa2182505c9b09e2b658df8f8b3d927bc5fae13b'),
|
|
137
|
-
dict(path='../../omlish/http/parsing.py', sha1='
|
|
137
|
+
dict(path='../../omlish/http/parsing.py', sha1='1adee35518ee930557f2c3b19fd4253df98a5b3c'),
|
|
138
138
|
dict(path='../../omlish/http/pipelines/compression/codings.py', sha1='b88bf055dff1b040ecde17d98484559e9078b8cf'), # noqa
|
|
139
139
|
dict(path='../../omlish/io/pipelines/core.py', sha1='cec21cacb85a0f443ea4caa021b33184d3816cf2'),
|
|
140
140
|
dict(path='../../omlish/io/streams/types.py', sha1='6a3167bf66a0a8817e19115b9c31973b2ff77788'),
|
|
@@ -163,7 +163,7 @@ def __omlish_amalg__(): # noqa
|
|
|
163
163
|
dict(path='../../omlish/http/simple/types.py', sha1='8e31b8c442603b396523884ff554d3df6e7f4c1a'),
|
|
164
164
|
dict(path='../../omlish/io/pipelines/bytes/buffering.py', sha1='c19bddb05ef9449aa1a1c228901cab0d2d927946'),
|
|
165
165
|
dict(path='../../omlish/io/pipelines/drivers/metadata.py', sha1='44e49cb87136933ffe867087897eab5004034a93'), # noqa
|
|
166
|
-
dict(path='../../omlish/io/pipelines/flow/types.py', sha1='
|
|
166
|
+
dict(path='../../omlish/io/pipelines/flow/types.py', sha1='4353968e5bd490f4121eadf9e391076bd2673f28'),
|
|
167
167
|
dict(path='../../omlish/io/pipelines/sched/types.py', sha1='854b3f0f8ed5da2132a516f787b9019f5cb4eef5'),
|
|
168
168
|
dict(path='../../omlish/io/streams/base.py', sha1='bdeaff419684dec34fd0dc59808a9686131992bc'),
|
|
169
169
|
dict(path='../../omlish/io/streams/framing.py', sha1='dc2d7f638b042619fd3d95789c71532a29fd5fe4'),
|
|
@@ -176,7 +176,7 @@ def __omlish_amalg__(): # noqa
|
|
|
176
176
|
dict(path='../../omlish/sockets/handlers/simple.py', sha1='78e1a4c419c8f82d10577f19654a3d8ce28d757f'),
|
|
177
177
|
dict(path='../../omlish/sockets/handlers/ssl.py', sha1='94c0acedffe5b581419a7a92c2f1c4e4a58b7a83'),
|
|
178
178
|
dict(path='../../omlish/sockets/handlers/threading.py', sha1='24d7815c7bf8fcf3480267020785a3edc90b32f9'),
|
|
179
|
-
dict(path='../../omlish/subprocesses/run.py', sha1='
|
|
179
|
+
dict(path='../../omlish/subprocesses/run.py', sha1='9b7e1265cd59c58d30d8915f96ba84f80797ef42'),
|
|
180
180
|
dict(path='../../omlish/subprocesses/wrap.py', sha1='8a9b7d2255481fae15c05f5624b0cdc0766f4b3f'),
|
|
181
181
|
dict(path='../dataserver/handlers.py', sha1='ce0a208cbd7f66b26b9539ec6d5e7ef1041a4886'),
|
|
182
182
|
dict(path='../dataserver/routes.py', sha1='97379cba6a531ca1bde33de0eb432bd9b36791c1'),
|
|
@@ -4924,6 +4924,7 @@ class SemanticHeaderHttpParseErrorCode(enum.Enum):
|
|
|
4924
4924
|
INVALID_AUTHORIZATION = enum.auto()
|
|
4925
4925
|
TE_WITHOUT_CHUNKED_LAST = enum.auto()
|
|
4926
4926
|
TE_IN_HTTP10 = enum.auto()
|
|
4927
|
+
INVALID_TE = enum.auto()
|
|
4927
4928
|
|
|
4928
4929
|
|
|
4929
4930
|
class EncodingHttpParseErrorCode(enum.Enum):
|
|
@@ -5203,14 +5204,14 @@ class HttpParser:
|
|
|
5203
5204
|
"""Strictness knobs. Defaults are maximally strict."""
|
|
5204
5205
|
|
|
5205
5206
|
allow_obs_fold: bool = False
|
|
5206
|
-
|
|
5207
|
+
dangerous_allow_space_before_colon: bool = False # DANGEROUS - upstreams may not handle well
|
|
5207
5208
|
allow_multiple_content_lengths: bool = False
|
|
5208
5209
|
allow_content_length_with_te: bool = False
|
|
5209
5210
|
allow_bare_lf: bool = False
|
|
5210
5211
|
allow_missing_host: bool = False
|
|
5211
5212
|
allow_multiple_hosts: bool = False
|
|
5212
5213
|
allow_unknown_transfer_encoding: bool = False
|
|
5213
|
-
|
|
5214
|
+
reject_empty_header_values: bool = False
|
|
5214
5215
|
allow_bare_cr_in_value: bool = False
|
|
5215
5216
|
allow_te_without_chunked_in_response: bool = False
|
|
5216
5217
|
allow_transfer_encoding_http10: bool = False
|
|
@@ -5879,7 +5880,7 @@ class _HttpParseContext:
|
|
|
5879
5880
|
|
|
5880
5881
|
# Check for space before colon
|
|
5881
5882
|
if name_bytes[-1] in self._OWS_CHARS:
|
|
5882
|
-
if not self.config.
|
|
5883
|
+
if not self.config.dangerous_allow_space_before_colon:
|
|
5883
5884
|
raise HeaderFieldHttpParseError(
|
|
5884
5885
|
code=HeaderFieldHttpParseErrorCode.SPACE_BEFORE_COLON,
|
|
5885
5886
|
message='Whitespace between field-name and colon',
|
|
@@ -5930,7 +5931,7 @@ class _HttpParseContext:
|
|
|
5930
5931
|
value_stripped = self._strip_ows(value_bytes)
|
|
5931
5932
|
|
|
5932
5933
|
# Check for empty value
|
|
5933
|
-
if not value_stripped and
|
|
5934
|
+
if not value_stripped and self.config.reject_empty_header_values:
|
|
5934
5935
|
raise HeaderFieldHttpParseError(
|
|
5935
5936
|
code=HeaderFieldHttpParseErrorCode.INVALID_FIELD_VALUE,
|
|
5936
5937
|
message='Empty header field value not allowed',
|
|
@@ -6050,7 +6051,10 @@ class _HttpParseContext:
|
|
|
6050
6051
|
for part in v.split(','):
|
|
6051
6052
|
stripped = part.strip()
|
|
6052
6053
|
|
|
6053
|
-
|
|
6054
|
+
# NOTE: must be ASCII digits only. str.isdigit() is True for non-ASCII numerics present in the
|
|
6055
|
+
# latin-1-decoded value (e.g. superscripts U+00B2/B3/B9), but int() rejects those with a ValueError -
|
|
6056
|
+
# which would escape as an uncaught exception rather than a clean parse error.
|
|
6057
|
+
if not (stripped.isascii() and stripped.isdigit()):
|
|
6054
6058
|
raise SemanticHeaderHttpParseError(
|
|
6055
6059
|
code=SemanticHeaderHttpParseErrorCode.INVALID_CONTENT_LENGTH,
|
|
6056
6060
|
message=f'Content-Length value is not a valid non-negative integer: {stripped!r}',
|
|
@@ -6410,16 +6414,28 @@ class _HttpParseContext:
|
|
|
6410
6414
|
if q_str is not None:
|
|
6411
6415
|
q = float(q_str) # caller wraps ValueError
|
|
6412
6416
|
|
|
6417
|
+
# float() also accepts 'nan'/'inf'/overflowing exponents; reject those and any out-of-range value. The
|
|
6418
|
+
# chained comparison is False for NaN and +/-inf, so this single check covers non-finite and range at once.
|
|
6419
|
+
# (RFC 9110 qvalue is 0 <= q <= 1.)
|
|
6420
|
+
if not (0.0 <= q <= 1.0):
|
|
6421
|
+
raise ValueError(f'q-value out of range [0, 1]: {q_str!r}')
|
|
6422
|
+
|
|
6413
6423
|
return token, q, params
|
|
6414
6424
|
|
|
6415
6425
|
def _prepare_te(self, headers: ParsedHttpHeaders, prepared: PreparedParsedHttpHeaders) -> None:
|
|
6416
6426
|
if 'te' not in headers:
|
|
6417
6427
|
return
|
|
6418
6428
|
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6422
|
-
|
|
6429
|
+
try:
|
|
6430
|
+
codings = [
|
|
6431
|
+
self._split_header_element(p)[0]
|
|
6432
|
+
for p in self._parse_comma_list(headers['te'])
|
|
6433
|
+
]
|
|
6434
|
+
except ValueError:
|
|
6435
|
+
raise SemanticHeaderHttpParseError(
|
|
6436
|
+
code=SemanticHeaderHttpParseErrorCode.INVALID_TE,
|
|
6437
|
+
message=f'Invalid q-value in TE header: {headers["te"]!r}',
|
|
6438
|
+
) from None
|
|
6423
6439
|
|
|
6424
6440
|
prepared.te = [c for c in codings if c]
|
|
6425
6441
|
|
|
@@ -13526,25 +13542,36 @@ class IoPipelineFlowMessages(NamespaceClass):
|
|
|
13526
13542
|
):
|
|
13527
13543
|
pass
|
|
13528
13544
|
|
|
13545
|
+
##
|
|
13546
|
+
# TODO / WIP:
|
|
13547
|
+
# - Level-triggered writability, edge-notified: emitters send one message per *transition*, never repeats.
|
|
13548
|
+
# ReadyForOutput means 'output may flow'; PauseOutput means 'stop producing output'.
|
|
13549
|
+
# - They flow INBOUND (transport -> app), originated by the transport head (or a dedicated watermark handler
|
|
13550
|
+
# watching an OutboundBytesBufferingIoPipelineHandler) from its unflushed backlog vs high/low watermarks.
|
|
13551
|
+
# - Handlers that buffer outbound data (ssl, compression, ...) do not forward these blindly: they combine the
|
|
13552
|
+
# transport-side signal with their own buffer level and re-announce the COMBINED value inbound, again only on
|
|
13553
|
+
# change. Pass-through handlers just propagate.
|
|
13554
|
+
# - The implied initial state is writable; a pipeline that never sends either message behaves as if ReadyForOutput
|
|
13555
|
+
# were always in effect. As with the other flow messages, these are only ever sent when an IoPipelineFlow service
|
|
13556
|
+
# is present.
|
|
13557
|
+
|
|
13529
13558
|
#
|
|
13530
13559
|
|
|
13531
|
-
|
|
13532
|
-
|
|
13533
|
-
#
|
|
13534
|
-
|
|
13535
|
-
|
|
13536
|
-
|
|
13537
|
-
|
|
13538
|
-
# pass
|
|
13560
|
+
@ta.final
|
|
13561
|
+
@dc.dataclass(frozen=True)
|
|
13562
|
+
class ReadyForOutput( # ~ Netty `ChannelInboundInvoker::fireChannelWritabilityChanged` # noqa
|
|
13563
|
+
IoPipelineMessages.MayPropagate,
|
|
13564
|
+
IoPipelineMessages.NeverOutbound,
|
|
13565
|
+
):
|
|
13566
|
+
pass
|
|
13539
13567
|
|
|
13540
|
-
|
|
13541
|
-
|
|
13542
|
-
#
|
|
13543
|
-
|
|
13544
|
-
|
|
13545
|
-
|
|
13546
|
-
|
|
13547
|
-
# pass
|
|
13568
|
+
@ta.final
|
|
13569
|
+
@dc.dataclass(frozen=True)
|
|
13570
|
+
class PauseOutput( # ~ Netty `ChannelInboundInvoker::fireChannelWritabilityChanged` # noqa
|
|
13571
|
+
IoPipelineMessages.MayPropagate,
|
|
13572
|
+
IoPipelineMessages.NeverOutbound,
|
|
13573
|
+
):
|
|
13574
|
+
pass
|
|
13548
13575
|
|
|
13549
13576
|
|
|
13550
13577
|
##
|
|
@@ -16017,17 +16044,6 @@ class SubprocessRun:
|
|
|
16017
16044
|
async_subprocesses = self._DEFAULT_ASYNC_SUBPROCESSES
|
|
16018
16045
|
return await check.not_none(async_subprocesses).run_(self.replace(**kwargs))
|
|
16019
16046
|
|
|
16020
|
-
_DEFAULT_MAYSYNC_SUBPROCESSES: ta.ClassVar[ta.Optional[ta.Any]] = None # AbstractMaysyncSubprocesses
|
|
16021
|
-
|
|
16022
|
-
async def maysync_run(
|
|
16023
|
-
self,
|
|
16024
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
16025
|
-
**kwargs: ta.Any,
|
|
16026
|
-
) -> SubprocessRunOutput:
|
|
16027
|
-
if maysync_subprocesses is None:
|
|
16028
|
-
maysync_subprocesses = self._DEFAULT_MAYSYNC_SUBPROCESSES
|
|
16029
|
-
return await check.not_none(maysync_subprocesses).run_(self.replace(**kwargs))
|
|
16030
|
-
|
|
16031
16047
|
|
|
16032
16048
|
SubprocessRun._FIELD_NAMES = frozenset(fld.name for fld in dc.fields(SubprocessRun)) # noqa
|
|
16033
16049
|
|
|
@@ -16060,13 +16076,6 @@ class SubprocessRunnable(Abstract, ta.Generic[T]):
|
|
|
16060
16076
|
) -> T:
|
|
16061
16077
|
return self.handle_run_output(await self.make_run().async_run(async_subprocesses, **kwargs))
|
|
16062
16078
|
|
|
16063
|
-
async def maysync_run(
|
|
16064
|
-
self,
|
|
16065
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
16066
|
-
**kwargs: ta.Any,
|
|
16067
|
-
) -> T:
|
|
16068
|
-
return self.handle_run_output(await self.make_run().maysync_run(maysync_subprocesses, **kwargs))
|
|
16069
|
-
|
|
16070
16079
|
|
|
16071
16080
|
########################################
|
|
16072
16081
|
# ../../../omlish/subprocesses/wrap.py
|
|
@@ -77,7 +77,7 @@ def __omlish_amalg__(): # noqa
|
|
|
77
77
|
dict(path='../../omlish/asyncs/asyncio/timeouts.py', sha1='4d31b02b3c39b8f2fa7e94db36552fde6942e36a'),
|
|
78
78
|
dict(path='../../omlish/lite/inject.py', sha1='172296edc98b32e51fdaa44ccc0a05b56e94f3ba'),
|
|
79
79
|
dict(path='../../omlish/logs/std/json.py', sha1='2a75553131e4d5331bb0cedde42aa183f403fc3b'),
|
|
80
|
-
dict(path='../../omlish/subprocesses/run.py', sha1='
|
|
80
|
+
dict(path='../../omlish/subprocesses/run.py', sha1='9b7e1265cd59c58d30d8915f96ba84f80797ef42'),
|
|
81
81
|
dict(path='../../omlish/subprocesses/wrap.py', sha1='8a9b7d2255481fae15c05f5624b0cdc0766f4b3f'),
|
|
82
82
|
dict(path='providers/base.py', sha1='f5d068c21f230d742e9015b033cd6320f4c68898'),
|
|
83
83
|
dict(path='../../omlish/logs/std/standard.py', sha1='472f1f0623d6bcd301612551432afa7e3a661a34'),
|
|
@@ -4790,17 +4790,6 @@ class SubprocessRun:
|
|
|
4790
4790
|
async_subprocesses = self._DEFAULT_ASYNC_SUBPROCESSES
|
|
4791
4791
|
return await check.not_none(async_subprocesses).run_(self.replace(**kwargs))
|
|
4792
4792
|
|
|
4793
|
-
_DEFAULT_MAYSYNC_SUBPROCESSES: ta.ClassVar[ta.Optional[ta.Any]] = None # AbstractMaysyncSubprocesses
|
|
4794
|
-
|
|
4795
|
-
async def maysync_run(
|
|
4796
|
-
self,
|
|
4797
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
4798
|
-
**kwargs: ta.Any,
|
|
4799
|
-
) -> SubprocessRunOutput:
|
|
4800
|
-
if maysync_subprocesses is None:
|
|
4801
|
-
maysync_subprocesses = self._DEFAULT_MAYSYNC_SUBPROCESSES
|
|
4802
|
-
return await check.not_none(maysync_subprocesses).run_(self.replace(**kwargs))
|
|
4803
|
-
|
|
4804
4793
|
|
|
4805
4794
|
SubprocessRun._FIELD_NAMES = frozenset(fld.name for fld in dc.fields(SubprocessRun)) # noqa
|
|
4806
4795
|
|
|
@@ -4833,13 +4822,6 @@ class SubprocessRunnable(Abstract, ta.Generic[T]):
|
|
|
4833
4822
|
) -> T:
|
|
4834
4823
|
return self.handle_run_output(await self.make_run().async_run(async_subprocesses, **kwargs))
|
|
4835
4824
|
|
|
4836
|
-
async def maysync_run(
|
|
4837
|
-
self,
|
|
4838
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
4839
|
-
**kwargs: ta.Any,
|
|
4840
|
-
) -> T:
|
|
4841
|
-
return self.handle_run_output(await self.make_run().maysync_run(maysync_subprocesses, **kwargs))
|
|
4842
|
-
|
|
4843
4825
|
|
|
4844
4826
|
########################################
|
|
4845
4827
|
# ../../../omlish/subprocesses/wrap.py
|
|
@@ -52,7 +52,7 @@ def __omlish_amalg__(): # noqa
|
|
|
52
52
|
dict(path='asyncs.py', sha1='a78bd64bada44716809c19e95d6ca4a96f3a28d7'),
|
|
53
53
|
dict(path='bytes/buffering.py', sha1='c19bddb05ef9449aa1a1c228901cab0d2d927946'),
|
|
54
54
|
dict(path='drivers/metadata.py', sha1='44e49cb87136933ffe867087897eab5004034a93'),
|
|
55
|
-
dict(path='flow/types.py', sha1='
|
|
55
|
+
dict(path='flow/types.py', sha1='4353968e5bd490f4121eadf9e391076bd2673f28'),
|
|
56
56
|
dict(path='handlers/fns.py', sha1='6dd1901ebdbdb31caeffab06d239f1c41e3f2726'),
|
|
57
57
|
dict(path='handlers/queues.py', sha1='f49d19c5dd7de77299bedbfb3a77a36479fd1edf'),
|
|
58
58
|
dict(path='sched/types.py', sha1='854b3f0f8ed5da2132a516f787b9019f5cb4eef5'),
|
|
@@ -4145,25 +4145,36 @@ class IoPipelineFlowMessages(NamespaceClass):
|
|
|
4145
4145
|
):
|
|
4146
4146
|
pass
|
|
4147
4147
|
|
|
4148
|
+
##
|
|
4149
|
+
# TODO / WIP:
|
|
4150
|
+
# - Level-triggered writability, edge-notified: emitters send one message per *transition*, never repeats.
|
|
4151
|
+
# ReadyForOutput means 'output may flow'; PauseOutput means 'stop producing output'.
|
|
4152
|
+
# - They flow INBOUND (transport -> app), originated by the transport head (or a dedicated watermark handler
|
|
4153
|
+
# watching an OutboundBytesBufferingIoPipelineHandler) from its unflushed backlog vs high/low watermarks.
|
|
4154
|
+
# - Handlers that buffer outbound data (ssl, compression, ...) do not forward these blindly: they combine the
|
|
4155
|
+
# transport-side signal with their own buffer level and re-announce the COMBINED value inbound, again only on
|
|
4156
|
+
# change. Pass-through handlers just propagate.
|
|
4157
|
+
# - The implied initial state is writable; a pipeline that never sends either message behaves as if ReadyForOutput
|
|
4158
|
+
# were always in effect. As with the other flow messages, these are only ever sent when an IoPipelineFlow service
|
|
4159
|
+
# is present.
|
|
4160
|
+
|
|
4148
4161
|
#
|
|
4149
4162
|
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
#
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
#
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
# ):
|
|
4166
|
-
# pass
|
|
4163
|
+
@ta.final
|
|
4164
|
+
@dc.dataclass(frozen=True)
|
|
4165
|
+
class ReadyForOutput( # ~ Netty `ChannelInboundInvoker::fireChannelWritabilityChanged` # noqa
|
|
4166
|
+
IoPipelineMessages.MayPropagate,
|
|
4167
|
+
IoPipelineMessages.NeverOutbound,
|
|
4168
|
+
):
|
|
4169
|
+
pass
|
|
4170
|
+
|
|
4171
|
+
@ta.final
|
|
4172
|
+
@dc.dataclass(frozen=True)
|
|
4173
|
+
class PauseOutput( # ~ Netty `ChannelInboundInvoker::fireChannelWritabilityChanged` # noqa
|
|
4174
|
+
IoPipelineMessages.MayPropagate,
|
|
4175
|
+
IoPipelineMessages.NeverOutbound,
|
|
4176
|
+
):
|
|
4177
|
+
pass
|
|
4167
4178
|
|
|
4168
4179
|
|
|
4169
4180
|
##
|
|
@@ -72,7 +72,7 @@ def __omlish_amalg__(): # noqa
|
|
|
72
72
|
dict(path='../../logs/protocols.py', sha1='05ca4d1d7feb50c4e3b9f22ee371aa7bf4b3dbd1'),
|
|
73
73
|
dict(path='../../argparse/cli.py', sha1='aef500dd2d8f5a65c4c04ede11355ac8eb513f2e'),
|
|
74
74
|
dict(path='../../lite/args.py', sha1='ae96b0baeb376617a63c0e64632ab2c5ff4171a8'),
|
|
75
|
-
dict(path='../../subprocesses/run.py', sha1='
|
|
75
|
+
dict(path='../../subprocesses/run.py', sha1='9b7e1265cd59c58d30d8915f96ba84f80797ef42'),
|
|
76
76
|
dict(path='../../subprocesses/wrap.py', sha1='8a9b7d2255481fae15c05f5624b0cdc0766f4b3f'),
|
|
77
77
|
dict(path='../../diag/cmds/lslocks.py', sha1='b1e09c9374f9007cb19c2c5009937e7d2f4c0a7b'),
|
|
78
78
|
dict(path='../../diag/cmds/lsof.py', sha1='0a58d3c05ce0038690ce8c5b64dd96e7b21b5853'),
|
|
@@ -3700,17 +3700,6 @@ class SubprocessRun:
|
|
|
3700
3700
|
async_subprocesses = self._DEFAULT_ASYNC_SUBPROCESSES
|
|
3701
3701
|
return await check.not_none(async_subprocesses).run_(self.replace(**kwargs))
|
|
3702
3702
|
|
|
3703
|
-
_DEFAULT_MAYSYNC_SUBPROCESSES: ta.ClassVar[ta.Optional[ta.Any]] = None # AbstractMaysyncSubprocesses
|
|
3704
|
-
|
|
3705
|
-
async def maysync_run(
|
|
3706
|
-
self,
|
|
3707
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
3708
|
-
**kwargs: ta.Any,
|
|
3709
|
-
) -> SubprocessRunOutput:
|
|
3710
|
-
if maysync_subprocesses is None:
|
|
3711
|
-
maysync_subprocesses = self._DEFAULT_MAYSYNC_SUBPROCESSES
|
|
3712
|
-
return await check.not_none(maysync_subprocesses).run_(self.replace(**kwargs))
|
|
3713
|
-
|
|
3714
3703
|
|
|
3715
3704
|
SubprocessRun._FIELD_NAMES = frozenset(fld.name for fld in dc.fields(SubprocessRun)) # noqa
|
|
3716
3705
|
|
|
@@ -3743,13 +3732,6 @@ class SubprocessRunnable(Abstract, ta.Generic[T]):
|
|
|
3743
3732
|
) -> T:
|
|
3744
3733
|
return self.handle_run_output(await self.make_run().async_run(async_subprocesses, **kwargs))
|
|
3745
3734
|
|
|
3746
|
-
async def maysync_run(
|
|
3747
|
-
self,
|
|
3748
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
3749
|
-
**kwargs: ta.Any,
|
|
3750
|
-
) -> T:
|
|
3751
|
-
return self.handle_run_output(await self.make_run().maysync_run(maysync_subprocesses, **kwargs))
|
|
3752
|
-
|
|
3753
3735
|
|
|
3754
3736
|
########################################
|
|
3755
3737
|
# ../../../subprocesses/wrap.py
|
|
@@ -90,7 +90,7 @@ def __omlish_amalg__(): # noqa
|
|
|
90
90
|
dict(path='../magic/prepare.py', sha1='a9b6bd7408d86a52fab7aae2c522032fb251cb8e'),
|
|
91
91
|
dict(path='../magic/styles.py', sha1='60fc56d089669eaad72c5c134b91bc69d4bc107e'),
|
|
92
92
|
dict(path='../packaging/versions.py', sha1='d515a54dd7fa27a9fd4d8c8617e5a21a3c12ea1e'),
|
|
93
|
-
dict(path='../packaging/wheelfile.py', sha1='
|
|
93
|
+
dict(path='../packaging/wheelfile.py', sha1='59294a1111983eed63b0bd64c2330b712d1919db'),
|
|
94
94
|
dict(path='../../omlish/formats/toml/parser.py', sha1='275d1321063cfa9d662ca458af3cb2801b9140ce'),
|
|
95
95
|
dict(path='../../omlish/formats/toml/writer.py', sha1='6ea41d7e724bb1dcf6bd84b88993ff4e8798e021'),
|
|
96
96
|
dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
|
|
@@ -128,7 +128,7 @@ def __omlish_amalg__(): # noqa
|
|
|
128
128
|
dict(path='../../omlish/lite/inject.py', sha1='172296edc98b32e51fdaa44ccc0a05b56e94f3ba'),
|
|
129
129
|
dict(path='../../omlish/logs/contexts.py', sha1='2f5881193a0c19c89c399ab0e0b5072c4048a60c'),
|
|
130
130
|
dict(path='../../omlish/logs/std/json.py', sha1='2a75553131e4d5331bb0cedde42aa183f403fc3b'),
|
|
131
|
-
dict(path='../../omlish/subprocesses/run.py', sha1='
|
|
131
|
+
dict(path='../../omlish/subprocesses/run.py', sha1='9b7e1265cd59c58d30d8915f96ba84f80797ef42'),
|
|
132
132
|
dict(path='../../omlish/subprocesses/wrap.py', sha1='8a9b7d2255481fae15c05f5624b0cdc0766f4b3f'),
|
|
133
133
|
dict(path='../interp/providers/base.py', sha1='f5d068c21f230d742e9015b033cd6320f4c68898'),
|
|
134
134
|
dict(path='../../omlish/logs/base.py', sha1='76bd4fff7a943cfdf0f992fb14d0cb7d89fc3fc6'),
|
|
@@ -875,7 +875,7 @@ class WheelFile(zipfile.ZipFile):
|
|
|
875
875
|
def open( # type: ignore # noqa
|
|
876
876
|
self,
|
|
877
877
|
name_or_info: ta.Union[str, zipfile.ZipInfo],
|
|
878
|
-
mode:
|
|
878
|
+
mode: ta.Literal['r', 'w'] = 'r',
|
|
879
879
|
pwd: ta.Optional[bytes] = None,
|
|
880
880
|
) -> ta.IO[bytes]:
|
|
881
881
|
def _update_crc(newdata: bytes) -> None:
|
|
@@ -8971,17 +8971,6 @@ class SubprocessRun:
|
|
|
8971
8971
|
async_subprocesses = self._DEFAULT_ASYNC_SUBPROCESSES
|
|
8972
8972
|
return await check.not_none(async_subprocesses).run_(self.replace(**kwargs))
|
|
8973
8973
|
|
|
8974
|
-
_DEFAULT_MAYSYNC_SUBPROCESSES: ta.ClassVar[ta.Optional[ta.Any]] = None # AbstractMaysyncSubprocesses
|
|
8975
|
-
|
|
8976
|
-
async def maysync_run(
|
|
8977
|
-
self,
|
|
8978
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
8979
|
-
**kwargs: ta.Any,
|
|
8980
|
-
) -> SubprocessRunOutput:
|
|
8981
|
-
if maysync_subprocesses is None:
|
|
8982
|
-
maysync_subprocesses = self._DEFAULT_MAYSYNC_SUBPROCESSES
|
|
8983
|
-
return await check.not_none(maysync_subprocesses).run_(self.replace(**kwargs))
|
|
8984
|
-
|
|
8985
8974
|
|
|
8986
8975
|
SubprocessRun._FIELD_NAMES = frozenset(fld.name for fld in dc.fields(SubprocessRun)) # noqa
|
|
8987
8976
|
|
|
@@ -9014,13 +9003,6 @@ class SubprocessRunnable(Abstract, ta.Generic[T]):
|
|
|
9014
9003
|
) -> T:
|
|
9015
9004
|
return self.handle_run_output(await self.make_run().async_run(async_subprocesses, **kwargs))
|
|
9016
9005
|
|
|
9017
|
-
async def maysync_run(
|
|
9018
|
-
self,
|
|
9019
|
-
maysync_subprocesses: ta.Optional[ta.Any] = None, # AbstractMaysyncSubprocesses
|
|
9020
|
-
**kwargs: ta.Any,
|
|
9021
|
-
) -> T:
|
|
9022
|
-
return self.handle_run_output(await self.make_run().maysync_run(maysync_subprocesses, **kwargs))
|
|
9023
|
-
|
|
9024
9006
|
|
|
9025
9007
|
########################################
|
|
9026
9008
|
# ../../../omlish/subprocesses/wrap.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.26
|
|
4
4
|
Summary: omdev
|
|
5
5
|
Author: wrmsr
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -14,10 +14,10 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
14
14
|
Requires-Python: >=3.14
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: omlish==0.0.
|
|
17
|
+
Requires-Dist: omlish==0.0.26
|
|
18
18
|
Provides-Extra: all
|
|
19
|
-
Requires-Dist: ominfra==0.0.
|
|
20
|
-
Requires-Dist: ommlds==0.0.
|
|
19
|
+
Requires-Dist: ominfra==0.0.26; extra == "all"
|
|
20
|
+
Requires-Dist: ommlds==0.0.26; extra == "all"
|
|
21
21
|
Requires-Dist: black~=26.5; extra == "all"
|
|
22
22
|
Requires-Dist: pycparser~=3.0; extra == "all"
|
|
23
23
|
Requires-Dist: pcpp~=1.30; extra == "all"
|
|
@@ -25,7 +25,7 @@ Requires-Dist: docutils~=0.23; extra == "all"
|
|
|
25
25
|
Requires-Dist: markdown-it-py~=4.2; extra == "all"
|
|
26
26
|
Requires-Dist: mdit-py-plugins~=0.6; extra == "all"
|
|
27
27
|
Requires-Dist: pygments~=2.20; extra == "all"
|
|
28
|
-
Requires-Dist: mypy~=2.
|
|
28
|
+
Requires-Dist: mypy~=2.2; extra == "all"
|
|
29
29
|
Requires-Dist: gprof2dot~=2025.4; extra == "all"
|
|
30
30
|
Requires-Dist: segno~=1.6; extra == "all"
|
|
31
31
|
Requires-Dist: rich~=15.0; extra == "all"
|
|
@@ -33,9 +33,9 @@ Requires-Dist: textual~=8.2; extra == "all"
|
|
|
33
33
|
Requires-Dist: textual-dev~=1.8; extra == "all"
|
|
34
34
|
Requires-Dist: textual-speedups~=0.2; extra == "all"
|
|
35
35
|
Provides-Extra: ominfra
|
|
36
|
-
Requires-Dist: ominfra==0.0.
|
|
36
|
+
Requires-Dist: ominfra==0.0.26; extra == "ominfra"
|
|
37
37
|
Provides-Extra: ommlds
|
|
38
|
-
Requires-Dist: ommlds==0.0.
|
|
38
|
+
Requires-Dist: ommlds==0.0.26; extra == "ommlds"
|
|
39
39
|
Provides-Extra: black
|
|
40
40
|
Requires-Dist: black~=26.5; extra == "black"
|
|
41
41
|
Provides-Extra: c
|
|
@@ -47,7 +47,7 @@ Requires-Dist: markdown-it-py~=4.2; extra == "doc"
|
|
|
47
47
|
Requires-Dist: mdit-py-plugins~=0.6; extra == "doc"
|
|
48
48
|
Requires-Dist: pygments~=2.20; extra == "doc"
|
|
49
49
|
Provides-Extra: mypy
|
|
50
|
-
Requires-Dist: mypy~=2.
|
|
50
|
+
Requires-Dist: mypy~=2.2; extra == "mypy"
|
|
51
51
|
Provides-Extra: prof
|
|
52
52
|
Requires-Dist: gprof2dot~=2025.4; extra == "prof"
|
|
53
53
|
Provides-Extra: qr
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
omlish==0.0.
|
|
1
|
+
omlish==0.0.26
|
|
2
2
|
|
|
3
3
|
[all]
|
|
4
|
-
ominfra==0.0.
|
|
5
|
-
ommlds==0.0.
|
|
4
|
+
ominfra==0.0.26
|
|
5
|
+
ommlds==0.0.26
|
|
6
6
|
black~=26.5
|
|
7
7
|
pycparser~=3.0
|
|
8
8
|
pcpp~=1.30
|
|
@@ -10,7 +10,7 @@ docutils~=0.23
|
|
|
10
10
|
markdown-it-py~=4.2
|
|
11
11
|
mdit-py-plugins~=0.6
|
|
12
12
|
pygments~=2.20
|
|
13
|
-
mypy~=2.
|
|
13
|
+
mypy~=2.2
|
|
14
14
|
gprof2dot~=2025.4
|
|
15
15
|
segno~=1.6
|
|
16
16
|
rich~=15.0
|
|
@@ -32,13 +32,13 @@ mdit-py-plugins~=0.6
|
|
|
32
32
|
pygments~=2.20
|
|
33
33
|
|
|
34
34
|
[mypy]
|
|
35
|
-
mypy~=2.
|
|
35
|
+
mypy~=2.2
|
|
36
36
|
|
|
37
37
|
[ominfra]
|
|
38
|
-
ominfra==0.0.
|
|
38
|
+
ominfra==0.0.26
|
|
39
39
|
|
|
40
40
|
[ommlds]
|
|
41
|
-
ommlds==0.0.
|
|
41
|
+
ommlds==0.0.26
|
|
42
42
|
|
|
43
43
|
[prof]
|
|
44
44
|
gprof2dot~=2025.4
|
|
@@ -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.14'
|
|
16
|
-
version = '0.0.
|
|
16
|
+
version = '0.0.26'
|
|
17
17
|
classifiers = [
|
|
18
18
|
'Development Status :: 2 - Pre-Alpha',
|
|
19
19
|
'Intended Audience :: Developers',
|
|
@@ -24,13 +24,13 @@ classifiers = [
|
|
|
24
24
|
]
|
|
25
25
|
description = 'omdev'
|
|
26
26
|
dependencies = [
|
|
27
|
-
'omlish == 0.0.
|
|
27
|
+
'omlish == 0.0.26',
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
[project.optional-dependencies]
|
|
31
31
|
all = [
|
|
32
|
-
'ominfra == 0.0.
|
|
33
|
-
'ommlds == 0.0.
|
|
32
|
+
'ominfra == 0.0.26',
|
|
33
|
+
'ommlds == 0.0.26',
|
|
34
34
|
'black ~= 26.5',
|
|
35
35
|
'pycparser ~= 3.0',
|
|
36
36
|
'pcpp ~= 1.30',
|
|
@@ -38,7 +38,7 @@ all = [
|
|
|
38
38
|
'markdown-it-py ~= 4.2',
|
|
39
39
|
'mdit-py-plugins ~= 0.6',
|
|
40
40
|
'pygments ~= 2.20',
|
|
41
|
-
'mypy ~= 2.
|
|
41
|
+
'mypy ~= 2.2',
|
|
42
42
|
'gprof2dot ~= 2025.4',
|
|
43
43
|
'segno ~= 1.6',
|
|
44
44
|
'rich ~= 15.0',
|
|
@@ -47,10 +47,10 @@ all = [
|
|
|
47
47
|
'textual-speedups ~= 0.2',
|
|
48
48
|
]
|
|
49
49
|
ominfra = [
|
|
50
|
-
'ominfra == 0.0.
|
|
50
|
+
'ominfra == 0.0.26',
|
|
51
51
|
]
|
|
52
52
|
ommlds = [
|
|
53
|
-
'ommlds == 0.0.
|
|
53
|
+
'ommlds == 0.0.26',
|
|
54
54
|
]
|
|
55
55
|
black = [
|
|
56
56
|
'black ~= 26.5',
|
|
@@ -66,7 +66,7 @@ doc = [
|
|
|
66
66
|
'pygments ~= 2.20',
|
|
67
67
|
]
|
|
68
68
|
mypy = [
|
|
69
|
-
'mypy ~= 2.
|
|
69
|
+
'mypy ~= 2.2',
|
|
70
70
|
]
|
|
71
71
|
prof = [
|
|
72
72
|
'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
|