omdev 0.0.0.dev299__tar.gz → 0.0.0.dev301__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.dev299/omdev.egg-info → omdev-0.0.0.dev301}/PKG-INFO +2 -2
- omdev-0.0.0.dev301/README.md +17 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/.manifests.json +1 -1
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cc/cdeps.py +2 -2
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/_pathhack.py +3 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/clicli.py +3 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/install.py +4 -1
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/types.py +3 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/pkg.py +8 -2
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/scripts/ci.py +1 -1
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/scripts/interp.py +1 -1
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/scripts/pyproject.py +10 -3
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301/omdev.egg-info}/PKG-INFO +2 -2
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev.egg-info/requires.txt +1 -1
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/pyproject.toml +2 -2
- omdev-0.0.0.dev299/README.md +0 -31
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/LICENSE +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/__about__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/gen.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/imports.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/main.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/manifests.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/resources.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/srcfiles.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/strip.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/types.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/amalg/typing.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/antlr/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/antlr/consts.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/antlr/gen.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/compose.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/clients.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/v1/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/v1/api.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/v1/client.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/v2/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/v2/api.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/v2/azure.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/api/v2/client.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/clipboard/clipboard.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/clipboard/darwin_cf.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/clipboard/linux_x11.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/manifests/build.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/caches.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/imports.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/apps/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/apps/ncdu.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/LICENSE +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/border.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/markdown.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/parser.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/styles.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/tags.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/ptk/markdown/utils.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/attrdocs.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/bracepy.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/classdot.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/findimports.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/scripts/execstat.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/srcheaders.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/tools/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/tools/importscan.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/py/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/cexts.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/resources/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/resources/docker-dev.sh +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tokens/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tokens/all.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tokens/utils.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/diff.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/git/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/git/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/intellij.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev.egg-info/SOURCES.txt +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev299 → omdev-0.0.0.dev301}/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.dev301
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
|
|
12
12
|
Classifier: Operating System :: POSIX
|
13
13
|
Requires-Python: >=3.12
|
14
14
|
License-File: LICENSE
|
15
|
-
Requires-Dist: omlish==0.0.0.
|
15
|
+
Requires-Dist: omlish==0.0.0.dev301
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Overview
|
2
|
+
|
3
|
+
Development utilities and support code.
|
4
|
+
|
5
|
+
# Notable packages
|
6
|
+
|
7
|
+
- **[cli](cli)** - The codebase's all-in-one CLI. This is not installed as an entrypoint / command when this package is
|
8
|
+
itself installed - that is separated into the `omdev-cli` installable package so as to not pollute users' bin/
|
9
|
+
directories when depping this lib for its utility code.
|
10
|
+
|
11
|
+
- **[amalg](amalg)** - The [amalgamator](#amalgamation).
|
12
|
+
|
13
|
+
# Amalgamation
|
14
|
+
|
15
|
+
Amalgamation is the process of stitching together multiple python source files into a single self-contained python
|
16
|
+
script. ['lite'](https://github.com/wrmsr/omlish/blob/master/omlish#lite-code) code is written in a style conducive to
|
17
|
+
this.
|
@@ -5,7 +5,7 @@ import typing as ta
|
|
5
5
|
from omlish import cached
|
6
6
|
from omlish import lang
|
7
7
|
from omlish import marshal as msh
|
8
|
-
from omlish.configs import all as
|
8
|
+
from omlish.configs import all as cfgs
|
9
9
|
|
10
10
|
|
11
11
|
@dc.dataclass(frozen=True)
|
@@ -45,7 +45,7 @@ class Cdep:
|
|
45
45
|
|
46
46
|
|
47
47
|
def process_marshaled_cdep(obj: ta.Any) -> ta.Any:
|
48
|
-
obj =
|
48
|
+
obj = cfgs.processing.matched_rewrite(
|
49
49
|
lambda s: s if isinstance(s, str) else ''.join(s),
|
50
50
|
obj,
|
51
51
|
('sources', None),
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# @omlish-lite
|
3
3
|
# @omlish-script
|
4
4
|
"""
|
5
|
-
curl -LsSf https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py | python3 -
|
5
|
+
curl -LsSf 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py' | python3 -
|
6
6
|
"""
|
7
7
|
import abc
|
8
8
|
import argparse
|
@@ -15,6 +15,9 @@ import sys
|
|
15
15
|
import typing as ta
|
16
16
|
|
17
17
|
|
18
|
+
##
|
19
|
+
|
20
|
+
|
18
21
|
DEFAULT_CLI_PKG = 'omdev-cli'
|
19
22
|
DEFAULT_PY_VER = '3.12'
|
20
23
|
|
@@ -184,8 +184,14 @@ class BasePyprojectPackageGenerator(abc.ABC):
|
|
184
184
|
|
185
185
|
def _symlink_standard_files(self) -> None:
|
186
186
|
for fn in self._STANDARD_FILES:
|
187
|
-
|
188
|
-
|
187
|
+
for tp in [
|
188
|
+
[self._pkg_dir(), self._dir_name],
|
189
|
+
[],
|
190
|
+
]:
|
191
|
+
fp = os.path.join(*tp, fn)
|
192
|
+
if os.path.exists(fp):
|
193
|
+
os.symlink(os.path.relpath(fp, self._pkg_dir()), os.path.join(self._pkg_dir(), fn))
|
194
|
+
break
|
189
195
|
|
190
196
|
#
|
191
197
|
|
@@ -11436,7 +11436,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
|
|
11436
11436
|
async with self.popen(*run.cmd, **kwargs) as proc:
|
11437
11437
|
stdout, stderr = await self.communicate(proc, run.input, run.timeout)
|
11438
11438
|
|
11439
|
-
if check and proc.returncode:
|
11439
|
+
if run.check and proc.returncode:
|
11440
11440
|
raise subprocess.CalledProcessError(
|
11441
11441
|
proc.returncode,
|
11442
11442
|
run.cmd,
|
@@ -4610,7 +4610,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
|
|
4610
4610
|
async with self.popen(*run.cmd, **kwargs) as proc:
|
4611
4611
|
stdout, stderr = await self.communicate(proc, run.input, run.timeout)
|
4612
4612
|
|
4613
|
-
if check and proc.returncode:
|
4613
|
+
if run.check and proc.returncode:
|
4614
4614
|
raise subprocess.CalledProcessError(
|
4615
4615
|
proc.returncode,
|
4616
4616
|
run.cmd,
|
@@ -949,6 +949,7 @@ class TomlDecodeError(ValueError):
|
|
949
949
|
|
950
950
|
def toml_load(fp: ta.BinaryIO, /, *, parse_float: TomlParseFloat = float) -> ta.Dict[str, ta.Any]:
|
951
951
|
"""Parse TOML from a binary file object."""
|
952
|
+
|
952
953
|
b = fp.read()
|
953
954
|
try:
|
954
955
|
s = b.decode()
|
@@ -7063,7 +7064,7 @@ class AsyncioSubprocesses(AbstractAsyncSubprocesses):
|
|
7063
7064
|
async with self.popen(*run.cmd, **kwargs) as proc:
|
7064
7065
|
stdout, stderr = await self.communicate(proc, run.input, run.timeout)
|
7065
7066
|
|
7066
|
-
if check and proc.returncode:
|
7067
|
+
if run.check and proc.returncode:
|
7067
7068
|
raise subprocess.CalledProcessError(
|
7068
7069
|
proc.returncode,
|
7069
7070
|
run.cmd,
|
@@ -7982,8 +7983,14 @@ class BasePyprojectPackageGenerator(abc.ABC):
|
|
7982
7983
|
|
7983
7984
|
def _symlink_standard_files(self) -> None:
|
7984
7985
|
for fn in self._STANDARD_FILES:
|
7985
|
-
|
7986
|
-
|
7986
|
+
for tp in [
|
7987
|
+
[self._pkg_dir(), self._dir_name],
|
7988
|
+
[],
|
7989
|
+
]:
|
7990
|
+
fp = os.path.join(*tp, fn)
|
7991
|
+
if os.path.exists(fp):
|
7992
|
+
os.symlink(os.path.relpath(fp, self._pkg_dir()), os.path.join(self._pkg_dir(), fn))
|
7993
|
+
break
|
7987
7994
|
|
7988
7995
|
#
|
7989
7996
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev301
|
4
4
|
Summary: omdev
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
|
|
12
12
|
Classifier: Operating System :: POSIX
|
13
13
|
Requires-Python: >=3.12
|
14
14
|
License-File: LICENSE
|
15
|
-
Requires-Dist: omlish==0.0.0.
|
15
|
+
Requires-Dist: omlish==0.0.0.dev301
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -12,7 +12,7 @@ authors = [
|
|
12
12
|
urls = {source = 'https://github.com/wrmsr/omlish'}
|
13
13
|
license = {text = 'BSD-3-Clause'}
|
14
14
|
requires-python = '>=3.12'
|
15
|
-
version = '0.0.0.
|
15
|
+
version = '0.0.0.dev301'
|
16
16
|
classifiers = [
|
17
17
|
'License :: OSI Approved :: BSD License',
|
18
18
|
'Development Status :: 2 - Pre-Alpha',
|
@@ -22,7 +22,7 @@ classifiers = [
|
|
22
22
|
]
|
23
23
|
description = 'omdev'
|
24
24
|
dependencies = [
|
25
|
-
'omlish == 0.0.0.
|
25
|
+
'omlish == 0.0.0.dev301',
|
26
26
|
]
|
27
27
|
|
28
28
|
[project.optional-dependencies]
|
omdev-0.0.0.dev299/README.md
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
It's like my previous python monorepo-ey thing [`omnibus`](https://github.com/wrmsr/omnibus/tree/wrmsr_exp_split)... ish.
|
2
|
-
|
3
|
-
Core packages begin with `om`, scratch app is in `app`, temp / dump code is in `x`.
|
4
|
-
|
5
|
-
----
|
6
|
-
|
7
|
-
The core packages are:
|
8
|
-
|
9
|
-
- **omlish**: core foundational code
|
10
|
-
- **omdev**: development utilities
|
11
|
-
- **omserv**: production web server
|
12
|
-
- **ominfra**: infrastructure and cloud code
|
13
|
-
- **ommlx**: ml / ai code
|
14
|
-
|
15
|
-
----
|
16
|
-
|
17
|
-
Core packages installable from pypi, or from git via:
|
18
|
-
|
19
|
-
```bash
|
20
|
-
pip install 'git+https://github.com/wrmsr/omlish@master#subdirectory=.pkg/<pkg>'
|
21
|
-
```
|
22
|
-
|
23
|
-
Core packages have no required dependencies, but numerous optional ones - see their respective `pyproject.toml` files for details.
|
24
|
-
|
25
|
-
The CLI is installable through uvx or pipx via:
|
26
|
-
|
27
|
-
```bash
|
28
|
-
curl -LsSf 'https://raw.githubusercontent.com/wrmsr/omlish/master/omdev/cli/install.py' | python3 -
|
29
|
-
```
|
30
|
-
|
31
|
-
Additional deps to be injected may be appended to the command.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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
|