afterpython 0.3.17__tar.gz → 0.3.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {afterpython-0.3.17 → afterpython-0.3.19}/PKG-INFO +4 -4
- afterpython-0.3.19/pyproject.toml +72 -0
- afterpython-0.3.17/pyproject.toml → afterpython-0.3.19/pyproject.toml.orig +8 -5
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/pcu.py +8 -7
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/pyproject.py +2 -2
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/utils.py +1 -1
- {afterpython-0.3.17 → afterpython-0.3.19}/README.md +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/__init__.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_io/toml.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_io/yaml.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_paths.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_typing.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/__init__.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/build_pdoc.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/content_json.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/faq_json.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/index_md.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/jupyter_notebook.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/llms_txt.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/marimo_notebook.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/markdown.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/metadata.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/url_md.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/__init__.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/add.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/build.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/bump.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/check.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/clean.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/commit.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/commitizen.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/dev.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/format.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/init.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/init_branch_rules.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/install.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/lock.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/pre_commit.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/preview.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/release.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/remove.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/serve.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/start.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/sync.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/update.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/main.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/const.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/main.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/py.typed +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/ci-workflow-template.yml +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/cz-template.toml +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/dependabot-template.yml +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/deploy-workflow-template.yml +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/pdoc/frame.html.jinja2 +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/pre-commit-config-template.yaml +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/release-workflow-template.yml +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/ruff-template.toml +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/_afterpython.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/_git.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/branch_rules.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/commitizen.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/github_actions.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/myst.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/pre_commit.py +0 -0
- {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: afterpython
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.19
|
|
4
4
|
Summary: CLI tool to streamline Python package maintenance and generate a dedicated project website
|
|
5
5
|
Keywords: package-maintenance,project-website,static-site-generator,developer-tools,documentation,cli-tool,ci/cd,mystmd,semantic-release,python-packaging
|
|
6
6
|
Author: Stephen Yau
|
|
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
17
|
Requires-Dist: click>=8.1.8
|
|
18
18
|
Requires-Dist: trogon>=0.6.0
|
|
19
|
-
Requires-Dist:
|
|
19
|
+
Requires-Dist: httpx2>=2.5.0
|
|
20
20
|
Requires-Dist: tomlkit>=0.15.0
|
|
21
21
|
Requires-Dist: ruamel-yaml>=0.19.1
|
|
22
22
|
Requires-Dist: gitpython>=3.1.50
|
|
@@ -25,9 +25,9 @@ Requires-Dist: pyproject-metadata>=0.11.0
|
|
|
25
25
|
Requires-Dist: jupytext>=1.19.4
|
|
26
26
|
Requires-Dist: mystmd>=1.10.1
|
|
27
27
|
Requires-Dist: pdoc>=16.0.0
|
|
28
|
-
Requires-Dist: ruff>=0.15.
|
|
28
|
+
Requires-Dist: ruff>=0.15.21
|
|
29
29
|
Requires-Dist: pre-commit>=4.6.0
|
|
30
|
-
Requires-Dist: commitizen>=4.16.
|
|
30
|
+
Requires-Dist: commitizen>=4.16.4
|
|
31
31
|
Requires-Python: >=3.11
|
|
32
32
|
Project-URL: homepage, https://afterpython.afterpython.org
|
|
33
33
|
Project-URL: repository, https://github.com/AfterPythonOrg/afterpython
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "afterpython"
|
|
3
|
+
version = "0.3.19"
|
|
4
|
+
description = "CLI tool to streamline Python package maintenance and generate a dedicated project website"
|
|
5
|
+
license = "Apache-2.0"
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
keywords = [
|
|
8
|
+
"package-maintenance",
|
|
9
|
+
"project-website",
|
|
10
|
+
"static-site-generator",
|
|
11
|
+
"developer-tools",
|
|
12
|
+
"documentation",
|
|
13
|
+
"cli-tool",
|
|
14
|
+
"ci/cd",
|
|
15
|
+
"mystmd",
|
|
16
|
+
"semantic-release",
|
|
17
|
+
"python-packaging",
|
|
18
|
+
]
|
|
19
|
+
classifiers = [
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Intended Audience :: Developers",
|
|
22
|
+
"Topic :: Software Development :: Build Tools",
|
|
23
|
+
"Topic :: Software Development :: Documentation",
|
|
24
|
+
"Typing :: Typed",
|
|
25
|
+
"Programming Language :: Python :: 3.11",
|
|
26
|
+
"Programming Language :: Python :: 3.12",
|
|
27
|
+
"Programming Language :: Python :: 3.13",
|
|
28
|
+
]
|
|
29
|
+
requires-python = ">=3.11"
|
|
30
|
+
dependencies = [
|
|
31
|
+
"click>=8.1.8",
|
|
32
|
+
"trogon>=0.6.0",
|
|
33
|
+
"httpx2>=2.5.0",
|
|
34
|
+
"tomlkit>=0.15.0",
|
|
35
|
+
"ruamel-yaml>=0.19.1",
|
|
36
|
+
"gitpython>=3.1.50",
|
|
37
|
+
"python-dotenv>=1.2.2",
|
|
38
|
+
"pyproject-metadata>=0.11.0",
|
|
39
|
+
"jupytext>=1.19.4",
|
|
40
|
+
"mystmd>=1.10.1",
|
|
41
|
+
"pdoc>=16.0.0",
|
|
42
|
+
"ruff>=0.15.21",
|
|
43
|
+
"pre-commit>=4.6.0",
|
|
44
|
+
"commitizen>=4.16.4",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
[[project.authors]]
|
|
48
|
+
name = "Stephen Yau"
|
|
49
|
+
email = "softwareentrepreneer+afterpython@gmail.com"
|
|
50
|
+
|
|
51
|
+
[project.urls]
|
|
52
|
+
homepage = "https://afterpython.afterpython.org"
|
|
53
|
+
repository = "https://github.com/AfterPythonOrg/afterpython"
|
|
54
|
+
documentation = "https://afterpython.afterpython.org/doc"
|
|
55
|
+
|
|
56
|
+
[project.scripts]
|
|
57
|
+
ap = "afterpython.main:run_cli"
|
|
58
|
+
pcu = "afterpython.main:run_pcu"
|
|
59
|
+
|
|
60
|
+
[build-system]
|
|
61
|
+
requires = ["uv_build>=0.11.28,<0.12.0"]
|
|
62
|
+
build-backend = "uv_build"
|
|
63
|
+
|
|
64
|
+
[tool.uv]
|
|
65
|
+
exclude-newer = "14 days"
|
|
66
|
+
|
|
67
|
+
[tool.uv.build-backend]
|
|
68
|
+
module-name = "afterpython"
|
|
69
|
+
module-root = "src"
|
|
70
|
+
|
|
71
|
+
[tool.pyright]
|
|
72
|
+
typeCheckingMode = "basic"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "afterpython"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.19"
|
|
4
4
|
description = "CLI tool to streamline Python package maintenance and generate a dedicated project website"
|
|
5
5
|
license = "Apache-2.0"
|
|
6
6
|
authors = [
|
|
@@ -34,7 +34,7 @@ requires-python = ">=3.11"
|
|
|
34
34
|
dependencies = [
|
|
35
35
|
"click>=8.1.8",
|
|
36
36
|
"trogon>=0.6.0",
|
|
37
|
-
"
|
|
37
|
+
"httpx2>=2.5.0",
|
|
38
38
|
"tomlkit>=0.15.0",
|
|
39
39
|
"ruamel-yaml>=0.19.1",
|
|
40
40
|
"gitpython>=3.1.50",
|
|
@@ -45,9 +45,9 @@ dependencies = [
|
|
|
45
45
|
# "jinja2>=3.1.6",
|
|
46
46
|
"mystmd>=1.10.1",
|
|
47
47
|
"pdoc>=16.0.0",
|
|
48
|
-
"ruff>=0.15.
|
|
48
|
+
"ruff>=0.15.21",
|
|
49
49
|
"pre-commit>=4.6.0",
|
|
50
|
-
"commitizen>=4.16.
|
|
50
|
+
"commitizen>=4.16.4",
|
|
51
51
|
# "python-semantic-release>=10.5.2",
|
|
52
52
|
]
|
|
53
53
|
|
|
@@ -64,9 +64,12 @@ pcu = "afterpython.main:run_pcu"
|
|
|
64
64
|
# override-dependencies = ["platformdirs>=4.5.0", "nodeenv>=1.9.1"]
|
|
65
65
|
|
|
66
66
|
[build-system]
|
|
67
|
-
requires = ["uv_build>=0.11.
|
|
67
|
+
requires = ["uv_build>=0.11.28,<0.12.0"]
|
|
68
68
|
build-backend = "uv_build"
|
|
69
69
|
|
|
70
|
+
[tool.uv]
|
|
71
|
+
exclude-newer = "14 days"
|
|
72
|
+
|
|
70
73
|
[tool.uv.build-backend]
|
|
71
74
|
module-name = "afterpython"
|
|
72
75
|
module-root = "src"
|
|
@@ -60,18 +60,18 @@ async def get_latest_versions(
|
|
|
60
60
|
requirements: list[Requirement],
|
|
61
61
|
) -> dict[str, Version | None]:
|
|
62
62
|
"""Get latest versions for a list of dependencies from PyPI."""
|
|
63
|
-
import
|
|
63
|
+
import httpx2
|
|
64
64
|
|
|
65
65
|
from afterpython.utils import fetch_pypi_json
|
|
66
66
|
|
|
67
67
|
async def fetch_version(
|
|
68
|
-
client:
|
|
68
|
+
client: httpx2.AsyncClient, package_name: str
|
|
69
69
|
) -> Version | None:
|
|
70
70
|
"""Fetch the latest version of a package from PyPI."""
|
|
71
71
|
data = await fetch_pypi_json(client, package_name)
|
|
72
72
|
return Version(data["info"]["version"]) if data else None
|
|
73
73
|
|
|
74
|
-
async with
|
|
74
|
+
async with httpx2.AsyncClient(timeout=10.0) as client:
|
|
75
75
|
tasks = [fetch_version(client, req.name) for req in requirements]
|
|
76
76
|
results = await asyncio.gather(*tasks, return_exceptions=True)
|
|
77
77
|
return dict(zip([req.name for req in requirements], results, strict=False))
|
|
@@ -157,10 +157,11 @@ def update_dependencies(dependencies: Dependencies):
|
|
|
157
157
|
and latest_ver
|
|
158
158
|
and min_ver in package
|
|
159
159
|
):
|
|
160
|
-
doc_deps[i] = package
|
|
160
|
+
doc_deps[i] = package
|
|
161
|
+
# Update this first because latest_ver may equal max_ver.
|
|
161
162
|
if max_ver and dep.latest_version not in req.specifier:
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
163
|
+
next_max_ver = str(dep.latest_version.next_breaking())
|
|
164
|
+
doc_deps[i] = doc_deps[i].replace(max_ver, next_max_ver, 1)
|
|
165
|
+
doc_deps[i] = doc_deps[i].replace(min_ver, latest_ver, 1)
|
|
165
166
|
|
|
166
167
|
write_pyproject(doc)
|
|
@@ -74,7 +74,7 @@ def init_pyproject():
|
|
|
74
74
|
- add [build-system] section with uv build backend (same as `uv init --package`)
|
|
75
75
|
- add [project.urls] section with homepage, repository, and documentation URLs
|
|
76
76
|
"""
|
|
77
|
-
import
|
|
77
|
+
import httpx2
|
|
78
78
|
|
|
79
79
|
from afterpython.tools._git import get_git_user_config, get_github_url
|
|
80
80
|
from afterpython.utils import fetch_pypi_json
|
|
@@ -83,7 +83,7 @@ def init_pyproject():
|
|
|
83
83
|
|
|
84
84
|
async def fetch_build_backend_version() -> str | None:
|
|
85
85
|
"""Fetch the latest version of build backend package from PyPI."""
|
|
86
|
-
async with
|
|
86
|
+
async with httpx2.AsyncClient() as client:
|
|
87
87
|
data = await fetch_pypi_json(client, build_backend)
|
|
88
88
|
return data["info"]["version"] if data else None
|
|
89
89
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/ci-workflow-template.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/deploy-workflow-template.yml
RENAMED
|
File without changes
|
|
File without changes
|
{afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/pre-commit-config-template.yaml
RENAMED
|
File without changes
|
{afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/release-workflow-template.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|