mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-01 01:33:20 +00:00
hatch: hardcode uv executable path
This commit is contained in:
parent
691792358c
commit
d4cebe782c
@ -2,7 +2,7 @@
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
uv,
|
||||
replaceVars,
|
||||
git,
|
||||
cargo,
|
||||
stdenv,
|
||||
@ -24,12 +24,15 @@ python3.pkgs.buildPythonApplication rec {
|
||||
hash = "sha256-HW2vDVsFrdFRRaPNuGDg9DZpJd8OuYDIqA3KQRa3m9o=";
|
||||
};
|
||||
|
||||
patches = [ (replaceVars ./paths.patch { uv = lib.getExe python3.pkgs.uv; }) ];
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
hatchling
|
||||
hatch-vcs
|
||||
uv
|
||||
];
|
||||
|
||||
pythonRemoveDeps = [ "uv" ];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
click
|
||||
hatchling
|
||||
|
58
pkgs/by-name/ha/hatch/paths.patch
Normal file
58
pkgs/by-name/ha/hatch/paths.patch
Normal file
@ -0,0 +1,58 @@
|
||||
diff --git a/src/hatch/env/virtual.py b/src/hatch/env/virtual.py
|
||||
index 285edb32..90bd94e6 100644
|
||||
--- a/src/hatch/env/virtual.py
|
||||
+++ b/src/hatch/env/virtual.py
|
||||
@@ -106,26 +106,7 @@ class VirtualEnvironment(EnvironmentInterface):
|
||||
if self.explicit_uv_path:
|
||||
return self.explicit_uv_path
|
||||
|
||||
- from hatch.env.internal import is_default_environment
|
||||
-
|
||||
- env_name = 'hatch-uv'
|
||||
- if not (
|
||||
- # Prevent recursive loop
|
||||
- self.name == env_name
|
||||
- # Only if dependencies have been set by the user
|
||||
- or is_default_environment(env_name, self.app.project.config.internal_envs[env_name])
|
||||
- ):
|
||||
- uv_env = self.app.get_environment(env_name)
|
||||
- self.app.prepare_environment(uv_env)
|
||||
- with uv_env:
|
||||
- return self.platform.modules.shutil.which('uv')
|
||||
-
|
||||
- import sysconfig
|
||||
-
|
||||
- scripts_dir = sysconfig.get_path('scripts')
|
||||
- old_path = os.environ.get('PATH', os.defpath)
|
||||
- new_path = f'{scripts_dir}{os.pathsep}{old_path}'
|
||||
- return self.platform.modules.shutil.which('uv', path=new_path)
|
||||
+ return '@uv@'
|
||||
|
||||
@staticmethod
|
||||
def get_option_types() -> dict:
|
||||
diff --git a/src/hatch/venv/core.py b/src/hatch/venv/core.py
|
||||
index d1303f03..e1e60871 100644
|
||||
--- a/src/hatch/venv/core.py
|
||||
+++ b/src/hatch/venv/core.py
|
||||
@@ -131,7 +131,7 @@ class TempVirtualEnv(VirtualEnv):
|
||||
|
||||
class UVVirtualEnv(VirtualEnv):
|
||||
def create(self, python, *, allow_system_packages=False):
|
||||
- command = [os.environ.get('HATCH_UV', 'uv'), 'venv', str(self.directory), '--python', python]
|
||||
+ command = [os.environ.get('HATCH_UV', '@uv@'), 'venv', str(self.directory), '--python', python]
|
||||
if allow_system_packages:
|
||||
command.append('--system-site-packages')
|
||||
|
||||
diff --git a/tests/conftest.py b/tests/conftest.py
|
||||
index e8fe663a..6066316d 100644
|
||||
--- a/tests/conftest.py
|
||||
+++ b/tests/conftest.py
|
||||
@@ -203,7 +203,7 @@ def python_on_path():
|
||||
|
||||
@pytest.fixture(scope='session', autouse=True)
|
||||
def uv_on_path():
|
||||
- return shutil.which('uv')
|
||||
+ return '@uv@'
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
Loading…
Reference in New Issue
Block a user