diff --git a/pkgs/development/python-modules/loro/default.nix b/pkgs/development/python-modules/loro/default.nix new file mode 100644 index 000000000000..ea6bb82e50cb --- /dev/null +++ b/pkgs/development/python-modules/loro/default.nix @@ -0,0 +1,49 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + rustPlatform, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "loro"; + version = "1.5.4"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-vC1SLkwCkiytZe9d9t1OH+Vd360657XxdU81bM9C9jk="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-cjIHU2aMxkYMoulePmxFhuZrqMbnOkEL+Ar75+KCVFw="; + }; + + build-system = [ + rustPlatform.maturinBuildHook + rustPlatform.cargoSetupHook + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + disabledTests = [ + # Upstream test has hardcoded version and is rarely updated. + # See https://github.com/loro-dev/loro-py/issues/19 + "test_version" + ]; + + meta = { + description = "Data collaborative and version-controlled JSON with CRDTs"; + homepage = "https://github.com/loro-dev/loro-py"; + changelog = "https://github.com/loro-dev/loro-py/releases/tag/${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + dmadisetti + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 66aed9e18bc0..e49a820de7b6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8723,6 +8723,8 @@ self: super: with self; { loqedapi = callPackage ../development/python-modules/loqedapi { }; + loro = callPackage ../development/python-modules/loro { }; + losant-rest = callPackage ../development/python-modules/losant-rest { }; lottie = callPackage ../development/python-modules/lottie { };