{"id":16713969,"url":"https://github.com/tktech/python-standard","last_synced_at":"2026-03-18T21:42:52.137Z","repository":{"id":244903194,"uuid":"816585788","full_name":"TkTech/python-standard","owner":"TkTech","description":"My standard Python workflow action.","archived":false,"fork":false,"pushed_at":"2024-07-24T04:32:12.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T06:37:38.622Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TkTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"TkTech","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2024-06-18T03:23:29.000Z","updated_at":"2024-07-24T04:31:26.000Z","dependencies_parsed_at":"2024-07-24T05:53:35.272Z","dependency_job_id":null,"html_url":"https://github.com/TkTech/python-standard","commit_stats":null,"previous_names":["tktech/python-standard"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TkTech%2Fpython-standard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TkTech%2Fpython-standard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TkTech%2Fpython-standard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TkTech%2Fpython-standard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TkTech","download_url":"https://codeload.github.com/TkTech/python-standard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243690868,"owners_count":20331861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-12T20:48:41.808Z","updated_at":"2026-01-02T09:09:06.233Z","avatar_url":"https://github.com/TkTech.png","language":null,"funding_links":["https://github.com/sponsors/TkTech"],"categories":[],"sub_categories":[],"readme":"# python-standard\n\nRe-usable github workflows for a typical pure-python project flow. These\nare only meant to work with a specific project layout and may not work for\nyour project.\n\n\n## Usage\n\nExample project layout:\n\n```\n.\n├── .github\n│ └── workflows\n│     ├── release.yml\n│     └── test.yml\n├── docs\n│ ├── conf.py\n│ ├── index.rst\n│ └── makefile\n├── \u003cproject_name\u003e\n│ └── __init__.py\n├── pyproject.toml\n```\n\n### Running tests\n\nThe following inputs are available for test workflows:\n\n| Name             | Description                           | Default              |\n|------------------|---------------------------------------|----------------------|\n| use_poetry       | Use poetry for dependency management. | false                |\n| use_sphinx       | Use sphinx for documentation.         | false                |\n| use_black        | Use black for code formatting.        | false                |\n| python_version   | Python version to use.                | 3.11                 |\n| platform         | Platform to run the workflow on.      | ubuntu-latest        |\n| black_path       | Path to run black on.                 | .                    |\n| requirements     | Path to the requirements file         | requirements.txt     |\n| requirements_dev | Path to the requirements dev file     | requirements_dev.txt |\n\nAnd an example workflow:\n\n```yaml\nname: Tests\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n    branches:\n      - main\njobs:\n  test:\n    name: Running tests.\n    uses: tktech/python-standard/.github/workflows/test.yml@v1\n    strategy:\n      fail-fast: false\n      matrix:\n        python-version: [\"3.8\", \"3.9\", \"3.10\", \"3.11\", \"3.12\", pypy3.9]\n    with:\n      use_poetry: true\n      use_sphinx: true\n      use_black: true\n      python_version: ${{ matrix.python-version }}\n```\n\n### Making Releases\n\nThe following inputs are available for release workflows:\n\n| Name           | Description                                           | Default       |\n|----------------|-------------------------------------------------------|---------------|\n| use_poetry     | Use poetry for dependency management.                 | false         |\n| use_sphinx     | Use sphinx for documentation and push to github-pages | false         |\n| python_version | Python version to use.                                | 3.11          |\n| platform       | Platform to run the workflow on.                      | ubuntu-latest |\n\nMake sure you have a ``PYPI_TOKEN`` secret set up in your repository secrets,\nand run the job with the `pages: write` permission to push the documentation\nto github pages.\n\n```yaml\non:\n  workflow_dispatch:\n  release:\n    types:\n      - published\nname: Release\njobs:\n  build:\n    permissions:\n      id-token: write\n      pages: write\n    uses: tktech/python-standard/.github/workflows/release.yml@v1\n    with:\n      use_poetry: true\n      use_sphinx: true\n      python_version: '3.11'\n      platform: 'ubuntu-latest'\n    secrets:\n      PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}\n```\n\nThis example will build and publish your package to pypi when you create \u0026\npublish a release on github.\n\n## Why?\n\nBecause I have far too many Python projects and github deprecates things far\ntoo often.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftktech%2Fpython-standard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftktech%2Fpython-standard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftktech%2Fpython-standard/lists"}