[build-system] requires = ["setuptools>=67", "wheel", "pip"] build-backend = "setuptools.build_meta" [project] # See https://setuptools.pypa.io/en/latest/userguide/quickstart.html for more project configuration options. name = "gr00t_wbc" dynamic = ["version"] readme = "README.md" classifiers = [ "Intended Audience :: Science/Research", "Development Status :: 3 - Alpha", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] authors = [ {name = "NVIDIA Gear Lab"} ] requires-python = "~=3.10" dependencies = [ "av>=14.2", "torch", "pyttsx3==2.90", "scipy==1.15.3", "numpy==1.26.4", "matplotlib", "hydra-core", "ray[default]", "click", "gymnasium", "mujoco", "termcolor", "flask", "python-socketio>=5.13.0", "flask_socketio", "loguru", "meshcat", "meshcat-shapes", "onnxruntime", "rerun-sdk==0.21.0", "pygame", "sshkeyboard", "msgpack", "msgpack-numpy", "pyzmq", "PyQt6; platform_machine != 'aarch64'", "pin", "pin-pink", "pyrealsense2; sys_platform != 'darwin'", "pyrealsense2-macosx; sys_platform == 'darwin'", "qpsolvers[osqp,quadprog]", "tyro", "cv-bridge", "lark", "lerobot @ git+https://github.com/huggingface/lerobot.git@a445d9c9da6bea99a8972daa4fe1fdd053d711d2", "datasets==3.6.0", "pandas", "evdev; sys_platform == 'linux'" ] license = {file = "LICENSE"} [project.optional-dependencies] dev = [ "pytest==7.4.0", "build", "setuptools", "wheel", "ruff", "black", "ipdb" ] [project.scripts] gr00t_wbc = "gr00t_wbc.control.teleop.gui.cli:cli" [tool.setuptools.packages.find] where = ["."] include = ["gr00t_wbc*"] exclude = [ "*.tests", "*.tests.*", "tests.*", "tests", "docs*", "scripts*" ] [tool.setuptools] include-package-data = true [tool.setuptools.package-data] gr00t_wbc = ["py.typed", "**/*.json", "**/*.yaml"] [tool.setuptools.dynamic] version = {attr = "gr00t_wbc.version.VERSION"} [tool.black] line-length = 100 include = '\.pyi?$' exclude = ''' ( __pycache__ | \.git | \.mypy_cache | \.pytest_cache | \.vscode | \.venv | \bdist\b | \bdoc\b | external_dependencies | logs | source | /( | external_dependencies/ )/ ) ''' [tool.isort] profile = "black" multi_line_output = 3 skip = [ "external_dependencies", "external_dependencies/**", ] skip_glob = [ "external_dependencies/*", ] [tool.pyright] reportPrivateImportUsage = false [tool.ruff] line-length = 115 target-version = "py310" exclude = [ "gr00t_wbc/dexmg", "external_dependencies", "external_dependencies/**", "./external_dependencies/**", "*.ipynb", ] [tool.ruff.lint] select = ["E", "F", "I"] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] [tool.ruff.lint.isort] case-sensitive = false combine-as-imports = true force-sort-within-sections = true from-first = false single-line-exclusions = ["typing"] section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"] [tool.mypy] ignore_missing_imports = true no_site_packages = true check_untyped_defs = true exclude = [ "external_dependencies", ] [[tool.mypy.overrides]] module = "tests.*" strict_optional = false [tool.pytest.ini_options] testpaths = "tests/" python_classes = [ "Test*", "*Test" ] log_format = "%(asctime)s - %(levelname)s - %(name)s - %(message)s" log_level = "DEBUG"