[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", "torch==2.5.0", "torchaudio==2.5.0", "torchvision==0.20.0", "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"]