diff --git a/python/online/fxreader/pr34/commands_typed/pip.py b/python/online/fxreader/pr34/commands_typed/pip.py index 3ba1289..48e97b6 100644 --- a/python/online/fxreader/pr34/commands_typed/pip.py +++ b/python/online/fxreader/pr34/commands_typed/pip.py @@ -44,6 +44,7 @@ class pip_resolve_t: class mode_t(enum.StrEnum): copy_paste = "copy_paste" monkey_patch = "monkey_patch" + uv_pip_freeze = "uv_pip_freeze" uv_pip_compile = "uv_pip_compile" @dataclasses.dataclass @@ -459,7 +460,9 @@ def pip_resolve( ) return res - elif mode is pip_resolve_t.kwargs_t.mode_t.uv_pip_compile: + elif mode is pip_resolve_t.kwargs_t.mode_t.uv_pip_freeze: + assert len(argv) == 0 + pip_freeze = subprocess.check_output( [ sys.executable, @@ -480,6 +483,22 @@ def pip_resolve( input=pip_freeze.encode('utf-8') ).decode('utf-8') + return pip_resolve_t.res_t( + txt=pip_compile, + ) + elif mode is pip_resolve_t.kwargs_t.mode_t.uv_pip_compile: + if argv[0] == '--': + del argv[0] + + pip_compile = subprocess.check_output( + [ + sys.executable, '-m', + 'uv', 'pip', 'compile', + '--generate-hashes', + *argv, + ], + ).decode('utf-8') + return pip_resolve_t.res_t( txt=pip_compile, )