Skip to main content

Spectr

A terminal user interface (TUI) for browsing, previewing, and managing data files created by QASS Analyzer4D software.

Demo recording showing file preview functionality

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)

Source distribution for spectr 0.6.2
File Size Uploaded
spectr-0.6.2.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spectr 0.6.2
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5

2 release files

0.4

2 release 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