python-template-project 0.1.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.
Files changed (66) hide show
  1. python_template_project-0.1.0/.github/FUNDING.yml +12 -0
  2. python_template_project-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  3. python_template_project-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. python_template_project-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +15 -0
  5. python_template_project-0.1.0/.github/actions/setup-environment/action.yml +31 -0
  6. python_template_project-0.1.0/.github/dependabot.yml +6 -0
  7. python_template_project-0.1.0/.github/init.sh +68 -0
  8. python_template_project-0.1.0/.github/release_message.sh +3 -0
  9. python_template_project-0.1.0/.github/rename_project.sh +36 -0
  10. python_template_project-0.1.0/.github/workflows/build-macos.yml +93 -0
  11. python_template_project-0.1.0/.github/workflows/build.yml +52 -0
  12. python_template_project-0.1.0/.github/workflows/main.yml +83 -0
  13. python_template_project-0.1.0/.github/workflows/release.yml +58 -0
  14. python_template_project-0.1.0/.github/workflows/update-readme.yml +28 -0
  15. python_template_project-0.1.0/.gitignore +199 -0
  16. python_template_project-0.1.0/.idea/runConfigurations/config_generate.xml +25 -0
  17. python_template_project-0.1.0/.idea/runConfigurations/module_cli.xml +25 -0
  18. python_template_project-0.1.0/.idea/runConfigurations/module_gui.xml +25 -0
  19. python_template_project-0.1.0/.pre-commit-config.yaml +13 -0
  20. python_template_project-0.1.0/.readthedocs.yaml +20 -0
  21. python_template_project-0.1.0/HISTORY.md +183 -0
  22. python_template_project-0.1.0/LICENSE +24 -0
  23. python_template_project-0.1.0/Makefile +125 -0
  24. python_template_project-0.1.0/PKG-INFO +92 -0
  25. python_template_project-0.1.0/README.md +64 -0
  26. python_template_project-0.1.0/config.yaml +96 -0
  27. python_template_project-0.1.0/docs/.nav.yml +14 -0
  28. python_template_project-0.1.0/docs/_static/img/favicon.png +0 -0
  29. python_template_project-0.1.0/docs/_static/img/logo.png +0 -0
  30. python_template_project-0.1.0/docs/css/custom.css +5 -0
  31. python_template_project-0.1.0/docs/develop/contributing.md +126 -0
  32. python_template_project-0.1.0/docs/develop/make_windows.md +215 -0
  33. python_template_project-0.1.0/docs/develop/pypi_release.md +233 -0
  34. python_template_project-0.1.0/docs/getting-started/install.md +45 -0
  35. python_template_project-0.1.0/docs/getting-started/virtual-environment.md +29 -0
  36. python_template_project-0.1.0/docs/index.md +62 -0
  37. python_template_project-0.1.0/docs/usage/cli.md +55 -0
  38. python_template_project-0.1.0/docs/usage/config.md +39 -0
  39. python_template_project-0.1.0/examples/kuhkopfsteig.gpx +8189 -0
  40. python_template_project-0.1.0/examples/rother_lilienstein.gpx +571 -0
  41. python_template_project-0.1.0/examples/teneriffa.gpx +6042 -0
  42. python_template_project-0.1.0/mkdocs.yml +33 -0
  43. python_template_project-0.1.0/pyproject.toml +73 -0
  44. python_template_project-0.1.0/scripts/show-filelist.ps1 +14 -0
  45. python_template_project-0.1.0/scripts/show-tree.ps1 +57 -0
  46. python_template_project-0.1.0/scripts/update_readme.py +11 -0
  47. python_template_project-0.1.0/src/VERSION +1 -0
  48. python_template_project-0.1.0/src/__init__.py +0 -0
  49. python_template_project-0.1.0/src/main.py +153 -0
  50. python_template_project-0.1.0/src/python_template_project/__init__.py +0 -0
  51. python_template_project-0.1.0/src/python_template_project/__main__.py +8 -0
  52. python_template_project-0.1.0/src/python_template_project/cli/__init__.py +0 -0
  53. python_template_project-0.1.0/src/python_template_project/cli/__main__.py +8 -0
  54. python_template_project-0.1.0/src/python_template_project/cli/cli.py +217 -0
  55. python_template_project-0.1.0/src/python_template_project/config/__init__.py +0 -0
  56. python_template_project-0.1.0/src/python_template_project/config/config.py +557 -0
  57. python_template_project-0.1.0/src/python_template_project/core/__init__.py +0 -0
  58. python_template_project-0.1.0/src/python_template_project/core/base.py +397 -0
  59. python_template_project-0.1.0/src/python_template_project/core/logging.py +219 -0
  60. python_template_project-0.1.0/src/python_template_project/gui/__init__.py +0 -0
  61. python_template_project-0.1.0/src/python_template_project/gui/__main__.py +8 -0
  62. python_template_project-0.1.0/src/python_template_project/gui/gui.py +615 -0
  63. python_template_project-0.1.0/tests/__init__.py +0 -0
  64. python_template_project-0.1.0/tests/test_generic_cli.py +131 -0
  65. python_template_project-0.1.0/tests/test_gpx.py +361 -0
  66. python_template_project-0.1.0/uv.lock +989 -0
