afterpython 0.1.0.dev7__py3-none-any.whl → 0.1.0.dev9__py3-none-any.whl
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/_io/toml.py +5 -3
- afterpython/_paths.py +1 -1
- afterpython/_typing.py +1 -2
- afterpython/builders/__init__.py +0 -1
- afterpython/builders/metadata.py +1 -1
- afterpython/builders/molab.py +2 -1
- afterpython/cli/__init__.py +0 -1
- afterpython/cli/commands/add.py +67 -0
- afterpython/cli/commands/build.py +10 -9
- afterpython/cli/commands/clean.py +2 -1
- afterpython/cli/commands/commit.py +16 -1
- afterpython/cli/commands/dev.py +3 -2
- afterpython/cli/commands/init.py +26 -12
- afterpython/cli/commands/init_branch_rules.py +9 -0
- afterpython/cli/commands/install.py +8 -2
- afterpython/cli/commands/lock.py +23 -0
- afterpython/cli/commands/remove.py +67 -0
- afterpython/cli/commands/start.py +6 -3
- afterpython/cli/commands/sync.py +3 -3
- afterpython/cli/commands/update.py +26 -3
- afterpython/cli/main.py +75 -14
- afterpython/const.py +0 -1
- afterpython/pcu.py +3 -1
- afterpython/templates/ci-workflow-template.yml +197 -0
- afterpython/templates/dependabot-template.yml +30 -0
- afterpython/templates/deploy-workflow-template.yml +5 -5
- afterpython/templates/release-workflow-template.yml +3 -3
- afterpython/templates/ruff-template.toml +1 -1
- afterpython/tools/_afterpython.py +2 -1
- afterpython/tools/_git.py +28 -2
- afterpython/tools/branch_rules.py +106 -0
- afterpython/tools/commitizen.py +1 -2
- afterpython/tools/github_actions.py +23 -53
- afterpython/tools/myst.py +4 -2
- afterpython/tools/pre_commit.py +1 -3
- afterpython/tools/pyproject.py +4 -2
- afterpython/utils.py +9 -0
- {afterpython-0.1.0.dev7.dist-info → afterpython-0.1.0.dev9.dist-info}/METADATA +18 -8
- afterpython-0.1.0.dev9.dist-info/RECORD +52 -0
- {afterpython-0.1.0.dev7.dist-info → afterpython-0.1.0.dev9.dist-info}/WHEEL +1 -1
- afterpython/.pre-commit-config.yaml +0 -48
- afterpython/cz.toml +0 -27
- afterpython-0.1.0.dev7.dist-info/RECORD +0 -47
- {afterpython-0.1.0.dev7.dist-info → afterpython-0.1.0.dev9.dist-info}/entry_points.txt +0 -0
|
@@ -1,78 +1,48 @@
|
|
|
1
1
|
import shutil
|
|
2
|
+
from pathlib import Path
|
|
2
3
|
|
|
3
4
|
import click
|
|
4
5
|
|
|
5
6
|
import afterpython as ap
|
|
6
7
|
|
|
7
8
|
|
|
8
|
-
def
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
This workflow triggers on version tags and:
|
|
13
|
-
- Builds the package with uv
|
|
14
|
-
- Publishes to PyPI using trusted publishing
|
|
15
|
-
- Creates GitHub releases (with pre-release detection)
|
|
16
|
-
"""
|
|
17
|
-
user_path = ap.paths.user_path
|
|
18
|
-
workflow_dir = user_path / ".github" / "workflows"
|
|
19
|
-
workflow_path = workflow_dir / "release.yml"
|
|
20
|
-
|
|
21
|
-
if workflow_path.exists():
|
|
22
|
-
click.echo(f"GitHub Actions release workflow {workflow_path} already exists")
|
|
9
|
+
def _copy_github_template(template_name: str, target_path: Path):
|
|
10
|
+
"""Helper to copy GitHub-related templates"""
|
|
11
|
+
if target_path.exists():
|
|
12
|
+
click.echo(f"{target_path} already exists")
|
|
23
13
|
return
|
|
24
14
|
|
|
25
|
-
# Create
|
|
26
|
-
|
|
15
|
+
# Create parent directory if it doesn't exist
|
|
16
|
+
target_path.parent.mkdir(parents=True, exist_ok=True)
|
|
27
17
|
|
|
28
18
|
# Copy template from package
|
|
29
|
-
template_path = ap.paths.templates_path /
|
|
19
|
+
template_path = ap.paths.templates_path / template_name
|
|
30
20
|
if not template_path.exists():
|
|
31
21
|
raise FileNotFoundError(
|
|
32
22
|
f"Template file not found: {template_path}\n"
|
|
33
23
|
"This might indicate a corrupted installation. Please reinstall afterpython."
|
|
34
24
|
)
|
|
35
25
|
|
|
36
|
-
shutil.copy(template_path,
|
|
37
|
-
|
|
38
|
-
click.echo(
|
|
39
|
-
"\n📋 Next steps to enable releases:\n"
|
|
40
|
-
" 1. Enable PyPI trusted publishing:\n"
|
|
41
|
-
" - Go to https://pypi.org/manage/account/publishing/\n"
|
|
42
|
-
" - Add your repository and workflow file: release.yml\n"
|
|
43
|
-
" 2. Push tags to trigger releases:\n"
|
|
44
|
-
" - Use 'ap bump --release' for stable releases (auto-pushes tag)\n"
|
|
45
|
-
" - Use 'ap bump --pre' then 'ap release' for pre-releases\n"
|
|
46
|
-
)
|
|
26
|
+
shutil.copy(template_path, target_path)
|
|
27
|
+
print(f"Created {target_path}")
|
|
47
28
|
|
|
48
29
|
|
|
49
|
-
def
|
|
50
|
-
"""
|
|
30
|
+
def create_workflow(workflow_name: str):
|
|
31
|
+
"""Create a GitHub Actions workflow from template"""
|
|
32
|
+
if ".yml" in workflow_name:
|
|
33
|
+
workflow_name = workflow_name.replace(".yml", "")
|
|
51
34
|
|
|
52
|
-
Creates .github/workflows/deploy.yml in the user's project root.
|
|
53
|
-
This workflow triggers on pushes to main branch and:
|
|
54
|
-
- Builds the project website with 'ap build'
|
|
55
|
-
- Deploys to GitHub Pages
|
|
56
|
-
- Allows manual deployment via workflow_dispatch
|
|
57
|
-
"""
|
|
58
35
|
user_path = ap.paths.user_path
|
|
59
|
-
|
|
60
|
-
|
|
36
|
+
workflow_path = user_path / ".github" / "workflows" / f"{workflow_name}.yml"
|
|
37
|
+
template_name = f"{workflow_name}-workflow-template.yml"
|
|
61
38
|
|
|
62
|
-
|
|
63
|
-
click.echo(f"GitHub Actions deploy workflow {workflow_path} already exists")
|
|
64
|
-
return
|
|
39
|
+
_copy_github_template(template_name, workflow_path)
|
|
65
40
|
|
|
66
|
-
# Create .github/workflows directory if it doesn't exist
|
|
67
|
-
workflow_dir.mkdir(parents=True, exist_ok=True)
|
|
68
41
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"This might indicate a corrupted installation. Please reinstall afterpython."
|
|
75
|
-
)
|
|
42
|
+
def create_dependabot():
|
|
43
|
+
"""Create Dependabot configuration for GitHub Actions updates"""
|
|
44
|
+
user_path = ap.paths.user_path
|
|
45
|
+
dependabot_path = user_path / ".github" / "dependabot.yml"
|
|
46
|
+
template_name = "dependabot-template.yml"
|
|
76
47
|
|
|
77
|
-
|
|
78
|
-
click.echo(f"Created {workflow_path}")
|
|
48
|
+
_copy_github_template(template_name, dependabot_path)
|
afterpython/tools/myst.py
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from typing import TYPE_CHECKING
|
|
3
4
|
|
|
4
5
|
if TYPE_CHECKING:
|
|
5
6
|
from pathlib import Path
|
|
6
|
-
|
|
7
|
+
|
|
8
|
+
from afterpython._typing import NodeEnv, tContentType
|
|
7
9
|
|
|
8
10
|
import subprocess
|
|
9
11
|
|
|
10
12
|
import afterpython as ap
|
|
13
|
+
from afterpython._io.yaml import read_yaml, write_yaml
|
|
11
14
|
from afterpython.utils import deep_merge
|
|
12
|
-
from afterpython._io.yaml import write_yaml, read_yaml
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
def update_authors_yml(data_update: dict):
|
afterpython/tools/pre_commit.py
CHANGED
afterpython/tools/pyproject.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from typing import TYPE_CHECKING
|
|
3
4
|
|
|
4
5
|
if TYPE_CHECKING:
|
|
@@ -9,7 +10,7 @@ import asyncio
|
|
|
9
10
|
from pyproject_metadata import StandardMetadata
|
|
10
11
|
|
|
11
12
|
import afterpython as ap
|
|
12
|
-
from afterpython._io.toml import read_toml, write_toml
|
|
13
|
+
from afterpython._io.toml import _to_tomlkit, read_toml, write_toml
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def read_pyproject() -> TOMLDocument:
|
|
@@ -32,8 +33,9 @@ def init_pyproject():
|
|
|
32
33
|
- add [project.urls] section with homepage, repository, and documentation URLs
|
|
33
34
|
"""
|
|
34
35
|
import httpx
|
|
35
|
-
|
|
36
|
+
|
|
36
37
|
from afterpython.tools._git import get_git_user_config, get_github_url
|
|
38
|
+
from afterpython.utils import fetch_pypi_json
|
|
37
39
|
|
|
38
40
|
build_backend = "uv_build"
|
|
39
41
|
|
afterpython/utils.py
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
+
|
|
2
3
|
from typing import TYPE_CHECKING
|
|
3
4
|
|
|
4
5
|
if TYPE_CHECKING:
|
|
5
6
|
from pathlib import Path
|
|
7
|
+
|
|
6
8
|
from httpx import AsyncClient
|
|
9
|
+
|
|
7
10
|
from afterpython._typing import NodeEnv
|
|
8
11
|
|
|
9
12
|
import os
|
|
@@ -20,6 +23,7 @@ def find_node_env() -> NodeEnv:
|
|
|
20
23
|
If no, install the Node.js version specified in NODEENV_VERSION
|
|
21
24
|
"""
|
|
22
25
|
from mystmd_py.nodeenv import find_any_node
|
|
26
|
+
|
|
23
27
|
from afterpython.const import NODEENV_VERSION
|
|
24
28
|
|
|
25
29
|
# from mystmd_py.main import ensure_valid_version
|
|
@@ -35,6 +39,11 @@ def has_uv() -> bool:
|
|
|
35
39
|
return shutil.which("uv") is not None
|
|
36
40
|
|
|
37
41
|
|
|
42
|
+
def has_pixi() -> bool:
|
|
43
|
+
"""Check if pixi is installed"""
|
|
44
|
+
return shutil.which("pixi") is not None
|
|
45
|
+
|
|
46
|
+
|
|
38
47
|
def has_gh() -> bool:
|
|
39
48
|
"""Check if gh is installed"""
|
|
40
49
|
return shutil.which("gh") is not None
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: afterpython
|
|
3
|
-
Version: 0.1.0.
|
|
4
|
-
Summary: CLI tool
|
|
3
|
+
Version: 0.1.0.dev9
|
|
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
|
|
7
7
|
Author-email: Stephen Yau <softwareentrepreneer+afterpython@gmail.com>
|
|
@@ -10,10 +10,10 @@ Classifier: Operating System :: OS Independent
|
|
|
10
10
|
Classifier: Intended Audience :: Developers
|
|
11
11
|
Classifier: Topic :: Software Development :: Build Tools
|
|
12
12
|
Classifier: Topic :: Software Development :: Documentation
|
|
13
|
+
Classifier: Typing :: Typed
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
17
17
|
Requires-Dist: click>=8.3.1
|
|
18
18
|
Requires-Dist: trogon>=0.6.0
|
|
19
19
|
Requires-Dist: httpx>=0.28.1
|
|
@@ -22,11 +22,11 @@ Requires-Dist: ruamel-yaml>=0.18.16
|
|
|
22
22
|
Requires-Dist: gitpython>=3.1.45
|
|
23
23
|
Requires-Dist: pygithub>=2.8.1
|
|
24
24
|
Requires-Dist: python-dotenv>=1.2.1
|
|
25
|
-
Requires-Dist: pyproject-metadata>=0.
|
|
25
|
+
Requires-Dist: pyproject-metadata>=0.10.0
|
|
26
26
|
Requires-Dist: mystmd>=1.6.6
|
|
27
27
|
Requires-Dist: pdoc>=16.0.0
|
|
28
|
-
Requires-Dist: ruff>=0.14.
|
|
29
|
-
Requires-Dist: pre-commit>=4.
|
|
28
|
+
Requires-Dist: ruff>=0.14.6
|
|
29
|
+
Requires-Dist: pre-commit>=4.5.0
|
|
30
30
|
Requires-Dist: commitizen>=4.10.0
|
|
31
31
|
Requires-Python: >=3.11
|
|
32
32
|
Project-URL: documentation, https://afterpython.afterpython.org/doc
|
|
@@ -76,8 +76,9 @@ First-time maintainers must learn multiple tools and concepts, e.g. [MyST], [Sem
|
|
|
76
76
|
|
|
77
77
|
## Core Features
|
|
78
78
|
- [x] Write content directly in [MyST Markdown] or [Jupyter Notebook]
|
|
79
|
-
- [x] Go from writing to website deployment in minutes — no need to learn any of the underlying tools
|
|
80
|
-
- [x] Centralize all your content in a modern, unified project website — from documentation to blog posts
|
|
79
|
+
- [x] Go from writing to **website deployment in minutes** — no need to learn any of the underlying tools
|
|
80
|
+
- [x] Centralize all your content in a modern, **unified project website** — from documentation to blog posts
|
|
81
|
+
- [x] Zero-config orchestration — Pre-configured modern tooling with sane defaults (see [Tech Stack](#tech-stack)), so you can start maintaining packages immediately **without learning each tool**
|
|
81
82
|
- [ ] Export content as PDF — for example, combine all blog posts into a single PDF file
|
|
82
83
|
- [ ] **⚡ Full-text search** across **ALL** your content in your website — docs, blogs, tutorials, everything
|
|
83
84
|
- [ ] **🤖 Embedded AI Chatbot** that answers questions directly using an in-browser LLM — at no cost
|
|
@@ -91,16 +92,20 @@ First-time maintainers must learn multiple tools and concepts, e.g. [MyST], [Sem
|
|
|
91
92
|
<img alt="Project Website" src="afterpython/static/website-light.png">
|
|
92
93
|
</picture>
|
|
93
94
|
|
|
95
|
+
You can create your own website too and deploy it to GitHub Pages in **less than a minute**! See [Quickstart](https://afterpython.afterpython.org/doc/quickstart).
|
|
96
|
+
|
|
94
97
|
---
|
|
95
98
|
## Installation
|
|
96
99
|
```bash
|
|
97
100
|
# install afterpython as a dev dependency
|
|
98
101
|
uv add --dev afterpython
|
|
102
|
+
|
|
99
103
|
# initialize afterpython
|
|
100
104
|
ap init
|
|
101
105
|
```
|
|
102
106
|
|
|
103
107
|
|
|
108
|
+
---
|
|
104
109
|
## Tech Stack
|
|
105
110
|
- [MyST]
|
|
106
111
|
- [project-website-template]
|
|
@@ -114,3 +119,8 @@ ap init
|
|
|
114
119
|
- [WebLLM]
|
|
115
120
|
<!-- - ty -->
|
|
116
121
|
<!-- - [pixi] -->
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
## *Our Mission*
|
|
126
|
+
> Only by making package maintenance and documentation easy can we encourage more Python developers to publish their own packages and grow the ecosystem even further.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
afterpython/__init__.py,sha256=aNochs72gU2NR1cBzIkk3NxSsdJ7ceHluI5gdYwaFpI,289
|
|
2
|
+
afterpython/_io/toml.py,sha256=dvmq6n4MhlJ02u_YjfC3mOnCWatfCn_J1lugavigoJw,3410
|
|
3
|
+
afterpython/_io/yaml.py,sha256=raksve_gaIFJim8lQrq-kQHkRjTloed7CT2FY0oUJSg,654
|
|
4
|
+
afterpython/_paths.py,sha256=FTwQ7necKYuRosCyMZPfv1eqaEmGIsyqd3yXpm-WQTA,1584
|
|
5
|
+
afterpython/_typing.py,sha256=FbphSGoujPuTfCZqt0HaKQrBgzhRpCOEAEQU6Cbl7oA,145
|
|
6
|
+
afterpython/builders/__init__.py,sha256=_3x9_xP3xmMn3lJTsKZBrEC8kKFXZfkSa6KhNk1TyLQ,214
|
|
7
|
+
afterpython/builders/metadata.py,sha256=NkhKQLCmdzRId_tHNldIC3h3an3QQPjqBRGnhr9az1U,1273
|
|
8
|
+
afterpython/builders/molab.py,sha256=viQ3HY5tnMiHjrgsm4BAMuYtTpiFJ0SDYzcm1TyoRDI,3715
|
|
9
|
+
afterpython/cli/__init__.py,sha256=G4AB-rllhmr7tURFc5cXJfkjZZ2bXtMBg3oy4zUGEFw,84
|
|
10
|
+
afterpython/cli/commands/add.py,sha256=Ppp4msdvOwN9_-fdG5-b0-IV9p0Eef9CiIEU3srUjYk,1792
|
|
11
|
+
afterpython/cli/commands/build.py,sha256=kFVdu0tNn82qaHVDS9tUKHYwH73zE3adkRBG_c2t44c,8020
|
|
12
|
+
afterpython/cli/commands/bump.py,sha256=Wg-q3UQIkIRGT3umZCUBPpwIQTAHwQZVs1yHSZhmzKE,3088
|
|
13
|
+
afterpython/cli/commands/check.py,sha256=cLP4Vle3ENQHCXBv1okDlWK-L1XK-fv80m66xW3LQkg,1097
|
|
14
|
+
afterpython/cli/commands/clean.py,sha256=ZNhOwxcdxhkzqLPwDJ2_NPLnvMz3C1EKyNttXTyIHnI,2532
|
|
15
|
+
afterpython/cli/commands/commit.py,sha256=TKhlybJxbcChMzZJuTfYafCrYUraqyBpLJ4TP0WA-xs,1335
|
|
16
|
+
afterpython/cli/commands/commitizen.py,sha256=naI8j4pfXIMsiOLmPMeZTGh831I3665_1_Sbn7yoKyE,811
|
|
17
|
+
afterpython/cli/commands/dev.py,sha256=zuto7Z6nfD1FAhZkhZNoLhxVH78Eo3W3iO6QujOMXII,6753
|
|
18
|
+
afterpython/cli/commands/format.py,sha256=cXvuc-6XwULM1VJjS2B2bJBvnV1TVHFl1CeSs0SYQ24,738
|
|
19
|
+
afterpython/cli/commands/init.py,sha256=lyNcE-fmgXyLGoSRkvHg_xpDt9gnySemTh-0m6lX0Ws,3354
|
|
20
|
+
afterpython/cli/commands/init_branch_rules.py,sha256=fzAm8D5qbW3u4bEMpqPuRgO-0akuCGG7pu09JlKhYn4,243
|
|
21
|
+
afterpython/cli/commands/install.py,sha256=K3xYzU7XOts_xdERyd4q3wUFv0hythy7ZP6jr9N_6L4,777
|
|
22
|
+
afterpython/cli/commands/lock.py,sha256=WAfZY4Jb7XLl7_zcjxCAs8VCGitX-zPlkXLTkPtOqDs,605
|
|
23
|
+
afterpython/cli/commands/pre_commit.py,sha256=DdmbkcZgJ7QArAY1y5vODYZmHUXWEIuXRyp69AS-pn0,1981
|
|
24
|
+
afterpython/cli/commands/preview.py,sha256=EbuB-dFcgonmqumTb2aHlLpXRiXkGE4DI3ddJdHwcaM,619
|
|
25
|
+
afterpython/cli/commands/release.py,sha256=6SDEnPtuCL0_XUqWUlvRSKxAv011QqOD0kc5pKu7378,2479
|
|
26
|
+
afterpython/cli/commands/remove.py,sha256=Fl79JSI9IdHyzYflocXxcxgBkBPkNFAW98Yuijly26g,1812
|
|
27
|
+
afterpython/cli/commands/start.py,sha256=nXMOYQmAWqsqLphm09qxag83aLI7_w3TxjJQQt2CQjk,3992
|
|
28
|
+
afterpython/cli/commands/sync.py,sha256=2PQA_jxH701l_Ijmr4hZV6K-f_G1Wx7lRScDttT3-9E,4669
|
|
29
|
+
afterpython/cli/commands/update.py,sha256=inMdpNNtyDdh7311sIFwEiNzetXCzjSFG8YhyM9GVh0,6393
|
|
30
|
+
afterpython/cli/main.py,sha256=m3BJ5rOlllUyOngD2HF2fosDLrduREzAQKpsTqcYPZc,4956
|
|
31
|
+
afterpython/const.py,sha256=B_yUBmHPyu98aOibwt7idWbhKNBBed0TeYXNBd8tPTk,157
|
|
32
|
+
afterpython/main.py,sha256=w0z6mTib3u4p2HxMrk-tIJlZtur7uRaqsbE0ewlYlSs,490
|
|
33
|
+
afterpython/pcu.py,sha256=EoEhSzFZ49b5qc9KH2RLxIHSzY8YFM5uhtw07chcrr8,6093
|
|
34
|
+
afterpython/templates/ci-workflow-template.yml,sha256=2L-SRPB2GKlfR4bQAgpdq4r9bFdT9vCYo4oWjnIzKfg,5933
|
|
35
|
+
afterpython/templates/dependabot-template.yml,sha256=CBQEgh8EsXw2X7IqzGtFI7lVT9liF6PW4DvGLB0X2LY,1136
|
|
36
|
+
afterpython/templates/deploy-workflow-template.yml,sha256=2W4K3lKMYjSTPrlXIsMweBzqP9IoLtZXAAcUu5FA5NA,2365
|
|
37
|
+
afterpython/templates/release-workflow-template.yml,sha256=3YBkgrqmi--uznslpMxPz7Vj7L4_NPlhDxgwYBt-Ui8,1606
|
|
38
|
+
afterpython/templates/ruff-template.toml,sha256=lNCd4EthoLScr4cyVEgGUH4xK5CfIX3f9I3zkJHAYgg,1008
|
|
39
|
+
afterpython/tools/_afterpython.py,sha256=aZdRJ9dprA1HFchDFTqreJbrsI_HTPUaxtuBinVz10I,1905
|
|
40
|
+
afterpython/tools/_git.py,sha256=aO-qDEQ4OevD_B74DYKK4nQKYeiaS1BXmYc8paJRfbQ,3772
|
|
41
|
+
afterpython/tools/branch_rules.py,sha256=ciQ2H2YBnoCZu_plyVeIHzf2FcAILRFhpjzOR2_IfJg,3159
|
|
42
|
+
afterpython/tools/commitizen.py,sha256=xpLZJuEqrRxCYz8la6po1PIlECk9O1BuAgsmSE1EY3I,1468
|
|
43
|
+
afterpython/tools/github_actions.py,sha256=zVmg9aqUg-EO0CnbRHl9i8TmFtXpt7nd0VjzckqqE30,1527
|
|
44
|
+
afterpython/tools/myst.py,sha256=fh0FtgL9A1dmFa98QKsWFqExsG7hPRP3nrj62U9PmaA,6603
|
|
45
|
+
afterpython/tools/pre_commit.py,sha256=U4cazFxaZmyamk_n-85sL6BLOttURm-I2giksgE0qb8,2191
|
|
46
|
+
afterpython/tools/pyproject.py,sha256=YiSbW-bXYtFCkXRl_Ibdca2OeYZT0lsqzRRjZFxMcp4,2327
|
|
47
|
+
afterpython/utils.py,sha256=Uh4pTGeavH5pf8GCeMYQGqs3iPpZzjjAJ_R7t2mhEyY,7045
|
|
48
|
+
afterpython/version.py,sha256=hihRV1S-gc1m46OaXD32ikkEkqzs-Gtq7AcAqOQV-wY,1603
|
|
49
|
+
afterpython-0.1.0.dev9.dist-info/WHEEL,sha256=3id4o64OvRm9dUknh3mMJNcfoTRK08ua5cU6DFyVy-4,79
|
|
50
|
+
afterpython-0.1.0.dev9.dist-info/entry_points.txt,sha256=roa0PDgBueM1JPbRG0G2OSxzaN394OUL_oS9iEwVLBc,80
|
|
51
|
+
afterpython-0.1.0.dev9.dist-info/METADATA,sha256=-67mS-Do6Uw1T_KvopXaXvAJafgaAgbX_oaAzDUJqWo,5906
|
|
52
|
+
afterpython-0.1.0.dev9.dist-info/RECORD,,
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
default_install_hook_types:
|
|
2
|
-
- pre-commit
|
|
3
|
-
- commit-msg
|
|
4
|
-
- pre-push
|
|
5
|
-
exclude: ^afterpython/_website/
|
|
6
|
-
repos:
|
|
7
|
-
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
8
|
-
rev: v6.0.0
|
|
9
|
-
hooks:
|
|
10
|
-
- id: trailing-whitespace
|
|
11
|
-
stages:
|
|
12
|
-
- pre-commit
|
|
13
|
-
- id: end-of-file-fixer
|
|
14
|
-
stages:
|
|
15
|
-
- pre-commit
|
|
16
|
-
- id: check-yaml
|
|
17
|
-
stages:
|
|
18
|
-
- pre-commit
|
|
19
|
-
- id: check-toml
|
|
20
|
-
stages:
|
|
21
|
-
- pre-commit
|
|
22
|
-
- id: check-added-large-files
|
|
23
|
-
stages:
|
|
24
|
-
- pre-commit
|
|
25
|
-
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
26
|
-
rev: v0.14.5
|
|
27
|
-
hooks:
|
|
28
|
-
- id: ruff-check
|
|
29
|
-
stages:
|
|
30
|
-
- pre-commit
|
|
31
|
-
args:
|
|
32
|
-
- --config
|
|
33
|
-
- ./afterpython/ruff.toml
|
|
34
|
-
- id: ruff-format
|
|
35
|
-
stages:
|
|
36
|
-
- pre-commit
|
|
37
|
-
args:
|
|
38
|
-
- --config
|
|
39
|
-
- ./afterpython/ruff.toml
|
|
40
|
-
- repo: https://github.com/commitizen-tools/commitizen
|
|
41
|
-
rev: v4.10.0
|
|
42
|
-
hooks:
|
|
43
|
-
- id: commitizen
|
|
44
|
-
stages:
|
|
45
|
-
- commit-msg
|
|
46
|
-
- id: commitizen-branch
|
|
47
|
-
stages:
|
|
48
|
-
- pre-push
|
afterpython/cz.toml
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
[tool.commitizen]
|
|
2
|
-
name = "cz_conventional_commits"
|
|
3
|
-
# name = "cz_customize"
|
|
4
|
-
tag_format = "v$version"
|
|
5
|
-
version_scheme = "pep440"
|
|
6
|
-
version_provider = "uv"
|
|
7
|
-
update_changelog_on_bump = false
|
|
8
|
-
major_version_zero = true
|
|
9
|
-
|
|
10
|
-
# FIXME: commitizen can't even add a few custom types like "chore" and "wip", skip it for now
|
|
11
|
-
# [[tool.commitizen.customize.questions]]
|
|
12
|
-
# type = "list"
|
|
13
|
-
# name = "change_type"
|
|
14
|
-
# choices = [
|
|
15
|
-
# {value = "fix", name = "fix: A bug fix. Correlates with PATCH in SemVer"},
|
|
16
|
-
# {value = "feat", name = "feat: A new feature. Correlates with MINOR in SemVer"},
|
|
17
|
-
# {value = "docs", name = "docs: Documentation only changes"},
|
|
18
|
-
# {value = "style", name = "style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)"},
|
|
19
|
-
# {value = "refactor", name = "refactor: A code change that neither fixes a bug nor adds a feature"},
|
|
20
|
-
# {value = "perf", name = "perf: A code change that improves performance"},
|
|
21
|
-
# {value = "test", name = "test: Adding missing or correcting existing tests"},
|
|
22
|
-
# {value = "build", name = "build: Changes that affect the build system or external dependencies (example scopes: pip, docker, npm)"},
|
|
23
|
-
# {value = "ci", name = "ci: Changes to CI configuration files and scripts (example scopes: GitLabCI)"},
|
|
24
|
-
# {value = "chore", name = "chore: Other changes that don't modify src or test files"},
|
|
25
|
-
# {value = "wip", name = "wip: Work in progress"}
|
|
26
|
-
# ]
|
|
27
|
-
# message = "Select the type of change you are committing"
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
afterpython/.pre-commit-config.yaml,sha256=7mpSRHaFcG2M6SOY-5Sbs9WxN8UISnZ2g0NwCGsLNCA,915
|
|
2
|
-
afterpython/__init__.py,sha256=aNochs72gU2NR1cBzIkk3NxSsdJ7ceHluI5gdYwaFpI,289
|
|
3
|
-
afterpython/_io/toml.py,sha256=nrx0CFPONgmkz5WDCSMyr4caic6nzu0uCd33qOmhhF0,3408
|
|
4
|
-
afterpython/_io/yaml.py,sha256=raksve_gaIFJim8lQrq-kQHkRjTloed7CT2FY0oUJSg,654
|
|
5
|
-
afterpython/_paths.py,sha256=1NrPQ4erjA_rIvDggx7QRY4_01zyU-yht9s95Q-4YgM,1584
|
|
6
|
-
afterpython/_typing.py,sha256=kmxBRbhft85C8Ycm5BFBP258Jozrw9tsl7KHOVPcF_o,146
|
|
7
|
-
afterpython/builders/__init__.py,sha256=MOv3spIh-ABwyUtvQAHhPZ2horWb0D93WNmOPNAzKYo,215
|
|
8
|
-
afterpython/builders/metadata.py,sha256=fj7rlawZCh43aJrBBfcmOTlYew1aW-om3QTpVulKbOk,1273
|
|
9
|
-
afterpython/builders/molab.py,sha256=Qji8piWJB1tbzhgtld0pQWIsUA7d7RsGCfnoLVKd5EA,3714
|
|
10
|
-
afterpython/cli/__init__.py,sha256=1vLZylRMnGaV7cJ-kHO96dChp33_P4fBIJ_Vi-yyZg4,85
|
|
11
|
-
afterpython/cli/commands/build.py,sha256=GkO06D8ktaH3OZWcZhuh463n4vFE1A_OE-iwRuagQdM,8051
|
|
12
|
-
afterpython/cli/commands/bump.py,sha256=Wg-q3UQIkIRGT3umZCUBPpwIQTAHwQZVs1yHSZhmzKE,3088
|
|
13
|
-
afterpython/cli/commands/check.py,sha256=cLP4Vle3ENQHCXBv1okDlWK-L1XK-fv80m66xW3LQkg,1097
|
|
14
|
-
afterpython/cli/commands/clean.py,sha256=dCEkkWOTn93758wGTrWJG9V6c-lv2Z59CYfoP3i3rJE,2531
|
|
15
|
-
afterpython/cli/commands/commit.py,sha256=yRLOBs6JetZSGkFy9_uLzgR8yAX9djeUF291gabtuUo,880
|
|
16
|
-
afterpython/cli/commands/commitizen.py,sha256=naI8j4pfXIMsiOLmPMeZTGh831I3665_1_Sbn7yoKyE,811
|
|
17
|
-
afterpython/cli/commands/dev.py,sha256=yI1g0v7HlVaVH6HwcHyukLYMyUbZjAd0BiCYk9QGdGw,6752
|
|
18
|
-
afterpython/cli/commands/format.py,sha256=cXvuc-6XwULM1VJjS2B2bJBvnV1TVHFl1CeSs0SYQ24,738
|
|
19
|
-
afterpython/cli/commands/init.py,sha256=Sc0B-Gv1bpYHzD8hYoVTXY2QsOV36kWcKH5vgHBmp1g,2987
|
|
20
|
-
afterpython/cli/commands/install.py,sha256=wgH9DEuN7hsA6BslNJASqOBn4VHJrYHBvowXDHi4smE,573
|
|
21
|
-
afterpython/cli/commands/pre_commit.py,sha256=DdmbkcZgJ7QArAY1y5vODYZmHUXWEIuXRyp69AS-pn0,1981
|
|
22
|
-
afterpython/cli/commands/preview.py,sha256=EbuB-dFcgonmqumTb2aHlLpXRiXkGE4DI3ddJdHwcaM,619
|
|
23
|
-
afterpython/cli/commands/release.py,sha256=6SDEnPtuCL0_XUqWUlvRSKxAv011QqOD0kc5pKu7378,2479
|
|
24
|
-
afterpython/cli/commands/start.py,sha256=PnO1ECXnYtJxTOoDgG2ZoiVnkJVYNhPT63rabronjZ0,3992
|
|
25
|
-
afterpython/cli/commands/sync.py,sha256=epgD8VvrkYB1GSKMu4UFQb3-uGjyiLzw8CjtjaGB6zs,4669
|
|
26
|
-
afterpython/cli/commands/update.py,sha256=f6dzoJIiEod7j44dgnaFe-v7INVdUbopVoWPxv7-Mpo,5491
|
|
27
|
-
afterpython/cli/main.py,sha256=GMcP7bmOA1glKGPsCuOXcd-9hv2k3BGkk_ofdo8oatw,2660
|
|
28
|
-
afterpython/const.py,sha256=KsALiC1kERK9BQQdYRXSHdYosxVExxgDN7iGYMAJrZE,158
|
|
29
|
-
afterpython/cz.toml,sha256=JlenGROat8jvxvqRH6KluDs6f7w0JAy8Skd3ak7sGLY,1506
|
|
30
|
-
afterpython/main.py,sha256=w0z6mTib3u4p2HxMrk-tIJlZtur7uRaqsbE0ewlYlSs,490
|
|
31
|
-
afterpython/pcu.py,sha256=RWgPcdAFyNBVhWbQPuL1seji9uyT8Pqz-zE6jCf_Qb8,6091
|
|
32
|
-
afterpython/templates/deploy-workflow-template.yml,sha256=O3uGNg-m-nK5ZUhIPpRMqLje1uAFm4OWk7JoTbEq8H4,2365
|
|
33
|
-
afterpython/templates/release-workflow-template.yml,sha256=DpuFLo3_43rqwBjDf3XrWbYJNRdlhy7-wJFL_TxdRNE,1606
|
|
34
|
-
afterpython/templates/ruff-template.toml,sha256=_yTtZ0YPsJiCxy66ZDfYaStTJ9aXXW-JXy-KW6l2bBE,1010
|
|
35
|
-
afterpython/tools/_afterpython.py,sha256=W88GhtQADB09DV4A24GOYBeYrHsnVVzllLdWFiKgS1A,1904
|
|
36
|
-
afterpython/tools/_git.py,sha256=pOcbP_hb6db3qRlbB4Hlp7MkShkTmUefnIBU2kqoq4I,3211
|
|
37
|
-
afterpython/tools/commitizen.py,sha256=9aGXsO4tTyDs3s8qS_fiskdSabHqc9XjHwePThybJU0,1469
|
|
38
|
-
afterpython/tools/github_actions.py,sha256=M3uGLJKOCml1fQBc8W2lkZWsR5p-0UVUolFWvqf5mDo,2866
|
|
39
|
-
afterpython/tools/myst.py,sha256=w24zqWRUOLaZIC0twpGM4BF__wldmrgIvbns0FFdunA,6601
|
|
40
|
-
afterpython/tools/pre_commit.py,sha256=stXUQfR0A6nPMCSuuKO-Icjc5F2z9VsZu2mKkIW1vWI,2193
|
|
41
|
-
afterpython/tools/pyproject.py,sha256=YwJJAB3lIqYK9wt8UtL4dfCli9UN7uzi3e-vtycB0HE,2325
|
|
42
|
-
afterpython/utils.py,sha256=WzP34cA0_Mh3F_focTtk-4sSqrIZUpv7PpkPJHpUUzc,6934
|
|
43
|
-
afterpython/version.py,sha256=hihRV1S-gc1m46OaXD32ikkEkqzs-Gtq7AcAqOQV-wY,1603
|
|
44
|
-
afterpython-0.1.0.dev7.dist-info/WHEEL,sha256=YUH1mBqsx8Dh2cQG2rlcuRYUhJddG9iClegy4IgnHik,79
|
|
45
|
-
afterpython-0.1.0.dev7.dist-info/entry_points.txt,sha256=roa0PDgBueM1JPbRG0G2OSxzaN394OUL_oS9iEwVLBc,80
|
|
46
|
-
afterpython-0.1.0.dev7.dist-info/METADATA,sha256=eIAURxz9BQvYkgnlFQm9wXmiApHcOIx5JK555WhO1LY,5296
|
|
47
|
-
afterpython-0.1.0.dev7.dist-info/RECORD,,
|
|
File without changes
|