-
Notifications
You must be signed in to change notification settings - Fork 126
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* drop dead python 3.6 * pre-commit upgrade * doc fixes * introduce readthedocs.yml to use pip instead of setup.py install * explicitly set the language * move metadata to pyproject.toml * move importlib wrappers to own internal module * use isolated building
- Loading branch information
1 parent
70fde45
commit 86de9be
Showing
11 changed files
with
175 additions
and
195 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
version: 2 | ||
|
||
build: | ||
os: "ubuntu-20.04" | ||
tools: | ||
python: "3.10" | ||
|
||
sphinx: | ||
configuration: docs/conf.py | ||
|
||
python: | ||
install: | ||
- method: pip | ||
path: . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,70 @@ | ||
[build-system] | ||
requires = [ | ||
"setuptools", | ||
"setuptools-scm", | ||
"wheel", | ||
"hatchling>=1.3.1", | ||
"hatch-vcs", | ||
] | ||
build-backend = "hatchling.build" | ||
|
||
[project] | ||
name = "pluggy" | ||
description = "plugin and hook calling mechanisms for python" | ||
readme = "README.rst" | ||
license = "MIT" | ||
requires-python = ">=3.7" | ||
authors = [ | ||
{ name = "Holger Krekel", email = "[email protected]" }, | ||
] | ||
classifiers = [ | ||
"Development Status :: 6 - Mature", | ||
"Intended Audience :: Developers", | ||
"License :: OSI Approved :: MIT License", | ||
"Operating System :: MacOS :: MacOS X", | ||
"Operating System :: Microsoft :: Windows", | ||
"Operating System :: POSIX", | ||
"Programming Language :: Python :: 3", | ||
"Programming Language :: Python :: 3 :: Only", | ||
"Programming Language :: Python :: 3.6", | ||
"Programming Language :: Python :: 3.7", | ||
"Programming Language :: Python :: 3.8", | ||
"Programming Language :: Python :: 3.9", | ||
"Programming Language :: Python :: Implementation :: CPython", | ||
"Programming Language :: Python :: Implementation :: PyPy", | ||
"Programming Language :: Python :: 3.10", | ||
"Topic :: Software Development :: Libraries", | ||
"Topic :: Software Development :: Testing", | ||
"Topic :: Utilities", | ||
] | ||
dependencies = [ | ||
"importlib-metadata>=0.12;python_version<\"3.8\"", | ||
] | ||
dynamic = [ | ||
"version", | ||
] | ||
|
||
[project.optional-dependencies] | ||
dev = [ | ||
"pre-commit", | ||
"tox", | ||
] | ||
testing = [ | ||
"pytest", | ||
"pytest-benchmark", | ||
] | ||
|
||
[project.urls] | ||
Homepage = "https://github.com/pytest-dev/pluggy" | ||
|
||
[tool.hatch.version] | ||
source = "vcs" | ||
|
||
[tool.hatch.build.hooks.vcs] | ||
version-file = "src/pluggy/_version.py" | ||
|
||
[tool.hatch.build.targets.sdist] | ||
include = [ | ||
"/src", | ||
] | ||
|
||
[tool.setuptools_scm] | ||
write_to = "src/pluggy/_version.py" | ||
|
||
[tool.towncrier] | ||
package = "pluggy" | ||
|
@@ -15,42 +73,19 @@ filename = "CHANGELOG.rst" | |
directory = "changelog/" | ||
title_format = "pluggy {version} ({project_date})" | ||
template = "changelog/_template.rst" | ||
|
||
[[tool.towncrier.type]] | ||
directory = "removal" | ||
name = "Deprecations and Removals" | ||
showcontent = true | ||
|
||
[[tool.towncrier.type]] | ||
directory = "feature" | ||
name = "Features" | ||
showcontent = true | ||
|
||
[[tool.towncrier.type]] | ||
directory = "bugfix" | ||
name = "Bug Fixes" | ||
showcontent = true | ||
|
||
[[tool.towncrier.type]] | ||
directory = "vendor" | ||
name = "Vendored Libraries" | ||
showcontent = true | ||
|
||
[[tool.towncrier.type]] | ||
directory = "doc" | ||
name = "Improved Documentation" | ||
showcontent = true | ||
|
||
[[tool.towncrier.type]] | ||
directory = "trivial" | ||
name = "Trivial/Internal Changes" | ||
showcontent = true | ||
type = [ | ||
{ directory = "removal", name = "Deprecations and Removals", showcontent = true }, | ||
{ directory = "feature", name = "Features", showcontent = true }, | ||
{ directory = "bugfix", name = "Bug Fixes", showcontent = true }, | ||
{ directory = "vendor", name = "Vendored Libraries", showcontent = true }, | ||
{ directory = "doc", name = "Improved Documentation", showcontent = true }, | ||
{ directory = "trivial", name = "Trivial/Internal Changes", showcontent = true }, | ||
] | ||
|
||
[tool.mypy] | ||
python_version = "3.7" | ||
mypy_path = "src" | ||
check_untyped_defs = true | ||
# Hopefully we can set this someday! | ||
# disallow_any_expr = true | ||
disallow_any_generics = true | ||
disallow_any_unimported = true | ||
disallow_subclassing_any = true | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
from __future__ import annotations | ||
|
||
import sys | ||
from typing import Callable, Iterable, Any | ||
|
||
if sys.version_info >= (3, 8): | ||
from importlib.metadata import distributions | ||
else: | ||
from importlib_metadata import distributions | ||
|
||
|
||
class DistFacade: | ||
"""Emulate a pkg_resources Distribution""" | ||
|
||
# turn Any to Distribution as soon as the typing details for them fit | ||
def __init__(self, dist: Any) -> None: | ||
self._dist = dist | ||
|
||
@property | ||
def project_name(self) -> str: | ||
name: str = self.metadata["name"] | ||
return name | ||
|
||
def __getattr__(self, attr: str, default: Any | None = None) -> Any: | ||
return getattr(self._dist, attr, default) | ||
|
||
def __dir__(self) -> list[str]: | ||
return sorted(dir(self._dist) + ["_dist", "project_name"]) | ||
|
||
|
||
def iter_entrypoint_loaders( | ||
group: str, name: str | None | ||
) -> Iterable[tuple[DistFacade, str, Callable[[], object]]]: | ||
for dist in list(distributions()): | ||
legacy = DistFacade(dist) | ||
for ep in dist.entry_points: | ||
if ep.group == group and name is None or name == ep.name: | ||
yield legacy, ep.name, ep.load |
Oops, something went wrong.