diff --git a/pkgs/development/python-modules/moyopy/default.nix b/pkgs/development/python-modules/moyopy/default.nix new file mode 100644 index 000000000000..34cf7e73d9c0 --- /dev/null +++ b/pkgs/development/python-modules/moyopy/default.nix @@ -0,0 +1,80 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + rustPlatform, + + # dependencies + typing-extensions, + + # tests + numpy, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "moyopy"; + version = "0.4.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "spglib"; + repo = "moyo"; + tag = "v${version}"; + hash = "sha256-TWZAqvtPeJqKXUFiNxD8H/aqjiDSWaTkMEQW0cuhEMY="; + }; + + sourceRoot = "${src.name}/moyopy"; + cargoRoot = ".."; + + nativeBuildInputs = with rustPlatform; [ + cargoSetupHook + maturinBuildHook + ]; + + env = { + CARGO_TARGET_DIR = "./target"; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit + pname + version + src + sourceRoot + cargoRoot + ; + hash = "sha256-L4SAX4HWx+TSPQm7K6C5IEpFkx/AlscmKRs2wPEQun4="; + }; + + build-system = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + dependencies = [ + typing-extensions + ]; + + pythonImportsCheck = [ "moyopy" ]; + + nativeCheckInputs = [ + numpy + pytestCheckHook + ]; + + disabledTestPaths = [ + # Circular dependency with pymatgen + "python/tests/test_interface.py" + ]; + + meta = { + description = "Python interface of moyo, a fast and robust crystal symmetry finder"; + homepage = "https://spglib.github.io/moyo/python/"; + changelog = "https://github.com/spglib/moyo/releases/tag/v${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 82b48a2913d5..49a12d3d2da8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9593,6 +9593,8 @@ self: super: with self; { moviepy = callPackage ../development/python-modules/moviepy { }; + moyopy = callPackage ../development/python-modules/moyopy { }; + mozart-api = callPackage ../development/python-modules/mozart-api { }; mozilla-django-oidc = callPackage ../development/python-modules/mozilla-django-oidc { };