gfw-common
Common place for GFW reusable Python components.
Introduction
The following table shows a summary of the current supported features:
| Module/Package | Description |
|---|---|
| gfw.common.beam | Common utilities and wrappers for Apache Beam pipelines. |
| gfw.common.cli | Lightweight framework around argparse for building CLIs more easily. |
| gfw.common.bigquery | Common utilities and wrappers for BigQuery interactions. |
| gfw.common.datetime | Simple helper functions around stdlib datetime module. |
| gfw.common.decorators.py | Basic function decorators. |
| gfw.common.dictionaries.py | Simple helper functions for dictionary manipulation. |
| gfw.common.io.py | Basic IO functions. |
| gfw.common.iterables.py | Iterables utilities. |
| gfw.common.logging.py | Basic logging configuration. |
| gfw.common.serialization.py | Basic serialization utilities. |
For more information and API reference, check the documentation pages.
Installation
The package offers extras to avoid installing unnecessary dependencies:
beam: includes dependencies for thegfw.common.beampackage.bq: includes dependencies for BigQuery utilities.
For a default installation without extras, run:
pip install gfw-common
To install all extras, run:
pip install gfw-common[bq,beam]
Usage
You can see examples in the examples folder.
How to Contribute
Preparing the environment
First, clone the repository.
git clone https://github.com/GlobalFishingWatch/gfw-common.git
Install uv for faster installs:
./install-uv.sh
Create virtual environment and activate it:
make venv
source .venv/bin/activate
Install pre-commit hooks for local development:
make install-pre-commit
Install dependencies and package in editable mode for local development:
make install
Make sure you can run unit tests:
make test
Development Workflow
Regarding the git workflow, we follow GitHub Flow. See GITHUB-FLOW.md for a quick summary.
Try to write good commit messages. See How to Write a Git Commit Message guide for details.
The pre-commit hooks will take care of validating your code before a commit
in terms of PEP8 standards, type-checking, miss-pellings, missing documentation, etc.
If you want/need to do it manually, you have commands in the Makefile.
To see options, type make.
How to Release
Creating a tag will automatically trigger a GitHub Action (release.yaml) to publish the package to PyPI.
The tag must match the version declared in pyproject.toml; this will be validated by the action.
The tag name must follow the format vX.Y.Z.
In this context, X, Y and Z refer to MAJOR, MINOR and PATCH of Semantic Versioning.
Metadata
Release files for gfw-common 0.18.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gfw_common-0.18.0.tar.gz | 95.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gfw_common-0.18.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 174.7 kB
Release files / gfw_common-0.18.0.tar.gz
| Download URL | gfw_common-0.18.0.tar.gz |
|---|---|
| Size | 95.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
951a5b461473efdaa897fae09a8fe7d63fda0de5071ce820e77b9d969618f9d9
|
|
BLAKE2b-256 checksum How to use checksums |
156d8a2328e061df42bb32c9fdc33b5f99d5d5d6d91fb0bc1b234c81bd47ceeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / gfw_common-0.18.0-py3-none-any.whl
| Download URL | gfw_common-0.18.0-py3-none-any.whl |
|---|---|
| Size | 78.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
521c92710813a7f9d19127cf462160329002f6da5cee087bfe632237288da379
|
|
BLAKE2b-256 checksum How to use checksums |
123542cb8ed358ea6800eb5d31a8b7e820d60c9d5c85d677d5e9b517972bdcbe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for gfw-common 0.18.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.