Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moved the metadata into machine-readable setup.cfg. #2448

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
trio/_version.py

# Project-specific generated files
docs/build/

Expand Down
6 changes: 3 additions & 3 deletions ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,11 @@ fi

python -c "import sys, struct, ssl; print('#' * 70); print('python:', sys.version); print('version_info:', sys.version_info); print('bits:', struct.calcsize('P') * 8); print('openssl:', ssl.OPENSSL_VERSION, ssl.OPENSSL_VERSION_INFO); print('#' * 70)"

python -m pip install -U pip setuptools wheel
python -m pip install -U pip setuptools setuptools_scm wheel build
python -m pip --version

python setup.py sdist --formats=zip
python -m pip install dist/*.zip
python -m build -nsx .
python -m pip install dist/*.tar.gz

if [ "$CHECK_FORMATTING" = "1" ]; then
python -m pip install -r test-requirements.txt
Expand Down
1 change: 1 addition & 0 deletions docs-requirements.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ jinja2 < 3.1
sphinx_rtd_theme
sphinxcontrib-trio
towncrier
setuptools-scm

# Trio's own dependencies
cffi; os_name == "nt"
Expand Down
2 changes: 2 additions & 0 deletions docs-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ pytz==2022.4
# via babel
requests==2.28.1
# via sphinx
setuptools-scm==7.0.5
# via setuptools-scm
sniffio==1.3.0
# via -r docs-requirements.in
snowballstemmer==2.2.0
Expand Down
1 change: 1 addition & 0 deletions newsfragments/2448.feature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Moved the metadata into ``setup.cfg``, that allows automatic parsing of it.
8 changes: 8 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
[build-system]
requires = ["setuptools>=42.2", "setuptools_scm[toml]>=3.4.3"]
build-backend = "setuptools.build_meta"

[tool.setuptools_scm]
write_to = "trio/_version.py"
write_to_template = "__version__ = \"{version}\"\n"

[tool.black]
target-version = ['py37']

Expand Down
111 changes: 111 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
[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 <https://github.com/python-trio/trio/blob/master/LICENSE>`__,
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 <https://www.python.org/dev/peps/pep-0492/>`__, and
draws inspiration from `many sources
<https://github.com/python-trio/trio/wiki/Reading-list>`__, in
particular Dave Beazley's `Curio <https://curio.readthedocs.io/>`__.
The resulting design is radically simpler than older competitors like
`asyncio <https://docs.python.org/3/library/asyncio.html>`__ and
`Twisted <https://twistedmatrix.com/>`__, 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
<https://github.com/python-trio/trio/wiki/Testimonials>`__.

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
<https://github.com/python-trio/trio/issues/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
<https://trio.readthedocs.io/en/latest/code-of-conduct.html>`_
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
119 changes: 0 additions & 119 deletions setup.py

This file was deleted.

3 changes: 0 additions & 3 deletions trio/_version.py

This file was deleted.