hyperfast-uv-template 0.3.2__tar.gz → 0.4.0__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.
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-config.yaml +1 -1
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.envrc.jinja +13 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/workflows/{% if build_and_release %}lint_and_test.yaml{% endif %} +2 -2
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/workflows/{% if build_and_release %}release-test.yaml{% endif %} +3 -4
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/workflows/{% if build_and_release %}release.yaml{% endif %} +3 -3
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/workflows/{% if documentaion_tool == 'jupyter-book' %}deploy-docs.yaml{% endif %}.jinja +1 -1
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/workflows/{% if documentaion_tool == 'mkdocs' %}deploy-docs.yaml{% endif %} +1 -1
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/workflows/{% if not build_and_release %}release.yaml{% endif %} +2 -2
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/pyproject.toml.jinja +1 -1
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.envrc +13 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/workflows/deploy-docs.yaml +1 -1
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/workflows/lint_and_test.yaml +2 -2
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/workflows/release-test.yaml +3 -3
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/workflows/release.yaml +3 -3
- hyperfast_uv_template-0.4.0/CLAUDE.md +103 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/PKG-INFO +1 -1
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/pyproject.toml +2 -2
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/src/hyperfastuv/_version.py +1 -1
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.copierignore +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.editorconfig +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.gitattributes +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/dependabot.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/labels.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/release.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.gitignore +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.pre-commit-config.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.python-version.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/CHANGELOG.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/CODE_OF_CONDUCT.md.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/CONTRIBUTING.md.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/Makefile.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/README.md.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/codecov.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/_config.yml.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/_toc.yml.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/api.rst.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/assets/assets/extra/.gitkeep +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/examples.md.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/index.md.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/references.bib +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/requirements.txt +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/usage.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/index.md.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/javascripts/mathjax.js +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/requirements.txt.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/{% if 'github.io' not in documentation_url %}CNAME{% endif %}.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/{% if build_and_release %}usage.md{% endif %} +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if documentaion_tool == 'mkdocs' %}mkdocs.yaml{% endif %}.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if project_license == 'Apache-2.0' %}LICENSE{% endif %}.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if project_license == 'CC-BY-4.0' %}LICENSE{% endif %}.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if project_license == 'GPLv3' %}LICENSE{% endif %}.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if project_license == 'MIT' %}LICENSE{% endif %}.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/__cli__.py.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/__init__.py.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/_version.py.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/conf/about/{{package_name}}.yaml.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/py.typed +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if use_source_code_skeleton %}tests{% endif %}/{{package_name}}/test_cli.py.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{% if use_source_code_skeleton %}tests{% endif %}/{{package_name}}/test_init.py.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/{{ _copier_conf.answers_file }}.jinja +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copierignore +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.editorconfig +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.gitattributes +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/dependabot.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/labels.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/release.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.gitignore +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.pre-commit-config.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.python-version +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/CHANGELOG.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/CODE_OF_CONDUCT.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/CONTRIBUTING.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/LICENSE +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/Makefile +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/README.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/codecov.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/copier.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/docs/CNAME +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/docs/index.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/docs/javascripts/mathjax.js +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/docs/requirements.txt +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/docs/usage.md +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/mkdocs.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/src/hyperfastuv/__cli__.py +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/src/hyperfastuv/__init__.py +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/src/hyperfastuv/conf/about/hyperfastpy.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/src/hyperfastuv/conf/about/hyperfastuv.yaml +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/src/hyperfastuv/py.typed +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/tests/hyperfastuv/test_cli.py +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/tests/hyperfastuv/test_init.py +0 -0
- {hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/tox.ini +0 -0
|
@@ -12,5 +12,18 @@ else
|
|
|
12
12
|
make install
|
|
13
13
|
# shellcheck disable=SC1091
|
|
14
14
|
source "${VIRTUAL_ENV}/bin/activate"
|
|
15
|
+
python3 -m ensurepip --upgrade
|
|
15
16
|
python3 -m pip install --upgrade pip setuptools wheel
|
|
16
17
|
fi
|
|
18
|
+
# Load .env if it exists
|
|
19
|
+
if [ -f .env ]; then
|
|
20
|
+
# Load each line in .env file
|
|
21
|
+
while IFS= read -r line || [ -n "$line" ]; do
|
|
22
|
+
# Skip comments and empty lines
|
|
23
|
+
if [[ $line =~ ^[[:space:]]*# ]] || [[ -z $line ]]; then
|
|
24
|
+
continue
|
|
25
|
+
fi
|
|
26
|
+
# Export the valid environment variables
|
|
27
|
+
eval "export ${line}"
|
|
28
|
+
done < .env
|
|
29
|
+
fi
|
|
@@ -25,12 +25,12 @@ jobs:
|
|
|
25
25
|
steps:
|
|
26
26
|
# Checkout the code base #
|
|
27
27
|
- name: Checkout Code
|
|
28
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v5
|
|
29
29
|
with:
|
|
30
30
|
fetch-depth: 0
|
|
31
31
|
|
|
32
32
|
- name: Install uv
|
|
33
|
-
uses: astral-sh/setup-uv@
|
|
33
|
+
uses: astral-sh/setup-uv@v6
|
|
34
34
|
with:
|
|
35
35
|
enable-cache: true
|
|
36
36
|
|
|
@@ -12,7 +12,6 @@ jobs:
|
|
|
12
12
|
release:
|
|
13
13
|
runs-on: ubuntu-latest
|
|
14
14
|
concurrency: release
|
|
15
|
-
environment: release
|
|
16
15
|
|
|
17
16
|
permissions:
|
|
18
17
|
id-token: write
|
|
@@ -23,7 +22,7 @@ jobs:
|
|
|
23
22
|
# the branch was updated. To keep PSR working with the configured release branches,
|
|
24
23
|
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
25
24
|
- name: Setup | Checkout Repository at workflow sha
|
|
26
|
-
uses: actions/checkout@
|
|
25
|
+
uses: actions/checkout@v5
|
|
27
26
|
with:
|
|
28
27
|
fetch-depth: 0
|
|
29
28
|
ref: ${{ github.sha }}
|
|
@@ -35,7 +34,7 @@ jobs:
|
|
|
35
34
|
- name: Action | Semantic Version Release
|
|
36
35
|
id: release
|
|
37
36
|
# Adjust tag with desired version if applicable.
|
|
38
|
-
uses: python-semantic-release/python-semantic-release@
|
|
37
|
+
uses: python-semantic-release/python-semantic-release@v10.3.1
|
|
39
38
|
with:
|
|
40
39
|
build: true
|
|
41
40
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -50,7 +49,7 @@ jobs:
|
|
|
50
49
|
repository-url: https://test.pypi.org/legacy/
|
|
51
50
|
|
|
52
51
|
- name: Publish | Upload to GitHub Release Assets
|
|
53
|
-
uses: python-semantic-release/publish-action@
|
|
52
|
+
uses: python-semantic-release/publish-action@v10.3.1
|
|
54
53
|
if: steps.release.outputs.released == 'true'
|
|
55
54
|
with:
|
|
56
55
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
# the branch was updated. To keep PSR working with the configured release branches,
|
|
26
26
|
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
27
27
|
- name: Setup | Checkout Repository at workflow sha
|
|
28
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v5
|
|
29
29
|
with:
|
|
30
30
|
fetch-depth: 0
|
|
31
31
|
ref: ${{ github.sha }}
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
- name: Action | Semantic Version Release
|
|
38
38
|
id: release
|
|
39
39
|
# Adjust tag with desired version if applicable.
|
|
40
|
-
uses: python-semantic-release/python-semantic-release@
|
|
40
|
+
uses: python-semantic-release/python-semantic-release@v10.3.1
|
|
41
41
|
with:
|
|
42
42
|
build: true
|
|
43
43
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
if: steps.release.outputs.released == 'true'
|
|
50
50
|
|
|
51
51
|
- name: Publish | Upload to GitHub Release Assets
|
|
52
|
-
uses: python-semantic-release/publish-action@
|
|
52
|
+
uses: python-semantic-release/publish-action@v10.3.1
|
|
53
53
|
if: steps.release.outputs.released == 'true'
|
|
54
54
|
with:
|
|
55
55
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
# the branch was updated. To keep PSR working with the configured release branches,
|
|
26
26
|
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
27
27
|
- name: Setup | Checkout Repository at workflow sha
|
|
28
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v5
|
|
29
29
|
with:
|
|
30
30
|
fetch-depth: 0
|
|
31
31
|
ref: ${{ github.sha }}
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
- name: Action | Semantic Version Release
|
|
38
38
|
id: release
|
|
39
39
|
# Adjust tag with desired version if applicable.
|
|
40
|
-
uses: python-semantic-release/python-semantic-release@
|
|
40
|
+
uses: python-semantic-release/python-semantic-release@v10.3.1
|
|
41
41
|
with:
|
|
42
42
|
build: true
|
|
43
43
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -12,5 +12,18 @@ else
|
|
|
12
12
|
make install
|
|
13
13
|
# shellcheck disable=SC1091
|
|
14
14
|
source "${VIRTUAL_ENV}/bin/activate"
|
|
15
|
+
python3 -m ensurepip --upgrade
|
|
15
16
|
python3 -m pip install --upgrade pip setuptools wheel
|
|
16
17
|
fi
|
|
18
|
+
# Load .env if it exists
|
|
19
|
+
if [ -f .env ]; then
|
|
20
|
+
# Load each line in .env file
|
|
21
|
+
while IFS= read -r line || [ -n "$line" ]; do
|
|
22
|
+
# Skip comments and empty lines
|
|
23
|
+
if [[ $line =~ ^[[:space:]]*# ]] || [[ -z $line ]]; then
|
|
24
|
+
continue
|
|
25
|
+
fi
|
|
26
|
+
# Export the valid environment variables
|
|
27
|
+
eval "export ${line}"
|
|
28
|
+
done < .env
|
|
29
|
+
fi
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/workflows/lint_and_test.yaml
RENAMED
|
@@ -25,12 +25,12 @@ jobs:
|
|
|
25
25
|
steps:
|
|
26
26
|
# Checkout the code base #
|
|
27
27
|
- name: Checkout Code
|
|
28
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v5
|
|
29
29
|
with:
|
|
30
30
|
fetch-depth: 0
|
|
31
31
|
|
|
32
32
|
- name: Install uv
|
|
33
|
-
uses: astral-sh/setup-uv@
|
|
33
|
+
uses: astral-sh/setup-uv@v6
|
|
34
34
|
with:
|
|
35
35
|
enable-cache: true
|
|
36
36
|
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.github/workflows/release-test.yaml
RENAMED
|
@@ -22,7 +22,7 @@ jobs:
|
|
|
22
22
|
# the branch was updated. To keep PSR working with the configured release branches,
|
|
23
23
|
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
24
24
|
- name: Setup | Checkout Repository at workflow sha
|
|
25
|
-
uses: actions/checkout@
|
|
25
|
+
uses: actions/checkout@v5
|
|
26
26
|
with:
|
|
27
27
|
fetch-depth: 0
|
|
28
28
|
ref: ${{ github.sha }}
|
|
@@ -34,7 +34,7 @@ jobs:
|
|
|
34
34
|
- name: Action | Semantic Version Release
|
|
35
35
|
id: release
|
|
36
36
|
# Adjust tag with desired version if applicable.
|
|
37
|
-
uses: python-semantic-release/python-semantic-release@
|
|
37
|
+
uses: python-semantic-release/python-semantic-release@v10.3.1
|
|
38
38
|
with:
|
|
39
39
|
build: true
|
|
40
40
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
repository-url: https://test.pypi.org/legacy/
|
|
50
50
|
|
|
51
51
|
- name: Publish | Upload to GitHub Release Assets
|
|
52
|
-
uses: python-semantic-release/publish-action@
|
|
52
|
+
uses: python-semantic-release/publish-action@v10.3.1
|
|
53
53
|
if: steps.release.outputs.released == 'true'
|
|
54
54
|
with:
|
|
55
55
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
# the branch was updated. To keep PSR working with the configured release branches,
|
|
26
26
|
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
27
27
|
- name: Setup | Checkout Repository at workflow sha
|
|
28
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v5
|
|
29
29
|
with:
|
|
30
30
|
fetch-depth: 0
|
|
31
31
|
ref: ${{ github.sha }}
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
- name: Action | Semantic Version Release
|
|
38
38
|
id: release
|
|
39
39
|
# Adjust tag with desired version if applicable.
|
|
40
|
-
uses: python-semantic-release/python-semantic-release@
|
|
40
|
+
uses: python-semantic-release/python-semantic-release@v10.3.1
|
|
41
41
|
with:
|
|
42
42
|
build: true
|
|
43
43
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
if: steps.release.outputs.released == 'true'
|
|
50
50
|
|
|
51
51
|
- name: Publish | Upload to GitHub Release Assets
|
|
52
|
-
uses: python-semantic-release/publish-action@
|
|
52
|
+
uses: python-semantic-release/publish-action@v10.3.1
|
|
53
53
|
if: steps.release.outputs.released == 'true'
|
|
54
54
|
with:
|
|
55
55
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
### Development Setup
|
|
8
|
+
```bash
|
|
9
|
+
make install # Install virtual environment with uv and pre-commit hooks
|
|
10
|
+
uv sync # Sync dependencies
|
|
11
|
+
uv run pre-commit install # Install pre-commit hooks manually
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Code Quality
|
|
15
|
+
```bash
|
|
16
|
+
make check # Run all code quality checks (lint, type check, dependency check)
|
|
17
|
+
uv run ruff check src/ # Run linter only
|
|
18
|
+
uv run ruff format src/ # Format code with ruff
|
|
19
|
+
uv run mypy src/ # Run type checking only
|
|
20
|
+
uv run deptry . # Check for obsolete dependencies
|
|
21
|
+
uv run pre-commit run -a # Run all pre-commit hooks
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Testing
|
|
25
|
+
```bash
|
|
26
|
+
make test # Run all tests with coverage (outputs to tests/pytest-coverage.txt)
|
|
27
|
+
uv run pytest # Run tests without coverage
|
|
28
|
+
uv run pytest tests/hyperfastuv/test_cli.py # Run specific test file
|
|
29
|
+
uv run pytest -k "test_function_name" # Run specific test by name
|
|
30
|
+
uv run pytest --cov --cov-report=xml # Generate coverage.xml for CI
|
|
31
|
+
uv run tox-uv # Test across Python 3.9-3.13
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Building & Publishing
|
|
35
|
+
```bash
|
|
36
|
+
make build # Build wheel file using hatchling
|
|
37
|
+
make publish # Publish to PyPI (requires credentials)
|
|
38
|
+
uvx twine upload dist/* # Manual upload to PyPI
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Documentation
|
|
42
|
+
```bash
|
|
43
|
+
make docs # Build and serve documentation locally (http://127.0.0.1:8000)
|
|
44
|
+
make docs-test # Test documentation build without serving
|
|
45
|
+
uv run mkdocs build # Build static docs to site/
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Template Management (Copier)
|
|
49
|
+
```bash
|
|
50
|
+
make init-project # Initialize new project from this template
|
|
51
|
+
make reinit-project # Update existing project from template
|
|
52
|
+
copier copy --trust --answers-file .copier-config.yaml gh:entelecheia/hyperfast-uv-template .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Architecture
|
|
56
|
+
|
|
57
|
+
This is a Copier-based Python package template designed for rapid project bootstrapping with modern tooling.
|
|
58
|
+
|
|
59
|
+
### Project Purpose
|
|
60
|
+
This repository serves as a **template generator** for Python projects. It uses Copier to create customized project scaffolds based on user inputs. The generated projects include pre-configured development tools, CI/CD pipelines, and documentation.
|
|
61
|
+
|
|
62
|
+
### Package Structure
|
|
63
|
+
- **src/hyperfastuv/**: Template demonstration package
|
|
64
|
+
- `__init__.py`: Package initialization with `get_version()` function
|
|
65
|
+
- `__cli__.py`: Click-based CLI with greeting functionality
|
|
66
|
+
- `_version.py`: Semantic versioning managed by python-semantic-release
|
|
67
|
+
- `conf/about/`: YAML configuration files for package metadata
|
|
68
|
+
|
|
69
|
+
### Template System
|
|
70
|
+
- **copier.yaml**: Template configuration with questions for project customization
|
|
71
|
+
- **.copier-template/**: Template source files (Jinja2 templates)
|
|
72
|
+
- **.copier-config.yaml**: Saved answers for template regeneration
|
|
73
|
+
- Supports nested templates via `code_template_source` parameter
|
|
74
|
+
|
|
75
|
+
### Development Stack
|
|
76
|
+
- **Package Manager**: uv (high-performance Python package installer)
|
|
77
|
+
- **Build System**: Hatchling with wheel distribution
|
|
78
|
+
- **Testing**: pytest with coverage reporting, tox for multi-version testing
|
|
79
|
+
- **Linting/Formatting**: Ruff (replaces black, isort, flake8)
|
|
80
|
+
- **Type Checking**: mypy with strict configuration
|
|
81
|
+
- **Pre-commit**: Automated checks for YAML, TOML, merge conflicts
|
|
82
|
+
- **Documentation**: MkDocs Material with mkdocstrings for API docs
|
|
83
|
+
- **CI/CD**: GitHub Actions workflows for testing, releasing, and docs deployment
|
|
84
|
+
|
|
85
|
+
### Key Configuration Files
|
|
86
|
+
- `pyproject.toml`: Unified configuration for all tools (PEP 621 compliant)
|
|
87
|
+
- `uv.lock`: Reproducible dependency resolution
|
|
88
|
+
- `.python-version`: Python 3.11 as default
|
|
89
|
+
- `tox.ini`: Test matrix for Python 3.9-3.13
|
|
90
|
+
- `.pre-commit-config.yaml`: Git hooks for code quality
|
|
91
|
+
|
|
92
|
+
### CI/CD Workflows
|
|
93
|
+
- **lint_and_test.yaml**: Runs on push to main, executes checks and tests
|
|
94
|
+
- **release.yaml**: Semantic release on main branch merges
|
|
95
|
+
- **deploy-docs.yaml**: Publishes documentation to GitHub Pages
|
|
96
|
+
|
|
97
|
+
### Release Process
|
|
98
|
+
Uses python-semantic-release with Angular commit convention:
|
|
99
|
+
- `feat:` triggers minor version bump
|
|
100
|
+
- `fix:` or `perf:` triggers patch version bump
|
|
101
|
+
- `BREAKING CHANGE:` triggers major version bump
|
|
102
|
+
- Automatically updates version in `pyproject.toml` and `_version.py`
|
|
103
|
+
- Creates GitHub releases with changelog
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hyperfast-uv-template
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Streamlining Python Project Development with a Comprehensive Toolset for Quality, Efficiency, and Maintainability
|
|
5
5
|
Project-URL: Homepage, https://hyperfast-uv.entelecheia.ai
|
|
6
6
|
Project-URL: Repository, https://github.com/entelecheia/hyperfast-uv-template
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "hyperfast-uv-template"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.0"
|
|
4
4
|
description = "Streamlining Python Project Development with a Comprehensive Toolset for Quality, Efficiency, and Maintainability"
|
|
5
5
|
authors = [{ name = "Young Joon Lee", email = "entelecheia@hotmail.com" }]
|
|
6
6
|
license = "MIT"
|
|
@@ -199,7 +199,7 @@ branch = true
|
|
|
199
199
|
source = ["src/hyperfastuv"]
|
|
200
200
|
|
|
201
201
|
[tool.deptry]
|
|
202
|
-
ignore = ["DEP001"]
|
|
202
|
+
ignore = ["DEP001", "DEP003"]
|
|
203
203
|
|
|
204
204
|
[tool.semantic_release]
|
|
205
205
|
# General settings
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/dependabot.yaml
RENAMED
|
File without changes
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/labels.yaml
RENAMED
|
File without changes
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.github/release.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.pre-commit-config.yaml
RENAMED
|
File without changes
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/.python-version.jinja
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/CONTRIBUTING.md.jinja
RENAMED
|
File without changes
|
|
File without changes
|
{hyperfast_uv_template-0.3.2 → hyperfast_uv_template-0.4.0}/.copier-template/README.md.jinja
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|