Spectr
A terminal user interface (TUI) for browsing, previewing, and managing data files created by QASS Analyzer4D software.
Demo using the catppuccin-mocha theme
Features
- Browse and preview Analyzer4D data files directly in your terminal
- Customizable table columns and sorting
- Multiple plot marker styles with configurable downsampling
- Flexible file filtering with glob and regex patterns
- Theming support
Installation
Install Spectr as a standalone tool using uv:
uv tool install spectr
Or run it directly without installing:
uvx spectr --help
Usage
By default, Spectr scans the current working directory recursively for files matching Analyzer4D's standard naming conventions:
spectr
To scan a specific directory:
spectr --path /path/to/data
To use custom file patterns:
spectr --glob-pattern "*.dat" --regex-pattern "your_pattern"
Note: Scanning directories with many files may take some time.
Configuration
Spectr uses a TOML configuration file located at ~/.config/spectr/config.toml.
Example Configuration
[table]
columns = ["process", "compression_time", "compression_frq", "avg_time", "avg_frq"]
build_batch_size = 1000
[table.sort]
attribute = "process"
order = "ASC" # or "DESC"
[plot]
marker = "braille" # options: "braille", "fhd", "hd", "dot"
displayed_datapoints = 1000
downsampling = "lttb" # options: "lttb", "max_bucket"
[stats]
attributes = [
"project_id", "directory_path", "filename", "process", "channel",
"datamode", "datakind", "datatype", "process_time", "process_date_time",
"db_header_size", "bytes_per_sample", "db_count", "full_blocks",
"db_size", "db_sample_count", "frq_bands", "db_spec_count",
"compression_frq", "compression_time", "avg_time", "avg_frq",
"spec_duration", "frq_start", "frq_end", "frq_per_band",
"sample_count", "spec_count", "adc_type", "bit_resolution",
"fft_log_shift", "streamno", "preamp_gain", "analyzer_version", "partnumber"
]
[metadata_cache]
sync_recursive = true # currently unused
persist_cache = false
[display]
filesize_unit = "binary" # options: "binary", "decimal"
All table.columns and stats.attributes values correspond to attributes from the qass.tools.analyzer.buffer_metadata.BufferMetadata object.
Contributing
Contributions are welcome! The current focus is on improving core features—preview, filtering, and copying—to make them more user-friendly and robust. If you have ideas for improving the user experience, please open an issue.
Roadmap
- Async or paginated table creation (large query results currently cause temporary unresponsiveness)
- Improved copy screen UX
- Text input for path entry
- Preselect current working directory in directory tree
- Async conflict calculation
- Persist selected theme
License
GNU Lesser General Public License v3.0
Acknowledgments
Built on top of qass-tools-analyzer by QASS GmbH, which provides the core functionality for reading and organizing Analyzer4D files.
Metadata
Release files for spectr 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spectr-0.6.2.tar.gz | 14.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spectr-0.6.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.9 kB
Release files / spectr-0.6.2.tar.gz
| Download URL | spectr-0.6.2.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a40d2e5960e5718a9fc80310197c15090bd66283ec4e147e8881d1dcfa027024
|
|
BLAKE2b-256 checksum How to use checksums |
47a99cd1f3a74535f9c8883522d60572e22b2868707de8fe7c2a7c031a0037de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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}
|
Release files / spectr-0.6.2-py3-none-any.whl
| Download URL | spectr-0.6.2-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af55ea5ba9a5d5f2d6ade093e7928112b63d126c02d5e2577397c6da62bec240
|
|
BLAKE2b-256 checksum How to use checksums |
086b44773b74fbf164bd4ebb80012c92b3be283828d26d306ee3473b7fd8feef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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}
|