1[build-system] 2requires = [ 3 "cmake", # For building binary targets in the wheel. 4 "pip>=23", # For building the pip package. 5 "pyyaml", # Imported by the kernel codegen tools. 6 "setuptools>=63", # For building the pip package contents. 7 "tomli", # Imported by extract_sources.py when using python < 3.11. 8 "wheel", # For building the pip package archive. 9 "zstd", # Imported by resolve_buck.py. 10] 11build-backend = "setuptools.build_meta" 12 13[project] 14name = "executorch" 15dynamic = [ 16 # setup.py will set the version. 17 'version', 18] 19description = "On-device AI across mobile, embedded and edge for PyTorch" 20readme = "README-wheel.md" 21authors = [ 22 {name="PyTorch Team", email="[email protected]"}, 23] 24license = {file = "LICENSE"} 25keywords = ["pytorch", "machine learning"] 26# PyPI package information. 27classifiers = [ 28 # How mature is this project? Common values are 29 # 3 - Alpha 30 # 4 - Beta 31 # 5 - Production/Stable 32 "Development Status :: 3 - Alpha", 33 "Intended Audience :: Developers", 34 "Intended Audience :: Education", 35 "Intended Audience :: Science/Research", 36 "License :: OSI Approved :: BSD License", 37 "Topic :: Scientific/Engineering", 38 "Topic :: Scientific/Engineering :: Mathematics", 39 "Topic :: Scientific/Engineering :: Artificial Intelligence", 40 "Topic :: Software Development", 41 "Topic :: Software Development :: Libraries", 42 "Topic :: Software Development :: Libraries :: Python Modules", 43 "Programming Language :: C++", 44 "Programming Language :: Python :: 3", 45 # Update this as we support more versions of python. 46 "Programming Language :: Python :: 3.10", 47 "Programming Language :: Python :: 3.11", 48 "Programming Language :: Python :: 3.12", 49] 50 51# Python dependencies required for use. 52requires-python = ">=3.10" 53dependencies=[ 54 "expecttest", 55 "flatbuffers", 56 "hypothesis", 57 "mpmath==1.3.0", 58 "numpy==1.21.3; python_version == '3.10'", 59 "numpy==1.23.2; python_version == '3.11'", 60 "numpy; python_version >= '3.12'", 61 "packaging", 62 "pandas==2.0.3; python_version == '3.10'", 63 "pandas; python_version >= '3.11'", 64 "parameterized", 65 "pytest", 66 "pytest-xdist", 67 "pyyaml", 68 "ruamel.yaml", 69 "sympy", 70 "tabulate", 71 "torch==2.5.0", 72 "torchaudio==2.5.0", 73 "torchvision==0.20.0", 74 "typing-extensions", 75] 76 77[project.urls] 78# The keys are arbitrary but will be visible on PyPI. 79Homepage = "https://pytorch.org/executorch/" 80Repository = "https://github.com/pytorch/executorch" 81Issues = "https://github.com/pytorch/executorch/issues" 82Changelog = "https://github.com/pytorch/executorch/releases" 83 84# Tell setuptools to generate commandline wrappers for tools that we install 85# under data/bin in the pip package. This will put these commands on the user's 86# path. 87[project.scripts] 88flatc = "executorch.data.bin:flatc" 89 90[tool.setuptools.package-data] 91# TODO(dbort): Prune /test[s]/ dirs, /third-party/ dirs, yaml files that we 92# don't need. 93"*" = [ 94 # Some backends like XNNPACK need their .fbs files. 95 "*.fbs", 96 # Some kernel libraries need their .yaml files. 97 "*.yaml", 98] 99 100[tool.setuptools.exclude-package-data] 101"*" = ["*.pyc"] 102 103[tool.usort] 104# Do not try to put "first-party" imports in their own section. 105first_party_detection = false 106 107[tool.black] 108# Emit syntax compatible with older versions of python instead of only the range 109# specified by `requires-python`. TODO: Remove this once we support these older 110# versions of python and can expand the `requires-python` range. 111target-version = ["py38", "py39", "py310", "py311", "py312"] 112