Skip to main content

ASAM ODS desktop query tool powered by odsbox

Project description

odsbox-pilot

PyPI Python License CI

A desktop query tool for ASAM ODS servers, built on top of odsbox.

Features

  • Connect to ASAM ODS servers with multiple auth modes (Basic, OIDC, M2M)
  • Manage multiple server configurations with secure credential storage via keyring
  • Interactive query editor with syntax highlighting (CodeMirror)
  • Query history and built-in examples
  • Tabular result display powered by pandas
  • Browse tab: FilterTree-based ODS server navigation with lazy tree expansion, filter condition management, and attribute value discovery
  • Model tab: read-only browser for the entity-relation schema — entities with attributes and relations, plus all enumerations

Requirements

  • Python 3.14+
  • A running ASAM ODS server

Installation

pip install odsbox-pilot[gui]

Usage

Launch without installing (always uses the latest release):

uvx odsbox-pilot[gui]@latest

Install as a persistent tool:

uv tool install odsbox-pilot[gui]
odsbox-pilot

Or run as a module:

python -m odsbox_pilot

Browse tab

The Browse tab (second tab in the main window) lets you navigate the ODS server hierarchy interactively:

  1. Filter Conditions — add conditions per entity (e.g., Project.name $like Elec*). Use the button next to a value field to discover distinct values or the min/max range directly from the server. Conditions are persisted in ~/.ods-pilot/browse_conditions.json across sessions.
  2. Root entity — select which entity type to query as the tree root, then click Query.
  3. Tree — expand nodes to follow relations one level at a time. Each instance node shows related relation names; expanding a relation node fetches the connected instances.
  4. Query Preview — shows the Jaquel query that will be (or was) sent to the server.

Model tab

The Model tab (third tab) displays the server's entity-relation schema read from the ODS model — no additional server calls are made after connecting.

  • Entities — sorted by base name then application name, colour-coded by entity group (same colour scheme as the Browse tree). Expand an entity to see its Attributes (with ODS data-type symbols) and Relations (with cardinality, e.g. 1:n).
  • Enumerations — all model enumerations with their items and index values.
  • Property panel — selecting any tree node populates the right-hand panel with context-sensitive details: data type, target entity, inverse relation name, range, etc.

Development

This project uses uv for dependency management.

# Clone and set up — include the gui extra so wxpython is installed
git clone https://github.com/totonga/odsbox-pilot.git
cd odsbox-pilot
uv sync --extra gui

# Launch the app from source
uv run odsbox-pilot

# Alternative: run as a Python module
uv run python -m odsbox_pilot

# Run tests
uv run pytest tests/unit/

# Lint and type-check
uv run ruff check src/ tests/
uv run mypy src/

License

Apache License 2.0 — see LICENSE for details.

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

odsbox_pilot-1.5.0.tar.gz (234.0 kB view details)

Uploaded Source

Built Distribution

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

odsbox_pilot-1.5.0-py3-none-any.whl (244.7 kB view details)

Uploaded Python 3

File details

Details for the file odsbox_pilot-1.5.0.tar.gz.

File metadata

  • Download URL: odsbox_pilot-1.5.0.tar.gz
  • Upload date:
  • Size: 234.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odsbox_pilot-1.5.0.tar.gz
Algorithm Hash digest
SHA256 b3e89c2ebc9509dcc98c3b5340b02769c60b3b2964381c09f868ade8d7e35425
MD5 3aefbb948a2660c595d5c127d3b94e1a
BLAKE2b-256 78df64b7783d54d095d6a79dff8df6e40ce7e79c391ee421a28e496340e78909

See more details on using hashes here.

File details

Details for the file odsbox_pilot-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: odsbox_pilot-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 244.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odsbox_pilot-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3c68c082524a6e82ccc75b3113983eb5f44377d66c9fa80ad027839a3db233d1
MD5 322a43e720b8d481c5264a084758340d
BLAKE2b-256 02e3d26fbdbbaca5a168f026da17859421a79d0330801bc82e39545ff76e4a3b

See more details on using hashes here.

Supported by

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