diff --git a/pkgs/development/python-modules/pygltflib/default.nix b/pkgs/development/python-modules/pygltflib/default.nix new file mode 100644 index 000000000000..e88437eb15a9 --- /dev/null +++ b/pkgs/development/python-modules/pygltflib/default.nix @@ -0,0 +1,60 @@ +{ lib +, buildPythonPackage +, fetchFromGitLab +, fetchFromGitHub +, pythonOlder +, setuptools +, dataclasses-json +, deprecated +, pytestCheckHook +}: + +let + gltf-sample-models = fetchFromGitHub { + owner = "KhronosGroup"; + repo = "glTF-Sample-Models"; + rev = "d7a3cc8e51d7c573771ae77a57f16b0662a905c6"; + hash = "sha256-TxSg1O6eIiaKagcZUoWZ5Iw/tBKvQIoepRFp3MdVlyI="; + }; +in + +buildPythonPackage rec { + pname = "pygltflib"; + version = "1.16.1"; + pyproject = true; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitLab { + owner = "dodgyville"; + repo = "pygltflib"; + rev = "da1c687f5ea88d6063616857d54d195fa0739b37"; # no tags in repo, only on PyPI + hash = "sha256-aoYVglpQ0Qaq6gEqZ455GlkL2/C1Q5YjQASVLplsWbs="; + }; + + nativeBuildInputs = [ + setuptools + ]; + + propagatedBuildInputs = [ + dataclasses-json + deprecated + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + preCheck = '' + ln -s ${gltf-sample-models} glTF-Sample-Models + ''; + + pythonImportsCheck = [ "pygltflib" ]; + + meta = with lib; { + description = "Module for reading and writing basic glTF files"; + homepage = "https://gitlab.com/dodgyville/pygltflib"; + changelog = "https://gitlab.com/dodgyville/pygltflib/-/blob/${src.rev}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ bcdarwin ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d4ea537d2229..62499c72835b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10574,6 +10574,8 @@ self: super: with self; { pygls = callPackage ../development/python-modules/pygls { }; + pygltflib = callPackage ../development/python-modules/pygltflib { }; + pygmars = callPackage ../development/python-modules/pygmars { }; pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };