afterpython 0.3.3__tar.gz → 0.3.5__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 (64) hide show
  1. {afterpython-0.3.3 → afterpython-0.3.5}/PKG-INFO +4 -4
  2. {afterpython-0.3.3 → afterpython-0.3.5}/pyproject.toml +5 -5
  3. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/ci-workflow-template.yml +28 -12
  4. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/deploy-workflow-template.yml +3 -3
  5. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/pre-commit-config-template.yaml +10 -9
  6. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/release-workflow-template.yml +1 -1
  7. {afterpython-0.3.3 → afterpython-0.3.5}/README.md +0 -0
  8. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/__init__.py +0 -0
  9. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/_io/toml.py +0 -0
  10. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/_io/yaml.py +0 -0
  11. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/_paths.py +0 -0
  12. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/_typing.py +0 -0
  13. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/__init__.py +0 -0
  14. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/build_pdoc.py +0 -0
  15. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/content_json.py +0 -0
  16. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/faq_json.py +0 -0
  17. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/index_md.py +0 -0
  18. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/jupyter_notebook.py +0 -0
  19. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/llms_txt.py +0 -0
  20. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/marimo_notebook.py +0 -0
  21. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/markdown.py +0 -0
  22. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/metadata.py +0 -0
  23. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/builders/url_md.py +0 -0
  24. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/__init__.py +0 -0
  25. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/add.py +0 -0
  26. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/build.py +0 -0
  27. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/bump.py +0 -0
  28. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/check.py +0 -0
  29. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/clean.py +0 -0
  30. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/commit.py +0 -0
  31. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/commitizen.py +0 -0
  32. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/dev.py +0 -0
  33. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/format.py +0 -0
  34. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/init.py +0 -0
  35. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/init_branch_rules.py +0 -0
  36. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/install.py +0 -0
  37. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/lock.py +0 -0
  38. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/pre_commit.py +0 -0
  39. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/preview.py +0 -0
  40. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/release.py +0 -0
  41. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/remove.py +0 -0
  42. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/serve.py +0 -0
  43. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/start.py +0 -0
  44. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/sync.py +0 -0
  45. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/commands/update.py +0 -0
  46. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/cli/main.py +0 -0
  47. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/const.py +0 -0
  48. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/main.py +0 -0
  49. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/pcu.py +0 -0
  50. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/py.typed +0 -0
  51. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/cz-template.toml +0 -0
  52. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/dependabot-template.yml +0 -0
  53. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/pdoc/frame.html.jinja2 +0 -0
  54. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/templates/ruff-template.toml +0 -0
  55. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/_afterpython.py +0 -0
  56. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/_git.py +0 -0
  57. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/branch_rules.py +0 -0
  58. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/commitizen.py +0 -0
  59. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/github_actions.py +0 -0
  60. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/myst.py +0 -0
  61. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/pre_commit.py +0 -0
  62. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/tools/pyproject.py +0 -0
  63. {afterpython-0.3.3 → afterpython-0.3.5}/src/afterpython/utils.py +0 -0
  64. {afterpython-0.3.3 → afterpython-0.3.5}/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
3
+ Version: 0.3.5
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
@@ -17,17 +17,17 @@ Classifier: Programming Language :: Python :: 3.13
17
17
  Requires-Dist: click>=8.2.1
18
18
  Requires-Dist: trogon>=0.6.0
19
19
  Requires-Dist: httpx>=0.28.1
20
- Requires-Dist: tomlkit>=0.14.0
20
+ Requires-Dist: tomlkit>=0.15.0
21
21
  Requires-Dist: ruamel-yaml>=0.19.1
22
22
  Requires-Dist: gitpython>=3.1.50
23
23
  Requires-Dist: python-dotenv>=1.2.2
24
24
  Requires-Dist: pyproject-metadata>=0.11.0
25
- Requires-Dist: jupytext>=1.19.1
25
+ Requires-Dist: jupytext>=1.19.2
26
26
  Requires-Dist: mystmd>=1.9.0
27
27
  Requires-Dist: pdoc>=16.0.0
28
28
  Requires-Dist: ruff>=0.15.12
29
29
  Requires-Dist: pre-commit>=4.6.0
