ASAM ODS desktop query tool powered by odsbox
Project description
odsbox-pilot
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:
- 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.jsonacross sessions. - Root entity — select which entity type to query as the tree root, then click Query.
- 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.
- 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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3e89c2ebc9509dcc98c3b5340b02769c60b3b2964381c09f868ade8d7e35425
|
|
| MD5 |
3aefbb948a2660c595d5c127d3b94e1a
|
|
| BLAKE2b-256 |
78df64b7783d54d095d6a79dff8df6e40ce7e79c391ee421a28e496340e78909
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c68c082524a6e82ccc75b3113983eb5f44377d66c9fa80ad027839a3db233d1
|
|
| MD5 |
322a43e720b8d481c5264a084758340d
|
|
| BLAKE2b-256 |
02e3d26fbdbbaca5a168f026da17859421a79d0330801bc82e39545ff76e4a3b
|