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.20.1
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.20.1.tar.gz | 105.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gfw_common-0.20.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 188.3 kB
Release files / gfw_common-0.20.1.tar.gz
| Download URL | gfw_common-0.20.1.tar.gz |
|---|---|
| Size | 105.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe3a900854e4a6e4655aef393e7d209dfe047f44a9a10f079a6459253b8eac0f
|
|
BLAKE2b-256 checksum How to use checksums |
aa7526ad84cb1c7b75e7f7712cc17b9e23042b5410a08d34ceedc9b4d14af038
|
| 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.20.1-py3-none-any.whl
| Download URL | gfw_common-0.20.1-py3-none-any.whl |
|---|---|
| Size | 83.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad0fbe005226498ea0cb2ccd26ddd4115aae9cba5af10d52e9f2178a65e8b939
|
|
BLAKE2b-256 checksum How to use checksums |
fbb4d3d0a0d4ffc84c6cc990bab410e303c27b3f3129235289093dfbfe4a59fe
|
| 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.20.1
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.