Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

shr-parser

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shr-parser

Parses sweeps from a Signal Hound Spike file.

  • 0.1.6
  • PyPI
  • Socket score

Maintainers
1

SHR Parser Python Bindings

This project provides Python bindings for the Rust-based shr_parser library, which is designed to parse and handle SHR files. The SHR file format includes a file header and multiple sweeps, each with its own header and data. This library uses memory mapping for efficient file reading and Rayon for parallel processing of sweeps.

Features

  • Parse SHR Files: Read and interpret SHR files, including headers and sweeps.
  • Validate Files: Ensure the integrity of SHR files by validating signatures and versions.
  • Sweep Metrics Calculation: Compute key metrics such as peak, mean, and low values from sweep data.
  • CSV Export: Export parsed SHR data to CSV format for easy analysis and reporting.

Installation

To install the Python bindings, you need to build the Rust library and install it as a Python module using maturin. Make sure you have Rust and Python installed on your system.

  1. Install maturin:

    pip install maturin
    
  2. Build and install the module:

    maturin develop
    

Usage

Here's an example of how to use the SHR file parser from Python:

import shr_parser

# Define the file path and parsing type
file_path = "path/to/your/shrfile.shr"
parsing_type = 0  # SHRParsingType::Peak

# Create a SHRParser instance and use its methods
parser = shr_parser.SHRParser(file_path, parsing_type)
print(parser.get_file_path())
print(parser.get_file_header())
for sweep in parser.get_sweeps():
    print(sweep)
parser.to_csv("output.csv")

Module Structure

SHRParser Class

A class representing a parser for SHR files.

Methods
  • __init__(self, file_path: str, parsing_type: int) -> SHRParser
  • to_str(self) -> str
  • to_csv(self, path: str) -> None
  • get_file_path(self) -> str
  • get_file_header(self) -> str
  • get_sweeps(self) -> List[Tuple[int, int, float, float]]

Example

Here is an example usage of the SHRParser class:

import shr_parser

# Define the file path and parsing type
file_path = "path/to/your/shrfile.shr"
parsing_type = 0  # SHRParsingType::Peak

# Create a parser instance
parser = shr_parser.SHRParser(file_path, parsing_type)

# Get file path
print(parser.get_file_path())

# Get file header
print(parser.get_file_header())

# Get sweeps
for sweep in parser.get_sweeps():
    print(sweep)

# Export to CSV
parser.to_csv("output.csv")

Documentation

For detailed documentation on the shr_parser library, refer to the Rust documentation. To generate the documentation locally, run:

cargo doc --open

Contributing

Contributions are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request.

License

This project is licensed under the GPLv3 License. See the LICENSE file for details.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc