omdev 0.0.0.dev175__tar.gz → 0.0.0.dev177__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {omdev-0.0.0.dev175/omdev.egg-info → omdev-0.0.0.dev177}/PKG-INFO +2 -2
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/pyenv.py +3 -3
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/standalone.py +4 -1
- omdev-0.0.0.dev177/omdev/interp/uv.py +21 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/interp.py +2 -2
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/pyproject.py +40 -6
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177/omdev.egg-info}/PKG-INFO +2 -2
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev.egg-info/SOURCES.txt +1 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev.egg-info/requires.txt +1 -1
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/pyproject.toml +2 -2
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/LICENSE +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/MANIFEST.in +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/README.rst +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/.manifests.json +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/__about__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/gen.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/imports.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/main.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/manifests.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/resources.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/srcfiles.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/strip.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/types.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/amalg/typing.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/antlr/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/antlr/consts.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/antlr/gen.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/bracepy.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/cache.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/contexts.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/currents.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/fns.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/resolvers.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/storage.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/compute/types.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/data/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/data/actions.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/data/cache.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/data/consts.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/data/defaults.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/data/manifests.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cache/data/specs.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_boilerplate.cc +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/LICENSE +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/build_ext.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/compilers/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/compilers/ccompiler.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/compilers/options.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/compilers/unixccompiler.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/dir_util.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/errors.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/extension.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/file_util.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/modified.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/spawn.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/sysconfig.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/util.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/_distutils/version.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/build.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/cmake.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/importhook.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/magic.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cexts/scan.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/classdot.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/_pathhack.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/clicli.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/install.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/main.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/managers.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cli/types.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/clipboard/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/clipboard/clipboard.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/clipboard/darwin_cf.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/clipboard/linux_x11.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/cmake.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/findimports.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/git/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/git/revisions.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/git/status.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/git/subtrees.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/imgur.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/cli.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/inspect.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/providers.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/resolvers.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/system.py +1 -1
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/interp/types.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/magic/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/magic/find.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/magic/magic.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/magic/prepare.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/magic/styles.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/manifests/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/manifests/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/manifests/build.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/manifests/main.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/mypy/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/mypy/debug.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/packaging/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/packaging/marshal.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/packaging/names.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/packaging/requires.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/packaging/specifiers.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/packaging/versions.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pip.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/base.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/git.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/lite.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/main.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/manifests.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/precheck/scripts.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/ptk/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/ptk/apps/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/ptk/apps/ncdu.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pycharm/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pycharm/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pycharm/cli.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/cexts.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/cli.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/configs.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/pkg.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/reqs.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/pyproject/venvs.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/revisions.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/bumpversion.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/execrss.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/exectime.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/importtrace.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/slowcat.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/scripts/tmpexec.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/secrets.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tokens.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/toml/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/toml/parser.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/toml/writer.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/cloc.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/doc.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/docker.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/git.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/importscan.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/cli.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/formats.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/io.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/parsing.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/processing.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/json/rendering.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/mkrelimp.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/notebook.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/pawk/__init__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/pawk/__main__.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/pawk/pawk.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/pip.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/prof.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/qr.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/tools/sqlrepl.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev/wheelfile.py +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev.egg-info/dependency_links.txt +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev.egg-info/entry_points.txt +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/omdev.egg-info/top_level.txt +0 -0
- {omdev-0.0.0.dev175 → omdev-0.0.0.dev177}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev177
|
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.dev177
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=24.10; extra == "all"
|
18
18
|
Requires-Dist: pycparser~=2.22; extra == "all"
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007
|
1
2
|
"""
|
2
3
|
TODO:
|
3
4
|
- custom tags
|
@@ -9,7 +10,6 @@ TODO:
|
|
9
10
|
- optionally install / upgrade pyenv itself
|
10
11
|
- new vers dont need these custom mac opts, only run on old vers
|
11
12
|
"""
|
12
|
-
# ruff: noqa: UP006 UP007
|
13
13
|
import abc
|
14
14
|
import dataclasses as dc
|
15
15
|
import itertools
|
@@ -319,11 +319,11 @@ class PyenvVersionInstaller:
|
|
319
319
|
full_args = [
|
320
320
|
os.path.join(check.not_none(await self._pyenv.root()), 'plugins', 'python-build', 'bin', 'python-build'), # noqa
|
321
321
|
*conf_args,
|
322
|
-
self.install_dir(),
|
322
|
+
await self.install_dir(),
|
323
323
|
]
|
324
324
|
else:
|
325
325
|
full_args = [
|
326
|
-
self._pyenv.exe(),
|
326
|
+
await self._pyenv.exe(),
|
327
327
|
'install',
|
328
328
|
*conf_args,
|
329
329
|
]
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007
|
1
2
|
"""
|
2
3
|
TODO:
|
3
4
|
- ~/.cache/omlish/interp/standalone/...
|
@@ -20,7 +21,6 @@ TODO:
|
|
20
21
|
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
21
22
|
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
23
|
# https://github.com/tusharsadhwani/yen/blob/8d1bb0c1232c7b0159caefb1bf3a5348b93f7b43/src/yen/github.py
|
23
|
-
# ruff: noqa: UP006 UP007
|
24
24
|
import json
|
25
25
|
import os.path
|
26
26
|
import platform
|
@@ -91,6 +91,7 @@ class StandalonePythons:
|
|
91
91
|
|
92
92
|
def fallback_release_data(self) -> GitHubReleaseData:
|
93
93
|
"""Returns the fallback release data, for when GitHub API gives an error."""
|
94
|
+
|
94
95
|
log.warning('GitHub unreachable. Using fallback release data.')
|
95
96
|
data_file = os.path.join(os.path.dirname(__file__), 'fallback_release_data.json')
|
96
97
|
with open(data_file) as data:
|
@@ -101,6 +102,7 @@ class StandalonePythons:
|
|
101
102
|
|
102
103
|
def get_latest_python_releases(self, is_linux_i686: bool) -> GitHubReleaseData:
|
103
104
|
"""Returns the list of python download links from the latest github release."""
|
105
|
+
|
104
106
|
# They stopped shipping for 32 bit linux since after the 20230826 tag
|
105
107
|
if is_linux_i686:
|
106
108
|
data_file = os.path.join(os.path.dirname(__file__), 'linux_i686_release.json')
|
@@ -120,6 +122,7 @@ class StandalonePythons:
|
|
120
122
|
@cached_nullary
|
121
123
|
def list_pythons(self) -> ta.Mapping[str, str]:
|
122
124
|
"""Returns available python versions for your machine and their download links."""
|
125
|
+
|
123
126
|
system, machine = platform.system(), platform.machine()
|
124
127
|
download_link_suffixes = self.MACHINE_SUFFIX[system][machine]
|
125
128
|
# linux suffixes are nested under glibc or musl builds
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# ruff: noqa: UP006 UP007
|
2
|
+
"""
|
3
|
+
uv run pip
|
4
|
+
uv run --python 3.11.6 pip
|
5
|
+
uv venv --python 3.11.6 --seed barf
|
6
|
+
python3 -m venv barf && barf/bin/pip install uv && barf/bin/uv venv --python 3.11.6 --seed barf2
|
7
|
+
"""
|
8
|
+
import typing as ta
|
9
|
+
|
10
|
+
from .providers import InterpProvider
|
11
|
+
from .types import Interp
|
12
|
+
from .types import InterpSpecifier
|
13
|
+
from .types import InterpVersion
|
14
|
+
|
15
|
+
|
16
|
+
class PyenvInterpProvider(InterpProvider):
|
17
|
+
def get_installed_versions(self, spec: InterpSpecifier) -> ta.Awaitable[ta.Sequence[InterpVersion]]:
|
18
|
+
raise NotImplementedError
|
19
|
+
|
20
|
+
def get_installed_version(self, version: InterpVersion) -> ta.Awaitable[Interp]:
|
21
|
+
raise NotImplementedError
|
@@ -3156,11 +3156,11 @@ class PyenvVersionInstaller:
|
|
3156
3156
|
full_args = [
|
3157
3157
|
os.path.join(check.not_none(await self._pyenv.root()), 'plugins', 'python-build', 'bin', 'python-build'), # noqa
|
3158
3158
|
*conf_args,
|
3159
|
-
self.install_dir(),
|
3159
|
+
await self.install_dir(),
|
3160
3160
|
]
|
3161
3161
|
else:
|
3162
3162
|
full_args = [
|
3163
|
-
self._pyenv.exe(),
|
3163
|
+
await self._pyenv.exe(),
|
3164
3164
|
'install',
|
3165
3165
|
*conf_args,
|
3166
3166
|
]
|
@@ -3916,6 +3916,18 @@ class FieldsObjMarshaler(ObjMarshaler):
|
|
3916
3916
|
})
|
3917
3917
|
|
3918
3918
|
|
3919
|
+
@dc.dataclass(frozen=True)
|
3920
|
+
class SingleFieldObjMarshaler(ObjMarshaler):
|
3921
|
+
ty: type
|
3922
|
+
fld: str
|
3923
|
+
|
3924
|
+
def marshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
|
3925
|
+
return getattr(o, self.fld)
|
3926
|
+
|
3927
|
+
def unmarshal(self, o: ta.Any, ctx: 'ObjMarshalContext') -> ta.Any:
|
3928
|
+
return self.ty(**{self.fld: o})
|
3929
|
+
|
3930
|
+
|
3919
3931
|
@dc.dataclass(frozen=True)
|
3920
3932
|
class PolymorphicObjMarshaler(ObjMarshaler):
|
3921
3933
|
class Impl(ta.NamedTuple):
|
@@ -3990,7 +4002,7 @@ _DEFAULT_OBJ_MARSHALERS: ta.Dict[ta.Any, ObjMarshaler] = {
|
|
3990
4002
|
**{t: IterableObjMarshaler(t, DynamicObjMarshaler()) for t in (list, tuple, set, frozenset)},
|
3991
4003
|
**{t: MappingObjMarshaler(t, DynamicObjMarshaler(), DynamicObjMarshaler()) for t in (dict,)},
|
3992
4004
|
|
3993
|
-
|
4005
|
+
**{t: DynamicObjMarshaler() for t in (ta.Any, object)},
|
3994
4006
|
|
3995
4007
|
**{t: DatetimeObjMarshaler(t) for t in (datetime.date, datetime.time, datetime.datetime)},
|
3996
4008
|
decimal.Decimal: DecimalObjMarshaler(),
|
@@ -4015,6 +4027,16 @@ _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES: ta.Dict[ta.Any, type] = {
|
|
4015
4027
|
##
|
4016
4028
|
|
4017
4029
|
|
4030
|
+
_REGISTERED_OBJ_MARSHALERS_BY_TYPE: ta.MutableMapping[type, ObjMarshaler] = weakref.WeakKeyDictionary()
|
4031
|
+
|
4032
|
+
|
4033
|
+
def register_type_obj_marshaler(ty: type, om: ObjMarshaler) -> None:
|
4034
|
+
_REGISTERED_OBJ_MARSHALERS_BY_TYPE[ty] = om
|
4035
|
+
|
4036
|
+
|
4037
|
+
##
|
4038
|
+
|
4039
|
+
|
4018
4040
|
class ObjMarshalerManager:
|
4019
4041
|
def __init__(
|
4020
4042
|
self,
|
@@ -4024,6 +4046,8 @@ class ObjMarshalerManager:
|
|
4024
4046
|
default_obj_marshalers: ta.Dict[ta.Any, ObjMarshaler] = _DEFAULT_OBJ_MARSHALERS, # noqa
|
4025
4047
|
generic_mapping_types: ta.Dict[ta.Any, type] = _OBJ_MARSHALER_GENERIC_MAPPING_TYPES, # noqa
|
4026
4048
|
generic_iterable_types: ta.Dict[ta.Any, type] = _OBJ_MARSHALER_GENERIC_ITERABLE_TYPES, # noqa
|
4049
|
+
|
4050
|
+
registered_obj_marshalers: ta.Mapping[type, ObjMarshaler] = _REGISTERED_OBJ_MARSHALERS_BY_TYPE,
|
4027
4051
|
) -> None:
|
4028
4052
|
super().__init__()
|
4029
4053
|
|
@@ -4032,6 +4056,7 @@ class ObjMarshalerManager:
|
|
4032
4056
|
self._obj_marshalers = dict(default_obj_marshalers)
|
4033
4057
|
self._generic_mapping_types = generic_mapping_types
|
4034
4058
|
self._generic_iterable_types = generic_iterable_types
|
4059
|
+
self._registered_obj_marshalers = registered_obj_marshalers
|
4035
4060
|
|
4036
4061
|
self._lock = threading.RLock()
|
4037
4062
|
self._marshalers: ta.Dict[ta.Any, ObjMarshaler] = dict(_DEFAULT_OBJ_MARSHALERS)
|
@@ -4047,6 +4072,9 @@ class ObjMarshalerManager:
|
|
4047
4072
|
non_strict_fields: bool = False,
|
4048
4073
|
) -> ObjMarshaler:
|
4049
4074
|
if isinstance(ty, type):
|
4075
|
+
if (reg := self._registered_obj_marshalers.get(ty)) is not None:
|
4076
|
+
return reg
|
4077
|
+
|
4050
4078
|
if abc.ABC in ty.__bases__:
|
4051
4079
|
impls = [ity for ity in deep_subclasses(ty) if abc.ABC not in ity.__bases__] # type: ignore
|
4052
4080
|
if all(ity.__qualname__.endswith(ty.__name__) for ity in impls):
|
@@ -4111,9 +4139,15 @@ class ObjMarshalerManager:
|
|
4111
4139
|
|
4112
4140
|
#
|
4113
4141
|
|
4114
|
-
def
|
4142
|
+
def set_obj_marshaler(
|
4143
|
+
self,
|
4144
|
+
ty: ta.Any,
|
4145
|
+
m: ObjMarshaler,
|
4146
|
+
*,
|
4147
|
+
override: bool = False,
|
4148
|
+
) -> None:
|
4115
4149
|
with self._lock:
|
4116
|
-
if ty in self._obj_marshalers:
|
4150
|
+
if not override and ty in self._obj_marshalers:
|
4117
4151
|
raise KeyError(ty)
|
4118
4152
|
self._obj_marshalers[ty] = m
|
4119
4153
|
|
@@ -4204,7 +4238,7 @@ class ObjMarshalContext:
|
|
4204
4238
|
|
4205
4239
|
OBJ_MARSHALER_MANAGER = ObjMarshalerManager()
|
4206
4240
|
|
4207
|
-
|
4241
|
+
set_obj_marshaler = OBJ_MARSHALER_MANAGER.set_obj_marshaler
|
4208
4242
|
get_obj_marshaler = OBJ_MARSHALER_MANAGER.get_obj_marshaler
|
4209
4243
|
|
4210
4244
|
marshal_obj = OBJ_MARSHALER_MANAGER.marshal_obj
|
@@ -6326,11 +6360,11 @@ class PyenvVersionInstaller:
|
|
6326
6360
|
full_args = [
|
6327
6361
|
os.path.join(check.not_none(await self._pyenv.root()), 'plugins', 'python-build', 'bin', 'python-build'), # noqa
|
6328
6362
|
*conf_args,
|
6329
|
-
self.install_dir(),
|
6363
|
+
await self.install_dir(),
|
6330
6364
|
]
|
6331
6365
|
else:
|
6332
6366
|
full_args = [
|
6333
|
-
self._pyenv.exe(),
|
6367
|
+
await self._pyenv.exe(),
|
6334
6368
|
'install',
|
6335
6369
|
*conf_args,
|
6336
6370
|
]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: omdev
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev177
|
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.dev177
|
16
16
|
Provides-Extra: all
|
17
17
|
Requires-Dist: black~=24.10; 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.dev177'
|
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.dev177',
|
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
|
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
|