CLI tools such as validation and file format conversion for fiboa.
Project description
fiboa CLI
A command-line interface (CLI) for working with fiboa.
Getting Started
In order to make working with fiboa easier we have developed command-line interface (CLI) tools such as inspection, validation and file format conversions.
Installation
You will need to have Python 3.9 or any later version installed.
Run pip install fiboa-cli
in the CLI to install the validator.
Optional: To install additional dependencies for specific converters,
you can for example run: pip install fiboa-cli[xyz]
with xyz being the converter name.
Note on versions:
- fiboa CLI >= 0.3.0 works with fiboa version > 0.2.0
- fiboa CLI < 0.3.0 works with fiboa version = 0.1.0
Execute a command
After the installation you should be able to run the following command: fiboa
You should see usage instructions and available commands for the CLI.
fiboa CLI supports various commands to work with the files:
- Inspect fiboa GeoParquet files
- Validation fiboa GeoParquet and GeoJSON files
- Convert existing non-fiboa datasets to a fiboa GeoParquet file
- File Format Conversion:
- Extension and Spec development:
Commands
Validation
To validate a fiboa GeoParquet or GeoJSON file, you can for example run:
- GeoJSON:
fiboa validate example.json --collection collection.json
- GeoParquet:
fiboa validate example.parquet --data
Check fiboa validate --help
for more details.
The validator also supports remote files.
http://
orhttps://
: no further configuration is needed.s3://
:s3fs
needs to be installed (runpip install .[s3]
) and you may need to set environment variables. Refer here for how to define credentials.gs://
:gcsfs
needs to be installed (runpip install .[gcs]
). By default,gcsfs
will attempt to use your default gcloud credentials or, attempt to get credentials from the google metadata service, or fall back to anonymous access.
Create fiboa GeoParquet from GeoJSON
To create a fiboa-compliant GeoParquet for a fiboa-compliant set of GeoJSON files containing Features or FeatureCollections, you can for example run:
fiboa create-geoparquet geojson/example.json -o example.parquet -c geojson/collection.json
Check fiboa create-geoparquet --help
for more details.
Create fiboa GeoJSON from GeoParquet
To create one or multiple fiboa-compliant GeoJSON file(s) for a fiboa-compliant GeoParquet file, you can for example run:
- GeoJSON FeatureCollection:
fiboa create-geojson example.parquet -o dest-folder
- GeoJSON Features (with indentation and max. 100 features):
fiboa create-geojson example.parquet -o dest-folder -n 100 -i 2 -f
Check fiboa create-geoparquet --help
for more details.
Inspect fiboa GeoParquet file
To look into a fiboa GeoParquet file to get a rough understanding of the content, the following can be executed:
fiboa describe example.parquet
Check fiboa describe --help
for more details.
Create JSON Schema from fiboa Schema
To create a JSON Schema for a fiboa Schema YAML file, you can for example run:
fiboa jsonschema example.json --id=https://fiboa.github.io/specification/v0.1.0/geojson/schema.json -o schema.json
Check fiboa jsonschema --help
for more details.
Validate a fiboa Schema
To validate a fiboa Schema YAML file, you can for example run:
fiboa validate-schema schema/schema.yaml
Check fiboa validate-schema --help
for more details.
Update an extension template with new names
Once you've created and git cloned a new extension, you can use the CLI to update all template placeholders with proper names.
For example, if your extension is meant to have
- the title "Timestamps Extension",
- the prefix
ts
(e.g. fieldts:created
orts:updated
), - is hosted at
https://github.io/fiboa/timestamps-extension
(organization:fiboa
, repositorytimestamps-extension
), - and you run fiboa in the folder of the extension.
Then the following command could be used:
fiboa rename-extension . -t Timestamps -p ts -s timestamps-extension -o fiboa
Check fiboa rename-extension --help
for more details.
Converter for existing datasets
To convert an existing dataset to fiboa using the pre-defined converters:
fiboa convert de_nrw
Available converters:
at
(Austria)de_bb
(Berlin/Brandenburh, Germany)de_nds
(Lowe Saxony, Germany)de_nrw
(North Rhine-Westphalia, Germany)de_sh
(Schleswig-Holstein, Germany)
See Implement a converter for details about how to
Development
To install in development mode run pip install -e .
in this folder.
For the tests first run pip install -r requirements-dev.txt
to install pytest.
Then you can run pytest
to execute the tests.
Implement a converter
The following high-level description gives an idea how to implement a converter in fiboa CLI:
- Create a new file in
fiboa_cli/datasets
based on thetemplate.py
- Implement the
convert()
function - Add missing dependencies into a separate dependency group in
setup.py
- Add the converter to the list above
- Create a PR to submit your converter for review
An in-depth guide how to create a cloud-native fiboa dataset using fiboa CLI is available at: https://github.com/fiboa/data/blob/main/HOWTO.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fiboa_cli-0.3.7.tar.gz
.
File metadata
- Download URL: fiboa_cli-0.3.7.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a08706c21521bbd211a577e293b1b53518282ad9ada21abcf534662291718ddb |
|
MD5 | e3095e8f1c3079ae6230897ac3f4e28f |
|
BLAKE2b-256 | 2a9e0815899ab02e27a0f3debd6e43a0c56db633df0cc0b60245a4550e5af695 |
File details
Details for the file fiboa_cli-0.3.7-py3-none-any.whl
.
File metadata
- Download URL: fiboa_cli-0.3.7-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a25bf9d323da87a3f2b8325dbb535290f47e18e499fe3a2240f238998e6f2f4 |
|
MD5 | 1d419106574af07d8eece3accbf1bd98 |
|
BLAKE2b-256 | f5cc4548e6abf7a38eda203d79747e3b37d8a2efbff9e8c835b9a40cb89f3220 |