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.
Files changed (90) hide show
  1. hyperfast_uv_template-0.3.1/.copier-config.yaml +44 -0
  2. hyperfast_uv_template-0.3.1/.copier-template/.copierignore +4 -0
  3. hyperfast_uv_template-0.3.1/.copier-template/.editorconfig +29 -0
  4. hyperfast_uv_template-0.3.1/.copier-template/.envrc.jinja +16 -0
  5. hyperfast_uv_template-0.3.1/.copier-template/.gitattributes +1 -0
  6. hyperfast_uv_template-0.3.1/.copier-template/.github/dependabot.yaml +27 -0
  7. hyperfast_uv_template-0.3.1/.copier-template/.github/labels.yaml +66 -0
  8. hyperfast_uv_template-0.3.1/.copier-template/.github/release.yaml +20 -0
  9. hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if build_and_release %}lint_and_test.yaml{% endif %} +66 -0
  10. hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if build_and_release %}release-test.yaml{% endif %} +57 -0
  11. hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if build_and_release %}release.yaml{% endif %} +56 -0
  12. hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if documentaion_tool == 'jupyter-book' %}deploy-docs.yaml{% endif %}.jinja +43 -0
  13. hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if documentaion_tool == 'mkdocs' %}deploy-docs.yaml{% endif %} +40 -0
  14. hyperfast_uv_template-0.3.1/.copier-template/.github/workflows/{% if not build_and_release %}release.yaml{% endif %} +45 -0
  15. hyperfast_uv_template-0.3.1/.copier-template/.gitignore +43 -0
  16. hyperfast_uv_template-0.3.1/.copier-template/.pre-commit-config.yaml +17 -0
  17. hyperfast_uv_template-0.3.1/.copier-template/.python-version.jinja +1 -0
  18. hyperfast_uv_template-0.3.1/.copier-template/CHANGELOG.md +1 -0
  19. hyperfast_uv_template-0.3.1/.copier-template/CODE_OF_CONDUCT.md.jinja +132 -0
  20. hyperfast_uv_template-0.3.1/.copier-template/CONTRIBUTING.md.jinja +55 -0
  21. hyperfast_uv_template-0.3.1/.copier-template/Makefile.jinja +103 -0
  22. hyperfast_uv_template-0.3.1/.copier-template/README.md.jinja +52 -0
  23. hyperfast_uv_template-0.3.1/.copier-template/codecov.yaml +12 -0
  24. hyperfast_uv_template-0.3.1/.copier-template/pyproject.toml.jinja +245 -0
  25. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/_config.yml.jinja +105 -0
  26. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/_toc.yml.jinja +9 -0
  27. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/api.rst.jinja +16 -0
  28. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/assets/assets/extra/.gitkeep +0 -0
  29. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/examples.md.jinja +34 -0
  30. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/index.md.jinja +56 -0
  31. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/references.bib +2 -0
  32. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/requirements.txt +12 -0
  33. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'jupyter-book' %}book{% endif %}/usage.md +1 -0
  34. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/index.md.jinja +11 -0
  35. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/javascripts/mathjax.js +16 -0
  36. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/requirements.txt.jinja +9 -0
  37. 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
  38. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}docs{% endif %}/{% if build_and_release %}usage.md{% endif %} +1 -0
  39. hyperfast_uv_template-0.3.1/.copier-template/{% if documentaion_tool == 'mkdocs' %}mkdocs.yaml{% endif %}.jinja +98 -0
  40. hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'Apache-2.0' %}LICENSE{% endif %}.jinja +201 -0
  41. hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'CC-BY-4.0' %}LICENSE{% endif %}.jinja +395 -0
  42. hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'GPLv3' %}LICENSE{% endif %}.jinja +674 -0
  43. hyperfast_uv_template-0.3.1/.copier-template/{% if project_license == 'MIT' %}LICENSE{% endif %}.jinja +21 -0
  44. hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/__cli__.py.jinja +52 -0
  45. hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/__init__.py.jinja +28 -0
  46. hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/_version.py.jinja +16 -0
  47. 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
  48. hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}src{% endif %}/{{package_name}}/py.typed +0 -0
  49. hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}tests{% endif %}/{{package_name}}/test_cli.py.jinja +23 -0
  50. hyperfast_uv_template-0.3.1/.copier-template/{% if use_source_code_skeleton %}tests{% endif %}/{{package_name}}/test_init.py.jinja +12 -0
  51. hyperfast_uv_template-0.3.1/.copier-template/{{ _copier_conf.answers_file }}.jinja +2 -0
  52. hyperfast_uv_template-0.3.1/.copierignore +6 -0
  53. hyperfast_uv_template-0.3.1/.editorconfig +29 -0
  54. hyperfast_uv_template-0.3.1/.envrc +16 -0
  55. hyperfast_uv_template-0.3.1/.gitattributes +1 -0
  56. hyperfast_uv_template-0.3.1/.github/dependabot.yaml +27 -0
  57. hyperfast_uv_template-0.3.1/.github/labels.yaml +66 -0
  58. hyperfast_uv_template-0.3.1/.github/release.yaml +20 -0
  59. hyperfast_uv_template-0.3.1/.github/workflows/deploy-docs.yaml +40 -0
  60. hyperfast_uv_template-0.3.1/.github/workflows/lint_and_test.yaml +66 -0
  61. hyperfast_uv_template-0.3.1/.github/workflows/release-test.yaml +56 -0
  62. hyperfast_uv_template-0.3.1/.github/workflows/release.yaml +56 -0
  63. hyperfast_uv_template-0.3.1/.gitignore +43 -0
  64. hyperfast_uv_template-0.3.1/.pre-commit-config.yaml +17 -0
  65. hyperfast_uv_template-0.3.1/.python-version +1 -0
  66. hyperfast_uv_template-0.3.1/CHANGELOG.md +51 -0
  67. hyperfast_uv_template-0.3.1/CODE_OF_CONDUCT.md +132 -0
  68. hyperfast_uv_template-0.3.1/CONTRIBUTING.md +55 -0
  69. hyperfast_uv_template-0.3.1/LICENSE +21 -0
  70. hyperfast_uv_template-0.3.1/Makefile +95 -0
  71. hyperfast_uv_template-0.3.1/PKG-INFO +70 -0
  72. hyperfast_uv_template-0.3.1/README.md +46 -0
  73. hyperfast_uv_template-0.3.1/codecov.yaml +12 -0
  74. hyperfast_uv_template-0.3.1/copier.yaml +186 -0
  75. hyperfast_uv_template-0.3.1/docs/CNAME +1 -0
  76. hyperfast_uv_template-0.3.1/docs/index.md +4 -0
  77. hyperfast_uv_template-0.3.1/docs/javascripts/mathjax.js +16 -0
  78. hyperfast_uv_template-0.3.1/docs/requirements.txt +7 -0
  79. hyperfast_uv_template-0.3.1/docs/usage.md +1 -0
  80. hyperfast_uv_template-0.3.1/mkdocs.yaml +91 -0
  81. hyperfast_uv_template-0.3.1/pyproject.toml +266 -0
  82. hyperfast_uv_template-0.3.1/src/hyperfastuv/__cli__.py +52 -0
  83. hyperfast_uv_template-0.3.1/src/hyperfastuv/__init__.py +28 -0
  84. hyperfast_uv_template-0.3.1/src/hyperfastuv/_version.py +16 -0
  85. hyperfast_uv_template-0.3.1/src/hyperfastuv/conf/about/hyperfastpy.yaml +6 -0
  86. hyperfast_uv_template-0.3.1/src/hyperfastuv/conf/about/hyperfastuv.yaml +6 -0
  87. hyperfast_uv_template-0.3.1/src/hyperfastuv/py.typed +0 -0
  88. hyperfast_uv_template-0.3.1/tests/hyperfastuv/test_cli.py +23 -0
  89. hyperfast_uv_template-0.3.1/tests/hyperfastuv/test_init.py +12 -0
  90. 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,4 @@
1
+ .copierignore
2
+ CHANGELOG.md
3
+ pyproject.toml
4
+ release.yaml
@@ -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-->