| # ------------------------------- | |
| # build-system | |
| # ------------------------------- | |
| [build-system] | |
| requires = [ | |
| "setuptools>=61.0", | |
| "wheel" | |
| ] | |
| build-backend = "setuptools.build_meta" | |
| # ------------------------------- | |
| # project (PEP 621 metadata) | |
| # ------------------------------- | |
| [project] | |
| name = "verl" | |
| # We'll mark the version as "dynamic" because it's read from the file "verl/version/version" | |
| # (PEP 621 calls this "dynamic version"). | |
| # The actual version is specified in the [tool.setuptools.dynamic] section below. | |
| dynamic = ["version", "dependencies", "optional-dependencies", "authors", "urls"] | |
| description = "verl: Volcano Engine Reinforcement Learning for LLM" | |
| license = {file = "LICENSE"} # or "Apache-2.0", if you prefer an SPDX identifier | |
| readme = {file = "README.md", content-type = "text/markdown"} | |
| requires-python = ">=3.8" | |
| # ------------------------------- | |
| # tool.ruff - Linting configuration | |
| # ------------------------------- | |
| [tool.ruff] | |
| # Note: While the formatter will attempt to format lines such that they remain within the line-length, | |
| # it isn't a hard upper bound, and formatted lines may exceed the line-length. | |
| line-length = 300 # TODO: Reduce this to a more reasonable value | |
| [tool.ruff.lint] | |
| isort = {known-first-party = ["verl"]} | |
| # c.f. https://github.com/vllm-project/vllm/blob/ce8d6b75fc0586045df75ee1568a5b5f9957251b/pyproject.toml | |
| select = [ | |
| # pycodestyle | |
| "E", | |
| # Pyflakes | |
| "F", | |
| # pyupgrade | |
| "UP", | |
| # flake8-bugbear | |
| "B", | |
| # isort | |
| "I", | |
| "G", | |
| ] | |
| ignore = [ | |
| # star imports | |
| "F405", "F403", | |
| # lambda expression assignment | |
| "E731", | |
| # Loop control variable not used within loop body | |
| "B007", | |
| # f-string format | |
| "UP032", | |
| # Can remove once 3.10+ is the minimum Python version | |
| "UP007", | |
| # `.log()` statement uses f-string | |
| "G004", | |
| ] | |
| # ------------------------------- | |
| # tool.setuptools - Additional config | |
| # ------------------------------- | |
| [tool.setuptools] | |
| # True means `setuptools` will attempt to include all relevant files in package_data automatically. | |
| # This corresponds to `include_package_data=True` in setup.py. | |
| include-package-data = true | |
| # We read the version from a file in 'verl/version/version' | |
| [tool.setuptools.dynamic] | |
| version = {file = "verl/version/version"} | |
| # If you need to mimic `package_dir={'': '.'}`: | |
| [tool.setuptools.package-dir] | |
| "" = "." | |
| # If you need to include specific non-Python data (like YAML files or version file): | |
| # This is the rough equivalent of package_data={'': ['version/*'], 'verl': ['trainer/config/*.yaml']} | |
| [tool.setuptools.package-data] | |
| verl = [ | |
| "version/*", | |
| "trainer/config/*.yaml" | |
| ] |