diff --git a/pkgs/development/python-modules/ty/default.nix b/pkgs/development/python-modules/ty/default.nix new file mode 100644 index 000000000000..799eb31759e8 --- /dev/null +++ b/pkgs/development/python-modules/ty/default.nix @@ -0,0 +1,46 @@ +{ + buildPythonPackage, + hatchling, + lib, + ty, +}: + +buildPythonPackage { + inherit (ty) + pname + version + src + meta + ; + pyproject = true; + + build-system = [ hatchling ]; + + postPatch = + # Add the path to the ty binary as a fallback after other path search methods have been exhausted + '' + substituteInPlace python/ty/_find_ty.py \ + --replace-fail \ + 'sysconfig.get_path("scripts", scheme=_user_scheme()),' \ + 'sysconfig.get_path("scripts", scheme=_user_scheme()), "${baseNameOf (lib.getExe ty)}",' + '' + # Sidestep the maturin build system in favour of reusing the binary already built by nixpkgs, + # to avoid rebuilding the ty binary for every active python package set. + + '' + substituteInPlace pyproject.toml \ + --replace-fail 'requires = ["maturin>=1.0,<2.0"]' 'requires = ["hatchling"]' \ + --replace-fail 'build-backend = "maturin"' 'build-backend = "hatchling.build"' + + cat >> pyproject.toml <