Fmri-physio-log

Latest version: v0.3.3

Safety actively analyzes 688126 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.3.3

- Fixes 5. Thank you berndf for the bug report and patch! :)
- Drops support for python 3.8 in preparation for 3.8 reaching EOL in October 2024.
- Updates README to describe how to use the `lark` CLI to (re)generate the parser.
- Updates development dependencies/github actions/pre-commit to the latest versions.

**Full Changelog**: https://github.com/andrewrosss/fmri-physio-log/compare/0.3.2...0.3.3

0.3.2

bash
$ git checkout 0.3.2 + setup venv with lark
$ python -m timeit -v -n 10 -s "from fmri_physio_log import PhysioLog; from pathlib import Path; content = Path('samples/full/example_02.puls').read_text()" -- "PhysioLog(content)"
raw times: 9.73 sec, 9.6 sec, 9.59 sec, 9.58 sec, 9.6 sec

10 loops, best of 5: 958 msec per loop


- More ergonomic `PhysioLog` class.

- Introduced a new `.from_string` classmethod. (Example below)
- The plan is to turn `PhysioLog` in to a dataclass in the `v0.4` release, `PhysioLog.from_string` is intended to be the replacement for directly calling the init method.

- Introduced a new `n_params` kw-only argument to `__init__` (and related classmethods). (Example below)
- `PhysioLog` will try to heuristically deduce the number acquisition parameters at the beginning of the string/file, however previous this was the _only_ behaviour. If you know better than `PhysioLog` you can now directly specify the number of parameters expected at the beginning of the file.

- Introduced a new `.data` attribute. (Example below)
- Similar to the previous point, related to flexibility of the `PhysioLog` class related to which values are "acquisition params" and which values are "data", this attribute will make the parsed "raw" data available to you (i.e. it's as list of the params + the data; no "splitting" by `PhysioLog`.

**Example:**

text
>>> from pathlib import Path
>>> from fmri_physio_log import PhysioLog
>>> content_str = Path('samples/short/example_01.ecg').read_text()
>>> print(content_str)
1 1 2 40 280 5002 LOGVERSION 102 6002 5002 TRIGGERMETHOD 10 6002 5002 MSGTYPE 103 6002 5002 MSGTYPE 220 eTriggerMethod: 10, minLimitCh1: 0, maxLimitCh1: 0, minLimitAVF: 0, maxLimitAVF: 0 6002 5002 MSGTYPE 210 6002 2048 10240 2048 10240 2048 5003
ECG Freq Per: 0 0
PULS Freq Per: 148 405
RESP Freq Per: 12 4660
EXT Freq Per: 0 0
ECG Min Max Avg StdDiff: 0 0 0 0
PULS Min Max Avg StdDiff: 180 1142 498 17
RESP Min Max Avg StdDiff: 4400 5740 4973 44
EXT Min Max Avg StdDiff: 0 0 0 0
NrTrig NrMP NrArr AcqWin: 0 0 0 0
LogStartMDHTime: 45927805
LogStopMDHTime: 46228520
LogStartMPCUTime: 45927897
LogStopMPCUTime: 46227375
6003

>>> log = PhysioLog.from_string(content_str, n_params=7)
>>> log.params
(1, 1, 2, 40, 280, 2048, 10240)
>>> log.ts
[2048, 10240, 2048]
>>> log.data
[1, 1, 2, 40, 280, 2048, 10240, 2048, 10240, 2048]

0.3.2rc2

0.3.2rc1

0.3.1

- Fix broken README badge URL
- Fix typos

0.3.0

- Add support of `EXT2` modality (4). Thank you berndf for the initial patch!
- Drop support for python 3.7 in preparation for 3.7 reaching EOL on June 27, 2023.
- Update code comments/documentation related to how pyparsing is used.
- Include more sample files.
- Expand test suite.

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.