omdev 0.0.0.dev249__tar.gz → 0.0.0.dev251__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.dev249/omdev.egg-info → omdev-0.0.0.dev251}/PKG-INFO +2 -2
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/.manifests.json +15 -12
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/compilers/unixccompiler.py +1 -1
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/compose.py +1 -2
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/ci.py +2 -3
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/pyproject.py +1 -1
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/git/cli.py +63 -19
- omdev-0.0.0.dev249/omdev/pycharm/cli.py → omdev-0.0.0.dev251/omdev/tools/intellij.py +131 -13
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251/omdev.egg-info}/PKG-INFO +2 -2
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev.egg-info/SOURCES.txt +1 -3
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev.egg-info/requires.txt +1 -1
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/pyproject.toml +2 -2
- omdev-0.0.0.dev249/omdev/pycharm/__main__.py +0 -11
- omdev-0.0.0.dev249/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/LICENSE +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/README.rst +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/__about__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/gen.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/imports.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/main.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/manifests.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/resources.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/srcfiles.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/strip.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/types.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/amalg/typing.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/antlr/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/antlr/consts.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/antlr/gen.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/bracepy.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cc/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cc/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cc/cdeps.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cc/cdeps.toml +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cc/cli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/cache.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/ci.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/cli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/consts.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/buildcaching.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/cache.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/cacheserved/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/cacheserved/cache.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/cacheserved/manifests.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/cmds.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/dataserver.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/imagepulling.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/packing.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/repositories.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/docker/utils.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/api.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/bootstrap.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/cache.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/cli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/client.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/env.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/github/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/requirements.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/shell.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ci/utils.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/classdot.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/clipboard/clipboard.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/clipboard/darwin_cf.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/clipboard/linux_x11.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/dataserver/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/dataserver/handlers.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/dataserver/http.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/dataserver/routes.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/dataserver/server.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/dataserver/targets.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/findimports.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/git/magic.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/git/shallow.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/home/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/home/paths.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/home/secrets.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/home/shadow.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/default.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/providers/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/providers/base.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/providers/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/providers/running.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/providers/standalone.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/providers/system.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/pyenv/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/pyenv/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/pyenv/install.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/pyenv/provider.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/pyenv/pyenv.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/uv/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/uv/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/uv/provider.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/uv/uv.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/interp/venvs.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/magic/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/magic/cli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/manifests/build.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/manifests/dumping.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/building.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/compression.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/data.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/datarefs.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/dataserver.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/loading.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/media.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/pack/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/pack/packing.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/pack/repositories.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/pack/unpacking.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/repositories.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/oci/tars.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/revisions.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/packaging/wheelfile.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ptk/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ptk/apps/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/ptk/apps/ncdu.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/cexts.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/inject.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev249/omdev/pycharm → omdev-0.0.0.dev251/omdev/pyproject/resources}/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/resources/docker-dev.sh +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/resources/python.sh +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/execrss.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/exectime.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/interp.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tagstrings.py +0 -0
- {omdev-0.0.0.dev249/omdev/pyproject/resources → omdev-0.0.0.dev251/omdev/tokens}/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tokens/all.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tokens/tokenizert.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tokens/utils.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev249/omdev/tokens → omdev-0.0.0.dev251/omdev/tools/git}/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/git/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/git/consts.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/git/messages.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/importscan.py +0 -0
- {omdev-0.0.0.dev249/omdev/tools/git → omdev-0.0.0.dev251/omdev/tools/json}/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/linehisto.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/mkenv.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev249/omdev/tools/json → omdev-0.0.0.dev251/omdev/tools/pawk}/__init__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/shadow.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev249 → omdev-0.0.0.dev251}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev251
|
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.dev251
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -155,18 +155,6 @@
|
|
155
155
|
}
|
156
156
|
}
|
157
157
|
},
|
158
|
-
{
|
159
|
-
"module": ".pycharm.__main__",
|
160
|
-
"attr": "_CLI_MODULE",
|
161
|
-
"file": "omdev/pycharm/__main__.py",
|
162
|
-
"line": 4,
|
163
|
-
"value": {
|
164
|
-
"$.cli.types.CliModule": {
|
165
|
-
"cmd_name": "pycharm",
|
166
|
-
"mod_name": "omdev.pycharm.__main__"
|
167
|
-
}
|
168
|
-
}
|
169
|
-
},
|
170
158
|
{
|
171
159
|
"module": ".pyproject.__main__",
|
172
160
|
"attr": "_CLI_MODULE",
|
@@ -315,6 +303,21 @@
|
|
315
303
|
}
|
316
304
|
}
|
317
305
|
},
|
306
|
+
{
|
307
|
+
"module": ".tools.intellij",
|
308
|
+
"attr": "_CLI_MODULE",
|
309
|
+
"file": "omdev/tools/intellij.py",
|
310
|
+
"line": 248,
|
311
|
+
"value": {
|
312
|
+
"$.cli.types.CliModule": {
|
313
|
+
"cmd_name": [
|
314
|
+
"intellij",
|
315
|
+
"ij"
|
316
|
+
],
|
317
|
+
"mod_name": "omdev.tools.intellij"
|
318
|
+
}
|
319
|
+
}
|
320
|
+
},
|
318
321
|
{
|
319
322
|
"module": ".tools.json.__main__",
|
320
323
|
"attr": "_CLI_MODULE",
|
@@ -372,7 +372,7 @@ class UnixCCompiler(CCompiler):
|
|
372
372
|
"""
|
373
373
|
lib_names = (
|
374
374
|
self.library_filename(lib, lib_type=ty)
|
375
|
-
for ty in 'dylib xcode_stub shared static'
|
375
|
+
for ty in ['dylib', 'xcode_stub', 'shared', 'static']
|
376
376
|
)
|
377
377
|
|
378
378
|
roots = map(self._library_root, dirs)
|
@@ -4653,7 +4653,7 @@ _DEFAULT_OBJ_MARSHALERS: ta.Dict[ta.Any, ObjMarshaler] = {
|
|
4653
4653
|
|
4654
4654
|
_OBJ_MARSHALER_GENERIC_MAPPING_TYPES: ta.Dict[ta.Any, type] = {
|
4655
4655
|
**{t: t for t in (dict,)},
|
4656
|
-
**{t: dict for t in (collections.abc.Mapping, collections.abc.MutableMapping)},
|
4656
|
+
**{t: dict for t in (collections.abc.Mapping, collections.abc.MutableMapping)}, # noqa
|
4657
4657
|
}
|
4658
4658
|
|
4659
4659
|
_OBJ_MARSHALER_GENERIC_ITERABLE_TYPES: ta.Dict[ta.Any, type] = {
|
@@ -10945,8 +10945,7 @@ class DockerComposeRun(AsyncExitStacked):
|
|
10945
10945
|
out_service['image'] = self._cfg.image
|
10946
10946
|
|
10947
10947
|
for k in ['build', 'platform']:
|
10948
|
-
|
10949
|
-
del out_service[k]
|
10948
|
+
out_service.pop(k, None)
|
10950
10949
|
|
10951
10950
|
#
|
10952
10951
|
|
@@ -5487,7 +5487,7 @@ _DEFAULT_OBJ_MARSHALERS: ta.Dict[ta.Any, ObjMarshaler] = {
|
|
5487
5487
|
|
5488
5488
|
_OBJ_MARSHALER_GENERIC_MAPPING_TYPES: ta.Dict[ta.Any, type] = {
|
5489
5489
|
**{t: t for t in (dict,)},
|
5490
|
-
**{t: dict for t in (collections.abc.Mapping, collections.abc.MutableMapping)},
|
5490
|
+
**{t: dict for t in (collections.abc.Mapping, collections.abc.MutableMapping)}, # noqa
|
5491
5491
|
}
|
5492
5492
|
|
5493
5493
|
_OBJ_MARSHALER_GENERIC_ITERABLE_TYPES: ta.Dict[ta.Any, type] = {
|
@@ -1,27 +1,26 @@
|
|
1
1
|
# ruff: noqa: UP006 UP007
|
2
2
|
"""
|
3
3
|
TODO:
|
4
|
-
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
hint: invocation.
|
22
|
-
fatal: Need to specify how to reconcile divergent branches.
|
4
|
+
- Handle:
|
5
|
+
Your branch and 'origin/main' have diverged,
|
6
|
+
and have 2691 and 2708 different commits each, respectively.
|
7
|
+
(use "git pull" if you want to integrate the remote branch with yours)
|
8
|
+
hint: You have divergent branches and need to specify how to reconcile them.
|
9
|
+
hint: You can do so by running one of the following commands sometime before
|
10
|
+
hint: your next pull:
|
11
|
+
hint:
|
12
|
+
hint: git config pull.rebase false # merge
|
13
|
+
hint: git config pull.rebase true # rebase
|
14
|
+
hint: git config pull.ff only # fast-forward only
|
15
|
+
hint:
|
16
|
+
hint: You can replace "git config" with "git config --global" to set a default
|
17
|
+
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
18
|
+
hint: or --ff-only on the command line to override the configured default per
|
19
|
+
hint: invocation.
|
20
|
+
fatal: Need to specify how to reconcile divergent branches.
|
23
21
|
"""
|
24
22
|
import dataclasses as dc
|
23
|
+
import logging
|
25
24
|
import os
|
26
25
|
import re
|
27
26
|
import typing as ta
|
@@ -54,6 +53,9 @@ else:
|
|
54
53
|
msh = lang.proxy_import('omlish.marshal')
|
55
54
|
|
56
55
|
|
56
|
+
log = logging.getLogger(__name__)
|
57
|
+
|
58
|
+
|
57
59
|
##
|
58
60
|
|
59
61
|
|
@@ -370,6 +372,48 @@ class Cli(ap.Cli):
|
|
370
372
|
for d in self.args.dir:
|
371
373
|
run(d)
|
372
374
|
|
375
|
+
@ap.cmd(
|
376
|
+
ap.arg('dir', nargs='*'),
|
377
|
+
aliases=['usb'],
|
378
|
+
)
|
379
|
+
def update_submodule_branches(self) -> None:
|
380
|
+
def run_submodule(submodule: str, cwd: str | None) -> None:
|
381
|
+
submodule_path = submodule if cwd is None else os.path.join(cwd, submodule)
|
382
|
+
|
383
|
+
# Get the HEAD branch from origin
|
384
|
+
remote_show = subprocesses.check_output(
|
385
|
+
'git', 'remote', 'show', 'origin',
|
386
|
+
cwd=submodule_path,
|
387
|
+
).decode()
|
388
|
+
head_branch: str | None = None
|
389
|
+
for line in remote_show.splitlines():
|
390
|
+
line = line.strip()
|
391
|
+
if line.startswith('HEAD branch:'):
|
392
|
+
head_branch = line.split(':')[1].strip()
|
393
|
+
break
|
394
|
+
|
395
|
+
if not head_branch:
|
396
|
+
log.warning('Could not determine HEAD branch for submodule %s', submodule)
|
397
|
+
return
|
398
|
+
|
399
|
+
subprocesses.check_call('git', 'checkout', head_branch, cwd=submodule_path)
|
400
|
+
subprocesses.check_call('git', 'pull', cwd=submodule_path)
|
401
|
+
|
402
|
+
def run(cwd: str | None) -> None:
|
403
|
+
submodules = subprocesses.check_output(
|
404
|
+
'git', 'submodule', 'foreach', '-q', 'echo $name',
|
405
|
+
cwd=cwd,
|
406
|
+
).decode().strip().splitlines()
|
407
|
+
|
408
|
+
for submodule in submodules:
|
409
|
+
run_submodule(submodule, cwd)
|
410
|
+
|
411
|
+
if not self.args.dir:
|
412
|
+
run(None)
|
413
|
+
else:
|
414
|
+
for d in self.args.dir:
|
415
|
+
run(d)
|
416
|
+
|
373
417
|
#
|
374
418
|
|
375
419
|
@ap.cmd()
|
@@ -1,25 +1,114 @@
|
|
1
1
|
"""
|
2
2
|
TODO:
|
3
|
+
- read .idea/ for inference?
|
3
4
|
- PyCharm.app/Contents/plugins/python-ce/helpers/pydev/_pydevd_bundle/pydevd_constants.py -> USE_LOW_IMPACT_MONITORING
|
4
5
|
- DISPLAY=":1" - ls /tmp/.X11-unix/X1 ?
|
5
6
|
- https://unix.stackexchange.com/questions/17255/is-there-a-command-to-list-all-open-displays-on-a-machine
|
6
7
|
- w -oush
|
7
8
|
"""
|
8
9
|
import dataclasses as dc
|
10
|
+
import enum
|
9
11
|
import inspect
|
10
12
|
import os.path
|
11
13
|
import shlex
|
12
14
|
import subprocess
|
13
15
|
import sys
|
14
16
|
import tempfile
|
17
|
+
import typing as ta
|
15
18
|
|
16
19
|
from omlish.argparse import all as ap
|
17
20
|
from omlish.diag.pycharm import get_pycharm_version
|
18
21
|
|
22
|
+
from ..cli import CliModule
|
23
|
+
|
24
|
+
|
25
|
+
##
|
26
|
+
|
27
|
+
|
28
|
+
class Ide(enum.Enum):
|
29
|
+
PYCHARM = enum.auto()
|
30
|
+
IDEA = enum.auto()
|
31
|
+
CLION = enum.auto()
|
32
|
+
WEBSTORM = enum.auto()
|
33
|
+
GOLAND = enum.auto()
|
34
|
+
|
19
35
|
|
20
36
|
##
|
21
37
|
|
22
38
|
|
39
|
+
_INFER_FILE_NAME_SETS_BY_IDE: ta.Mapping[Ide, ta.AbstractSet[str]] = {
|
40
|
+
Ide.PYCHARM: frozenset([
|
41
|
+
'setup.py',
|
42
|
+
'setup.cfg',
|
43
|
+
'pyproject.toml',
|
44
|
+
'requirements.txt',
|
45
|
+
'Pipfile',
|
46
|
+
'poetry.lock',
|
47
|
+
'.python-version',
|
48
|
+
'wsgi.py',
|
49
|
+
'asgi.py',
|
50
|
+
'manage.py',
|
51
|
+
]),
|
52
|
+
Ide.IDEA: frozenset([
|
53
|
+
'pom.xml',
|
54
|
+
'mvnw',
|
55
|
+
'build.gradle',
|
56
|
+
'build.gradle.kts',
|
57
|
+
'gradlew',
|
58
|
+
'module-info.java',
|
59
|
+
'.java-version',
|
60
|
+
]),
|
61
|
+
Ide.CLION: frozenset([
|
62
|
+
'CMakeLists.txt',
|
63
|
+
'configure.ac',
|
64
|
+
'configure.in',
|
65
|
+
'config.h.in',
|
66
|
+
'vcpkg.json',
|
67
|
+
]),
|
68
|
+
Ide.WEBSTORM: frozenset([
|
69
|
+
'package.json',
|
70
|
+
'package-lock.json',
|
71
|
+
]),
|
72
|
+
Ide.GOLAND: frozenset([
|
73
|
+
'go.mod',
|
74
|
+
'go.sum',
|
75
|
+
]),
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
def _infer_directory_ide(cwd: str | None) -> Ide | None:
|
80
|
+
if cwd is None:
|
81
|
+
cwd = os.getcwd()
|
82
|
+
|
83
|
+
for i, fs in _INFER_FILE_NAME_SETS_BY_IDE.items():
|
84
|
+
for f in fs:
|
85
|
+
if os.path.exists(os.path.join(cwd, f)):
|
86
|
+
return i
|
87
|
+
|
88
|
+
return None
|
89
|
+
|
90
|
+
|
91
|
+
##
|
92
|
+
|
93
|
+
|
94
|
+
def _get_ide_version(ide: Ide) -> str:
|
95
|
+
if ide is Ide.PYCHARM:
|
96
|
+
return get_pycharm_version()
|
97
|
+
else:
|
98
|
+
raise ValueError(ide)
|
99
|
+
|
100
|
+
|
101
|
+
##
|
102
|
+
|
103
|
+
|
104
|
+
_DARWIN_OPEN_SCRIPT_APP_BY_IDE: ta.Mapping[Ide, str] = {
|
105
|
+
Ide.PYCHARM: 'PyCharm',
|
106
|
+
Ide.CLION: 'CLion',
|
107
|
+
Ide.IDEA: 'IntelliJ IDEA',
|
108
|
+
Ide.WEBSTORM: 'WebStorm',
|
109
|
+
Ide.GOLAND: 'GoLand',
|
110
|
+
}
|
111
|
+
|
23
112
|
_DARWIN_OPEN_SCRIPT = """
|
24
113
|
tell application "{app}"
|
25
114
|
activate
|
@@ -32,8 +121,13 @@ return
|
|
32
121
|
##
|
33
122
|
|
34
123
|
|
35
|
-
|
36
|
-
|
124
|
+
_LINUX_WM_CLASS_BY_IDE: ta.Mapping[Ide, str] = {
|
125
|
+
Ide.PYCHARM: 'jetbrains-pycharm.jetbrains-pycharm',
|
126
|
+
Ide.CLION: 'jetbrains-clion.jetbrains-clion',
|
127
|
+
Ide.IDEA: 'jetbrains-idea.jetbrains-idea',
|
128
|
+
Ide.WEBSTORM: 'jetbrains-webstorm.jetbrains-webstorm',
|
129
|
+
Ide.GOLAND: 'jetbrains-goland.jetbrains-goland',
|
130
|
+
}
|
37
131
|
|
38
132
|
|
39
133
|
# sudo apt install xdotool wmctrl
|
@@ -63,16 +157,12 @@ def parse_wmctrl_lxp_line(l: str) -> WmctrlLine:
|
|
63
157
|
##
|
64
158
|
|
65
159
|
|
66
|
-
class
|
67
|
-
@ap.cmd()
|
68
|
-
def version(self) -> None:
|
69
|
-
print(get_pycharm_version())
|
70
|
-
|
160
|
+
class IntellijCli(ap.Cli):
|
71
161
|
@ap.cmd(
|
72
162
|
ap.arg('python-exe'),
|
73
163
|
ap.arg('args', nargs=ap.REMAINDER),
|
74
164
|
)
|
75
|
-
def
|
165
|
+
def pycharm_runhack(self) -> int:
|
76
166
|
if not os.path.isfile(exe := self.args.python_exe):
|
77
167
|
raise FileNotFoundError(exe)
|
78
168
|
|
@@ -86,23 +176,47 @@ class Cli(ap.Cli):
|
|
86
176
|
proc = subprocess.run([exe, src_file, *self.args.args], check=False)
|
87
177
|
return proc.returncode
|
88
178
|
|
179
|
+
#
|
180
|
+
|
181
|
+
def _get_ide(
|
182
|
+
self,
|
183
|
+
*,
|
184
|
+
cwd: str | None = None,
|
185
|
+
) -> Ide: # noqa
|
186
|
+
if (ai := self.args.ide) is not None:
|
187
|
+
return Ide(ai)
|
188
|
+
|
189
|
+
if (ii := _infer_directory_ide(cwd)) is not None:
|
190
|
+
return ii
|
191
|
+
|
192
|
+
return Ide.PYCHARM
|
193
|
+
|
194
|
+
@ap.cmd(
|
195
|
+
ap.arg('-e', '--ide'),
|
196
|
+
)
|
197
|
+
def version(self) -> None:
|
198
|
+
i = self._get_ide()
|
199
|
+
v = _get_ide_version(i)
|
200
|
+
print(v)
|
201
|
+
|
89
202
|
@ap.cmd(
|
90
203
|
ap.arg('dir', nargs='?'),
|
91
|
-
ap.arg('-
|
204
|
+
ap.arg('-e', '--ide'),
|
92
205
|
)
|
93
206
|
def open(self) -> None:
|
94
207
|
dir = os.path.abspath(self.args.dir or '.') # noqa
|
208
|
+
ide = self._get_ide(cwd=dir)
|
95
209
|
|
96
210
|
if (plat := sys.platform) == 'darwin':
|
97
211
|
if '"' in dir:
|
98
212
|
raise ValueError(dir)
|
99
213
|
|
100
214
|
scpt_src = _DARWIN_OPEN_SCRIPT.format(
|
101
|
-
app=
|
215
|
+
app=_DARWIN_OPEN_SCRIPT_APP_BY_IDE[ide],
|
102
216
|
dir=dir,
|
103
217
|
)
|
104
218
|
|
105
|
-
scpt_file = tempfile.mktemp(__package__ + '-
|
219
|
+
scpt_file = tempfile.mktemp(__package__ + '-intellij-open') # noqa
|
106
220
|
with open(scpt_file, 'w') as f:
|
107
221
|
f.write(scpt_src)
|
108
222
|
|
@@ -114,7 +228,7 @@ class Cli(ap.Cli):
|
|
114
228
|
|
115
229
|
wmc_out = subprocess.check_output(['wmctrl', '-lxp'], env=env).decode()
|
116
230
|
wls = [parse_wmctrl_lxp_line(l) for l in wmc_out.splitlines()]
|
117
|
-
tgt_wmc =
|
231
|
+
tgt_wmc = _LINUX_WM_CLASS_BY_IDE[ide]
|
118
232
|
tgt_wl = next(wl for wl in wls if wl.wm_class == tgt_wmc)
|
119
233
|
subprocess.check_call(['wmctrl', '-ia', tgt_wl.window_id], env=env)
|
120
234
|
|
@@ -128,7 +242,11 @@ class Cli(ap.Cli):
|
|
128
242
|
|
129
243
|
|
130
244
|
def _main() -> None:
|
131
|
-
|
245
|
+
IntellijCli()(exit=True)
|
246
|
+
|
247
|
+
|
248
|
+
# @omlish-manifest
|
249
|
+
_CLI_MODULE = CliModule(['intellij', 'ij'], __name__)
|
132
250
|
|
133
251
|
|
134
252
|
if __name__ == '__main__':
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev251
|
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.dev251
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=25.1; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -206,9 +206,6 @@ omdev/precheck/scripts.py
|
|
206
206
|
omdev/ptk/__init__.py
|
207
207
|
omdev/ptk/apps/__init__.py
|
208
208
|
omdev/ptk/apps/ncdu.py
|
209
|
-
omdev/pycharm/__init__.py
|
210
|
-
omdev/pycharm/__main__.py
|
211
|
-
omdev/pycharm/cli.py
|
212
209
|
omdev/pyproject/__init__.py
|
213
210
|
omdev/pyproject/__main__.py
|
214
211
|
omdev/pyproject/cexts.py
|
@@ -240,6 +237,7 @@ omdev/tools/cloc.py
|
|
240
237
|
omdev/tools/doc.py
|
241
238
|
omdev/tools/docker.py
|
242
239
|
omdev/tools/importscan.py
|
240
|
+
omdev/tools/intellij.py
|
243
241
|
omdev/tools/linehisto.py
|
244
242
|
omdev/tools/mkenv.py
|
245
243
|
omdev/tools/mkrelimp.py
|
@@ -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.dev251'
|
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.dev251',
|
26
26
|
]
|
27
27
|
|
28
28
|
[project.optional-dependencies]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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
|