From c493c516961cd09d15ccfe35e4736544bf616486 Mon Sep 17 00:00:00 2001 From: Yannick Ulrich <yannick.ulrich@psi.ch> Date: Sun, 9 Feb 2020 11:22:12 +0100 Subject: [PATCH] 2: Added vegas record reader in re #17 --- pymule/__init__.py | 2 ++ pymule/vegas.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 pymule/vegas.py diff --git a/pymule/__init__.py b/pymule/__init__.py index dee8b2f..051ce74 100644 --- a/pymule/__init__.py +++ b/pymule/__init__.py @@ -1,2 +1,4 @@ import numpy as np import matplotlib.pyplot as plt + +from vegas import importvegas diff --git a/pymule/vegas.py b/pymule/vegas.py new file mode 100644 index 0000000..e30f677 --- /dev/null +++ b/pymule/vegas.py @@ -0,0 +1,19 @@ +import struct + + +def read_record(fp, typ): + l1 = struct.unpack("<I", fp.read(4))[0] + body = fp.read(l1) + l2 = struct.unpack("<I", fp.read(4))[0] + if l1 != l2: + raise KeyError("Record is not properly close %d v %d" % (l1, l2)) + + n = l1 / struct.calcsize(typ) + body = struct.unpack("<"+typ*n, body) + if typ == 'c': + return ''.join(body) + else: + if n == 1: + return body[0] + else: + return body -- GitLab