diff options
Diffstat (limited to 'pkgs/development/python-modules/pycrdt/default.nix')
-rw-r--r-- | pkgs/development/python-modules/pycrdt/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/pycrdt/default.nix b/pkgs/development/python-modules/pycrdt/default.nix new file mode 100644 index 0000000000000..d33a8622733c1 --- /dev/null +++ b/pkgs/development/python-modules/pycrdt/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, buildPythonPackage +, fetchFromGitHub +, libiconv +, cargo +, rustPlatform +, rustc +, pydantic +, pytestCheckHook +, y-py +}: + +buildPythonPackage rec { + pname = "pycrdt"; + version = "0.8.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jupyter-server"; + repo = "pycrdt"; + rev = "refs/tags/v${version}"; + hash = "sha256-RY0ndkMW4a2KxkebkoSEAzCgdUyHujglHJCzkoFCJZA="; + }; + + postPatch = '' + cp ${./Cargo.lock} Cargo.lock + ''; + + cargoDeps = rustPlatform.importCargoLock { + lockFile = ./Cargo.lock; + }; + + nativeBuildInputs = [ + cargo + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + rustc + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + libiconv + ]; + + pythonImportsCheck = [ "pycrdt" ]; + + # requires pydantic>=2.5 + doCheck = false; + + nativeCheckInputs = [ + pytestCheckHook + y-py + pydantic + ]; + + meta = with lib; { + description = "CRDTs based on Yrs"; + homepage = "https://github.com/jupyter-server/pycrdt"; + changelog = "https://github.com/jupyter-server/pycrdt/releases/tag/${src.rev}"; + license = licenses.mit; + maintainers = teams.jupyter.members; + }; +} |