diff --git a/pkgs/development/python-modules/plyfile/default.nix b/pkgs/development/python-modules/plyfile/default.nix index d8379c5654ca..babf414c11a4 100644 --- a/pkgs/development/python-modules/plyfile/default.nix +++ b/pkgs/development/python-modules/plyfile/default.nix @@ -4,7 +4,7 @@ buildPythonPackage, # build-system - pdm-pep517, + pdm-backend, # dependencies numpy, @@ -15,25 +15,27 @@ buildPythonPackage rec { pname = "plyfile"; - version = "1.0.2"; + version = "1.1.2"; pyproject = true; src = fetchFromGitHub { owner = "dranjan"; repo = "python-plyfile"; tag = "v${version}"; - hash = "sha256-HlyqljfjuaZoG5f2cfDQj+7KS0en7pW2PPEnpvH8U+E="; + hash = "sha256-J72aoXEMcuHtYaLtzWJ5UGN9HdJTnQ1/8KgdMLtwyr0="; }; - nativeBuildInputs = [ pdm-pep517 ]; + build-system = [ pdm-backend ]; - propagatedBuildInputs = [ numpy ]; + dependencies = [ numpy ]; nativeCheckInputs = [ pytestCheckHook ]; - meta = with lib; { + pythonImportsCheck = [ "plyfile" ]; + + meta = { description = "NumPy-based text/binary PLY file reader/writer for Python"; homepage = "https://github.com/dranjan/python-plyfile"; - maintainers = with maintainers; [ abbradar ]; + maintainers = with lib.maintainers; [ abbradar ]; }; } diff --git a/pkgs/development/python-modules/robot-descriptions/default.nix b/pkgs/development/python-modules/robot-descriptions/default.nix new file mode 100644 index 000000000000..065048ea3aca --- /dev/null +++ b/pkgs/development/python-modules/robot-descriptions/default.nix @@ -0,0 +1,64 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + flit-core, + gitpython, + tqdm, + # idyntree, + mujoco, + pinocchio, + pybullet, + pycollada, + # robomeshcat, + yourdfpy, +}: + +buildPythonPackage rec { + pname = "robot-descriptions"; + version = "1.20.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "robot-descriptions"; + repo = "robot_descriptions.py"; + tag = "v${version}"; + hash = "sha256-8SBzhkENpUodnfObekkMPUsTQr/8mz27v3PK0S3IKO0="; + }; + + build-system = [ + flit-core + ]; + + dependencies = [ + gitpython + tqdm + pycollada + ]; + + optional-dependencies = { + opts = [ + # idyntree + mujoco + pinocchio + pybullet + # robomeshcat + yourdfpy + ]; + }; + + pythonImportsCheck = [ + "robot_descriptions" + ]; + + # This package needs to download a lot of data at runtime + doCheck = false; + + meta = { + description = "Access 125+ robot descriptions from the main Python robotics frameworks"; + homepage = "https://github.com/robot-descriptions/robot_descriptions.py"; + changelog = "https://github.com/robot-descriptions/robot_descriptions.py/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ nim65s ]; + }; +} diff --git a/pkgs/development/python-modules/viser/default.nix b/pkgs/development/python-modules/viser/default.nix new file mode 100644 index 000000000000..8ae02805aefb --- /dev/null +++ b/pkgs/development/python-modules/viser/default.nix @@ -0,0 +1,152 @@ +{ + lib, + + buildPythonPackage, + fetchFromGitHub, + + # nativeBuildInputs + nodejs, + fetchYarnDeps, + yarnConfigHook, + + # build-system + hatchling, + + # dependencies + imageio, + msgspec, + nodeenv, + numpy, + opencv-python, + plyfile, + psutil, + requests, + rich, + scikit-image, + scipy, + tqdm, + trimesh, + tyro, + websockets, + yourdfpy, + + # optional-dependencies + hypothesis, + pre-commit, + pandas, + pyright, + pytest, + ruff, + gdown, + matplotlib, + plotly, + # pyliblzfse, + robot-descriptions, + torch, + + # nativeCheckInputs + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "viser"; + version = "1.0.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "nerfstudio-project"; + repo = "viser"; + tag = "v${version}"; + hash = "sha256-itFJ9mlN2VaWbLzQp1ERMxBvXg0O7SMWzEWDdxoTA/0="; + }; + + postPatch = '' + # prepare yarn offline cache + mkdir -p node_modules + cd src/viser/client + cp package.json yarn.lock ../../.. + ln -s ../../../node_modules + + # fix: [vite-plugin-eslint] Failed to load config "react-app" to extend from. + substituteInPlace vite.config.mts --replace-fail \ + "eslint({ failOnError: false, failOnWarning: false })," "" + + cd ../../.. + ''; + + nativeBuildInputs = [ + yarnConfigHook + nodejs + ]; + + yarnOfflineCache = fetchYarnDeps { + yarnLock = src + "/src/viser/client/yarn.lock"; + hash = "sha256-4x+zJIqjVoKmEdOUPGpCuMmlRBfF++3oWtbNYAvd2ko="; + }; + + preBuild = '' + cd src/viser/client + yarn --offline build + cd ../../.. + ''; + + build-system = [ + hatchling + ]; + + dependencies = [ + imageio + msgspec + nodeenv + numpy + opencv-python + plyfile + psutil + requests + rich + scikit-image + scipy + tqdm + trimesh + tyro + websockets + yourdfpy + ]; + + optional-dependencies = { + dev = [ + hypothesis + pre-commit + pyright + pytest + ruff + ]; + examples = [ + gdown + matplotlib + pandas + plotly + plyfile + # pyliblzfse + robot-descriptions + torch + ]; + }; + + nativeCheckInputs = [ + hypothesis + pytestCheckHook + ]; + + pythonImportsCheck = [ + "viser" + ]; + + meta = { + changelog = "https://github.com/nerfstudio-project/viser/releases/tag/${src.tag}"; + description = "Web-based 3D visualization + Python"; + homepage = "https://github.com/nerfstudio-project/viser"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ nim65s ]; + }; +} diff --git a/pkgs/development/python-modules/yourdfpy/default.nix b/pkgs/development/python-modules/yourdfpy/default.nix new file mode 100644 index 000000000000..5647a170f037 --- /dev/null +++ b/pkgs/development/python-modules/yourdfpy/default.nix @@ -0,0 +1,63 @@ +{ + lib, + + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + setuptools-scm, + + # dependencies + lxml, + trimesh, + numpy, + six, + + # nativeCheckInputs + pytestCheckHook, + pytest-cov-stub, +}: + +buildPythonPackage rec { + pname = "yourdfpy"; + version = "0.0.58"; + pyproject = true; + + src = fetchFromGitHub { + owner = "clemense"; + repo = "yourdfpy"; + tag = "v${version}"; + hash = "sha256-Wi4QcgTOf/1nXWssFtlyRxql8Jg1nNKjEGkWuP+w73g="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + lxml + trimesh + numpy + six + ]; + + nativeCheckInputs = [ + pytestCheckHook + pytest-cov-stub + ]; + + pythonImportsCheck = [ + "yourdfpy" + ]; + + meta = { + description = "Python parser for URDFs"; + homepage = "https://github.com/clemense/yourdfpy/"; + changelog = "https://github.com/clemense/yourdfpy/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ nim65s ]; + mainProgram = "yourdfpy"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 479eb8ef03f9..07e504489530 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15762,6 +15762,8 @@ self: super: with self; { robomachine = callPackage ../development/python-modules/robomachine { }; + robot-descriptions = callPackage ../development/python-modules/robot-descriptions { }; + robot-detection = callPackage ../development/python-modules/robot-detection { }; robotframework = callPackage ../development/python-modules/robotframework { }; @@ -19350,6 +19352,8 @@ self: super: with self; { virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { }; + viser = callPackage ../development/python-modules/viser { }; + visions = callPackage ../development/python-modules/visions { }; visitor = callPackage ../development/python-modules/visitor { }; @@ -19984,6 +19988,8 @@ self: super: with self; { youless-api = callPackage ../development/python-modules/youless-api { }; + yourdfpy = callPackage ../development/python-modules/yourdfpy { }; + youseedee = callPackage ../development/python-modules/youseedee { }; youtokentome = callPackage ../development/python-modules/youtokentome { };