| [build-system] |
| requires = [ |
| "cmake", # For building binary targets in the wheel. |
| "pip>=23", # For building the pip package. |
| "pyyaml", # Imported by the kernel codegen tools. |
| "setuptools>=63", # For building the pip package contents. |
| "tomli", # Imported by extract_sources.py when using python < 3.11. |
| "wheel", # For building the pip package archive. |
| "zstd", # Imported by resolve_buck.py. |
| ] |
| build-backend = "setuptools.build_meta" |
| |
| [project] |
| name = "executorch" |
| dynamic = [ |
| # setup.py will set the version. |
| 'version', |
| ] |
| description = "On-device AI across mobile, embedded and edge for PyTorch" |
| readme = "README-wheel.md" |
| authors = [ |
| {name="PyTorch Team", email="packages@pytorch.org"}, |
| ] |
| license = {file = "LICENSE"} |
| keywords = ["pytorch", "machine learning"] |
| # PyPI package information. |
| classifiers = [ |
| # How mature is this project? Common values are |
| # 3 - Alpha |
| # 4 - Beta |
| # 5 - Production/Stable |
| "Development Status :: 3 - Alpha", |
| "Intended Audience :: Developers", |
| "Intended Audience :: Education", |
| "Intended Audience :: Science/Research", |
| "License :: OSI Approved :: BSD License", |
| "Topic :: Scientific/Engineering", |
| "Topic :: Scientific/Engineering :: Mathematics", |
| "Topic :: Scientific/Engineering :: Artificial Intelligence", |
| "Topic :: Software Development", |
| "Topic :: Software Development :: Libraries", |
| "Topic :: Software Development :: Libraries :: Python Modules", |
| "Programming Language :: C++", |
| "Programming Language :: Python :: 3", |
| # Update this as we support more versions of python. |
| "Programming Language :: Python :: 3.10", |
| "Programming Language :: Python :: 3.11", |
| "Programming Language :: Python :: 3.12", |
| ] |
| |
| # Python dependencies required for use. |
| requires-python = ">=3.10" |
| dependencies=[ |
| "expecttest", |
| "flatbuffers", |
| "hypothesis", |
| "mpmath==1.3.0", |
| "numpy==1.21.3; python_version == '3.10'", |
| "numpy==1.23.2; python_version == '3.11'", |
| "numpy; python_version >= '3.12'", |
| "packaging", |
| "pandas==2.0.3; python_version == '3.10'", |
| "pandas; python_version >= '3.11'", |
| "parameterized", |
| "pytest", |
| "pytest-xdist", |
| "pyyaml", |
| "ruamel.yaml", |
| "sympy", |
| "tabulate", |
| "typing-extensions", |
| ] |
| |
| [project.urls] |
| # The keys are arbitrary but will be visible on PyPI. |
| Homepage = "https://pytorch.org/executorch/" |
| Repository = "https://github.com/pytorch/executorch" |
| Issues = "https://github.com/pytorch/executorch/issues" |
| Changelog = "https://github.com/pytorch/executorch/releases" |
| |
| # Tell setuptools to generate commandline wrappers for tools that we install |
| # under data/bin in the pip package. This will put these commands on the user's |
| # path. |
| [project.scripts] |
| flatc = "executorch.data.bin:flatc" |
| |
| [tool.setuptools.package-data] |
| # TODO(dbort): Prune /test[s]/ dirs, /third-party/ dirs, yaml files that we |
| # don't need. |
| "*" = [ |
| # Some backends like XNNPACK need their .fbs files. |
| "*.fbs", |
| # Some kernel libraries need their .yaml files. |
| "*.yaml", |
| ] |
| |
| [tool.setuptools.exclude-package-data] |
| "*" = ["*.pyc"] |
| |
| [tool.usort] |
| # Do not try to put "first-party" imports in their own section. |
| first_party_detection = false |
| |
| [tool.black] |
| # Emit syntax compatible with older versions of python instead of only the range |
| # specified by `requires-python`. TODO: Remove this once we support these older |
| # versions of python and can expand the `requires-python` range. |
| target-version = ["py38", "py39", "py310", "py311", "py312"] |