Skip to main content

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:

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:// or https://: no further configuration is needed.
  • s3://: s3fs needs to be installed (run pip install .[s3]) and you may need to set environment variables. Refer here for how to define credentials.
  • gs://: gcsfs needs to be installed (run pip 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. field ts:created or ts:updated),
  • is hosted at https://github.io/fiboa/timestamps-extension (organization: fiboa, repository timestamps-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:

  1. Create a new file in fiboa_cli/datasets based on the template.py
  2. Implement the convert() function
  3. Add missing dependencies into a separate dependency group in setup.py
  4. Add the converter to the list above
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fiboa_cli-0.3.8.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

fiboa_cli-0.3.8-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

File details

Details for the file fiboa_cli-0.3.8.tar.gz.

File metadata

  • Download URL: fiboa_cli-0.3.8.tar.gz
  • Upload date:
  • Size: 30.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for fiboa_cli-0.3.8.tar.gz
Algorithm Hash digest
SHA256 15936011f34368ed079570d9917cc1b3df87dca7825bf72d7fc7859325146baf
MD5 a3b8b3f796414e61f8d74a7b091a87bf
BLAKE2b-256 8eb65c0098bec0c85e848c44bfc0c776e488b04fae479a0c89ff38ed6b8a1438

See more details on using hashes here.

File details

Details for the file fiboa_cli-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: fiboa_cli-0.3.8-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

Hashes for fiboa_cli-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6fba6239281b75044ac5ea9fe0d6296c44effbdc9bf127be2113e22ac2653c9e
MD5 4eef860f3a34b78467469f10d615d60b
BLAKE2b-256 49f49ec3ee15698b97f611c214a150fb8ef314d7fef2b0db05f9614db3232657

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page