omdev 0.0.0.dev529__tar.gz → 0.0.0.dev531__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.dev529/omdev.egg-info → omdev-0.0.0.dev531}/PKG-INFO +2 -2
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/gen.py +2 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/jdk.sh +1 -1
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/nvm.sh +1 -1
- omdev-0.0.0.dev531/omdev/dockerdev/resources/fragments/uv.sh +3 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/ci.py +19 -2
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/lib/io/streams.py +45 -26
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/irc/app.py +2 -1
- omdev-0.0.0.dev531/omdev/tui/apps/irc/main.py +84 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531/omdev.egg-info}/PKG-INFO +2 -2
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev.egg-info/SOURCES.txt +1 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev.egg-info/requires.txt +1 -1
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/pyproject.toml +2 -2
- omdev-0.0.0.dev529/omdev/tui/apps/irc/main.py +0 -26
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/LICENSE +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/README.md +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/.omlish-manifests.json +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/README.md +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/__about__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/cli/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/cli/main.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/gen.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/imports.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/manifests.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/resources.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/srcfiles.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/strip.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/types.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/gen/typing.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/info.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/amalg/sources.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/darwin/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/darwin/aps.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/darwin/ax.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/darwin/cf.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/darwin/cg.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/linux/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/capi/linux/x11.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cc/srclangs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/compose.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/clipboard/capi/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/clipboard/capi/darwin_cf.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/clipboard/capi/linux_x11.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/clipboard/commands.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/clipboard/platform.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/clipboard/types.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cmdlog/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cmdlog/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cmdlog/_cmdlog.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cmdlog/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/cmdlog/cmdlog.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataclasses/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataclasses/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataclasses/_dumping.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataclasses/_template.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataclasses/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataclasses/codegen.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataclasses/dumping.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/config.toml +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/content.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/helpers.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/ops.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/rendering.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/.pkgdata +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/.python-versions.json +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/configs/.gdbinit +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/configs/.pkgdata +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/configs/.tmux.conf +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/configs/.vimrc +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/configs/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/depsets/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/depsets/python.toml +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/depsets/system.toml +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/depsets/x11.toml +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/apt.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/docker.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/firefox.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/go.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/pyenv.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/rust.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/sshd.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/vcpkg.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/fragments/zig.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/dockerdev/resources/xu +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/intellij/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/intellij/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/intellij/ides.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/intellij/open.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/messages/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/messages/base.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/messages/formats.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/messages/messages.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/messages/parsing.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/numerics/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/numerics/formats.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/numerics/numerics.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/numerics/types.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/LICENSE +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/consts.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/errors.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/message.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/nuh.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/parsing.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/rendering.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/tags.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/irc/protocol/utils.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/java/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/java/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/java/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/java/pomgen.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/java/xml.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/manifests/_dumping.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/manifests/building.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/markdown/incparse.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/markdown/tokens.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/mypy/report.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/blanklines.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/precheck/unicode.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/asts/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/asts/parents.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/asts/toplevel.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/asts/visitors.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/classdot.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/LICENSE +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/attrdoc.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/common.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/epydoc.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/google.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/numpydoc.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/parser.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/docstrings/rest.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/findimports.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/reprs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/scripts/execstat.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tokens/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tokens/all.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tokens/utils.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/py/tools/pipdepup.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/resources/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/resources/docker-dev.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/tools/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/tools/aboutdeps.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/tools/buildrs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/tools/pyversions.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/pyproject/versions.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/rs/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/interp.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/lib/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/lib/inject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/lib/io/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/lib/logs.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/lib/marshal.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/pyproject.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/diff.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/git/cloning.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/jsonview/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/jsonview/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/jsonview/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/jsonview/resources/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/jsonview/resources/jsonview.css +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/jsonview/resources/jsonview.html.j2 +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/jsonview/resources/jsonview.js +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/pawk/README.md +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/shell.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/edit/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/edit/main.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/irc/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/irc/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/irc/client.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/irc/commands.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/markdown/__main__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/apps/markdown/cli.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/rich/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/rich/console2.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/rich/markdown2.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/app2.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/autocomplete/LICENSE +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/autocomplete/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/autocomplete/matching.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/autocomplete/paths.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/autocomplete/widget.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/binding2.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/clipboard.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/debug/__init__.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/debug/dominfo.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/debug/screen.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/devtools.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/drivers2.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/logging2.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/screen2.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev/tui/textual/types.py +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev529 → omdev-0.0.0.dev531}/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.dev531
|
|
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.dev531
|
|
18
18
|
Provides-Extra: all
|
|
19
19
|
Requires-Dist: black~=26.1; extra == "all"
|
|
20
20
|
Requires-Dist: pycparser~=3.0; extra == "all"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
set -ex ;
|
|
2
2
|
|
|
3
3
|
sudo apt install gnupg ca-certificates curl ;
|
|
4
|
-
curl -s https://repos.azul.com/azul-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg ;
|
|
4
|
+
curl -s 'https://repos.azul.com/azul-repo.key' | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg ;
|
|
5
5
|
echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list ;
|
|
6
6
|
|
|
7
7
|
apt-get update ;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
set -ex ;
|
|
2
2
|
|
|
3
|
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash ;
|
|
3
|
+
curl -o- 'https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh' | bash ;
|
|
4
4
|
|
|
5
5
|
export NVM_DIR="$HOME/.nvm" ;
|
|
6
6
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" ;
|
|
@@ -95,7 +95,7 @@ def __omlish_amalg__(): # noqa
|
|
|
95
95
|
dict(path='../../omlish/asyncs/asyncio/utils.py', sha1='34691d4d0e5bab68f14e193a6200df040cfd0136'),
|
|
96
96
|
dict(path='../../omlish/docker/ports.py', sha1='a3202c69b85bc4f1034479df3400fddc86130e5c'),
|
|
97
97
|
dict(path='../../omlish/http/urllib.py', sha1='25431c5bdc7dd5cbecfcb8c0bdffaabf8c1691b9'),
|
|
98
|
-
dict(path='../../omlish/http/versions.py', sha1='
|
|
98
|
+
dict(path='../../omlish/http/versions.py', sha1='5b1659b81eb197c6880fbe78684a1348595ec804'),
|
|
99
99
|
dict(path='../../omlish/io/pushback.py', sha1='783fe8a40fa9f2febf035f4553c53c73b9bd58e1'),
|
|
100
100
|
dict(path='../../omlish/lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
|
|
101
101
|
dict(path='../../omlish/lite/asyncs.py', sha1='b3f2251c56617ce548abf9c333ac996b63edb23e'),
|
|
@@ -125,7 +125,7 @@ def __omlish_amalg__(): # noqa
|
|
|
125
125
|
dict(path='../oci/pack/unpacking.py', sha1='f43dee9a2eee79cbbb90f0721ed234a2bc35daa7'),
|
|
126
126
|
dict(path='../../omlish/argparse/cli.py', sha1='f4dc3cd353d14386b5da0306768700e396afd2b3'),
|
|
127
127
|
dict(path='../../omlish/http/coro/io.py', sha1='6ccbbf6a1a6a702ce0f1dc24b4057e8264ef4641'),
|
|
128
|
-
dict(path='../../omlish/http/parsing.py', sha1='
|
|
128
|
+
dict(path='../../omlish/http/parsing.py', sha1='2ee187993274e697332c7df7b46a98382f4cee2a'),
|
|
129
129
|
dict(path='../../omlish/lite/marshal.py', sha1='96348f5f2a26dc27d842d33cc3927e9da163436b'),
|
|
130
130
|
dict(path='../../omlish/lite/maybes.py', sha1='04d2fcbea17028a5e6b8e7a7fb742375495ed233'),
|
|
131
131
|
dict(path='../../omlish/lite/runtime.py', sha1='2e752a27ae2bf89b1bb79b4a2da522a3ec360c70'),
|
|
@@ -622,6 +622,9 @@ class HttpVersion:
|
|
|
622
622
|
self._str = f'HTTP/{major}.{minor}'
|
|
623
623
|
self._short_str = f'{major}.{minor}'
|
|
624
624
|
|
|
625
|
+
def __repr__(self) -> str:
|
|
626
|
+
return f'{self.__class__.__name__}({self.major}, {self.minor})'
|
|
627
|
+
|
|
625
628
|
def __hash__(self) -> int:
|
|
626
629
|
return self._hash
|
|
627
630
|
|
|
@@ -4417,12 +4420,26 @@ class PreparedParsedHttpHeaders:
|
|
|
4417
4420
|
|
|
4418
4421
|
authorization: ta.Optional[AuthorizationValue] = None
|
|
4419
4422
|
|
|
4423
|
+
def __repr__(self) -> str:
|
|
4424
|
+
return ''.join([
|
|
4425
|
+
f'{self.__class__.__name__}(',
|
|
4426
|
+
', '.join([
|
|
4427
|
+
f'{f.name}={v!r}'
|
|
4428
|
+
for f in dc.fields(self)
|
|
4429
|
+
if (v := getattr(self, f.name) is not None)
|
|
4430
|
+
]),
|
|
4431
|
+
')',
|
|
4432
|
+
])
|
|
4433
|
+
|
|
4420
4434
|
|
|
4421
4435
|
@dc.dataclass(frozen=True)
|
|
4422
4436
|
class RawParsedHttpHeader:
|
|
4423
4437
|
name: bytes
|
|
4424
4438
|
value: bytes
|
|
4425
4439
|
|
|
4440
|
+
def __repr__(self) -> str:
|
|
4441
|
+
return f'{self.__class__.__name__}({self.name!r}, {self.value!r})'
|
|
4442
|
+
|
|
4426
4443
|
|
|
4427
4444
|
@dc.dataclass()
|
|
4428
4445
|
class ParsedHttpMessage:
|
|
@@ -26,16 +26,16 @@ def __omlish_amalg__(): # noqa
|
|
|
26
26
|
dict(path='errors.py', sha1='67ca85fd8741b5bfefe76c872ce1c30c18fab06f'),
|
|
27
27
|
dict(path='../../lite/abstract.py', sha1='a2fc3f3697fa8de5247761e9d554e70176f37aac'),
|
|
28
28
|
dict(path='../../lite/namespaces.py', sha1='27b12b6592403c010fb8b2a0af7c24238490d3a1'),
|
|
29
|
-
dict(path='types.py', sha1='
|
|
30
|
-
dict(path='base.py', sha1='
|
|
29
|
+
dict(path='types.py', sha1='ab72e5d4a1e648ef79577be7d8c45853b1c5917d'),
|
|
30
|
+
dict(path='base.py', sha1='bdeaff419684dec34fd0dc59808a9686131992bc'),
|
|
31
31
|
dict(path='framing.py', sha1='dc2d7f638b042619fd3d95789c71532a29fd5fe4'),
|
|
32
32
|
dict(path='reading.py', sha1='7631635c46ab4b40bcaeb7c506cf15cb2d529a40'),
|
|
33
33
|
dict(path='utils.py', sha1='476363dfce81e3177a66f066892ed3fcf773ead8'),
|
|
34
34
|
dict(path='direct.py', sha1='83c33460e9490a77a00ae66251617ba98128b56b'),
|
|
35
|
-
dict(path='scanning.py', sha1='
|
|
36
|
-
dict(path='adapters.py', sha1='
|
|
37
|
-
dict(path='linear.py', sha1='
|
|
38
|
-
dict(path='segmented.py', sha1='
|
|
35
|
+
dict(path='scanning.py', sha1='6ab39887d0d2d3002201b786c4715e64804c66c8'),
|
|
36
|
+
dict(path='adapters.py', sha1='ce4fc01bd81bb6b3402dc71e46c37849a80e476d'),
|
|
37
|
+
dict(path='linear.py', sha1='b2d82224c6a3001eb8230d6a9c4de7cb3afe7d1c'),
|
|
38
|
+
dict(path='segmented.py', sha1='4aeb1c22b7b5994132f0b5906d70b3e53201776b'),
|
|
39
39
|
dict(path='_amalg.py', sha1='9c88a055447d7b37da1b356e6a1e00b7c4a9a3cb'),
|
|
40
40
|
],
|
|
41
41
|
)
|
|
@@ -492,6 +492,11 @@ class MutableByteStreamBuffer(ByteStreamBuffer, Abstract):
|
|
|
492
492
|
Implementations may be linear (single `bytearray` + indices), segmented (multiple chunks), or adaptive.
|
|
493
493
|
"""
|
|
494
494
|
|
|
495
|
+
@property
|
|
496
|
+
@abc.abstractmethod
|
|
497
|
+
def max_size(self) -> ta.Optional[int]:
|
|
498
|
+
raise NotImplementedError
|
|
499
|
+
|
|
495
500
|
@abc.abstractmethod
|
|
496
501
|
def write(self, data: BytesLikeOrMemoryview, /) -> None:
|
|
497
502
|
"""
|
|
@@ -550,9 +555,7 @@ class MutableByteStreamBuffer(ByteStreamBuffer, Abstract):
|
|
|
550
555
|
class BaseByteStreamBufferLike(ByteStreamBufferLike, Abstract):
|
|
551
556
|
def _norm_slice(self, start: int, end: ta.Optional[int]) -> ta.Tuple[int, int]:
|
|
552
557
|
s, e, _ = slice(start, end, 1).indices(len(self))
|
|
553
|
-
if e < s
|
|
554
|
-
e = s
|
|
555
|
-
return s, e
|
|
558
|
+
return (s, s) if e < s else (s, e)
|
|
556
559
|
|
|
557
560
|
|
|
558
561
|
########################################
|
|
@@ -1385,6 +1388,10 @@ class ScanningByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer
|
|
|
1385
1388
|
self._buf = buf
|
|
1386
1389
|
self._scan_from_by_sub: dict[bytes, int] = {}
|
|
1387
1390
|
|
|
1391
|
+
@property
|
|
1392
|
+
def max_size(self) -> ta.Optional[int]:
|
|
1393
|
+
return self._buf.max_size
|
|
1394
|
+
|
|
1388
1395
|
#
|
|
1389
1396
|
|
|
1390
1397
|
def __len__(self) -> int:
|
|
@@ -1649,6 +1656,10 @@ class BytesIoByteStreamBuffer(MutableByteStreamBuffer):
|
|
|
1649
1656
|
self._resv: ta.Optional[bytearray] = None
|
|
1650
1657
|
self._resv_len = 0
|
|
1651
1658
|
|
|
1659
|
+
@property
|
|
1660
|
+
def max_size(self) -> ta.Optional[int]:
|
|
1661
|
+
return None
|
|
1662
|
+
|
|
1652
1663
|
def __len__(self) -> int:
|
|
1653
1664
|
return self._bio.getbuffer().nbytes - self._rpos
|
|
1654
1665
|
|
|
@@ -1782,18 +1793,18 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
|
|
|
1782
1793
|
def __init__(
|
|
1783
1794
|
self,
|
|
1784
1795
|
*,
|
|
1785
|
-
|
|
1796
|
+
max_size: ta.Optional[int] = None,
|
|
1786
1797
|
initial_capacity: int = 0,
|
|
1787
1798
|
compact_threshold: int = 0x10000,
|
|
1788
1799
|
) -> None:
|
|
1789
1800
|
super().__init__()
|
|
1790
1801
|
|
|
1791
|
-
self.
|
|
1802
|
+
self._max_size = None if max_size is None else int(max_size)
|
|
1792
1803
|
|
|
1793
1804
|
if initial_capacity < 0:
|
|
1794
1805
|
raise ValueError(initial_capacity)
|
|
1795
|
-
if self.
|
|
1796
|
-
raise BufferTooLargeByteStreamBufferError('buffer exceeded
|
|
1806
|
+
if self._max_size is not None and initial_capacity > self._max_size:
|
|
1807
|
+
raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
|
|
1797
1808
|
|
|
1798
1809
|
if compact_threshold < 0:
|
|
1799
1810
|
raise ValueError(compact_threshold)
|
|
@@ -1812,6 +1823,10 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
|
|
|
1812
1823
|
else:
|
|
1813
1824
|
self._ba = bytearray()
|
|
1814
1825
|
|
|
1826
|
+
@property
|
|
1827
|
+
def max_size(self) -> ta.Optional[int]:
|
|
1828
|
+
return self._max_size
|
|
1829
|
+
|
|
1815
1830
|
_rpos = 0
|
|
1816
1831
|
_wpos = 0
|
|
1817
1832
|
|
|
@@ -1847,8 +1862,8 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
|
|
|
1847
1862
|
|
|
1848
1863
|
bl = len(data)
|
|
1849
1864
|
|
|
1850
|
-
if self.
|
|
1851
|
-
raise BufferTooLargeByteStreamBufferError('buffer exceeded
|
|
1865
|
+
if self._max_size is not None and len(self) + bl > self._max_size:
|
|
1866
|
+
raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
|
|
1852
1867
|
|
|
1853
1868
|
# If buffer is logically empty but backing store might still be large (e.g. compaction skipped),
|
|
1854
1869
|
# keep indices reset and just append.
|
|
@@ -1892,8 +1907,8 @@ class LinearByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffer):
|
|
|
1892
1907
|
if not n:
|
|
1893
1908
|
return
|
|
1894
1909
|
|
|
1895
|
-
if self.
|
|
1896
|
-
raise BufferTooLargeByteStreamBufferError('buffer exceeded
|
|
1910
|
+
if self._max_size is not None and len(self) + n > self._max_size:
|
|
1911
|
+
raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
|
|
1897
1912
|
|
|
1898
1913
|
# Append only what was written.
|
|
1899
1914
|
self.write(memoryview(b)[:n])
|
|
@@ -2115,7 +2130,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
|
|
|
2115
2130
|
def __init__(
|
|
2116
2131
|
self,
|
|
2117
2132
|
*,
|
|
2118
|
-
|
|
2133
|
+
max_size: ta.Optional[int] = None,
|
|
2119
2134
|
chunk_size: int = 0,
|
|
2120
2135
|
chunk_compact_threshold: float = .25,
|
|
2121
2136
|
) -> None:
|
|
@@ -2123,7 +2138,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
|
|
|
2123
2138
|
|
|
2124
2139
|
self._segs: ta.List[ta.Union[bytes, bytearray]] = []
|
|
2125
2140
|
|
|
2126
|
-
self.
|
|
2141
|
+
self._max_size = None if max_size is None else int(max_size)
|
|
2127
2142
|
|
|
2128
2143
|
if chunk_size < 0:
|
|
2129
2144
|
raise ValueError(chunk_size)
|
|
@@ -2136,6 +2151,10 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
|
|
|
2136
2151
|
self._active: ta.Optional[bytearray] = None
|
|
2137
2152
|
self._active_used = 0
|
|
2138
2153
|
|
|
2154
|
+
@property
|
|
2155
|
+
def max_size(self) -> ta.Optional[int]:
|
|
2156
|
+
return self._max_size
|
|
2157
|
+
|
|
2139
2158
|
_head_off = 0
|
|
2140
2159
|
_len = 0
|
|
2141
2160
|
|
|
@@ -2206,7 +2225,7 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
|
|
|
2206
2225
|
if len(mv):
|
|
2207
2226
|
out.append(mv)
|
|
2208
2227
|
|
|
2209
|
-
return
|
|
2228
|
+
return out
|
|
2210
2229
|
|
|
2211
2230
|
#
|
|
2212
2231
|
|
|
@@ -2268,8 +2287,8 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
|
|
|
2268
2287
|
|
|
2269
2288
|
dl = len(data)
|
|
2270
2289
|
|
|
2271
|
-
if self.
|
|
2272
|
-
raise BufferTooLargeByteStreamBufferError('buffer exceeded
|
|
2290
|
+
if self._max_size is not None and self._len + dl > self._max_size:
|
|
2291
|
+
raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
|
|
2273
2292
|
|
|
2274
2293
|
if self._chunk_size <= 0:
|
|
2275
2294
|
self._segs.append(data)
|
|
@@ -2341,8 +2360,8 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
|
|
|
2341
2360
|
self._reserved_len = 0
|
|
2342
2361
|
self._reserved_in_active = False
|
|
2343
2362
|
|
|
2344
|
-
if self.
|
|
2345
|
-
raise BufferTooLargeByteStreamBufferError('buffer exceeded
|
|
2363
|
+
if self._max_size is not None and self._len + n > self._max_size:
|
|
2364
|
+
raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
|
|
2346
2365
|
|
|
2347
2366
|
if n:
|
|
2348
2367
|
self._active_used += n
|
|
@@ -2357,8 +2376,8 @@ class SegmentedByteStreamBuffer(BaseByteStreamBufferLike, MutableByteStreamBuffe
|
|
|
2357
2376
|
self._reserved_len = 0
|
|
2358
2377
|
self._reserved_in_active = False
|
|
2359
2378
|
|
|
2360
|
-
if self.
|
|
2361
|
-
raise BufferTooLargeByteStreamBufferError('buffer exceeded
|
|
2379
|
+
if self._max_size is not None and self._len + n > self._max_size:
|
|
2380
|
+
raise BufferTooLargeByteStreamBufferError('buffer exceeded max_size')
|
|
2362
2381
|
|
|
2363
2382
|
if not n:
|
|
2364
2383
|
return
|
|
@@ -10,6 +10,7 @@ TODO:
|
|
|
10
10
|
import shlex
|
|
11
11
|
import typing as ta
|
|
12
12
|
|
|
13
|
+
from omlish import check
|
|
13
14
|
from omlish import lang
|
|
14
15
|
|
|
15
16
|
from ... import textual as tx
|
|
@@ -90,7 +91,7 @@ class IrcApp(tx.App):
|
|
|
90
91
|
self._window_order: list[str] = ['system']
|
|
91
92
|
self._current_window_idx: int = 0
|
|
92
93
|
self._current_channel: str | None = None
|
|
93
|
-
self._startup_commands: ta.Sequence[str] = startup_commands or []
|
|
94
|
+
self._startup_commands: ta.Sequence[str] = check.not_isinstance(startup_commands or [], str)
|
|
94
95
|
|
|
95
96
|
@property
|
|
96
97
|
def client(self) -> IrcClient | None:
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import os.path
|
|
2
|
+
import tomllib
|
|
3
|
+
import typing as ta
|
|
4
|
+
|
|
5
|
+
from omlish import check
|
|
6
|
+
from omlish import dataclasses as dc
|
|
7
|
+
from omlish import marshal as msh
|
|
8
|
+
from omlish.argparse import all as argparse
|
|
9
|
+
|
|
10
|
+
from ....home.paths import get_home_paths
|
|
11
|
+
from .app import IrcApp
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
##
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dc.dataclass(frozen=True)
|
|
18
|
+
class Config:
|
|
19
|
+
autoexec: ta.Sequence[str] | None = None
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def load_config(cfg_file: str | None = None) -> Config | None:
|
|
23
|
+
if cfg_file is not None:
|
|
24
|
+
check.state(os.path.exists(cfg_file), 'Config file does not exist')
|
|
25
|
+
|
|
26
|
+
else:
|
|
27
|
+
cfg_file = os.path.join(get_home_paths().config_dir, 'irc.toml')
|
|
28
|
+
if not os.path.exists(cfg_file):
|
|
29
|
+
return None
|
|
30
|
+
|
|
31
|
+
with open(cfg_file) as f:
|
|
32
|
+
cfg_src = f.read()
|
|
33
|
+
|
|
34
|
+
cfg_dct = tomllib.loads(cfg_src)
|
|
35
|
+
return msh.unmarshal(cfg_dct, Config)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _main() -> None:
|
|
42
|
+
parser = argparse.ArgumentParser(description='Simple IRC client using Textual')
|
|
43
|
+
|
|
44
|
+
parser.add_argument(
|
|
45
|
+
'-x',
|
|
46
|
+
action='append',
|
|
47
|
+
dest='commands',
|
|
48
|
+
help='Execute slash command on startup (can be specified multiple times)',
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
parser.add_argument('-c', '--config', help='Specify config file')
|
|
52
|
+
parser.add_argument('-C', '--no-config', action='store_true', help='Disable config file')
|
|
53
|
+
|
|
54
|
+
args = parser.parse_args()
|
|
55
|
+
|
|
56
|
+
#
|
|
57
|
+
|
|
58
|
+
cfg: Config | None = None
|
|
59
|
+
if not args.no_config:
|
|
60
|
+
cfg = load_config(args.config)
|
|
61
|
+
|
|
62
|
+
#
|
|
63
|
+
|
|
64
|
+
autoexec: list[str] = []
|
|
65
|
+
|
|
66
|
+
if cfg is not None:
|
|
67
|
+
if isinstance(cfg.autoexec, str):
|
|
68
|
+
autoexec.append(cfg.autoexec)
|
|
69
|
+
elif cfg.autoexec:
|
|
70
|
+
autoexec.extend(cfg.autoexec)
|
|
71
|
+
|
|
72
|
+
if args.commands:
|
|
73
|
+
autoexec.extend(args.commands)
|
|
74
|
+
|
|
75
|
+
#
|
|
76
|
+
|
|
77
|
+
app = IrcApp(
|
|
78
|
+
startup_commands=autoexec,
|
|
79
|
+
)
|
|
80
|
+
app.run()
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
if __name__ == '__main__':
|
|
84
|
+
_main()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev531
|
|
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.dev531
|
|
18
18
|
Provides-Extra: all
|
|
19
19
|
Requires-Dist: black~=26.1; extra == "all"
|
|
20
20
|
Requires-Dist: pycparser~=3.0; extra == "all"
|
|
@@ -186,6 +186,7 @@ omdev/dockerdev/resources/fragments/nvm.sh
|
|
|
186
186
|
omdev/dockerdev/resources/fragments/pyenv.sh
|
|
187
187
|
omdev/dockerdev/resources/fragments/rust.sh
|
|
188
188
|
omdev/dockerdev/resources/fragments/sshd.sh
|
|
189
|
+
omdev/dockerdev/resources/fragments/uv.sh
|
|
189
190
|
omdev/dockerdev/resources/fragments/vcpkg.sh
|
|
190
191
|
omdev/dockerdev/resources/fragments/zig.sh
|
|
191
192
|
omdev/git/__init__.py
|
|
@@ -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.dev531'
|
|
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.dev531',
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
[project.optional-dependencies]
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
from omlish.argparse import all as argparse
|
|
2
|
-
|
|
3
|
-
from .app import IrcApp
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
##
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def _main() -> None:
|
|
10
|
-
parser = argparse.ArgumentParser(description='Simple IRC client using Textual')
|
|
11
|
-
parser.add_argument(
|
|
12
|
-
'-x',
|
|
13
|
-
action='append',
|
|
14
|
-
dest='commands',
|
|
15
|
-
help='Execute slash command on startup (can be specified multiple times)',
|
|
16
|
-
)
|
|
17
|
-
args = parser.parse_args()
|
|
18
|
-
|
|
19
|
-
app = IrcApp(
|
|
20
|
-
startup_commands=args.commands,
|
|
21
|
-
)
|
|
22
|
-
app.run()
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if __name__ == '__main__':
|
|
26
|
-
_main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|