diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..4e53a29 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# LFS +pixi.lock filter=lfs diff=lfs merge=lfs -text + +# SCM syntax highlighting +pixi.lock linguist-language=YAML linguist-generated=true diff --git a/.gitignore b/.gitignore index 54579b8..2440c4d 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,7 @@ dmypy.json # IDE .idea + +# pixi environments +.pixi +*.egg-info diff --git a/README.md b/README.md index 9559fa6..57db28e 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,26 @@ This will automatically install `sdformat` and `gz-tools`. +
+Using pixi + +[`pixi`](https://pixi.sh) definetly provides the quickest way to start using ROD. You can run the tests by executing: + +```bash +pixi run test +``` + +or install the default dependencies with: + +```bash +pixi install +``` + +check out the [pyproject.toml](./pyproject.toml) file for the list of all available features and read the [`pixi`](https://pixi.sh) documentation for more information. + +
+ +
Using pip diff --git a/pixi.lock b/pixi.lock new file mode 100644 index 0000000..6f9010f --- /dev/null +++ b/pixi.lock @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad5c217ec910b6fb75d18e454db364169b66ecc039e8aa706a75ad269661e1df +size 100593 diff --git a/pyproject.toml b/pyproject.toml index 0b9079d..a6308b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -164,3 +164,37 @@ ignore = [ [tool.ruff.lint.per-file-ignores] # Ignore `E402` (import violations) in all `__init__.py` files "__init__.py" = ["F401", "F821"] + + +# ================== +# Pixi configuration +# ================== + +[tool.pixi.project] +channels = ["conda-forge"] +platforms = ["linux-64"] + +[tool.pixi.dependencies] +resolve-robotics-uri-py = "*" +trimesh = "*" +xmltodict = "*" +coloredlogs = "*" +mashumaro = "*" +gz-tools2 = "*" +libsdformat13 = "*" +numpy = "*" +scipy = "*" +packaging = "*" + +[tool.pixi.pypi-dependencies] +rod = { path = ".", editable = true } + +[tool.pixi.environments] +default = { solve-group = "default" } +all = { features = ["all", "style", "pptree", "testing"], solve-group = "default" } +pptree = { features = ["pptree"], solve-group = "default" } +style = { features = ["style"], solve-group = "default" } +testing = { features = ["testing"], solve-group = "default" } + +[tool.pixi.feature.testing.tasks] +test = "pytest -vv"