@@ -0,0 +1,12 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [pamagister]
4
+ patreon: # Replace with a single Patreon username
5
+ open_collective: # Replace with a single Open Collective username
6
+ ko_fi: # Replace with a single Ko-fi username
7
+ tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
+ community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
+ liberapay: # Replace with a single Liberapay username
10
+ issuehunt: # Replace with a single IssueHunt username
11
+ otechie: # Replace with a single Otechie username
12
+ custom: ["https://www.paypal.me/PaulDD"]
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: bug, help wanted
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Desktop (please complete the following information):**
27
+ - OS: [e.g. iOS]
28
+ - Version [e.g. 22]
29
+
30
+ **Additional context**
31
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: enhancement, question
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,15 @@
1
+ ### Summary :memo:
2
+ _Write an overview about it._
3
+
4
+ ### Details
5
+ _Describe more what you did on changes._
6
+ 1. (...)
7
+ 2. (...)
8
+
9
+ ### Bugfixes :bug: (delete if dind't have any)
10
+ -
11
+
12
+ ### Checks
13
+ - [ ] Closed #798
14
+ - [ ] Tested Changes
15
+ - [ ] Stakeholder Approval
@@ -0,0 +1,31 @@
1
+ name: Setup Environment
2
+
3
+ description: Setup uv environment
4
+
5
+ inputs:
6
+ python-version:
7
+ description: 'Python version to use'
8
+ required: true
9
+ default: '3.11'
10
+
11
+ runs:
12
+ using: "composite"
13
+ steps:
14
+ - name: Install uv
15
+ uses: astral-sh/setup-uv@v3
16
+ with:
17
+ version: "latest"
18
+
19
+ - name: Create virtual environment
20
+ run: uv venv .venv --python ${{ inputs.python-version }}
21
+ shell: bash
22
+
23
+ - name: Activate virtual environment
24
+ run: echo "VIRTUAL_ENV=.venv" >> $GITHUB_ENV
25
+ shell: bash
26
+
27
+ - name: Install dependencies
28
+ run: |
29
+ uv pip install -e .
30
+ uv pip install -e ".[dev]"
31
+ shell: bash
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env bash
2
+ overwrite_template_dir=0
3
+
4
+ while getopts t:o flag
5
+ do
6
+ case "${flag}" in
7
+ t) template=${OPTARG};;
8
+ o) overwrite_template_dir=1;;
9
+ esac
10
+ done
11
+
12
+ if [ -z "${template}" ]; then
13
+ echo "Available templates: flask"
14
+ read -p "Enter template name: " template
15
+ fi
16
+
17
+ repo_urlname=$(basename -s .git `git config --get remote.origin.url`)
18
+ repo_name=$(basename -s .git `git config --get remote.origin.url` | tr '-' '_' | tr '[:upper:]' '[:lower:]')
19
+ repo_owner=$(git config --get remote.origin.url | awk -F ':' '{print $2}' | awk -F '/' '{print $1}')
20
+ echo "Repo name: ${repo_name}"
21
+ echo "Repo owner: ${repo_owner}"
22
+ echo "Repo urlname: ${repo_urlname}"
23
+
24
+ if [ -f ".github/workflows/rename_project.yml" ]; then
25
+ .github/rename_project.sh -a "${repo_owner}" -n "${repo_name}" -u "${repo_urlname}" -d "Awesome ${repo_name} created by ${repo_owner}"
26
+ fi
27
+
28
+ function download_template {
29
+ rm -rf "${template_dir}"
30
+ mkdir -p .github/templates
31
+ git clone "${template_url}" "${template_dir}"
32
+ }
33
+
34
+ echo "Using template:${template}"
35
+ template_url="https://github.com/rochacbruno/${template}-project-template"
36
+ template_dir=".github/templates/${template}"
37
+ if [ -d "${template_dir}" ]; then
38
+ # Template directory already exists
39
+ if [ "${overwrite_template_dir}" -eq 1 ]; then
40
+ # user passed -o flag, delete and re-download
41
+ echo "Overwriting ${template_dir}"
42
+ download_template
43
+ else
44
+ # Ask user if they want to overwrite
45
+ echo "Directory ${template_dir} already exists."
46
+ read -p "Do you want to overwrite it? [y/N] " -n 1 -r
47
+ echo
48
+ if [[ $REPLY =~ ^[Yy]$ ]]; then
49
+ echo "Overwriting ${template_dir}"
50
+ download_template
51
+ else
52
+ # User decided not to overwrite
53
+ echo "Using existing ${template_dir}"
54
+ fi
55
+ fi
56
+ else
57
+ # Template directory does not exist, download it
58
+ echo "Downloading ${template_url}"
59
+ download_template
60
+ fi
61
+
62
+ echo "Applying ${template} template to this project"}
63
+ ./.github/templates/${template}/apply.sh -a "${repo_owner}" -n "${repo_name}" -u "${repo_urlname}" -d "Awesome ${repo_name} created by ${repo_owner}"
64
+
65
+ # echo "Removing temporary template files"
66
+ # rm -rf .github/templates/${template}
67
+
68
+ echo "Done! review, commit and push the changes"
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bash
2
+ previous_tag=$(git tag --sort=-creatordate | sed -n 2p)
3
+ git shortlog "${previous_tag}.." | sed 's/^./ &/'
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env bash
2
+ while getopts a:n:u:d: flag
3
+ do
4
+ case "${flag}" in
5
+ a) author=${OPTARG};;
6
+ n) name=${OPTARG};;
7
+ u) urlname=${OPTARG};;
8
+ d) description=${OPTARG};;
9
+ esac
10
+ done
11
+
12
+ echo "Author: $author";
13
+ echo "Project Name: $name";
14
+ echo "Project URL name: $urlname";
15
+ echo "Description: $description";
16
+
17
+ echo "Renaming project..."
18
+
19
+ original_author="pamagister"
20
+ original_name="python-template-project"
21
+ original_urlname="python-template-project"
22
+ original_description="Awesome python-template-project created by pamagister"
23
+ # for filename in $(find . -name "*.*")
24
+ for filename in $(git ls-files)
25
+ do
26
+ sed -i "s/$original_author/$author/g" $filename
27
+ sed -i "s/$original_name/$name/g" $filename
28
+ sed -i "s/$original_urlname/$urlname/g" $filename
29
+ sed -i "s/$original_description/$description/g" $filename
30
+ echo "Renamed $filename"
31
+ done
32
+
33
+ mv python-template-project $name
34
+
35
+ # This command runs only once on GHA!
36
+ rm -rf .github/template.yml
@@ -0,0 +1,93 @@
1
+ name: Build macOS App
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - '*' # Triggers for tags like 0.1 or v0.1.3
7
+ workflow_dispatch: # Allows manual triggering
8
+
9
+ jobs:
10
+ build:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ python-version: [ 3.11 ]
15
+ os: [ macos-latest ]
16
+ runs-on: ${{ matrix.os }}
17
+
18
+ steps:
19
+ - name: Checkout repository
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: '3.11'
26
+
27
+ - name: Setup Environment # Composite Action
28
+ uses: ./.github/actions/setup-environment
29
+ with:
30
+ python-version: ${{ matrix.python-version }}
31
+
32
+ - name: Build Unified Executable and App Bundle with PyInstaller
33
+ run: |
34
+ echo "Building unified CLI/GUI application as executable"
35
+ uv run pyinstaller --onefile src/main.py --name python-template-project --add-data "config.yaml:." --hidden-import python_template_project.cli.cli --hidden-import python_template_project.gui.gui
36
+
37
+ echo "Building unified CLI/GUI application as .app bundle"
38
+ # --windowed is important to hide the console for GUI mode
39
+ # The name "Python Template Project" becomes the name of the .app
40
+ uv run pyinstaller --windowed --name "Python Template Project" src/main.py --add-data "config.yaml:." --hidden-import python_template_project.cli.cli --hidden-import python_template_project.gui.gui
41
+
42
+ - name: Prepare ZIP file for release
43
+ run: |
44
+ mkdir release
45
+ echo "Copy the CLI/GUI executable"
46
+ cp dist/python-template-project release/
47
+ echo "Copy the .app bundle (directory) recursively"
48
+ cp -R "dist/Python Template Project.app" release/
49
+ echo "Copy configuration and documentation"
50
+ cp config.yaml release/
51
+ cp README.md release/
52
+ echo "Create usage instructions"
53
+ cat > release/USAGE.txt << 'EOF'
54
+ # Python Template Project - macOS Distribution
55
+
56
+ This package contains:
57
+
58
+ 1. **python-template-project** (Terminal executable)
59
+ - Run from Terminal for CLI interface
60
+ - Double-click will open Terminal and show menu
61
+
62
+ 2. **Python Template Project.app** (macOS App Bundle)
63
+ - Double-click to launch GUI interface
64
+ - Can also be launched from Terminal: open "Python Template Project.app"
65
+
66
+ ## Usage Examples:
67
+
68
+ ### Command Line:
69
+ ```bash
70
+ # Interactive mode (shows CLI/GUI selection)
71
+ ./python-template-project
72
+
73
+ # Direct CLI mode with arguments
74
+ ./python-template-project --help
75
+ ./python-template-project [your-cli-args]
76
+ ```
77
+
78
+ ### GUI Mode:
79
+ - Double-click "Python Template Project.app"
80
+ - Or run: open "Python Template Project.app"
81
+
82
+ EOF
83
+ echo "Create the ZIP archive from the contents of the release folder"
84
+ cd release
85
+ zip -r ../package-macOS.zip .
86
+
87
+ - name: Upload ZIP to GitHub Release
88
+ uses: softprops/action-gh-release@v2
89
+ if: startsWith(github.ref, 'refs/tags/')
90
+ with:
91
+ files: package-macOS.zip
92
+ env:
93
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,52 @@
1
+ name: Build Windows EXE
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - '*' # Triggers for tags like 0.1 or v0.1.3
7
+ workflow_dispatch: # Allows manual triggering
8
+
9
+ jobs:
10
+ build:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ python-version: [ 3.11 ]
15
+ os: [ windows-latest ]
16
+ runs-on: ${{ matrix.os }}
17
+ steps:
18
+ - name: Checkout repository
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: '3.11'
25
+
26
+ - name: Setup Environment # Composite Action
27
+ uses: ./.github/actions/setup-environment
28
+ with:
29
+ python-version: ${{ matrix.python-version }}
30
+
31
+ - name: Build Unified EXE with PyInstaller
32
+ run: |
33
+ echo "Building unified CLI/GUI application"
34
+ uv run pyinstaller --onefile src/main.py --name python-template-project --add-data "config.yaml;." --hidden-import python_template_project.cli.cli --hidden-import python_template_project.gui.gui
35
+
36
+ - name: Prepare ZIP file for release
37
+ run: |
38
+ mkdir release
39
+ copy dist\python-template-project.exe release\
40
+ copy config.yaml release\
41
+ copy README.md release\
42
+ echo " - Double-click to start GUI" >> release\USAGE.txt
43
+ echo " - Run from command line for CLI options" >> release\USAGE.txt
44
+ powershell Compress-Archive -Path release\* -DestinationPath installer-win.zip
45
+
46
+ - name: Upload ZIP to GitHub Release
47
+ uses: softprops/action-gh-release@v2
48
+ if: startsWith(github.ref, 'refs/tags/')
49
+ with:
50
+ files: installer-win.zip
51
+ env:
52
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,83 @@
1
+ # This is a basic workflow to help you get started with Actions
2
+
3
+ name: CI
4
+
5
+ # Controls when the workflow will run
6
+ on:
7
+ # Triggers the workflow on push or pull request events but only for the main branch
8
+ push:
9
+ branches: [ main ]
10
+ pull_request:
11
+ branches: [ main ]
12
+
13
+ # Allows you to run this workflow manually from the Actions tab
14
+ workflow_dispatch:
15
+
16
+ jobs:
17
+ linter:
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ python-version: [ 3.11 ]
22
+ os: [ubuntu-latest]
23
+ runs-on: ${{ matrix.os }}
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: actions/setup-python@v5
27
+ with:
28
+ python-version: ${{ matrix.python-version }}
29
+
30
+ - name: Setup Environment # Composite Action
31
+ uses: ./.github/actions/setup-environment
32
+ with:
33
+ python-version: ${{ matrix.python-version }}
34
+
35
+ - name: Run linter
36
+ run: make lint
37
+
38
+ tests_win:
39
+ needs: linter
40
+ strategy:
41
+ fail-fast: false
42
+ matrix:
43
+ python-version: [ 3.11 ]
44
+ os: [windows-latest]
45
+ runs-on: ${{ matrix.os }}
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+ - uses: actions/setup-python@v5
49
+ with:
50
+ python-version: ${{ matrix.python-version }}
51
+
52
+ - name: Setup Environment # Composite Action
53
+ uses: ./.github/actions/setup-environment
54
+ with:
55
+ python-version: ${{ matrix.python-version }}
56
+
57
+ - name: run tests
58
+ run: uv run pytest -s -vvvv -l --tb=long tests
59
+
60
+ tests_linux_macos:
61
+ needs: tests_win
62
+ strategy:
63
+ fail-fast: false
64
+ matrix:
65
+ python-version: [ 3.11 ]
66
+ os: [ ubuntu-latest, macos-latest ]
67
+ runs-on: ${{ matrix.os }}
68
+ steps:
69
+ - uses: actions/checkout@v4
70
+ - uses: actions/setup-python@v5
71
+ with:
72
+ python-version: ${{ matrix.python-version }}
73
+
74
+ - name: Setup Environment # Composite Action
75
+ uses: ./.github/actions/setup-environment
76
+ with:
77
+ python-version: ${{ matrix.python-version }}
78
+
79
+ - name: Run tests
80
+ run: make test
81
+
82
+ - name: "Upload coverage to Codecov"
83
+ uses: codecov/codecov-action@v5
@@ -0,0 +1,58 @@
1
+ name: Upload Python Package
2
+ permissions:
3
+ contents: write
4
+
5
+ # if you get a Permission denied error on executing the sh file, you have to execute:
6
+ # git update-index --chmod=+x ./.github/release_message.sh
7
+
8
+ on:
9
+ push:
10
+ # Sequence of patterns matched against refs/tags
11
+ tags:
12
+ - '*' # Push events to matching v*, i.e. v1.0, v20.15.10
13
+
14
+ # Allows you to run this workflow manually from the Actions tab
15
+ workflow_dispatch:
16
+
17
+ jobs:
18
+ release:
19
+ name: Create Release
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ contents: write
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ with:
26
+ # by default, it uses a depth of 1
27
+ # this fetches all history so that we can read each commit
28
+ fetch-depth: 0
29
+ - name: Generate Changelog
30
+ run: .github/release_message.sh > release_message.md
31
+ - name: Release
32
+ uses: softprops/action-gh-release@v2
33
+ with:
34
+ body_path: release_message.md
35
+
36
+ deploy:
37
+ needs: release
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ - name: Set up Python
42
+ uses: actions/setup-python@v4
43
+ with:
44
+ # Use a specific Python version, e.g., 3.11, consistent with your build
45
+ python-version: '3.11'
46
+ - name: Install dependencies
47
+ run: |
48
+ python -m pip install --upgrade pip
49
+ # install build for modern packaging, and twine
50
+ pip install build twine
51
+ - name: Build and publish
52
+ env:
53
+ TWINE_USERNAME: __token__
54
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
55
+ run: |
56
+ # Use 'python -m build' for modern packaging
57
+ python -m build
58
+ twine upload dist/*
@@ -0,0 +1,28 @@
1
+ name: Sync README with docs/index.md
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - "docs/index.md"
7
+ branches: [ main ]
8
+ # Allows you to run this workflow manually from the Actions tab
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ sync:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.11"
20
+ - name: Update README.md
21
+ run: python scripts/update_readme.py
22
+ - name: Commit changes
23
+ run: |
24
+ git config user.name "github-actions"
25
+ git config user.email "github-actions@github.com"
26
+ git add README.md
27
+ git commit -m "Update README.md from docs/index.md" || echo "No changes"
28
+ git push