omdev 0.0.0.dev537__tar.gz → 0.0.0.dev539__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.dev537/omdev.egg-info → omdev-0.0.0.dev539}/PKG-INFO +4 -4
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/__about__.py +1 -1
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/cli.py +3 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/config.toml +1 -1
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/ci.py +3 -1
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/io/pipelines.py +95 -25
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/__init__.py +17 -0
- omdev-0.0.0.dev539/omdev/tui/textual/render2.py +39 -0
- omdev-0.0.0.dev539/omdev/tui/textual/widgets2.py +24 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539/omdev.egg-info}/PKG-INFO +4 -4
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev.egg-info/SOURCES.txt +2 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev.egg-info/requires.txt +3 -3
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/pyproject.toml +4 -4
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/LICENSE +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/README.md +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/.omlish-manifests.json +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/README.md +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/cli/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/cli/main.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/gen.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/imports.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/manifests.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/resources.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/srcfiles.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/strip.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/types.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/gen/typing.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/info.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/amalg/sources.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/darwin/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/darwin/aps.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/darwin/ax.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/darwin/cf.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/darwin/cg.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/linux/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/capi/linux/x11.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cc/srclangs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/compose.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/clipboard/capi/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/clipboard/capi/darwin_cf.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/clipboard/capi/linux_x11.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/clipboard/commands.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/clipboard/platform.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/clipboard/types.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cmdlog/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cmdlog/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cmdlog/_cmdlog.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cmdlog/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/cmdlog/cmdlog.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataclasses/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataclasses/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataclasses/_dumping.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataclasses/_template.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataclasses/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataclasses/codegen.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataclasses/dumping.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/content.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/gen.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/helpers.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/ops.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/rendering.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/.python-versions.json +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/configs/.vimrc +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/depsets/python.toml +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/depsets/system.toml +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/go.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/jdk.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/nvm.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/uv.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/dockerdev/resources/xu +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/intellij/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/intellij/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/intellij/ides.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/intellij/open.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/messages/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/messages/base.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/messages/formats.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/messages/messages.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/messages/parsing.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/numerics/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/numerics/formats.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/numerics/numerics.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/numerics/types.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/LICENSE +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/consts.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/errors.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/message.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/nuh.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/parsing.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/rendering.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/tags.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/irc/protocol/utils.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/java/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/java/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/java/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/java/pomgen.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/java/xml.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/manifests/_dumping.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/manifests/building.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/markdown/incparse.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/markdown/tokens.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/mypy/report.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/blanklines.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/precheck/unicode.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/asts/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/asts/parents.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/asts/toplevel.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/asts/visitors.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/classdot.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/LICENSE +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/attrdoc.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/common.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/epydoc.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/google.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/numpydoc.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/parser.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/docstrings/rest.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/findimports.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/reprs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/scripts/execstat.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tokens/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tokens/all.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tokens/utils.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/py/tools/pipdepup.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/resources/dockerdev.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/tools/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/tools/aboutdeps.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/tools/buildrs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/tools/pyversions.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/pyproject/versions.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/rs/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/interp.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/formats/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/formats/goyaml.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/inject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/io/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/io/streams.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/logs.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/lib/marshal.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/pyproject.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/diff.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/git/cloning.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/jsonview/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/jsonview/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/jsonview/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/jsonview/resources/jsonview.css +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/jsonview/resources/jsonview.js +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/pawk/README.md +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/shell.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/edit/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/edit/main.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/irc/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/irc/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/irc/app.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/irc/client.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/irc/commands.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/irc/main.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/markdown/__main__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/apps/markdown/cli.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/rich/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/rich/console2.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/rich/markdown2.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/app2.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/autocomplete/LICENSE +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/autocomplete/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/autocomplete/matching.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/autocomplete/paths.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/autocomplete/widget.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/binding2.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/clipboard.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/debug/__init__.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/debug/dominfo.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/debug/screen.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/devtools.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/drivers2.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/logging2.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/screen2.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev/tui/textual/types.py +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev537 → omdev-0.0.0.dev539}/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.dev539
|
|
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.dev539
|
|
18
18
|
Provides-Extra: all
|
|
19
19
|
Requires-Dist: black~=26.3; extra == "all"
|
|
20
20
|
Requires-Dist: pycparser~=3.0; extra == "all"
|
|
@@ -27,7 +27,7 @@ Requires-Dist: mypy~=1.19; extra == "all"
|
|
|
27
27
|
Requires-Dist: gprof2dot~=2025.4; extra == "all"
|
|
28
28
|
Requires-Dist: segno~=1.6; extra == "all"
|
|
29
29
|
Requires-Dist: rich~=14.3; extra == "all"
|
|
30
|
-
Requires-Dist: textual~=8.
|
|
30
|
+
Requires-Dist: textual~=8.1; extra == "all"
|
|
31
31
|
Requires-Dist: textual-dev~=1.8; extra == "all"
|
|
32
32
|
Requires-Dist: textual-speedups~=0.2; extra == "all"
|
|
33
33
|
Provides-Extra: black
|
|
@@ -48,7 +48,7 @@ Provides-Extra: qr
|
|
|
48
48
|
Requires-Dist: segno~=1.6; extra == "qr"
|
|
49
49
|
Provides-Extra: tui
|
|
50
50
|
Requires-Dist: rich~=14.3; extra == "tui"
|
|
51
|
-
Requires-Dist: textual~=8.
|
|
51
|
+
Requires-Dist: textual~=8.1; extra == "tui"
|
|
52
52
|
Requires-Dist: textual-dev~=1.8; extra == "tui"
|
|
53
53
|
Requires-Dist: textual-speedups~=0.2; extra == "tui"
|
|
54
54
|
Dynamic: license-file
|
|
@@ -14,6 +14,7 @@ import argparse
|
|
|
14
14
|
import asyncio
|
|
15
15
|
import itertools
|
|
16
16
|
import os.path
|
|
17
|
+
import sys
|
|
17
18
|
import typing as ta
|
|
18
19
|
|
|
19
20
|
from omlish.argparse.cli import ArgparseCli
|
|
@@ -110,6 +111,8 @@ class CiCli(ArgparseCli):
|
|
|
110
111
|
argparse_arg('cmd', nargs=argparse.REMAINDER),
|
|
111
112
|
)
|
|
112
113
|
async def run(self) -> None:
|
|
114
|
+
log.info('Python interpreter: %r, version %r', sys.executable, ' '.join(sys.version.split()))
|
|
115
|
+
|
|
113
116
|
project_dir = self.args.project_dir
|
|
114
117
|
docker_file = self.args.docker_file
|
|
115
118
|
compose_file = self.args.compose_file
|
|
@@ -208,7 +208,7 @@ def __omlish_amalg__(): # noqa
|
|
|
208
208
|
dict(path='github/cli.py', sha1='6d14b0eb4ca5f606ad2821b63b9707ce57f50406'),
|
|
209
209
|
dict(path='github/inject.py', sha1='99c0dd7c55767e7c49f70b7edac25da67f718b2e'),
|
|
210
210
|
dict(path='inject.py', sha1='e86b16d79a113a4f387e68ed0db1d067bcada93a'),
|
|
211
|
-
dict(path='cli.py', sha1='
|
|
211
|
+
dict(path='cli.py', sha1='852b4e8975d7f6744ec1790f83fe8a321853d760'),
|
|
212
212
|
],
|
|
213
213
|
)
|
|
214
214
|
|
|
@@ -26698,6 +26698,8 @@ class CiCli(ArgparseCli):
|
|
|
26698
26698
|
argparse_arg('cmd', nargs=argparse.REMAINDER),
|
|
26699
26699
|
)
|
|
26700
26700
|
async def run(self) -> None:
|
|
26701
|
+
log.info('Python interpreter: %r, version %r', sys.executable, ' '.join(sys.version.split()))
|
|
26702
|
+
|
|
26701
26703
|
project_dir = self.args.project_dir
|
|
26702
26704
|
docker_file = self.args.docker_file
|
|
26703
26705
|
compose_file = self.args.compose_file
|
|
@@ -43,17 +43,18 @@ def __omlish_amalg__(): # noqa
|
|
|
43
43
|
dict(path='../../lite/namespaces.py', sha1='27b12b6592403c010fb8b2a0af7c24238490d3a1'),
|
|
44
44
|
dict(path='../../logs/levels.py', sha1='91405563d082a5eba874da82aac89d83ce7b6152'),
|
|
45
45
|
dict(path='../../logs/warnings.py', sha1='c4eb694b24773351107fcc058f3620f1dbfb6799'),
|
|
46
|
-
dict(path='core.py', sha1='
|
|
46
|
+
dict(path='core.py', sha1='d9c24e9b85536086a93fc6f00ae02cdba2824e55'),
|
|
47
47
|
dict(path='../streams/types.py', sha1='8959d244de95eaf9f118cc3fd2d713d85e55ff36'),
|
|
48
48
|
dict(path='../../logs/infos.py', sha1='4dd104bd468a8c438601dd0bbda619b47d2f1620'),
|
|
49
49
|
dict(path='../../logs/metrics/base.py', sha1='95120732c745ceec5333f81553761ab6ff4bb3fb'),
|
|
50
50
|
dict(path='../../logs/protocols.py', sha1='05ca4d1d7feb50c4e3b9f22ee371aa7bf4b3dbd1'),
|
|
51
51
|
dict(path='asyncs.py', sha1='a78bd64bada44716809c19e95d6ca4a96f3a28d7'),
|
|
52
52
|
dict(path='bytes/buffering.py', sha1='c19bddb05ef9449aa1a1c228901cab0d2d927946'),
|
|
53
|
-
dict(path='
|
|
53
|
+
dict(path='drivers/metadata.py', sha1='44e49cb87136933ffe867087897eab5004034a93'),
|
|
54
|
+
dict(path='flow/types.py', sha1='f6d06c7d6ca41a88930811507c966eeb073c15b3'),
|
|
54
55
|
dict(path='handlers/fns.py', sha1='6dd1901ebdbdb31caeffab06d239f1c41e3f2726'),
|
|
55
56
|
dict(path='handlers/queues.py', sha1='f49d19c5dd7de77299bedbfb3a77a36479fd1edf'),
|
|
56
|
-
dict(path='sched/types.py', sha1='
|
|
57
|
+
dict(path='sched/types.py', sha1='854b3f0f8ed5da2132a516f787b9019f5cb4eef5'),
|
|
57
58
|
dict(path='../streams/base.py', sha1='bdeaff419684dec34fd0dc59808a9686131992bc'),
|
|
58
59
|
dict(path='../streams/framing.py', sha1='dc2d7f638b042619fd3d95789c71532a29fd5fe4'),
|
|
59
60
|
dict(path='../streams/utils.py', sha1='eb08fa1d56284b078f973eea6796747b9bbdffdf'),
|
|
@@ -70,7 +71,7 @@ def __omlish_amalg__(): # noqa
|
|
|
70
71
|
dict(path='../../logs/std/loggers.py', sha1='dbdfc66188e6accb75d03454e43221d3fba0f011'),
|
|
71
72
|
dict(path='bytes/decoders.py', sha1='6f6d8bc1adc6a5277543389814bc26ef63e34561'),
|
|
72
73
|
dict(path='../../logs/modules.py', sha1='dd7d5f8e63fe8829dfb49460f3929ab64b68ee14'),
|
|
73
|
-
dict(path='drivers/asyncio.py', sha1='
|
|
74
|
+
dict(path='drivers/asyncio.py', sha1='59e80c4ac127e727676f17e956783f3aa39b4088'),
|
|
74
75
|
dict(path='_amalg.py', sha1='14b67747b1e3b3c1483050a7948a29888d732ed9'),
|
|
75
76
|
],
|
|
76
77
|
)
|
|
@@ -1605,14 +1606,14 @@ class IoPipelineHandlerContext:
|
|
|
1605
1606
|
_pipeline: 'IoPipeline',
|
|
1606
1607
|
_handler: 'IoPipelineHandler',
|
|
1607
1608
|
|
|
1608
|
-
|
|
1609
|
+
_name: ta.Optional[str] = None,
|
|
1609
1610
|
) -> None:
|
|
1610
1611
|
super().__init__()
|
|
1611
1612
|
|
|
1612
1613
|
self._pipeline: ta.Final[IoPipeline] = _pipeline
|
|
1613
1614
|
self._handler: ta.Final[IoPipelineHandler] = _handler
|
|
1614
1615
|
|
|
1615
|
-
self._name: ta.Final[ta.Optional[str]] =
|
|
1616
|
+
self._name: ta.Final[ta.Optional[str]] = _name
|
|
1616
1617
|
|
|
1617
1618
|
self._ref: IoPipelineHandlerRef_ = IoPipelineHandlerRef(_context=self)
|
|
1618
1619
|
|
|
@@ -1960,13 +1961,21 @@ class ShareableIoPipelineHandler(IoPipelineHandler, Abstract):
|
|
|
1960
1961
|
##
|
|
1961
1962
|
|
|
1962
1963
|
|
|
1963
|
-
IoPipelineDirection = ta.Literal[
|
|
1964
|
+
IoPipelineDirection = ta.Literal[ # ta.TypeAlias # omlish-amalg-typing-no-move
|
|
1965
|
+
'inbound',
|
|
1966
|
+
'outbound',
|
|
1967
|
+
]
|
|
1964
1968
|
|
|
1965
1969
|
IoPipelineDirectionOrDuplex = ta.Literal[ # ta.TypeAlias # omlish-amalg-typing-no-move
|
|
1966
1970
|
IoPipelineDirection,
|
|
1967
1971
|
'duplex',
|
|
1968
1972
|
]
|
|
1969
1973
|
|
|
1974
|
+
IoPipelineUpdate = ta.Literal[ # ta.TypeAlias # omlish-amalg-typing-no-move
|
|
1975
|
+
'added',
|
|
1976
|
+
'removed',
|
|
1977
|
+
]
|
|
1978
|
+
|
|
1970
1979
|
IoPipelineHandlerUpdate = ta.Literal[ # ta.TypeAlias # omlish-amalg-typing-no-move
|
|
1971
1980
|
'adding',
|
|
1972
1981
|
'added',
|
|
@@ -1979,6 +1988,9 @@ IoPipelineHandlerUpdate = ta.Literal[ # ta.TypeAlias # omlish-amalg-typing-no-
|
|
|
1979
1988
|
|
|
1980
1989
|
|
|
1981
1990
|
class IoPipelineService(Abstract):
|
|
1991
|
+
def pipeline_update(self, pipeline: 'IoPipeline', kind: IoPipelineUpdate) -> None:
|
|
1992
|
+
pass
|
|
1993
|
+
|
|
1982
1994
|
def handler_update(self, handler_ref: IoPipelineHandlerRef, kind: IoPipelineHandlerUpdate) -> None:
|
|
1983
1995
|
pass
|
|
1984
1996
|
|
|
@@ -1997,12 +2009,15 @@ class IoPipelineServices:
|
|
|
1997
2009
|
self._by_type_cache: ta.Dict[type, ta.Sequence[ta.Any]] = {}
|
|
1998
2010
|
self._single_by_type_cache: ta.Dict[type, ta.Optional[ta.Any]] = {}
|
|
1999
2011
|
|
|
2012
|
+
self._handles_pipeline_update = handles_pipeline_update = []
|
|
2000
2013
|
self._handles_handler_update = handles_handler_update = []
|
|
2001
2014
|
self._handles_pipeline_enter = handles_pipeline_enter = []
|
|
2002
2015
|
self._handles_pipeline_exit = handles_pipeline_exit = []
|
|
2003
2016
|
|
|
2004
2017
|
for svc in lst:
|
|
2005
2018
|
sty = type(svc)
|
|
2019
|
+
if sty.pipeline_update is not IoPipelineService.pipeline_update:
|
|
2020
|
+
handles_pipeline_update.append(sty)
|
|
2006
2021
|
if sty.handler_update is not IoPipelineService.handler_update:
|
|
2007
2022
|
handles_handler_update.append(sty)
|
|
2008
2023
|
if sty.pipeline_enter is not IoPipelineService.pipeline_enter:
|
|
@@ -2010,14 +2025,19 @@ class IoPipelineServices:
|
|
|
2010
2025
|
if sty.pipeline_exit is not IoPipelineService.pipeline_exit:
|
|
2011
2026
|
handles_pipeline_exit.append(sty)
|
|
2012
2027
|
|
|
2028
|
+
_handles_pipeline_update: ta.Sequence[IoPipelineService]
|
|
2013
2029
|
_handles_handler_update: ta.Sequence[IoPipelineService]
|
|
2014
2030
|
_handles_pipeline_enter: ta.Sequence[IoPipelineService]
|
|
2015
2031
|
_handles_pipeline_exit: ta.Sequence[IoPipelineService]
|
|
2016
2032
|
|
|
2033
|
+
_EMPTY: ta.ClassVar['IoPipelineServices']
|
|
2034
|
+
|
|
2017
2035
|
@classmethod
|
|
2018
2036
|
def of(cls, obj: ta.Union['IoPipelineServices', ta.Sequence[IoPipelineService]]) -> 'IoPipelineServices': # noqa
|
|
2019
2037
|
if isinstance(obj, cls):
|
|
2020
2038
|
return obj
|
|
2039
|
+
elif not obj:
|
|
2040
|
+
return cls._EMPTY
|
|
2021
2041
|
else:
|
|
2022
2042
|
return cls(list(obj))
|
|
2023
2043
|
|
|
@@ -2066,6 +2086,9 @@ class IoPipelineServices:
|
|
|
2066
2086
|
return svc
|
|
2067
2087
|
|
|
2068
2088
|
|
|
2089
|
+
IoPipelineServices._EMPTY = IoPipelineServices([]) # noqa
|
|
2090
|
+
|
|
2091
|
+
|
|
2069
2092
|
##
|
|
2070
2093
|
|
|
2071
2094
|
|
|
@@ -2083,10 +2106,14 @@ class IoPipelineMetadatas:
|
|
|
2083
2106
|
dct[mty] = md
|
|
2084
2107
|
self._dct = dct
|
|
2085
2108
|
|
|
2109
|
+
_EMPTY: ta.ClassVar['IoPipelineMetadatas']
|
|
2110
|
+
|
|
2086
2111
|
@classmethod
|
|
2087
2112
|
def of(cls, obj: ta.Union['IoPipelineMetadatas', ta.Sequence[IoPipelineMetadata]]) -> 'IoPipelineMetadatas': # noqa
|
|
2088
2113
|
if isinstance(obj, cls):
|
|
2089
2114
|
return obj
|
|
2115
|
+
elif not obj:
|
|
2116
|
+
return cls._EMPTY
|
|
2090
2117
|
else:
|
|
2091
2118
|
return cls(list(obj))
|
|
2092
2119
|
|
|
@@ -2148,6 +2175,9 @@ class IoPipelineMetadatas:
|
|
|
2148
2175
|
return self._dct.get(ty, default)
|
|
2149
2176
|
|
|
2150
2177
|
|
|
2178
|
+
IoPipelineMetadatas._EMPTY = IoPipelineMetadatas([]) # noqa
|
|
2179
|
+
|
|
2180
|
+
|
|
2151
2181
|
##
|
|
2152
2182
|
|
|
2153
2183
|
|
|
@@ -2362,8 +2392,6 @@ class IoPipeline:
|
|
|
2362
2392
|
*never_handle_exceptions,
|
|
2363
2393
|
)
|
|
2364
2394
|
|
|
2365
|
-
self._execution_depth = 0
|
|
2366
|
-
|
|
2367
2395
|
self._propagation: _IoPipelinePropagation = _IoPipelinePropagation(self)
|
|
2368
2396
|
|
|
2369
2397
|
#
|
|
@@ -2393,16 +2421,14 @@ class IoPipeline:
|
|
|
2393
2421
|
|
|
2394
2422
|
#
|
|
2395
2423
|
|
|
2396
|
-
self._saw_any_input = False
|
|
2397
|
-
self._saw_initial_input = False
|
|
2398
|
-
self._saw_final_input = False
|
|
2399
|
-
self._saw_final_output = False
|
|
2400
|
-
|
|
2401
2424
|
self._state = IoPipeline.State.READY
|
|
2402
2425
|
|
|
2403
2426
|
#
|
|
2404
2427
|
|
|
2405
2428
|
try:
|
|
2429
|
+
for svc in self._services._handles_pipeline_update: # noqa
|
|
2430
|
+
svc.pipeline_update(self, 'added')
|
|
2431
|
+
|
|
2406
2432
|
for h in spec.handlers:
|
|
2407
2433
|
self.add_innermost(h)
|
|
2408
2434
|
|
|
@@ -2435,8 +2461,17 @@ class IoPipeline:
|
|
|
2435
2461
|
def state(self) -> State:
|
|
2436
2462
|
return self._state
|
|
2437
2463
|
|
|
2464
|
+
@property
|
|
2465
|
+
def is_ready(self) -> bool:
|
|
2466
|
+
return self._state is IoPipeline.State.READY
|
|
2467
|
+
|
|
2438
2468
|
#
|
|
2439
2469
|
|
|
2470
|
+
_saw_any_input = False
|
|
2471
|
+
_saw_initial_input = False
|
|
2472
|
+
_saw_final_input = False
|
|
2473
|
+
_saw_final_output = False
|
|
2474
|
+
|
|
2440
2475
|
@property
|
|
2441
2476
|
def saw_any_input(self) -> bool:
|
|
2442
2477
|
return self._saw_any_input
|
|
@@ -2467,6 +2502,8 @@ class IoPipeline:
|
|
|
2467
2502
|
##
|
|
2468
2503
|
# execution
|
|
2469
2504
|
|
|
2505
|
+
_execution_depth = 0
|
|
2506
|
+
|
|
2470
2507
|
def _step_in(self) -> None:
|
|
2471
2508
|
self._execution_depth += 1
|
|
2472
2509
|
|
|
@@ -2717,7 +2754,7 @@ class IoPipeline:
|
|
|
2717
2754
|
_pipeline=self,
|
|
2718
2755
|
_handler=handler,
|
|
2719
2756
|
|
|
2720
|
-
|
|
2757
|
+
_name=name,
|
|
2721
2758
|
)
|
|
2722
2759
|
|
|
2723
2760
|
self._handler_update(ctx, 'adding') # noqa
|
|
@@ -3062,6 +3099,9 @@ class IoPipeline:
|
|
|
3062
3099
|
finally:
|
|
3063
3100
|
self._step_out()
|
|
3064
3101
|
|
|
3102
|
+
for svc in self._services._handles_pipeline_update: # noqa
|
|
3103
|
+
svc.pipeline_update(self, 'removed')
|
|
3104
|
+
|
|
3065
3105
|
self._state = IoPipeline.State.DESTROYED
|
|
3066
3106
|
|
|
3067
3107
|
|
|
@@ -3940,6 +3980,18 @@ class OutboundBytesBufferingIoPipelineHandler(IoPipelineHandler, Abstract):
|
|
|
3940
3980
|
raise NotImplementedError
|
|
3941
3981
|
|
|
3942
3982
|
|
|
3983
|
+
########################################
|
|
3984
|
+
# ../drivers/metadata.py
|
|
3985
|
+
|
|
3986
|
+
|
|
3987
|
+
##
|
|
3988
|
+
|
|
3989
|
+
|
|
3990
|
+
@dc.dataclass(frozen=True)
|
|
3991
|
+
class DriverIoPipelineMetadata(IoPipelineMetadata):
|
|
3992
|
+
driver: ta.Any
|
|
3993
|
+
|
|
3994
|
+
|
|
3943
3995
|
########################################
|
|
3944
3996
|
# ../flow/types.py
|
|
3945
3997
|
|
|
@@ -4005,14 +4057,31 @@ class IoPipelineFlowMessages(NamespaceClass):
|
|
|
4005
4057
|
##
|
|
4006
4058
|
|
|
4007
4059
|
|
|
4008
|
-
class IoPipelineFlow(
|
|
4060
|
+
class IoPipelineFlow(Abstract):
|
|
4009
4061
|
@abc.abstractmethod
|
|
4010
|
-
def is_auto_read(
|
|
4011
|
-
|
|
4062
|
+
def is_auto_read(
|
|
4063
|
+
self: ta.Union[
|
|
4064
|
+
'IoPipelineFlow',
|
|
4065
|
+
IoPipeline,
|
|
4066
|
+
IoPipelineHandlerContext,
|
|
4067
|
+
None,
|
|
4068
|
+
],
|
|
4069
|
+
) -> bool:
|
|
4070
|
+
# This strange construct grants the ability to do `IoPipelineFlow.is_auto_read(opt_flow)`, which is becoming
|
|
4071
|
+
# increasingly frequently useful in real code.
|
|
4072
|
+
if self is None:
|
|
4073
|
+
return False
|
|
4012
4074
|
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
|
|
4075
|
+
if isinstance(self, IoPipelineFlow):
|
|
4076
|
+
return self.is_auto_read()
|
|
4077
|
+
|
|
4078
|
+
if isinstance(self, IoPipelineHandlerContext):
|
|
4079
|
+
self = self._pipeline # noqa
|
|
4080
|
+
|
|
4081
|
+
if isinstance(self, IoPipeline):
|
|
4082
|
+
return (fc := self.services.find(IoPipelineFlow)) is None or fc.is_auto_read()
|
|
4083
|
+
|
|
4084
|
+
raise TypeError(self)
|
|
4016
4085
|
|
|
4017
4086
|
|
|
4018
4087
|
########################################
|
|
@@ -4299,7 +4368,7 @@ class DuplexQueueIoPipelineHandler(
|
|
|
4299
4368
|
##
|
|
4300
4369
|
|
|
4301
4370
|
|
|
4302
|
-
class IoPipelineScheduling(
|
|
4371
|
+
class IoPipelineScheduling(Abstract):
|
|
4303
4372
|
class Handle(Abstract):
|
|
4304
4373
|
@abc.abstractmethod
|
|
4305
4374
|
def cancel(self) -> None:
|
|
@@ -7995,7 +8064,7 @@ class AsyncioStreamIoPipelineDriver(Abstract):
|
|
|
7995
8064
|
##
|
|
7996
8065
|
# init
|
|
7997
8066
|
|
|
7998
|
-
_sched: 'AsyncioStreamIoPipelineDriver.
|
|
8067
|
+
_sched: 'AsyncioStreamIoPipelineDriver._SchedulingService'
|
|
7999
8068
|
|
|
8000
8069
|
_pipeline: IoPipeline
|
|
8001
8070
|
|
|
@@ -8005,7 +8074,7 @@ class AsyncioStreamIoPipelineDriver(Abstract):
|
|
|
8005
8074
|
_output_handlers: ta.Mapping[type, ta.Callable[[ta.Any], ta.Awaitable[None]]]
|
|
8006
8075
|
|
|
8007
8076
|
async def _init(self) -> None:
|
|
8008
|
-
self._sched = self.
|
|
8077
|
+
self._sched = self._SchedulingService(self)
|
|
8009
8078
|
|
|
8010
8079
|
services = IoPipelineServices.of(self._spec.services)
|
|
8011
8080
|
self._flow = services.find(IoPipelineFlow)
|
|
@@ -8017,6 +8086,7 @@ class AsyncioStreamIoPipelineDriver(Abstract):
|
|
|
8017
8086
|
|
|
8018
8087
|
self._pipeline = IoPipeline(dc.replace(
|
|
8019
8088
|
self._spec,
|
|
8089
|
+
metadata=(*self._spec.metadata, DriverIoPipelineMetadata(self)),
|
|
8020
8090
|
services=(*self._spec.services, self._sched),
|
|
8021
8091
|
))
|
|
8022
8092
|
|
|
@@ -8237,7 +8307,7 @@ class AsyncioStreamIoPipelineDriver(Abstract):
|
|
|
8237
8307
|
##
|
|
8238
8308
|
# scheduling
|
|
8239
8309
|
|
|
8240
|
-
class
|
|
8310
|
+
class _SchedulingService(IoPipelineScheduling, IoPipelineService):
|
|
8241
8311
|
def __init__(self, d: 'AsyncioStreamIoPipelineDriver') -> None:
|
|
8242
8312
|
super().__init__()
|
|
8243
8313
|
|
|
@@ -30,6 +30,7 @@ with _lang.auto_proxy_init(globals()):
|
|
|
30
30
|
from textual import widget # noqa
|
|
31
31
|
from textual import widgets # noqa
|
|
32
32
|
from textual import work # noqa
|
|
33
|
+
from textual._compositor import Compositor # noqa
|
|
33
34
|
from textual.app import ActionError # noqa
|
|
34
35
|
from textual.app import ActiveModeError # noqa
|
|
35
36
|
from textual.app import App as App_ # noqa
|
|
@@ -163,6 +164,7 @@ with _lang.auto_proxy_init(globals()):
|
|
|
163
164
|
from textual.screen import ModalScreen # noqa
|
|
164
165
|
from textual.screen import Screen as Screen_ # noqa
|
|
165
166
|
from textual.screen import SystemModalScreen # noqa
|
|
167
|
+
from textual.strip import Strip # noqa
|
|
166
168
|
from textual.style import Style # noqa
|
|
167
169
|
from textual.suggester import SuggestFromList # noqa
|
|
168
170
|
from textual.suggester import Suggester # noqa
|
|
@@ -232,6 +234,13 @@ with _lang.auto_proxy_init(globals()):
|
|
|
232
234
|
|
|
233
235
|
##
|
|
234
236
|
|
|
237
|
+
from rich.align import AlignMethod # noqa
|
|
238
|
+
from rich.console import Console # noqa
|
|
239
|
+
from rich.console import ConsoleOptions # noqa
|
|
240
|
+
from rich.markdown import Markdown as RichMarkdown # noqa
|
|
241
|
+
from rich.rule import Rule as RichRule # noqa
|
|
242
|
+
from rich.segment import Segment # noqa
|
|
243
|
+
from rich.style import Style as RichStyle # noqa
|
|
235
244
|
from rich.text import Text # noqa
|
|
236
245
|
|
|
237
246
|
##
|
|
@@ -273,6 +282,10 @@ with _lang.auto_proxy_init(globals()):
|
|
|
273
282
|
translate_log_level,
|
|
274
283
|
)
|
|
275
284
|
|
|
285
|
+
from .render2 import ( # noqa
|
|
286
|
+
render_full_widget_ansi,
|
|
287
|
+
)
|
|
288
|
+
|
|
276
289
|
from .screen2 import ( # noqa
|
|
277
290
|
Screen,
|
|
278
291
|
)
|
|
@@ -281,3 +294,7 @@ with _lang.auto_proxy_init(globals()):
|
|
|
281
294
|
TopRightBottomLeft,
|
|
282
295
|
trbl_to_dict,
|
|
283
296
|
)
|
|
297
|
+
|
|
298
|
+
from .widgets2 import ( # noqa
|
|
299
|
+
ComposeOnce,
|
|
300
|
+
)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import io
|
|
2
|
+
|
|
3
|
+
from rich.console import Console
|
|
4
|
+
from textual._compositor import Compositor # noqa
|
|
5
|
+
from textual.geometry import Size
|
|
6
|
+
from textual.widget import Widget
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def render_full_widget_ansi(
|
|
13
|
+
widget: Widget,
|
|
14
|
+
console: Console,
|
|
15
|
+
size: Size | None = None,
|
|
16
|
+
*,
|
|
17
|
+
strip: bool = False,
|
|
18
|
+
reset: bool = False,
|
|
19
|
+
) -> str:
|
|
20
|
+
if size is None:
|
|
21
|
+
size = Size(widget.size.width, widget.size.height)
|
|
22
|
+
|
|
23
|
+
comp = Compositor()
|
|
24
|
+
comp.reflow(widget, size)
|
|
25
|
+
|
|
26
|
+
update = comp.render_full_update(simplify=True)
|
|
27
|
+
|
|
28
|
+
out = io.StringIO()
|
|
29
|
+
for row in update.strips:
|
|
30
|
+
line = ''.join(strip.render(console) for strip in row)
|
|
31
|
+
if strip:
|
|
32
|
+
line = line.rstrip(' ')
|
|
33
|
+
out.write(line)
|
|
34
|
+
if reset:
|
|
35
|
+
out.write('\x1b[0m')
|
|
36
|
+
out.write('\n')
|
|
37
|
+
ansi = out.getvalue()
|
|
38
|
+
|
|
39
|
+
return ansi
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import abc
|
|
2
|
+
import typing as ta
|
|
3
|
+
|
|
4
|
+
from textual.app import ComposeResult
|
|
5
|
+
|
|
6
|
+
from omlish import check
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
##
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ComposeOnce:
|
|
13
|
+
_has_composed = False
|
|
14
|
+
|
|
15
|
+
@ta.final
|
|
16
|
+
def compose(self) -> ComposeResult:
|
|
17
|
+
check.state(not self._has_composed)
|
|
18
|
+
self._has_composed = True
|
|
19
|
+
|
|
20
|
+
return self._compose_once()
|
|
21
|
+
|
|
22
|
+
@abc.abstractmethod
|
|
23
|
+
def _compose_once(self) -> ComposeResult:
|
|
24
|
+
raise NotImplementedError
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev539
|
|
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.dev539
|
|
18
18
|
Provides-Extra: all
|
|
19
19
|
Requires-Dist: black~=26.3; extra == "all"
|
|
20
20
|
Requires-Dist: pycparser~=3.0; extra == "all"
|
|
@@ -27,7 +27,7 @@ Requires-Dist: mypy~=1.19; extra == "all"
|
|
|
27
27
|
Requires-Dist: gprof2dot~=2025.4; extra == "all"
|
|
28
28
|
Requires-Dist: segno~=1.6; extra == "all"
|
|
29
29
|
Requires-Dist: rich~=14.3; extra == "all"
|
|
30
|
-
Requires-Dist: textual~=8.
|
|
30
|
+
Requires-Dist: textual~=8.1; extra == "all"
|
|
31
31
|
Requires-Dist: textual-dev~=1.8; extra == "all"
|
|
32
32
|
Requires-Dist: textual-speedups~=0.2; extra == "all"
|
|
33
33
|
Provides-Extra: black
|
|
@@ -48,7 +48,7 @@ Provides-Extra: qr
|
|
|
48
48
|
Requires-Dist: segno~=1.6; extra == "qr"
|
|
49
49
|
Provides-Extra: tui
|
|
50
50
|
Requires-Dist: rich~=14.3; extra == "tui"
|
|
51
|
-
Requires-Dist: textual~=8.
|
|
51
|
+
Requires-Dist: textual~=8.1; extra == "tui"
|
|
52
52
|
Requires-Dist: textual-dev~=1.8; extra == "tui"
|
|
53
53
|
Requires-Dist: textual-speedups~=0.2; extra == "tui"
|
|
54
54
|
Dynamic: license-file
|
|
@@ -424,8 +424,10 @@ omdev/tui/textual/clipboard.py
|
|
|
424
424
|
omdev/tui/textual/devtools.py
|
|
425
425
|
omdev/tui/textual/drivers2.py
|
|
426
426
|
omdev/tui/textual/logging2.py
|
|
427
|
+
omdev/tui/textual/render2.py
|
|
427
428
|
omdev/tui/textual/screen2.py
|
|
428
429
|
omdev/tui/textual/types.py
|
|
430
|
+
omdev/tui/textual/widgets2.py
|
|
429
431
|
omdev/tui/textual/autocomplete/LICENSE
|
|
430
432
|
omdev/tui/textual/autocomplete/__init__.py
|
|
431
433
|
omdev/tui/textual/autocomplete/matching.py
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
omlish==0.0.0.
|
|
1
|
+
omlish==0.0.0.dev539
|
|
2
2
|
|
|
3
3
|
[all]
|
|
4
4
|
black~=26.3
|
|
@@ -12,7 +12,7 @@ mypy~=1.19
|
|
|
12
12
|
gprof2dot~=2025.4
|
|
13
13
|
segno~=1.6
|
|
14
14
|
rich~=14.3
|
|
15
|
-
textual~=8.
|
|
15
|
+
textual~=8.1
|
|
16
16
|
textual-dev~=1.8
|
|
17
17
|
textual-speedups~=0.2
|
|
18
18
|
|
|
@@ -40,6 +40,6 @@ segno~=1.6
|
|
|
40
40
|
|
|
41
41
|
[tui]
|
|
42
42
|
rich~=14.3
|
|
43
|
-
textual~=8.
|
|
43
|
+
textual~=8.1
|
|
44
44
|
textual-dev~=1.8
|
|
45
45
|
textual-speedups~=0.2
|
|
@@ -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.dev539'
|
|
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.dev539',
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
[project.optional-dependencies]
|
|
@@ -40,7 +40,7 @@ all = [
|
|
|
40
40
|
'gprof2dot ~= 2025.4',
|
|
41
41
|
'segno ~= 1.6',
|
|
42
42
|
'rich ~= 14.3',
|
|
43
|
-
'textual ~= 8.
|
|
43
|
+
'textual ~= 8.1',
|
|
44
44
|
'textual-dev ~= 1.8',
|
|
45
45
|
'textual-speedups ~= 0.2',
|
|
46
46
|
]
|
|
@@ -68,7 +68,7 @@ qr = [
|
|
|
68
68
|
]
|
|
69
69
|
tui = [
|
|
70
70
|
'rich ~= 14.3',
|
|
71
|
-
'textual ~= 8.
|
|
71
|
+
'textual ~= 8.1',
|
|
72
72
|
'textual-dev ~= 1.8',
|
|
73
73
|
'textual-speedups ~= 0.2',
|
|
74
74
|
]
|
|
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
|