diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix index 774cb572e95b..ebbc17c6ea82 100644 --- a/pkgs/development/python-modules/libcst/default.nix +++ b/pkgs/development/python-modules/libcst/default.nix @@ -5,10 +5,12 @@ , fetchFromGitHub , hypothesis , isort -, pytest +, pytestCheckHook , python , pythonOlder , pyyaml +, rustPlatform +, setuptools-rust , setuptools-scm , typing-extensions , typing-inspect @@ -16,8 +18,8 @@ buildPythonPackage rec { pname = "libcst"; - version = "0.3.23"; - format = "setuptools"; + version = "0.4.1"; + format = "pyproject"; disabled = pythonOlder "3.6"; @@ -25,9 +27,18 @@ buildPythonPackage rec { owner = "instagram"; repo = pname; rev = "v${version}"; - sha256 = "1r4aiqpndqa75119faknsghi7zxyjrx5r6i7cb3d0liwiqrkzrvx"; + sha256 = "sha256-soAlt1KBpCn5JxM1b2LZ3vOpBn9HPGdbm+BBYbyEkfE="; }; + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + sourceRoot = "source/${cargoRoot}"; + name = "${pname}-${version}"; + hash = "sha256:1rz1c0dv3f1h2m5hwdisl3rbqnmifbva4f0c4vygk7rh1q27l515"; + }; + + cargoRoot = "native"; + postPatch = '' # test try to format files, which isn't necessary when consuming releases sed -i libcst/codegen/generate.py \ @@ -37,8 +48,10 @@ buildPythonPackage rec { SETUPTOOLS_SCM_PRETEND_VERSION = version; nativeBuildInputs = [ + setuptools-rust setuptools-scm - ]; + rustPlatform.cargoSetupHook + ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]); propagatedBuildInputs = [ hypothesis @@ -52,7 +65,7 @@ buildPythonPackage rec { checkInputs = [ black isort - pytest + pytestCheckHook ]; preCheck = ''