--- /dev/null
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
+
+[project]
+name = "starlette"
+dynamic = ["version"]
+description = "The little ASGI library that shines."
+readme = "README.md"
+license = "BSD-3-Clause"
+requires-python = ">=3.7"
+authors = [
+ { name = "Tom Christie", email = "tom@tomchristie.com" },
+]
+classifiers = [
+ "Development Status :: 3 - Alpha",
+ "Environment :: Web Environment",
+ "Framework :: AnyIO",
+ "Intended Audience :: Developers",
+ "License :: OSI Approved :: BSD License",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Topic :: Internet :: WWW/HTTP",
+]
+dependencies = [
+ "anyio>=3.4.0,<5",
+ "typing_extensions>=3.10.0; python_version < '3.10'",
+]
+
+[project.optional-dependencies]
+full = [
+ "itsdangerous",
+ "jinja2",
+ "python-multipart",
+ "pyyaml",
+ "requests",
+]
+
+[project.urls]
+Homepage = "https://github.com/encode/starlette"
+
+[tool.hatch.version]
+path = "starlette/__init__.py"
+
+[tool.hatch.build.targets.sdist]
+include = [
+ "/starlette",
+]
+++ /dev/null
-#!/usr/bin/env python
-
-import os
-import re
-
-from setuptools import setup, find_packages
-
-
-def get_version(package):
- """
- Return package version as listed in `__version__` in `init.py`.
- """
- with open(os.path.join(package, "__init__.py")) as f:
- return re.search("__version__ = ['\"]([^'\"]+)['\"]", f.read()).group(1)
-
-
-def get_long_description():
- """
- Return the README.
- """
- with open("README.md", encoding="utf8") as f:
- return f.read()
-
-
-setup(
- name="starlette",
- python_requires=">=3.7",
- version=get_version("starlette"),
- url="https://github.com/encode/starlette",
- license="BSD",
- description="The little ASGI library that shines.",
- long_description=get_long_description(),
- long_description_content_type="text/markdown",
- author="Tom Christie",
- author_email="tom@tomchristie.com",
- packages=find_packages(exclude=["tests*"]),
- package_data={"starlette": ["py.typed"]},
- include_package_data=True,
- install_requires=[
- "anyio>=3.4.0,<5",
- "typing_extensions>=3.10.0; python_version < '3.10'",
- ],
- extras_require={
- "full": [
- "itsdangerous",
- "jinja2",
- "python-multipart",
- "pyyaml",
- "requests",
- ]
- },
- classifiers=[
- "Development Status :: 3 - Alpha",
- "Environment :: Web Environment",
- "Intended Audience :: Developers",
- "License :: OSI Approved :: BSD License",
- "Operating System :: OS Independent",
- "Topic :: Internet :: WWW/HTTP",
- "Framework :: AnyIO",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: 3.8",
- "Programming Language :: Python :: 3.9",
- "Programming Language :: Python :: 3.10",
- ],
- zip_safe=False,
-)