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.3
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.3.tar.gz | 105.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gfw_common-0.20.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 189.2 kB
Release files / gfw_common-0.20.3.tar.gz
| Download URL | gfw_common-0.20.3.tar.gz |
|---|---|
| Size | 105.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a951ff56f2fc3c1e93ee57a8c56f0871f6c69c8aa50f6b6d4c9ecb24dfca227
|
|
BLAKE2b-256 checksum How to use checksums |
53bfce86112da501dc3bc7682cac044388d064c94f06ec0c0f3470391b7788fc
|
| 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.3-py3-none-any.whl
| Download URL | gfw_common-0.20.3-py3-none-any.whl |
|---|---|
| Size | 83.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dca0bcda7bb0275cf8bd069aa4cf53a92069f4372fab5827c2c620135bb3f245
|
|
BLAKE2b-256 checksum How to use checksums |
f75960ef4c86c41f71a5ca999b3498c0530512491128365b20d2038a00dba702
|
| 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.3
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.