prelude-parser

Parses XML files exported from Prelude EDC into formats usable by Python.


Keywords
parser, prelude-edc, xml, pandas, polars, python, rust, xml-parser
License
MIT
Install
pip install prelude-parser==0.4.0

Documentation

Prelude Parser

Tests Status pre-commit.ci status Coverage PyPI version PyPI - Python Version

Parses XML files exported from Prelude EDC into formats Python can use.

Installation

pip install prelude-parser

Optionally the pandas extra can be installed to parse to a Pandas DataFrame

Note: Pandas only supports Python 3.9+ so this is not available in Python 3.8.

pip install prelude-parser[pandas]

Optionally the polars extra can be installed to parse to a Polars DataFrame

pip install prelude-parser[polars]

All extras can be install with

pip install prelude-parser[all]

Usage

Parse a Prelude flat XML file to a Python dictionary.

from prelude_parser import parse_to_dict
data = parse_to_dict("physical_examination.xml")

Parse a Prelude flat XML file into a list of Python class. The name of the class is taken from the form name node in the XML file converted to pascal case. For example a <physical_examination> node will result in a PhysicalExamination class being created.

from prelude_parser import parse_to_classes
data = parse_to_classes("physical_examination.xml")

Parse a Prelude flat XML file into a Pandas DataFrame. This works for Prelude flat XML files that were exported with the "write tables to seperate files" option. In order to use this option prelude-parser either needs to be installed with the pandas extra or the all extras.

from prelude_parser.pandas import to_dataframe
df = to_dataframe("physical_examination.xml")

Parse a Prelude flat XML file into a Polars DataFrame. This works for Prelude flat XML files that were exported with the "write tables to seperate files" option. In order to use this option prelude-parser either needs to be installed with the polars extra or the all extras.

from prelude_parser.polars import to_dataframe
df = to_dataframe("physical_examination.xml")

Contributing

Contributions to this project are welcome. If you are interesting in contributing please see our contributing guide