Skip to main content

unifiedwvalticolocs

Build status Python Version Dependencies Status

Code style: black Security: bandit Pre-commit Semantic Versions License Coverage Report

lib python to generate colocs S1 WV with CMEMS or CCI seatstate altimeters

Very first steps

Initialize your code

  1. Initialize git inside your repo:
cd unifiedwvalticolocs && git init
  1. Create a virtual environment and install the project in editable mode with its dev dependencies:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

(any Python 3.11+ environment works — venv, conda/micromamba, or uv venv)

  1. Install pre-commit hooks:
pre-commit install
  1. Run the codestyle:
pre-commit run --all-files
  1. Upload initial code to GitHub:
git add .
git commit -m ":tada: Initial commit"
git branch -M main
git remote add origin https://github.com/umr-lops/unifiedwvalticolocs.git
git push -u origin main

Set up bots

  • Set up Dependabot to ensure you have the latest dependencies.
  • Set up Stale bot for automatic issue closing.

Packaging: Hatchling

The project is packaged with Hatchling as the build backend, with hatch-vcs deriving the package version straight from git tags — there's no version to bump by hand in pyproject.toml.

Details about the build backend

Everything project- and dependency-related lives in pyproject.toml under the standard [project] table (PEP 621) — no separate setup.cfg or lockfile-driven workflow. Useful commands:

  • pip install -e ".[dev]" — editable install with dev tools
  • pytest — run tests
  • python -m build — build sdist + wheel
  • twine upload dist/* — publish to PyPI

If you use uv instead of plain pip, the equivalents are uv pip install -e ".[dev]" and uv build.

Building and releasing your package

Building a new version of the application contains steps:

  • Tag the commit with the new version, e.g. git tag 2026.5.1 (hatch-vcs reads this to set the package version — no file to edit). Follow Semantic Versions for the tag name.
  • Push the tag to GitHub: git push origin 2026.5.1.
  • Create a GitHub release from that tag.
  • Build and publish: python -m build && twine upload dist/* (or uv build && uv publish).

🎯 What's next

Well, that's up to you 💪🏻. I can only recommend the packages and articles that helped me.

  • Typer is great for creating CLI applications.
  • Rich makes it easy to add beautiful formatting in the terminal.
  • Pydantic – data validation and settings management using Python type hinting.
  • Loguru makes logging (stupidly) simple.
  • tqdm – fast, extensible progress bar for Python and CLI.
  • IceCream is a little library for sweet and creamy debugging.
  • orjson – ultra fast JSON parsing library.
  • Returns makes you function's output meaningful, typed, and safe!
  • Hydra is a framework for elegantly configuring complex applications.
  • FastAPI is a type-driven asynchronous web framework.

Articles:

🚀 Features

Development features

Deployment features

Open source community features

Installation

pip install -U unifiedwvalticolocs

or with uv:

uv pip install -U unifiedwvalticolocs

For development (editable install with dev tools):

pip install -e ".[dev]"

Makefile usage

Makefile contains a lot of functions for faster development.

1. Install all dependencies and pre-commit hooks

Install requirements:

make install

Pre-commit hooks could be installed after git init via

make pre-commit-install

2. Codestyle

Automatic formatting uses pyupgrade, isort and black.

make codestyle

# or use synonym
make formatting

Codestyle checks only, without rewriting files:

make check-codestyle

Note: check-codestyle uses isort, black and darglint library

Update all dev libraries to the latest version using one command

make update-dev-deps

3. Code security

make check-safety

This command identifies security issues with Safety and Bandit.

4. Type checks

Run mypy static type checker

make mypy

5. Tests with coverage badges

Run pytest

make test

6. All linters

Of course there is a command to rule run all linters in one:

make lint

the same as:

make test && make check-codestyle && make mypy && make check-safety

7. Cleanup

Delete pycache files

make pycache-remove

Remove package build

make build-remove

Delete .DS_STORE files

make dsstore-remove

Remove .mypycache

make mypycache-remove

Or to remove all above run:

make cleanup

📈 Releases

You can see the list of available releases on the GitHub Releases page.

We follow Semantic Versions specification. Versions are tagged in git and read automatically at build time by hatch-vcs — there is no version field to update by hand.

We use Release Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you're ready. With the categories option, you can categorize pull requests in release notes using labels.

List of labels and corresponding titles

Label Title in Releases
enhancement, feature 🚀 Features
bug, refactoring, bugfix, fix 🔧 Fixes & Refactoring
build, ci, testing 📦 Build System & CI/CD
breaking 💥 Breaking Changes
documentation 📝 Documentation
dependencies ⬆️ Dependencies updates

You can update it in release-drafter.yml.

GitHub creates the bug, enhancement, and documentation labels for you. Dependabot creates the dependencies label. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.

🛡 License

License

This project is licensed under the terms of the MIT license. See LICENSE for more details.

📃 Citation

@misc{unifiedwvalticolocs,
  author = {umr-lops},
  title = {lib python to generate colocs S1 WV with CMEMS or CCI seatstate altimeters},
  year = {2026},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/umr-lops/unifiedwvalticolocs}}
}

Credits 🚀 Your next Python package needs a bleeding-edge project structure.

This project was generated with python-package-template

Metadata

Release files for unifiedwvalticolocs 2026.10.6.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unifiedwvalticolocs 2026.10.6.post1
File Size Uploaded
unifiedwvalticolocs-2026.10.6.post1.tar.gz 678.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unifiedwvalticolocs 2026.10.6.post1
File Interpreter ABI Platform
unifiedwvalticolocs-2026.10.6.post1-py3-none-any.whl Python 3 none any Details

Total release size: 1.3 MB

Release files / unifiedwvalticolocs-2026.10.6.post1.tar.gz

Download URL unifiedwvalticolocs-2026.10.6.post1.tar.gz
Size 678.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bbf46914321f08779fe8ff7327bfc195e121e90e05fe4d4034ef1d05128327cc
BLAKE2b-256 checksum
How to use checksums
872080116031d38ad4c1124a3a5ed237e22cd41bc6caf54aeec365020e7e0b44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / unifiedwvalticolocs-2026.10.6.post1-py3-none-any.whl

Download URL unifiedwvalticolocs-2026.10.6.post1-py3-none-any.whl
Size 663.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bda262839dd60f34aad53f8eea06edad8f8898cb5b6b2f0d155305aefac230c9
BLAKE2b-256 checksum
How to use checksums
f246498aec1e72e18e6298f5f51f21a0a1049bc19bf7f47559fa8a27ad7ef644
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2026.10.6.post1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page