Container
csv
- rxsci.container.csv.create_line_parser(dtype=None, none_values=[], separator=',', escapechar='\\', ignore_error=False, schema_name='x')
creates a parser for csv lines
- Parameters:
dtype – [Optional] A list of (name, type) tuples, or a typing.NamedTuple class. When set to None, then the csv header is used to create a schema where all columns are parsed as strings.
none_values – [Optional] Values to consider as None values
separator – [Optional] Token used to separate each columns
ignore_error – [Optional] when set to True, any line that does not match the provided number of columns raise an error an stop the parsing. When set to False, error lines are skipped.
- Returns:
A Parsing function, that can parse text lines as specified in the parameters.
- rxsci.container.csv.dump(header=True, separator=',', escapechar='\\', newline='\n')
dumps an observable to csv.
The source must be an Observable.
- Parameters:
header – [Optional] indicates whether a header line must be added.
separator – [Optional] Token used to separate each columns.
newline – [Optional] Character(s) used for end of line.
- Returns:
An observable string items, where each item is a csv line.
- rxsci.container.csv.dump_to_file(filename, header=True, separator=', ', escapechar='\\', newline='\n', encoding=None, open_obj=<built-in function open>)
dumps each item to a csv file.
The source must be an Observable.
- Parameters:
filename – Path of the file to read or a file object
header – [Optional] indicates whether a header line must be added.
separator – [Optional] Token used to separate each columns.
newline – [Optional] Character(s) used for end of line.
content (encoding [Optional] Encoding used to parse the text)
open_obj – [Optional] A custom function used to open the provided file.
- Returns:
An empty observable that completes on success when the source observable completes or completes on error if there is an error while writing the csv file.
- rxsci.container.csv.load(parse_line=<function create_line_parser.<locals>._parse>, skip=0)
Loads a csv observable.
The source observable must emit one csv row per item The source must be an Observable.
- Parameters:
parse_line – A line parser, e.g. created with create_line_parser
skip – number of items to skip before parsing (excluding the header)
- Returns:
An observable of namedtuple items, where each key is a csv column
- rxsci.container.csv.load_from_file(filename, parse_line=<function create_line_parser.<locals>._parse>, skip=0, encoding=None, open_obj=<built-in function open>)
Loads a csv file.
This factory loads the provided file and returns its content as an observable emitting one item per line.
- Parameters:
filename – Path of the file to read or a file object
parse_line – A line parser, e.g. created with create_line_parser
skip – [Optional] Number of lines to skip before parsing (excluding the header)
content (encoding [Optional] Encoding used to parse the text)
open_obj – [Optional] A custom function used to open the provided file.
- Returns:
An observable of namedtuple items, where each key is a csv column
json
- rxsci.container.json.dump(newline='\n')
dumps an observable to JSON.
If the source observable emits several items, then they are framed as JSON line. The source must be an Observable.
- Parameters:
newline – [Optional] Character(s) used for end of line.
- Returns:
An observable of string items, where each item is a JSON string.
- rxsci.container.json.dump_to_file(filename, newline='\n', encoding='utf-8', compression=None, open_obj=<built-in function open>)
dumps each item to a JSON file.
The source must be an Observable.
- Parameters:
filename – Path of the file to read or a file object
newline – [Optional] Character(s) used for end of line.
content (encoding [Optional] Encoding used to parse the text)
- Returns:
An empty observable that completes on success when the source observable completes or completes on error if there is an error while writing the csv file.
- rxsci.container.json.load(skip=0, ignore_error=False)
Loads a json observable.
The source observable must emit one JSON string per item The source must be an Observable.
- Parameters:
skip – number of items to skip before parsing
ignore_error – Ignore errors while parsing JSON
- Returns:
An observable of dicts corresponding to the source json content.
- rxsci.container.json.load_from_file(filename, lines=True, skip=0, ignore_error=False, encoding='utf-8', compression=None, open_obj=<built-in function open>)
Loads a json file.
This factory loads the provided file. The format of the returned observable depends on the lines parameter.
- Parameters:
filename – Path of the file to read or a file object
lines – Parse file as a JSON Line when set to True, as a single JSON object otherwise.
skip – [Optional] Number of lines to skip before parsing
ignore_error – Ignore errors while parsing MessagePack
content (encoding [Optional] Encoding used to parse the text)
[Optional] (compression) – ‘gzip’ or ‘zstd’
- Returns:
An observable of objects.