cogeol
Align projects with supported Python versions - automated with endoflife.date
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.4%) to scientific vocabulary
Keywords
Repository
Align projects with supported Python versions - automated with endoflife.date
Basic Info
- Host: GitHub
- Owner: open-nudge
- License: other
- Language: Python
- Default Branch: main
- Homepage: https://open-nudge.github.io/cogeol
- Size: 9.7 MB
Statistics
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 2
Topics
Metadata Files
README.md
cogeol
Align with supported Python versions - automated with endoflife.date
✨ Features 🚀 Quick start 📚 Documentation 🤝 Contribute 👍 Adopters 📜 Legal
Features
cogeol is a library which allows you to:
- Works with any file format (e.g. updating Python versions in CI/CD tests)
- No need to track Python EOL dates — cogeol does it for you
- Align with Scientific Python SPEC0:
cogeolwill allow you to align your project to the three latest supported Python versions - Caching: retrieves data from https://endoflife.date/ and stores it locally to minimize network requests
- Based on cog: Manage versions of Python by statically generated code (see examples below!)
Quick start
Installation
```sh
pip install cogeol ```
Usage
[!TIP] Check out the documentation for all available functionalities and public-facing API.
- Open
pyproject.tomlof your project and find necessary to haverequires-pythonfield. - Update it as follows (comments are crucial!):
```toml
[[[cog
import cog
import cogeol
cycle = cogeol.scientific()[-1]["cycle"]
cog.out(f'requires-python = ">={cycle}"')
]]]
requires-python = ">=3.9"
[[[end]]]
```
Now run the following from the command line:
```sh
cog -c -r pyproject.toml ```
Now your requires-python field will be updated to the
latest supported Python version!
For example (Python 3.11 is the latest supported version
at the time of writing):
```toml
[[[cog
import cog
import cogeol
cycle = cogeol.scientific()[-1]["cycle"]
cog.out(f'requires-python = ">={cycle}"')
]]]
requires-python = ">=3.11"
[[end]]
```
[!NOTE] Please notice a checksum, which verifies consistency of the changes at each run
Examples
Specifying Python version classifiers (click me)
You can automate the classifiers in your `pyproject.toml` file like this: ```toml # [[[cog # import cog # import cogeol # # for version in reversed(cogeol.scientific()): # cycle = version["cycle"] # cog.outl(f' "Programming Language :: Python :: {cycle}",') # ]]] "Programming Language :: Python :: 3.11", # [[[end]]] ``` Now run the following from the command line: ```sh > cog -c -r pyproject.toml ``` and you should see the following (__notice all versions are present!__): ```toml # [[[cog # import cog # import cogeol # # for version in reversed(cogeol.scientific()): # cycle = version["cycle"] # cog.outl(f' "Programming Language :: Python :: {cycle}",') # ]]] "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", # [[[end]]] (sum: FeG7grp2Dw) ```Caching (click me)
Let's assume you have the following code snippet in `github-workflow.yml`: ```yaml ... jobs: tests-reusable: strategy: matrix: python: # # DO NOT EDIT UNTIL end marker # # [[[cog # import cog # import cogeol # # for version in reversed(cogeol.scientific()): # cycle = version['cycle'] # cog.outl(f' - "{cycle}"') # ]]] - "3.11" # [[[end]]] (sum: l3d2zGv79j) ``` in addition to your code in `pyproject.toml` using `cogeol`. Now, if you run: ```sh > cog -c -r pyproject.toml github-workflow.yml ``` The following will happen: - Both files will be updated with appropriate Python versions - __Only one call to [End of Life Date](https://endoflife.date) will be made__ (the results are cached on disk) Next time you run the same command, the results will be read from the cacheAdvanced (click me)
For more examples check out this project's: - `pyproject.toml` file (see [here](https://github.com/open-nudge/cogeol/blob/main/pyproject.toml)) - Tests of the last three versions in GitHub Actions workflow (see [here](https://github.com/open-nudge/cogeol/blob/main/.github/workflows/tests-reusable.yml))Contribute
We welcome your contributions! Start here:
Legal
- This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
- This project is copyrighted by open-nudge - the appropriate copyright notice is included in each file.
Owner
- Name: opennudge
- Login: open-nudge
- Kind: organization
- Email: opensource@opennudge.com
- Repositories: 1
- Profile: https://github.com/open-nudge
Citation (CITATION.cff)
# SPDX-FileCopyrightText: © 2024 open-nudge <https://github.com/open-nudge> # SPDX-FileContributor: szymonmaszke <github@maszke.co> # # SPDX-License-Identifier: Apache-2.0 --- cff-version: "1.2.0" abstract: >- Align with supported Python versions - automated with endoflife.date message: "If you use this software, please cite it as below." authors: - family-names: "open-nudge" url: "https://github.com/open-nudge/cogeol" repository-code: "https://github.com/open-nudge/cogeol" title: "cogeol" license: "Apache-2.0" keywords: - "python"
GitHub Events
Total
- Create event: 11
- Release event: 3
- Issues event: 10
- Watch event: 4
- Delete event: 3
- Push event: 5
- Pull request event: 8
Last Year
- Create event: 11
- Release event: 3
- Issues event: 10
- Watch event: 4
- Delete event: 3
- Push event: 5
- Pull request event: 8
Packages
- Total packages: 1
-
Total downloads:
- pypi 121 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 5
- Total maintainers: 1
pypi.org: cogeol
Align with supported Python versions - automated with endoflife.date
- Homepage: https://open-nudge.github.io/cogeol
- Documentation: https://open-nudge.github.io/cogeol
- License: other
-
Latest release: 0.1.5
published 6 months ago
Rankings
Maintainers (1)
Dependencies
- open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
- pdm-project/setup-pdm 94a823180e06fcde4ad29308721954a521c96ed0 composite
- actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
- github/codeql-action/upload-sarif fca7ace96b7d713c7035871441bd52efbe39e27e composite
- pdm-project/setup-pdm 94a823180e06fcde4ad29308721954a521c96ed0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- open-nudge/opentemplate/.github/actions/pdm-setup main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- open-nudge/opentemplate/.github/actions/git-setup main composite
- open-nudge/opentemplate/.github/actions/pdm-setup main composite
- open-nudge/opentemplate/.github/actions/pull-request main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- docker://rhysd/actionlint 1.7.1 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- actions/labeler 8558fd74291d67161a8a78ce36a881fa63b766a9 composite
- github/issue-labeler c1b0f9f52a63158c4adc09425e858e87b32e9685 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- siderolabs/conform 43d9fb6d85d5f01b391245805eefd258db160197 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- open-nudge/opentemplate/.github/actions/git-setup main composite
- open-nudge/opentemplate/.github/actions/pdm-setup main composite
- open-nudge/opentemplate/.github/actions/pull-request main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- amannn/action-semantic-pull-request 0723387faaf9b38adef4775cd42cfd5155ed6017 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/attest-sbom 115c3be05ff3974bcbd596578934b3f9ce39bf68 composite
- actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
- actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
- open-nudge/opentemplate/.github/actions/git-setup main composite
- open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
- open-nudge/opentemplate/.github/actions/pdm-setup main composite
- open-nudge/opentemplate/.github/actions/release-sbom-setup main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
- open-nudge/opentemplate/.github/actions/release-sbom-setup main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
- actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
- pypa/gh-action-pypi-publish 76f52bc884231f62b9a034ebfe128415bbaabdfc composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- suzuki-shunsuke/github-action-renovate-config-validator c22827f47f4f4a5364bdba19e1fe36907ef1318e composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- actions/download-artifact d3f86a106a0bac45b974a628896c90dbdf5c8093 composite
- actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
- open-nudge/opentemplate/.github/actions/git-setup main composite
- open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
- open-nudge/opentemplate/.github/actions/pdm-setup main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- google/osv-scanner/actions/scanner a2a23858b9650035f019219937f91ae615474b4d composite
- open-nudge/opentemplate/.github/actions/sarif-upload main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- actions/upload-artifact ea165f8d65b6e75b540449e92b4886f43607fa02 composite
- github/codeql-action/upload-sarif fca7ace96b7d713c7035871441bd52efbe39e27e composite
- ossf/scorecard-action 05b42c624433fc40578a4040d5cf5e36ddca8cde composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- trufflesecurity/trufflehog 90694bf9af66e7536abc5824e7a87246dbf933cb composite
- actions/checkout 11bd71901bbe5b1630ceea73d27597364c9af683 composite
- open-nudge/opentemplate/.github/actions/pdm-compatibility main composite
- open-nudge/opentemplate/.github/actions/pdm-setup main composite
- open-nudge/opentemplate/.github/actions/sarif-upload main composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite
- actions/stale 5bef64f19d7facfb25b37b414482c7164d639639 composite
- step-security/harden-runner 0634a2670c59f64b4a01f0f96f84700a4088b9f0 composite