hyperfast-uv-template 0.3.1__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.1/.copier-config.yaml +44 -0
- hyperfast_uv_template-0.3.1/.copier-template/.copierignore +4 -0
- hyperfast_uv_template-0.3.1/.copier-template/.editorconfig +29 -0
- hyperfast_uv_template-0.3.1/.copier-template/.envrc.jinja +16 -0
- hyperfast_uv_template-0.3.1/.copier-template/.gitattributes +1 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/dependabot.yaml +27 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/labels.yaml +66 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/release.yaml +20 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if build_and_release %}lint_and_test.yaml{% endif %} +66 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if build_and_release %}release-test.yaml{% endif %} +57 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if build_and_release %}release.yaml{% endif %} +56 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if documentaion_tool == 'jupyter-book' %}deploy-docs.yaml{% endif %}.jinja +43 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if documentaion_tool == 'mkdocs' %}deploy-docs.yaml{% endif %} +40 -0
- hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if not build_and_release %}release.yaml{% endif %} +45 -0
- hyperfast_uv_template-0.3.1/.copier-template/.gitignore +43 -0
- hyperfast_uv_template-0.3.1/.copier-template/.pre-commit-config.yaml +17 -0
- hyperfast_uv_template-0.3.1/.copier-template/.python-version.jinja +1 -0
- hyperfast_uv_template-0.3.1/.copier-template/CHANGELOG.md +1 -0
- hyperfast_uv_template-0.3.1/.copier-template/CODE_OF_CONDUCT.md.jinja +132 -0
- hyperfast_uv_template-0.3.1/.copier-template/CONTRIBUTING.md.jinja +55 -0
- hyperfast_uv_template-0.3.1/.copier-template/Makefile.jinja +103 -0
- hyperfast_uv_template-0.3.1/.copier-template/README.md.jinja +52 -0
- hyperfast_uv_template-0.3.1/.copier-template/codecov.yaml +12 -0
- hyperfast_uv_template-0.3.1/.copier-template/pyproject.toml.jinja +245 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/_config.yml.jinja +105 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/_toc.yml.jinja +9 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/api.rst.jinja +16 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/assets/assets/extra/.gitkeep +0 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/examples.md.jinja +34 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/index.md.jinja +56 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/references.bib +2 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/requirements.txt +12 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/usage.md +1 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/index.md.jinja +11 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/javascripts/mathjax.js +16 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/requirements.txt.jinja +9 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/{% if 'github.io' not in documentation_url %}CNAME{% endif %}.jinja +1 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/{% if build_and_release %}usage.md{% endif %} +1 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}mkdocs.yaml{% endif %}.jinja +98 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'Apache-2.0' %}LICENSE{% endif %}.jinja +201 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'CC-BY-4.0' %}LICENSE{% endif %}.jinja +395 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'GPLv3' %}LICENSE{% endif %}.jinja +674 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'MIT' %}LICENSE{% endif %}.jinja +21 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/__cli__.py.jinja +52 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/__init__.py.jinja +28 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/_version.py.jinja +16 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/conf/about/{{package_name}}.yaml.jinja +6 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/py.typed +0 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}tests{% endif %}/{{package_name}}/test_cli.py.jinja +23 -0
- hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}tests{% endif %}/{{package_name}}/test_init.py.jinja +12 -0
- hyperfast_uv_template-0.3.1/.copier-template/{{ _copier_conf.answers_file }}.jinja +2 -0
- hyperfast_uv_template-0.3.1/.copierignore +6 -0
- hyperfast_uv_template-0.3.1/.editorconfig +29 -0
- hyperfast_uv_template-0.3.1/.envrc +16 -0
- hyperfast_uv_template-0.3.1/.gitattributes +1 -0
- hyperfast_uv_template-0.3.1/.github/dependabot.yaml +27 -0
- hyperfast_uv_template-0.3.1/.github/labels.yaml +66 -0
- hyperfast_uv_template-0.3.1/.github/release.yaml +20 -0
- hyperfast_uv_template-0.3.1/.github/workflows/deploy-docs.yaml +40 -0
- hyperfast_uv_template-0.3.1/.github/workflows/lint_and_test.yaml +66 -0
- hyperfast_uv_template-0.3.1/.github/workflows/release-test.yaml +56 -0
- hyperfast_uv_template-0.3.1/.github/workflows/release.yaml +56 -0
- hyperfast_uv_template-0.3.1/.gitignore +43 -0
- hyperfast_uv_template-0.3.1/.pre-commit-config.yaml +17 -0
- hyperfast_uv_template-0.3.1/.python-version +1 -0
- hyperfast_uv_template-0.3.1/CHANGELOG.md +51 -0
- hyperfast_uv_template-0.3.1/CODE_OF_CONDUCT.md +132 -0
- hyperfast_uv_template-0.3.1/CONTRIBUTING.md +55 -0
- hyperfast_uv_template-0.3.1/LICENSE +21 -0
- hyperfast_uv_template-0.3.1/Makefile +95 -0
- hyperfast_uv_template-0.3.1/PKG-INFO +70 -0
- hyperfast_uv_template-0.3.1/README.md +46 -0
- hyperfast_uv_template-0.3.1/codecov.yaml +12 -0
- hyperfast_uv_template-0.3.1/copier.yaml +186 -0
- hyperfast_uv_template-0.3.1/docs/CNAME +1 -0
- hyperfast_uv_template-0.3.1/docs/index.md +4 -0
- hyperfast_uv_template-0.3.1/docs/javascripts/mathjax.js +16 -0
- hyperfast_uv_template-0.3.1/docs/requirements.txt +7 -0
- hyperfast_uv_template-0.3.1/docs/usage.md +1 -0
- hyperfast_uv_template-0.3.1/mkdocs.yaml +91 -0
- hyperfast_uv_template-0.3.1/pyproject.toml +266 -0
- hyperfast_uv_template-0.3.1/src/hyperfastuv/__cli__.py +52 -0
- hyperfast_uv_template-0.3.1/src/hyperfastuv/__init__.py +28 -0
- hyperfast_uv_template-0.3.1/src/hyperfastuv/_version.py +16 -0
- hyperfast_uv_template-0.3.1/src/hyperfastuv/conf/about/hyperfastpy.yaml +6 -0
- hyperfast_uv_template-0.3.1/src/hyperfastuv/conf/about/hyperfastuv.yaml +6 -0
- hyperfast_uv_template-0.3.1/src/hyperfastuv/py.typed +0 -0
- hyperfast_uv_template-0.3.1/tests/hyperfastuv/test_cli.py +23 -0
- hyperfast_uv_template-0.3.1/tests/hyperfastuv/test_init.py +12 -0
- hyperfast_uv_template-0.3.1/tox.ini +19 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Changes here will be overwritten by Copier; do NOT edit manually
|
|
2
|
+
_commit: v0.2.0-1-gc667855
|
|
3
|
+
_src_path: .
|
|
4
|
+
author: Young Joon Lee
|
|
5
|
+
build_and_release: true
|
|
6
|
+
code_template_answers_file: .copier-code-config.yaml
|
|
7
|
+
code_template_source: ''
|
|
8
|
+
codecov_graph_token: 29NXUNQUBU
|
|
9
|
+
copyright_year: 2023
|
|
10
|
+
documentaion_tool: mkdocs
|
|
11
|
+
documentation_url: https://hyperfast-uv.entelecheia.ai
|
|
12
|
+
email: entelecheia@hotmail.com
|
|
13
|
+
favicon_path: https://assets.entelecheia.ai/favicon.png
|
|
14
|
+
friendly_name: Hyperfast UV Template
|
|
15
|
+
github_repo_name: hyperfast-uv-template
|
|
16
|
+
github_username: entelecheia
|
|
17
|
+
google_analytics_id: G-0K77490FJT
|
|
18
|
+
logo_path: https://assets.entelecheia.ai/logo.png
|
|
19
|
+
main_branch: main
|
|
20
|
+
open_link: true
|
|
21
|
+
package_name: hyperfastuv
|
|
22
|
+
package_scripts:
|
|
23
|
+
- hyperfastuv = 'hyperfastuv.__cli__:main'
|
|
24
|
+
project_description: The Hyperfast UV Template is a powerful and comprehensive solution
|
|
25
|
+
designed to accelerate the development and maintenance of high-quality Python
|
|
26
|
+
projects. By incorporating industry best practices and automating key aspects
|
|
27
|
+
such as dependency management, releases, code formatting, testing, and documentation,
|
|
28
|
+
this template streamlines the entire development process. It ensures code quality
|
|
29
|
+
through continuous integration, coverage reporting, linting, and static type-checking
|
|
30
|
+
while providing seamless support for Conventional Commits and Semantic Versioning.
|
|
31
|
+
With the Hyperfast UV Template, developers can efficiently create and manage Python
|
|
32
|
+
projects, focusing on their core functionality while enjoying a robust, well-organized,
|
|
33
|
+
and maintainable codebase.
|
|
34
|
+
project_license: MIT
|
|
35
|
+
project_name: hyperfast-uv-template
|
|
36
|
+
project_short_description: Streamlining Python Project Development with a Comprehensive
|
|
37
|
+
Toolset for Quality, Efficiency, and Maintainability
|
|
38
|
+
python_version: '3.11'
|
|
39
|
+
upload_to_release: true
|
|
40
|
+
upload_to_repository: true
|
|
41
|
+
use_launch_buttons: true
|
|
42
|
+
use_source_code_skeleton: true
|
|
43
|
+
uv_version: latest
|
|
44
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Check http://editorconfig.org for more information
|
|
2
|
+
|
|
3
|
+
# top-most .editorconfig file
|
|
4
|
+
root = true
|
|
5
|
+
max_line_length = 120
|
|
6
|
+
|
|
7
|
+
# Unix-style newlines with a newline ending every file
|
|
8
|
+
[*]
|
|
9
|
+
end_of_line = lf
|
|
10
|
+
insert_final_newline = true
|
|
11
|
+
charset = utf-8
|
|
12
|
+
trim_trailing_whitespace = true
|
|
13
|
+
indent_style = space
|
|
14
|
+
|
|
15
|
+
[*.py]
|
|
16
|
+
profile = black
|
|
17
|
+
|
|
18
|
+
[Makefile]
|
|
19
|
+
indent_style = tab
|
|
20
|
+
|
|
21
|
+
[*.md]
|
|
22
|
+
trim_trailing_whitespace = false
|
|
23
|
+
|
|
24
|
+
[*.{yaml,yml}]
|
|
25
|
+
indent_size = 2
|
|
26
|
+
|
|
27
|
+
[*.json]
|
|
28
|
+
indent_style = space
|
|
29
|
+
indent_size = 4
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
export PYTHON_KEYRING_BACKEND="keyring.backends.null.Keyring"
|
|
3
|
+
PROJECT_NAME=$(basename "$(pwd)")
|
|
4
|
+
export PROJECT_NAME
|
|
5
|
+
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
export PROJECT_ROOT
|
|
7
|
+
VIRTUAL_ENV="./.venv"
|
|
8
|
+
if [ -e "${VIRTUAL_ENV}/bin/activate" ]; then
|
|
9
|
+
# shellcheck disable=SC1091
|
|
10
|
+
source "${VIRTUAL_ENV}/bin/activate"
|
|
11
|
+
else
|
|
12
|
+
make install
|
|
13
|
+
# shellcheck disable=SC1091
|
|
14
|
+
source "${VIRTUAL_ENV}/bin/activate"
|
|
15
|
+
python3 -m pip install --upgrade pip setuptools wheel
|
|
16
|
+
fi
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* text=auto eol=lf
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for all configuration options:
|
|
4
|
+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
5
|
+
|
|
6
|
+
version: 2
|
|
7
|
+
updates:
|
|
8
|
+
- package-ecosystem: "github-actions"
|
|
9
|
+
directory: "/"
|
|
10
|
+
schedule:
|
|
11
|
+
interval: "daily"
|
|
12
|
+
time: "03:00"
|
|
13
|
+
timezone: "Asia/Seoul"
|
|
14
|
+
labels:
|
|
15
|
+
- ":game_die: dependencies"
|
|
16
|
+
- ":robot: bot"
|
|
17
|
+
- package-ecosystem: "pip"
|
|
18
|
+
directory: "/"
|
|
19
|
+
schedule:
|
|
20
|
+
interval: "daily"
|
|
21
|
+
time: "03:00"
|
|
22
|
+
timezone: "Asia/Seoul"
|
|
23
|
+
allow:
|
|
24
|
+
- dependency-type: "production"
|
|
25
|
+
labels:
|
|
26
|
+
- ":game_die: dependencies"
|
|
27
|
+
- ":robot: bot"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Labels names are important as they are used by Release Drafter to decide
|
|
3
|
+
# regarding where to record them in changelog or if to skip them.
|
|
4
|
+
#
|
|
5
|
+
# The repository labels will be automatically configured using this file and
|
|
6
|
+
# the GitHub Action https://github.com/marketplace/actions/github-labeler.
|
|
7
|
+
- name: breaking
|
|
8
|
+
description: Breaking Changes
|
|
9
|
+
color: bfd4f2
|
|
10
|
+
- name: bug
|
|
11
|
+
description: Something isn't working
|
|
12
|
+
color: d73a4a
|
|
13
|
+
- name: build
|
|
14
|
+
description: Build System and Dependencies
|
|
15
|
+
color: bfdadc
|
|
16
|
+
- name: ci
|
|
17
|
+
description: Continuous Integration
|
|
18
|
+
color: 4a97d6
|
|
19
|
+
- name: dependencies
|
|
20
|
+
description: Pull requests that update a dependency file
|
|
21
|
+
color: 0366d6
|
|
22
|
+
- name: documentation
|
|
23
|
+
description: Improvements or additions to documentation
|
|
24
|
+
color: 0075ca
|
|
25
|
+
- name: duplicate
|
|
26
|
+
description: This issue or pull request already exists
|
|
27
|
+
color: cfd3d7
|
|
28
|
+
- name: enhancement
|
|
29
|
+
description: New feature or request
|
|
30
|
+
color: a2eeef
|
|
31
|
+
- name: github_actions
|
|
32
|
+
description: Pull requests that update Github_actions code
|
|
33
|
+
color: "000000"
|
|
34
|
+
- name: good first issue
|
|
35
|
+
description: Good for newcomers
|
|
36
|
+
color: 7057ff
|
|
37
|
+
- name: help wanted
|
|
38
|
+
description: Extra attention is needed
|
|
39
|
+
color: 008672
|
|
40
|
+
- name: invalid
|
|
41
|
+
description: This doesn't seem right
|
|
42
|
+
color: e4e669
|
|
43
|
+
- name: performance
|
|
44
|
+
description: Performance
|
|
45
|
+
color: "016175"
|
|
46
|
+
- name: python
|
|
47
|
+
description: Pull requests that update Python code
|
|
48
|
+
color: 2b67c6
|
|
49
|
+
- name: question
|
|
50
|
+
description: Further information is requested
|
|
51
|
+
color: d876e3
|
|
52
|
+
- name: refactoring
|
|
53
|
+
description: Refactoring
|
|
54
|
+
color: ef67c4
|
|
55
|
+
- name: removal
|
|
56
|
+
description: Removals and Deprecations
|
|
57
|
+
color: 9ae7ea
|
|
58
|
+
- name: style
|
|
59
|
+
description: Style
|
|
60
|
+
color: c120e5
|
|
61
|
+
- name: testing
|
|
62
|
+
description: Testing
|
|
63
|
+
color: b1fc6f
|
|
64
|
+
- name: wontfix
|
|
65
|
+
description: This will not be worked on
|
|
66
|
+
color: ffffff
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
changelog:
|
|
3
|
+
exclude:
|
|
4
|
+
labels:
|
|
5
|
+
- ignore-for-release
|
|
6
|
+
authors:
|
|
7
|
+
- octocat
|
|
8
|
+
categories:
|
|
9
|
+
- title: Breaking Changes 🛠
|
|
10
|
+
labels:
|
|
11
|
+
- breaking
|
|
12
|
+
- title: Exciting New Features 🎉
|
|
13
|
+
labels:
|
|
14
|
+
- feature
|
|
15
|
+
- title: Fixes 🔧
|
|
16
|
+
labels:
|
|
17
|
+
- fix
|
|
18
|
+
- title: Other Changes
|
|
19
|
+
labels:
|
|
20
|
+
- "*"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lint & test
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
workflow_call:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- "main"
|
|
10
|
+
paths:
|
|
11
|
+
- "src/**"
|
|
12
|
+
- "tests/**"
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
build:
|
|
16
|
+
# Name the Job
|
|
17
|
+
name: test-code-base
|
|
18
|
+
# Set the agent to run on
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
strategy:
|
|
21
|
+
matrix:
|
|
22
|
+
os: [ubuntu-latest]
|
|
23
|
+
python-version: [3.9]
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
# Checkout the code base #
|
|
27
|
+
- name: Checkout Code
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
fetch-depth: 0
|
|
31
|
+
|
|
32
|
+
- name: Install uv
|
|
33
|
+
uses: astral-sh/setup-uv@v5
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
|
|
37
|
+
- name: "Set up Python"
|
|
38
|
+
uses: actions/setup-python@v5
|
|
39
|
+
with:
|
|
40
|
+
python-version-file: ".python-version"
|
|
41
|
+
|
|
42
|
+
- name: Run checks
|
|
43
|
+
run: |
|
|
44
|
+
set -o pipefail
|
|
45
|
+
make check
|
|
46
|
+
|
|
47
|
+
- name: Run unit-tests
|
|
48
|
+
run: |
|
|
49
|
+
set -o pipefail
|
|
50
|
+
make test
|
|
51
|
+
|
|
52
|
+
- name: Pytest coverage GitHub summary
|
|
53
|
+
run: |
|
|
54
|
+
set -o pipefail
|
|
55
|
+
echo '# Coverage report' >> $GITHUB_STEP_SUMMARY
|
|
56
|
+
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
57
|
+
cat tests/pytest-coverage.txt >> $GITHUB_STEP_SUMMARY
|
|
58
|
+
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
59
|
+
echo '\n\n\n'
|
|
60
|
+
|
|
61
|
+
- name: Upload coverage reports to Codecov
|
|
62
|
+
uses: codecov/codecov-action@v5
|
|
63
|
+
with:
|
|
64
|
+
token: ${{ secrets.CODECOV_TOKEN }} # required
|
|
65
|
+
fail_ci_if_error: false # optional (default = false)
|
|
66
|
+
verbose: true # optional (default = false)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: semantic-release-test
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
workflow_call:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- test-release*
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
release:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
concurrency: release
|
|
15
|
+
environment: release
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
id-token: write
|
|
19
|
+
contents: write
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
# Note: we need to checkout the repository at the workflow sha in case during the workflow
|
|
23
|
+
# the branch was updated. To keep PSR working with the configured release branches,
|
|
24
|
+
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
25
|
+
- name: Setup | Checkout Repository at workflow sha
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 0
|
|
29
|
+
ref: ${{ github.sha }}
|
|
30
|
+
|
|
31
|
+
- name: Setup | Force correct release branch on workflow sha
|
|
32
|
+
run: |
|
|
33
|
+
git checkout -B ${{ github.ref_name }} ${{ github.sha }}
|
|
34
|
+
|
|
35
|
+
- name: Action | Semantic Version Release
|
|
36
|
+
id: release
|
|
37
|
+
# Adjust tag with desired version if applicable.
|
|
38
|
+
uses: python-semantic-release/python-semantic-release@v9.17.0
|
|
39
|
+
with:
|
|
40
|
+
build: true
|
|
41
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
42
|
+
git_committer_name: "github-actions"
|
|
43
|
+
git_committer_email: "actions@users.noreply.github.com"
|
|
44
|
+
|
|
45
|
+
- name: Publish | Upload package to TestPyPI
|
|
46
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
47
|
+
if: steps.release.outputs.released == 'true'
|
|
48
|
+
with:
|
|
49
|
+
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
|
|
50
|
+
repository-url: https://test.pypi.org/legacy/
|
|
51
|
+
|
|
52
|
+
- name: Publish | Upload to GitHub Release Assets
|
|
53
|
+
uses: python-semantic-release/publish-action@v9.17.0
|
|
54
|
+
if: steps.release.outputs.released == 'true'
|
|
55
|
+
with:
|
|
56
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
57
|
+
tag: ${{ steps.release.outputs.tag }}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: semantic-release
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
workflow_call:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- release*
|
|
10
|
+
paths:
|
|
11
|
+
- "src/**"
|
|
12
|
+
- "pyproject.toml"
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
release:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
concurrency: release
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
id-token: write
|
|
21
|
+
contents: write
|
|
22
|
+
|
|
23
|
+
steps:
|
|
24
|
+
# Note: we need to checkout the repository at the workflow sha in case during the workflow
|
|
25
|
+
# the branch was updated. To keep PSR working with the configured release branches,
|
|
26
|
+
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
27
|
+
- name: Setup | Checkout Repository at workflow sha
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
fetch-depth: 0
|
|
31
|
+
ref: ${{ github.sha }}
|
|
32
|
+
|
|
33
|
+
- name: Setup | Force correct release branch on workflow sha
|
|
34
|
+
run: |
|
|
35
|
+
git checkout -B ${{ github.ref_name }} ${{ github.sha }}
|
|
36
|
+
|
|
37
|
+
- name: Action | Semantic Version Release
|
|
38
|
+
id: release
|
|
39
|
+
# Adjust tag with desired version if applicable.
|
|
40
|
+
uses: python-semantic-release/python-semantic-release@v9.17.0
|
|
41
|
+
with:
|
|
42
|
+
build: true
|
|
43
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
44
|
+
git_committer_name: "github-actions"
|
|
45
|
+
git_committer_email: "actions@users.noreply.github.com"
|
|
46
|
+
|
|
47
|
+
- name: Publish | Upload package to PyPI
|
|
48
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
49
|
+
if: steps.release.outputs.released == 'true'
|
|
50
|
+
|
|
51
|
+
- name: Publish | Upload to GitHub Release Assets
|
|
52
|
+
uses: python-semantic-release/publish-action@v9.17.0
|
|
53
|
+
if: steps.release.outputs.released == 'true'
|
|
54
|
+
with:
|
|
55
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
56
|
+
tag: ${{ steps.release.outputs.tag }}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy-docs
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
# Paths can be used to only trigger actions when you have edited certain files, such as a file within the /docs directory
|
|
10
|
+
paths:
|
|
11
|
+
- "book/**"
|
|
12
|
+
- ".github/workflows/deploy-docs.yaml"
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: write
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
deploy:
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- uses: actions/setup-python@v5
|
|
24
|
+
with:
|
|
25
|
+
python-version: 3.9
|
|
26
|
+
|
|
27
|
+
# install the source code
|
|
28
|
+
- name: Install the source code
|
|
29
|
+
run: pip install .
|
|
30
|
+
|
|
31
|
+
# Build the book
|
|
32
|
+
- name: Build the book
|
|
33
|
+
run: |
|
|
34
|
+
pip install -r book/requirements.txt
|
|
35
|
+
jupyter-book build book
|
|
36
|
+
|
|
37
|
+
# Deploy the book's HTML to gh-pages branch
|
|
38
|
+
- name: GitHub Pages action
|
|
39
|
+
uses: peaceiris/actions-gh-pages@v4
|
|
40
|
+
with:
|
|
41
|
+
github_token: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
|
|
42
|
+
publish_dir: book/_build/html
|
|
43
|
+
cname: {% if 'github.io' not in documentation_url %}{{ documentation_url|replace('https://', '')|replace('http://', '') }}{% endif %}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy-docs
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
# Paths can be used to only trigger actions when you have edited certain files, such as a file within the /docs directory
|
|
10
|
+
paths:
|
|
11
|
+
- "README.md"
|
|
12
|
+
- "mkdocs.yaml"
|
|
13
|
+
- "docs/**.md"
|
|
14
|
+
- "docs/images/**"
|
|
15
|
+
- ".github/workflows/deploy-docs.yaml"
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
contents: write
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
deploy:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v4
|
|
25
|
+
|
|
26
|
+
- uses: actions/setup-python@v5
|
|
27
|
+
with:
|
|
28
|
+
python-version: 3.9
|
|
29
|
+
|
|
30
|
+
# install the source code
|
|
31
|
+
- name: Install the source code
|
|
32
|
+
run: pip install .
|
|
33
|
+
|
|
34
|
+
- uses: actions/cache@v4
|
|
35
|
+
with:
|
|
36
|
+
key: ${{ github.ref }}
|
|
37
|
+
path: .cache
|
|
38
|
+
- run: |
|
|
39
|
+
pip install -r docs/requirements.txt
|
|
40
|
+
mkdocs gh-deploy --force
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: semantic-release
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
workflow_call:
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
paths:
|
|
11
|
+
- 'src/**'
|
|
12
|
+
- 'pyproject.toml'
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
release:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
concurrency: release
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
id-token: write
|
|
21
|
+
contents: write
|
|
22
|
+
|
|
23
|
+
steps:
|
|
24
|
+
# Note: we need to checkout the repository at the workflow sha in case during the workflow
|
|
25
|
+
# the branch was updated. To keep PSR working with the configured release branches,
|
|
26
|
+
# we force a checkout of the desired release branch but at the workflow sha HEAD.
|
|
27
|
+
- name: Setup | Checkout Repository at workflow sha
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
with:
|
|
30
|
+
fetch-depth: 0
|
|
31
|
+
ref: ${{ github.sha }}
|
|
32
|
+
|
|
33
|
+
- name: Setup | Force correct release branch on workflow sha
|
|
34
|
+
run: |
|
|
35
|
+
git checkout -B ${{ github.ref_name }} ${{ github.sha }}
|
|
36
|
+
|
|
37
|
+
- name: Action | Semantic Version Release
|
|
38
|
+
id: release
|
|
39
|
+
# Adjust tag with desired version if applicable.
|
|
40
|
+
uses: python-semantic-release/python-semantic-release@v9.12.0
|
|
41
|
+
with:
|
|
42
|
+
build: true
|
|
43
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
44
|
+
git_committer_name: "github-actions"
|
|
45
|
+
git_committer_email: "actions@users.noreply.github.com"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# working directory
|
|
2
|
+
workspace/
|
|
3
|
+
tmp/
|
|
4
|
+
|
|
5
|
+
# hypothesis: https://github.com/HypothesisWorks/hypothesis
|
|
6
|
+
.hypothesis/
|
|
7
|
+
.vscode/
|
|
8
|
+
|
|
9
|
+
# Ignore node_modules directory
|
|
10
|
+
node_modules/
|
|
11
|
+
|
|
12
|
+
# Jupyter Notebook
|
|
13
|
+
_build/
|
|
14
|
+
_autosummary/
|
|
15
|
+
.ipynb_checkpoints/
|
|
16
|
+
|
|
17
|
+
# MkDocs
|
|
18
|
+
site/
|
|
19
|
+
|
|
20
|
+
# Python
|
|
21
|
+
*.py[cod]
|
|
22
|
+
__pycache__/
|
|
23
|
+
dist/
|
|
24
|
+
.tox/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
*.egg
|
|
27
|
+
pytest_cache/
|
|
28
|
+
pytest.xml
|
|
29
|
+
.mypy_cache/
|
|
30
|
+
.venv/
|
|
31
|
+
|
|
32
|
+
# Coverage
|
|
33
|
+
.coverage
|
|
34
|
+
.coverage.*
|
|
35
|
+
.cache
|
|
36
|
+
nosetests.xml
|
|
37
|
+
coverage.xml
|
|
38
|
+
*.cover
|
|
39
|
+
htmlcov/
|
|
40
|
+
pytest-coverage.*
|
|
41
|
+
|
|
42
|
+
# UV lock file
|
|
43
|
+
uv.lock
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: "v4.4.0"
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-case-conflict
|
|
6
|
+
- id: check-merge-conflict
|
|
7
|
+
- id: check-toml
|
|
8
|
+
- id: check-yaml
|
|
9
|
+
# - id: end-of-file-fixer
|
|
10
|
+
# - id: trailing-whitespace
|
|
11
|
+
|
|
12
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
13
|
+
rev: "v0.6.3"
|
|
14
|
+
hooks:
|
|
15
|
+
- id: ruff
|
|
16
|
+
args: [--exit-non-zero-on-fix]
|
|
17
|
+
- id: ruff-format
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{ python_version }}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!--next-version-placeholder-->
|