Skip to main content

rashid

PyPI Python versions CI License

rashid checks whether a Portolan catalog follows the standard.

Give it a catalog directory or its root catalog.json. rashid checks the metadata, structure, and asset bytes. It reports each problem with a stable rule ID.

The name comes from the Arabic root ر ش د. Its participles رَاشِدٌ and رَشِيدٌ mean "taking, or following, a right way or course or direction".

Install

uv tool install rashid

rashid requires Python 3.10 or later.

Check a Catalog

rashid check path/to/catalog

Exit code 0 means the catalog breaks no MUST requirement. Exit code 1 means it breaks at least one.

By default, rashid checks:

  • Portolan metadata requirements.
  • STAC 1.1.0 core structure with schemas included in the package.
  • Local and remote asset bytes against their metadata and format rules.

Use --no-data when you only need a metadata and structure result. Use --data-scope local to keep byte checks inside the catalog directory.

rashid check path/to/catalog --data-scope local

Use --live to check HTTP range support and CORS on published assets. Relative asset links also require the catalog's public base URL.

rashid check path/to/catalog \
  --live \
  --live-base-url https://data.example.org/my-catalog/

Use --json for a machine-readable report.

Read the Report

Each finding contains a rule ID, severity, message, and file path. MUST requirements produce errors, and SHOULD requirements produce warnings.

A catalog can produce thousands of similar findings. After 50 findings, rashid groups results by rule and shows representative examples.

Use --all to list every finding. Use --summary to group any report by rule. JSON output always contains the complete findings array and a summary.by_rule object.

Choose Additional Checks

rashid provides five separate validation passes:

  • Metadata checks Portolan requirements in catalog JSON.
  • Structural checks STAC 1.1.0 core structure offline.
  • Schema checks each object against the packaged Portolan profile schema.
  • Data reads asset bytes and verifies checksums, sizes, formats, and extents.
  • Live hosting checks HTTP range support and CORS on remote servers.

Metadata, structural, and data checks run by default. Use --schema as a cross-check against the published profile schema. Use --live for checks that require a published catalog and network access.

If a pass cannot run, rashid reports a warning. It does not treat the skipped pass as successful.

For transfer details and every rule ID, see the rule reference.

Use rashid from Python

from rashid import validate

report = validate("path/to/catalog")

for finding in report.errors:
    print(finding.message)

validate() uses the same default passes as the command-line interface. Set schema=True or live=True to add those passes.

Use RulesConfig to disable rules or change their severity.

from rashid import RulesConfig, Severity, validate

config = RulesConfig(
    disabled=frozenset({"PTL-VIZ-004"}),
    severity_overrides={"PTL-TTL-002": Severity.ERROR},
)

report = validate("path/to/catalog", config=config)

The public rashid.api module also provides helpers for tools that repair catalogs. Names from this module remain available across 0.x releases. Other internal modules can change in a patch release.

Documentation

License

rashid is available under the Apache License 2.0.

Download files

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

Source Distribution

rashid-0.1.7.tar.gz (491.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rashid-0.1.7-py3-none-any.whl (142.8 kB view details)

Uploaded Python 3

File details

Details for the file rashid-0.1.7.tar.gz.

File metadata

  • Download URL: rashid-0.1.7.tar.gz
  • Upload date:
  • Size: 491.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rashid-0.1.7.tar.gz
Algorithm Hash digest
SHA256 fb48b61bb276b9efa7036de457e0cee7ff49c8c7a28aa90218292be52ac38e8d
MD5 2ddaddcb8cd16a85434c6e64ff34a4f2
BLAKE2b-256 87a7bdeb5665e9768b4f0357d9c8593da6ea37b872efa5047af3e2c9ea7e4912

See more details on using hashes here.

Provenance

The following attestation bundles were made for rashid-0.1.7.tar.gz:

Publisher: publish.yml on portolan-sdi/rashid

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rashid-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: rashid-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 142.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for rashid-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 722f89f137803d3ce260f497c14eb2093182529e9d0254f37b856c00a1bfb1f9
MD5 8d567ae662ab2113756fd4fa2437da24
BLAKE2b-256 4558a0b2274a33e020e38075f6befa1aee7dd65f41c6635b27ffae4d672c0da1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rashid-0.1.7-py3-none-any.whl:

Publisher: publish.yml on portolan-sdi/rashid

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.8

2 files

This release

0.1.7 This release

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page