Conform pyproject to PEP 621 (#621)
This commit is contained in:
parent
c4c2ce04e7
commit
ddeade077e
|
@ -54,7 +54,7 @@ jobs:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
run: pipx install "poetry<2.0.0"
|
run: pipx install "poetry>=2.1"
|
||||||
|
|
||||||
- name: Poetry check
|
- name: Poetry check
|
||||||
run: poetry check
|
run: poetry check
|
||||||
|
@ -70,7 +70,7 @@ jobs:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
run: pipx install "poetry<2.0.0"
|
run: pipx install "poetry>=2.1"
|
||||||
|
|
||||||
- name: Install poetry-relax
|
- name: Install poetry-relax
|
||||||
run: poetry self add poetry-relax
|
run: poetry self add poetry-relax
|
||||||
|
|
|
@ -24,13 +24,9 @@ repos:
|
||||||
args: [--fix]
|
args: [--fix]
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
- repo: https://github.com/python-poetry/poetry
|
- repo: https://github.com/python-poetry/poetry
|
||||||
rev: 1.8.5
|
rev: 2.1.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: poetry-check
|
- id: poetry-check
|
||||||
- id: poetry-lock
|
|
||||||
args:
|
|
||||||
- "--check"
|
|
||||||
- "--no-update"
|
|
||||||
- repo: https://github.com/gitleaks/gitleaks
|
- repo: https://github.com/gitleaks/gitleaks
|
||||||
rev: v8.23.3
|
rev: v8.23.3
|
||||||
hooks:
|
hooks:
|
||||||
|
|
|
@ -130,7 +130,7 @@ Follow these steps to start contributing:
|
||||||
🚨 **Do not** work on the `main` branch.
|
🚨 **Do not** work on the `main` branch.
|
||||||
|
|
||||||
4. for development, we use `poetry` instead of just `pip` to easily track our dependencies.
|
4. for development, we use `poetry` instead of just `pip` to easily track our dependencies.
|
||||||
If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it.
|
If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it (use a version >=2.1.0).
|
||||||
|
|
||||||
Set up a development environment with conda or miniconda:
|
Set up a development environment with conda or miniconda:
|
||||||
```bash
|
```bash
|
||||||
|
@ -144,12 +144,12 @@ Follow these steps to start contributing:
|
||||||
|
|
||||||
You can also install the project with all its dependencies (including environments):
|
You can also install the project with all its dependencies (including environments):
|
||||||
```bash
|
```bash
|
||||||
poetry install --sync --all-extras
|
poetry sync --all-extras
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note:** If you don't install simulation environments with `--all-extras`, the tests that require them will be skipped when running the pytest suite locally. However, they *will* be tested in the CI. In general, we advise you to install everything and test locally before pushing.
|
> **Note:** If you don't install simulation environments with `--all-extras`, the tests that require them will be skipped when running the pytest suite locally. However, they *will* be tested in the CI. In general, we advise you to install everything and test locally before pushing.
|
||||||
|
|
||||||
Whichever command you chose to install the project (e.g. `poetry install --sync --all-extras`), you should run it again when pulling code with an updated version of `pyproject.toml` and `poetry.lock` in order to synchronize your virtual environment with the new dependencies.
|
Whichever command you chose to install the project (e.g. `poetry sync --all-extras`), you should run it again when pulling code with an updated version of `pyproject.toml` and `poetry.lock` in order to synchronize your virtual environment with the new dependencies.
|
||||||
|
|
||||||
The equivalent of `pip install some-package`, would just be:
|
The equivalent of `pip install some-package`, would just be:
|
||||||
```bash
|
```bash
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
134
pyproject.toml
134
pyproject.toml
|
@ -1,18 +1,24 @@
|
||||||
[tool.poetry]
|
[project.urls]
|
||||||
|
homepage = "https://github.com/huggingface/lerobot"
|
||||||
|
issues = "https://github.com/huggingface/lerobot/issues"
|
||||||
|
discord = "https://discord.gg/s3KuuzsPFb"
|
||||||
|
|
||||||
|
[project]
|
||||||
name = "lerobot"
|
name = "lerobot"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch"
|
description = "🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch"
|
||||||
authors = [
|
authors = [
|
||||||
"Rémi Cadène <re.cadene@gmail.com>",
|
{name = "Rémi Cadène", email = "re.cadene@gmail.com"},
|
||||||
"Simon Alibert <alibert.sim@gmail.com>",
|
{name = "Simon Alibert", email = "alibert.sim@gmail.com"},
|
||||||
"Alexander Soare <alexander.soare159@gmail.com>",
|
{name = "Alexander Soare", email = "alexander.soare159@gmail.com"},
|
||||||
"Quentin Gallouédec <quentin.gallouedec@ec-lyon.fr>",
|
{name = "Quentin Gallouédec", email = "quentin.gallouedec@ec-lyon.fr"},
|
||||||
"Adil Zouitine <adilzouitinegm@gmail.com>",
|
{name = "Adil Zouitine", email = "adilzouitinegm@gmail.com"},
|
||||||
"Thomas Wolf <thomaswolfcontact@gmail.com>",
|
{name = "Thomas Wolf", email = "thomaswolfcontact@gmail.com"},
|
||||||
]
|
]
|
||||||
repository = "https://github.com/huggingface/lerobot"
|
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "Apache-2.0"
|
license = {text = "Apache-2.0"}
|
||||||
|
requires-python = ">=3.10"
|
||||||
|
keywords = ["robotics", "deep learning", "pytorch"]
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"Development Status :: 3 - Alpha",
|
"Development Status :: 3 - Alpha",
|
||||||
"Intended Audience :: Developers",
|
"Intended Audience :: Developers",
|
||||||
|
@ -23,70 +29,56 @@ classifiers=[
|
||||||
"License :: OSI Approved :: Apache Software License",
|
"License :: OSI Approved :: Apache Software License",
|
||||||
"Programming Language :: Python :: 3.10",
|
"Programming Language :: Python :: 3.10",
|
||||||
]
|
]
|
||||||
packages = [{include = "lerobot"}]
|
dependencies = [
|
||||||
|
"cmake>=3.29.0.1",
|
||||||
|
"datasets>=2.19.0",
|
||||||
|
"deepdiff>=7.0.1",
|
||||||
|
"diffusers>=0.27.2",
|
||||||
|
"draccus>=0.10.0",
|
||||||
|
"einops>=0.8.0",
|
||||||
|
"flask>=3.0.3",
|
||||||
|
"gdown>=5.1.0",
|
||||||
|
"gymnasium==0.29.1", # TODO(rcadene, aliberts): Make gym 1.0.0 work
|
||||||
|
"h5py>=3.10.0",
|
||||||
|
"huggingface-hub[hf-transfer,cli]>=0.27.1 ; python_version < '4.0'",
|
||||||
|
"hydra-core>=1.3.2",
|
||||||
|
"imageio[ffmpeg]>=2.34.0",
|
||||||
|
"jsonlines>=4.0.0",
|
||||||
|
"numba>=0.59.0",
|
||||||
|
"omegaconf>=2.3.0",
|
||||||
|
"opencv-python>=4.9.0",
|
||||||
|
"pyav>=12.0.5",
|
||||||
|
"pymunk>=6.6.0",
|
||||||
|
"rerun-sdk>=0.21.0",
|
||||||
|
"termcolor>=2.4.0",
|
||||||
|
"torch>=2.2.1",
|
||||||
|
"torchvision>=0.21.0",
|
||||||
|
"wandb>=0.16.3",
|
||||||
|
"zarr>=2.17.0"
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.optional-dependencies]
|
||||||
|
aloha = ["gym-aloha>=0.1.1 ; python_version < '4.0'"]
|
||||||
|
dev = ["pre-commit>=3.7.0", "debugpy>=1.8.1"]
|
||||||
|
dora = ["gym-dora @ git+https://github.com/dora-rs/dora-lerobot.git#subdirectory=gym_dora ; python_version < '4.0'"]
|
||||||
|
dynamixel = ["dynamixel-sdk>=3.7.31", "pynput>=1.7.7"]
|
||||||
|
feetech = ["feetech-servo-sdk>=1.0.0", "pynput>=1.7.7"]
|
||||||
|
intelrealsense = ["pyrealsense2>=2.55.1.6486 ; sys_platform != 'darwin'"]
|
||||||
|
pi0 = ["transformers>=4.48.0"]
|
||||||
|
pusht = ["gym-pusht>=0.1.5 ; python_version < '4.0'"]
|
||||||
|
stretch = [
|
||||||
|
"hello-robot-stretch-body>=0.7.27 ; python_version < '4.0' and sys_platform == 'linux'",
|
||||||
|
"pyrender @ git+https://github.com/mmatl/pyrender.git ; sys_platform == 'linux'",
|
||||||
|
"pyrealsense2>=2.55.1.6486 ; sys_platform != 'darwin'",
|
||||||
|
"pynput>=1.7.7"
|
||||||
|
]
|
||||||
|
test = ["pytest>=8.1.0", "pytest-cov>=5.0.0", "pyserial>=3.5"]
|
||||||
|
umi = ["imagecodecs>=2024.1.1"]
|
||||||
|
video_benchmark = ["scikit-image>=0.23.2", "pandas>=2.2.2"]
|
||||||
|
xarm = ["gym-xarm>=0.1.1 ; python_version < '4.0'"]
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry]
|
||||||
python = ">=3.10,<3.13"
|
requires-poetry = ">=2.1"
|
||||||
termcolor = ">=2.4.0"
|
|
||||||
wandb = ">=0.16.3"
|
|
||||||
imageio = {extras = ["ffmpeg"], version = ">=2.34.0"}
|
|
||||||
gdown = ">=5.1.0"
|
|
||||||
einops = ">=0.8.0"
|
|
||||||
pymunk = ">=6.6.0"
|
|
||||||
zarr = ">=2.17.0"
|
|
||||||
numba = ">=0.59.0"
|
|
||||||
torch = ">=2.2.1"
|
|
||||||
opencv-python = ">=4.9.0"
|
|
||||||
diffusers = ">=0.27.2"
|
|
||||||
torchvision = ">=0.21.0"
|
|
||||||
h5py = ">=3.10.0"
|
|
||||||
huggingface-hub = {extras = ["hf-transfer", "cli"], version = ">=0.27.1"}
|
|
||||||
gymnasium = "==0.29.1" # TODO(rcadene, aliberts): Make gym 1.0.0 work
|
|
||||||
cmake = ">=3.29.0.1"
|
|
||||||
gym-dora = { git = "https://github.com/dora-rs/dora-lerobot.git", subdirectory = "gym_dora", optional = true }
|
|
||||||
gym-pusht = { version = ">=0.1.5", optional = true}
|
|
||||||
gym-xarm = { version = ">=0.1.1", optional = true}
|
|
||||||
gym-aloha = { version = ">=0.1.1", optional = true}
|
|
||||||
pre-commit = {version = ">=3.7.0", optional = true}
|
|
||||||
debugpy = {version = ">=1.8.1", optional = true}
|
|
||||||
pytest = {version = ">=8.1.0", optional = true}
|
|
||||||
pytest-cov = {version = ">=5.0.0", optional = true}
|
|
||||||
datasets = ">=2.19.0"
|
|
||||||
imagecodecs = { version = ">=2024.1.1", optional = true }
|
|
||||||
pyav = ">=12.0.5"
|
|
||||||
rerun-sdk = ">=0.21.0"
|
|
||||||
deepdiff = ">=7.0.1"
|
|
||||||
flask = ">=3.0.3"
|
|
||||||
pandas = {version = ">=2.2.2", optional = true}
|
|
||||||
scikit-image = {version = ">=0.23.2", optional = true}
|
|
||||||
dynamixel-sdk = {version = ">=3.7.31", optional = true}
|
|
||||||
pynput = {version = ">=1.7.7", optional = true}
|
|
||||||
feetech-servo-sdk = {version = ">=1.0.0", optional = true}
|
|
||||||
setuptools = {version = "!=71.0.1", optional = true} # TODO(rcadene, aliberts): 71.0.1 has a bug
|
|
||||||
pyrealsense2 = {version = ">=2.55.1.6486", markers = "sys_platform != 'darwin'", optional = true} # TODO(rcadene, aliberts): Fix on Mac
|
|
||||||
pyrender = {git = "https://github.com/mmatl/pyrender.git", markers = "sys_platform == 'linux'", optional = true}
|
|
||||||
hello-robot-stretch-body = {version = ">=0.7.27", markers = "sys_platform == 'linux'", optional = true}
|
|
||||||
pyserial = {version = ">=3.5", optional = true}
|
|
||||||
jsonlines = ">=4.0.0"
|
|
||||||
transformers = {version = ">=4.48.0", optional = true}
|
|
||||||
draccus = ">=0.10.0"
|
|
||||||
|
|
||||||
|
|
||||||
[tool.poetry.extras]
|
|
||||||
dora = ["gym-dora"]
|
|
||||||
pusht = ["gym-pusht"]
|
|
||||||
xarm = ["gym-xarm"]
|
|
||||||
aloha = ["gym-aloha"]
|
|
||||||
dev = ["pre-commit", "debugpy"]
|
|
||||||
test = ["pytest", "pytest-cov", "pyserial"]
|
|
||||||
umi = ["imagecodecs"]
|
|
||||||
video_benchmark = ["scikit-image", "pandas"]
|
|
||||||
dynamixel = ["dynamixel-sdk", "pynput"]
|
|
||||||
feetech = ["feetech-servo-sdk", "pynput"]
|
|
||||||
intelrealsense = ["pyrealsense2"]
|
|
||||||
stretch = ["hello-robot-stretch-body", "pyrender", "pyrealsense2", "pynput"]
|
|
||||||
pi0 = ["transformers"]
|
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
line-length = 110
|
line-length = 110
|
||||||
|
|
Loading…
Reference in New Issue