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.
Files changed (65) hide show
  1. {afterpython-0.3.17 → afterpython-0.3.19}/PKG-INFO +4 -4
  2. afterpython-0.3.19/pyproject.toml +72 -0
  3. afterpython-0.3.17/pyproject.toml → afterpython-0.3.19/pyproject.toml.orig +8 -5
  4. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/pcu.py +8 -7
  5. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/pyproject.py +2 -2
  6. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/utils.py +1 -1
  7. {afterpython-0.3.17 → afterpython-0.3.19}/README.md +0 -0
  8. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/__init__.py +0 -0
  9. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_io/toml.py +0 -0
  10. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_io/yaml.py +0 -0
  11. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_paths.py +0 -0
  12. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/_typing.py +0 -0
  13. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/__init__.py +0 -0
  14. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/build_pdoc.py +0 -0
  15. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/content_json.py +0 -0
  16. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/faq_json.py +0 -0
  17. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/index_md.py +0 -0
  18. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/jupyter_notebook.py +0 -0
  19. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/llms_txt.py +0 -0
  20. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/marimo_notebook.py +0 -0
  21. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/markdown.py +0 -0
  22. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/metadata.py +0 -0
  23. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/builders/url_md.py +0 -0
  24. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/__init__.py +0 -0
  25. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/add.py +0 -0
  26. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/build.py +0 -0
  27. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/bump.py +0 -0
  28. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/check.py +0 -0
  29. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/clean.py +0 -0
  30. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/commit.py +0 -0
  31. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/commitizen.py +0 -0
  32. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/dev.py +0 -0
  33. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/format.py +0 -0
  34. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/init.py +0 -0
  35. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/init_branch_rules.py +0 -0
  36. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/install.py +0 -0
  37. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/lock.py +0 -0
  38. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/pre_commit.py +0 -0
  39. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/preview.py +0 -0
  40. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/release.py +0 -0
  41. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/remove.py +0 -0
  42. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/serve.py +0 -0
  43. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/start.py +0 -0
  44. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/sync.py +0 -0
  45. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/commands/update.py +0 -0
  46. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/cli/main.py +0 -0
  47. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/const.py +0 -0
  48. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/main.py +0 -0
  49. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/py.typed +0 -0
  50. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/ci-workflow-template.yml +0 -0
  51. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/cz-template.toml +0 -0
  52. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/dependabot-template.yml +0 -0
  53. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/deploy-workflow-template.yml +0 -0
  54. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/pdoc/frame.html.jinja2 +0 -0
  55. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/pre-commit-config-template.yaml +0 -0
  56. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/release-workflow-template.yml +0 -0
  57. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/templates/ruff-template.toml +0 -0
  58. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/_afterpython.py +0 -0
  59. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/_git.py +0 -0
  60. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/branch_rules.py +0 -0
  61. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/commitizen.py +0 -0
  62. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/github_actions.py +0 -0
  63. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/myst.py +0 -0
  64. {afterpython-0.3.17 → afterpython-0.3.19}/src/afterpython/tools/pre_commit.py +0 -0
  65. {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.17
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: httpx>=0.28.1
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.22
28
+ Requires-Dist: ruff>=0.15.21
29
29
  Requires-Dist: pre-commit>=4.6.0
30
- Requires-Dist: commitizen>=4.16.5
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.17"
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
- "httpx>=0.28.1",
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.22",
48
+ "ruff>=0.15.21",
49
49
  "pre-commit>=4.6.0",
50
- "commitizen>=4.16.5",
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.30,<0.12.0"]
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 httpx
63
+ import httpx2
64
64
 
65
65
  from afterpython.utils import fetch_pypi_json
66
66
 
67
67
  async def fetch_version(
68
- client: httpx.AsyncClient, package_name: str
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 httpx.AsyncClient(timeout=10.0) as client:
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.replace(min_ver, latest_ver)
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
- doc_deps[i] = doc_deps[i].replace(
163
- max_ver, str(dep.max_version.next_breaking())
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 httpx
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 httpx.AsyncClient() as client:
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
 
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
  if TYPE_CHECKING:
6
6
  from pathlib import Path
7
7
 
8
- from httpx import AsyncClient
8
+ from httpx2 import AsyncClient
9
9
 
10
10
  from afterpython._typing import NodeEnv
11
11
 
File without changes