From a18b735eec2005d9f0e772b077c0f73a2557eaef Mon Sep 17 00:00:00 2001 From: KOLANICH Date: Tue, 18 Oct 2022 20:55:40 +0300 Subject: [PATCH] Moved the metadata from `setup.cfg` into `PEP 621`-compliant `pyproject.toml`. --- newsfragments/2449.feature.rst | 1 + pyproject.toml | 105 ++++++++++++++++++++++++++++++- setup.cfg | 111 --------------------------------- 3 files changed, 105 insertions(+), 112 deletions(-) create mode 100644 newsfragments/2449.feature.rst delete mode 100644 setup.cfg diff --git a/newsfragments/2449.feature.rst b/newsfragments/2449.feature.rst new file mode 100644 index 0000000000..508e13b355 --- /dev/null +++ b/newsfragments/2449.feature.rst @@ -0,0 +1 @@ +Moved the metadata into ``PEP 621``-compliant ``pyproject.toml``. diff --git a/pyproject.toml b/pyproject.toml index 88d21d74f6..4988efef0a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,110 @@ [build-system] -requires = ["setuptools>=42.2", "setuptools_scm[toml]>=3.4.3"] +requires = ["setuptools>=61.2", "setuptools_scm[toml]>=3.4.3"] build-backend = "setuptools.build_meta" +[project] +name = "trio" +authors = [{name = "Nathaniel J. Smith", email = "njs@pobox.com"}] +license = {text = "MIT OR Apache-2.0"} +description = "A friendly Python library for async concurrency and I/O" +keywords = ["async", "io", "networking", "trio"] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "License :: OSI Approved :: Apache Software License", + "Operating System :: POSIX :: Linux", + "Operating System :: MacOS :: MacOS X", + "Operating System :: POSIX :: BSD", + "Operating System :: Microsoft :: Windows", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Topic :: System :: Networking", + "Framework :: Trio", +] +urls = {Homepage = "https://github.com/python-trio/trio"} +requires-python = ">=3.7" +dependencies = [ + "attrs >= 19.2.0", + "sortedcontainers", + "async_generator >= 1.9", + "idna", + "outcome", + "sniffio", + # cffi 1.12 adds from_buffer(require_writable=True) and ffi.release() + # cffi 1.14 fixes memory leak inside ffi.getwinerror() + # cffi is required on Windows, except on PyPy where it is built-in + "cffi>=1.14; os_name == 'nt' and implementation_name != 'pypy'", + "exceptiongroup >= 1.0.0rc9; python_version < '3.11'", +] +dynamic = ["version"] + +[project.readme] +content-type = "text/x-rst" +text = ''' +.. image:: https://raw.githubusercontent.com/python-trio/trio/9b0bec646a31e0d0f67b8b6ecc6939726faf3e17/logo/logo-with-background.svg +:width: 200px +:align: right +The Trio project's goal is to produce a production-quality, `permissively +licensed `__, +async/await-native I/O library for Python. Like all async libraries, +its main purpose is to help you write programs that do **multiple +things at the same time** with **parallelized I/O**. A web spider that +wants to fetch lots of pages in parallel, a web server that needs to +juggle lots of downloads and websocket connections at the same time, a +process supervisor monitoring multiple subprocesses... that sort of +thing. Compared to other libraries, Trio attempts to distinguish +itself with an obsessive focus on **usability** and +**correctness**. Concurrency is complicated; we try to make it *easy* +to get things *right*. +Trio was built from the ground up to take advantage of the `latest +Python features `__, and +draws inspiration from `many sources +`__, in +particular Dave Beazley's `Curio `__. +The resulting design is radically simpler than older competitors like +`asyncio `__ and +`Twisted `__, yet just as capable. Trio is +the Python I/O library I always wanted; I find it makes building +I/O-oriented programs easier, less error-prone, and just plain more +fun. `Perhaps you'll find the same +`__. +This project is young and still somewhat experimental: the overall +design is solid and the existing features are fully tested and +documented, but you may encounter missing functionality or rough +edges. We *do* encourage you do use it, but you should `read and +subscribe to issue #1 +`__ to get warning and a +chance to give feedback about any compatibility-breaking changes. +Vital statistics: +* Supported environments: Linux, macOS, or Windows running some kind of Python +3.7-or-better (either CPython or PyPy3 is fine). \*BSD and illumos likely +work too, but are not tested. +* Install: ``python3 -m pip install -U trio`` (or on Windows, maybe +``py -3 -m pip install -U trio``). No compiler needed. +* Tutorial and reference manual: https://trio.readthedocs.io +* Bug tracker and source code: https://github.com/python-trio/trio +* Real-time chat: https://gitter.im/python-trio/general +* Discussion forum: https://trio.discourse.group +* License: MIT or Apache 2, your choice +* Contributor guide: https://trio.readthedocs.io/en/latest/contributing.html +* Code of conduct: Contributors are requested to follow our `code of +conduct +`_ +in all project spaces.''' + +[tool.setuptools] +include-package-data = true + +[tool.setuptools.packages] +find = {namespaces = false} + [tool.setuptools_scm] write_to = "trio/_version.py" write_to_template = "__version__ = \"{version}\"\n" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 78b0e0af4d..0000000000 --- a/setup.cfg +++ /dev/null @@ -1,111 +0,0 @@ -[metadata] -name = trio -author = Nathaniel J. Smith -author_email = njs@pobox.com -license = MIT OR Apache-2.0 -description = A friendly Python library for async concurrency and I/O -keywords = async, io, networking, trio -url = https://github.com/python-trio/trio -long_description = .. image:: https://raw.githubusercontent.com/python-trio/trio/9b0bec646a31e0d0f67b8b6ecc6939726faf3e17/logo/logo-with-background.svg - :width: 200px - :align: right - - The Trio project's goal is to produce a production-quality, `permissively - licensed `__, - async/await-native I/O library for Python. Like all async libraries, - its main purpose is to help you write programs that do **multiple - things at the same time** with **parallelized I/O**. A web spider that - wants to fetch lots of pages in parallel, a web server that needs to - juggle lots of downloads and websocket connections at the same time, a - process supervisor monitoring multiple subprocesses... that sort of - thing. Compared to other libraries, Trio attempts to distinguish - itself with an obsessive focus on **usability** and - **correctness**. Concurrency is complicated; we try to make it *easy* - to get things *right*. - - Trio was built from the ground up to take advantage of the `latest - Python features `__, and - draws inspiration from `many sources - `__, in - particular Dave Beazley's `Curio `__. - The resulting design is radically simpler than older competitors like - `asyncio `__ and - `Twisted `__, yet just as capable. Trio is - the Python I/O library I always wanted; I find it makes building - I/O-oriented programs easier, less error-prone, and just plain more - fun. `Perhaps you'll find the same - `__. - - This project is young and still somewhat experimental: the overall - design is solid and the existing features are fully tested and - documented, but you may encounter missing functionality or rough - edges. We *do* encourage you do use it, but you should `read and - subscribe to issue #1 - `__ to get warning and a - chance to give feedback about any compatibility-breaking changes. - - Vital statistics: - - * Supported environments: Linux, macOS, or Windows running some kind of Python - 3.7-or-better (either CPython or PyPy3 is fine). \*BSD and illumos likely - work too, but are not tested. - - * Install: ``python3 -m pip install -U trio`` (or on Windows, maybe - ``py -3 -m pip install -U trio``). No compiler needed. - - * Tutorial and reference manual: https://trio.readthedocs.io - - * Bug tracker and source code: https://github.com/python-trio/trio - - * Real-time chat: https://gitter.im/python-trio/general - - * Discussion forum: https://trio.discourse.group - - * License: MIT or Apache 2, your choice - - * Contributor guide: https://trio.readthedocs.io/en/latest/contributing.html - - * Code of conduct: Contributors are requested to follow our `code of - conduct - `_ - in all project spaces. - -classifiers = - Development Status :: 3 - Alpha - Intended Audience :: Developers - License :: OSI Approved :: MIT License - License :: OSI Approved :: Apache Software License - Operating System :: POSIX :: Linux - Operating System :: MacOS :: MacOS X - Operating System :: POSIX :: BSD - Operating System :: Microsoft :: Windows - Programming Language :: Python :: Implementation :: CPython - Programming Language :: Python :: Implementation :: PyPy - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Programming Language :: Python :: 3.11 - Topic :: System :: Networking - Framework :: Trio - -[options] -packages = find: -install_requires = - attrs >= 19.2.0 - sortedcontainers - async_generator >= 1.9 - idna - outcome - sniffio - # cffi 1.12 adds from_buffer(require_writable=True) and ffi.release() - # cffi 1.14 fixes memory leak inside ffi.getwinerror() - # cffi is required on Windows, except on PyPy where it is built-in - cffi>=1.14; os_name == 'nt' and implementation_name != 'pypy' - exceptiongroup >= 1.0.0rc9; python_version < '3.11' -setup_requires = - setuptools>=42.2 - setuptools_scm[toml]>=3.4.3 -include_package_data = True -python_requires = >=3.7