30
- Requires-Dist: commitizen>=4.13.10
30
+ Requires-Dist: commitizen>=4.16.0
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "afterpython"
3
- version = "0.3.3"
3
+ version = "0.3.5"
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 = [
@@ -35,19 +35,19 @@ dependencies = [
35
35
  "click>=8.2.1",
36
36
  "trogon>=0.6.0",
37
37
  "httpx>=0.28.1",
38
- "tomlkit>=0.14.0",
38
+ "tomlkit>=0.15.0",
39
39
  "ruamel-yaml>=0.19.1",
40
40
  "gitpython>=3.1.50",
41
41
  # "pygithub>=2.8.1",
42
42
  "python-dotenv>=1.2.2",
43
43
  "pyproject-metadata>=0.11.0",
44
- "jupytext>=1.19.1",
44
+ "jupytext>=1.19.2",
45
45
  # "jinja2>=3.1.6",
46
46
  "mystmd>=1.9.0",
47
47
  "pdoc>=16.0.0",
48
48
  "ruff>=0.15.12",
49
49
  "pre-commit>=4.6.0",
50
- "commitizen>=4.13.10",
50
+ "commitizen>=4.16.0",
51
51
  # "python-semantic-release>=10.5.2",
52
52
  ]
53
53
 
@@ -64,7 +64,7 @@ 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.12,<0.12.0"]
67
+ requires = ["uv_build>=0.11.14,<0.12.0"]
68
68
  build-backend = "uv_build"
69
69
 
70
70
  [tool.uv.build-backend]
@@ -92,10 +92,20 @@ jobs:
92
92
  uv pip install --system . --group test || uv pip install --system .
93
93
 
94
94
  - name: Run tests with pytest
95
- # Run pytest with verbose output
96
- # Exit code 5 (no tests collected) is treated as success
95
+ # Tolerant by design: if pytest isn't installed, the project has no
96
+ # [dependency-groups] test (the install step fell back to `uv pip
97
+ # install --system .`). Treat that the same as "no tests yet" and
98
+ # pass green — matches the install step's tolerance.
99
+ # When pytest does run, exit code 5 (no tests collected) is success.
100
+ # We capture pytest's exit code before any other command clobbers $?.
97
101
  run: |
98
- pytest -v || if [ $? -eq 5 ]; then exit 0; else exit $?; fi
102
+ if ! command -v pytest >/dev/null 2>&1; then
103
+ echo "pytest not installed (no [dependency-groups] test); skipping."
104
+ exit 0
105
+ fi
106
+ pytest -v
107
+ code=$?
108
+ if [ $code -eq 5 ]; then exit 0; else exit $code; fi
99
109
 
100
110
  # Job 3.2: Test Suite - Pixi Workflow
101
111
  # Pixi-based testing for projects using pixi.toml
@@ -114,7 +124,7 @@ jobs:
114
124
  uses: actions/checkout@v6
115
125
 
116
126
  - name: Set up pixi
117
- uses: prefix-dev/setup-pixi@v0.9.4
127
+ uses: prefix-dev/setup-pixi@v0.9.5
118
128
  with:
119
129
  pixi-version: v0.67.2
120
130
  cache: true
@@ -145,15 +155,21 @@ jobs:
145
155
  run: |
146
156
  uv_result="${{ needs.test-uv.result }}"
147
157
  pixi_result="${{ needs.test-pixi.result }}"
148
- # One should succeed, the other should be skipped
149
- if [ "$uv_result" == "success" ] || [ "$uv_result" == "skipped" ]; then
150
- if [ "$pixi_result" == "success" ] || [ "$pixi_result" == "skipped" ]; then
151
- echo "All tests passed!"
152
- exit 0
153
- fi
158
+ # Invariant: exactly one track runs (use_pixi gate) and must succeed;
159
+ # the other is skipped. Any other combination — both skipped (detect
160
+ # job died), both succeeded (broken gating), or anything failing —
161
+ # is red. The "no tests yet" case is handled inside the running track
162
+ # (pytest step exits 0), so it reports success here, not skipped.
163
+ if [ "$uv_result" == "success" ] && [ "$pixi_result" == "skipped" ]; then
164
+ echo "All tests passed (uv track)."
165
+ exit 0
166
+ elif [ "$pixi_result" == "success" ] && [ "$uv_result" == "skipped" ]; then
167
+ echo "All tests passed (pixi track)."
168
+ exit 0
169
+ else
170
+ echo "Tests did not pass cleanly: uv=$uv_result, pixi=$pixi_result"
171
+ exit 1
154
172
  fi
155
- echo "Tests failed: uv=$uv_result, pixi=$pixi_result"
156
- exit 1
157
173
 
158
174
  # Job 4: Build Verification
159
175
  # Ensures the package can be built successfully
@@ -39,7 +39,7 @@ jobs:
39
39
  uses: actions/checkout@v6
40
40
 
41
41
  - name: Install pnpm
42
- uses: pnpm/action-setup@v4
42
+ uses: pnpm/action-setup@v6
43
43
  with:
44
44
  version: 10
45
45
 
@@ -72,7 +72,7 @@ jobs:
72
72
  ap build
73
73
 
74
74
  - name: Upload artifact
75
- uses: actions/upload-pages-artifact@v4
75
+ uses: actions/upload-pages-artifact@v5
76
76
  with:
77
77
  path: './afterpython/_website/build'
78
78
 
@@ -86,4 +86,4 @@ jobs:
86
86
  steps:
87
87
  - name: Deploy to GitHub Pages
88
88
  id: deployment
89
- uses: actions/deploy-pages@v4
89
+ uses: actions/deploy-pages@v5
@@ -37,12 +37,13 @@ repos:
37
37
  args:
38
38
  - --config
39
39
  - ./afterpython/ruff.toml
40
- - repo: https://github.com/commitizen-tools/commitizen
41
- rev: v4.13.10
42
- hooks:
43
- - id: commitizen
44
- stages:
45
- - commit-msg
46
- - id: commitizen-branch
47
- stages:
48
- - pre-push
40
+ # NOTE: buggy commitizen, skip it, not useful anyways
41
+ # - repo: https://github.com/commitizen-tools/commitizen
42
+ # rev: v4.16.0
43
+ # hooks:
44
+ # - id: commitizen
45
+ # stages:
46
+ # - commit-msg
47
+ # - id: commitizen-branch
48
+ # stages:
49
+ # - pre-push
@@ -47,7 +47,7 @@ jobs:
47
47
  fi
48
48
 
49
49
  - name: Create GitHub Release
50
- uses: softprops/action-gh-release@v2
50
+ uses: softprops/action-gh-release@v3
51
51
  with:
52
52
  tag_name: ${{ github.ref_name }}
53
53
  name: ${{ github.ref_name }}
File without changes