Skip to main content

A TUI for browsing Analyzer4D data stream files

Project description

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"]

[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

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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

spectr-0.4a0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file spectr-0.4a0-py3-none-any.whl.

File metadata

  • Download URL: spectr-0.4a0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.14 {"installer":{"name":"uv","version":"0.9.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for spectr-0.4a0-py3-none-any.whl
Algorithm Hash digest
SHA256 4cc7b2d29a796040e94097236ad1dbfd4fe5235a264d1df2219e0023eb05e709
MD5 8c7674fd955d320b7e5f27316c3d400e
BLAKE2b-256 139dde001c33449230b54abd4bef3a7d09030ff293057bdb6fd02446c5438e7b

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