Socket
Socket
Sign inDemoInstall

fcio

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fcio

FlashCam File Format (FCIO) reader for python.


Maintainers
1

Installation

Run python3 -m pip install fcio to install from the pypi repository.

Description

fcio-py provides a read-only wrapper around the fcio.c io library used in fc250b based digitizer systems.

The wrapper exposes the fcio.c memory fields as closely as possible to standard c-structs using numpy ndarrays or scalars where applicable. For convenience all supported fcio records are exposed as iterable properties of the base FCIO class to preselect records of interest.

Usage

Simple code example

The following example opens an fcio file and prints some basic event content to stdout:

from fcio import fcio_open

filename = 'path/to/an/fcio/file'

with fcio_open(filename, extended=True) as io:
  print("#evtno run_time utc_unix_sec utc_unix_nsec ntraces bl_mean bl_std")
  for event in io.events:
    print(f"{event.eventnumber} {event.run_time:.09f} {event.utc_unix_sec} {event.utc_unix_nsec} {event.trace_list.size} {event.fpga_baseline.mean():.1f} {event.fpga_baseline.std():.2f}")

Differences to C usage

  • fcio-py codifies the assumption that a FCIOConfig record must be available and skips all previous records on opening
  • reading of zstd or gzip compressed files is possible using suprocesses. This requires zstd or gzip to be available. If a file ends in .zst or .gz respectively and the compression parameter is default, this will happen automatically.

Development

Development is best done in a local environment, e.g. using venv:

# create local environment:
export MY_ENV=fcio_dev
python3 -m venv $MY_ENV

# activate the environment
source $MY_ENV/bin/activate

This library depends on meson-python/meson as build tool and Cython/numpy to wrap the c-sources. These should be installed automatically wenn running python3 -m build. To allow a more traditional workflow a thin Makefile is available which wraps the python3 and meson specific commands.

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc