bw_simapro_csv.utils ==================== .. py:module:: bw_simapro_csv.utils Attributes ---------- .. autoapisummary:: bw_simapro_csv.utils.NO_STRINGS bw_simapro_csv.utils.RE_SPECIAL bw_simapro_csv.utils.YES_STRINGS bw_simapro_csv.utils.comma bw_simapro_csv.utils.period Functions --------- .. autoapisummary:: bw_simapro_csv.utils.add_amount_or_formula bw_simapro_csv.utils.alternating_key_value bw_simapro_csv.utils.asboolean bw_simapro_csv.utils.asdate bw_simapro_csv.utils.asnumber bw_simapro_csv.utils.get_key_multiline_values bw_simapro_csv.utils.get_numbers_re bw_simapro_csv.utils.get_true_length bw_simapro_csv.utils.json_serializer bw_simapro_csv.utils.jump_to_nonempty bw_simapro_csv.utils.nobraces bw_simapro_csv.utils.noquotes bw_simapro_csv.utils.normalize_number_in_formula bw_simapro_csv.utils.parameter_set_evaluate_each_formula bw_simapro_csv.utils.skip_empty Module Contents --------------- .. py:function:: add_amount_or_formula(data: dict, value: str, decimal_separator: str, amount_key: str = 'amount', formula_key: str = 'formula') -> dict Add amount or formula depending on `value` form .. py:function:: alternating_key_value(data: List[list]) -> List[tuple] Transform data in alternating key/value/blank rows to tuples with `(key, value)`. For example, turn: ``` Foo bar; baz ``` Into: ```python [("Foo", ["bar", "baz"])] ``` .. py:function:: asboolean(s: str, allow_nonboolean: bool = False) -> bool Convert SimaPro strings to actual booleans .. py:function:: asdate(value: str, dayfirst: bool = True) -> datetime.date Parse a string to a `datetime.date` .. py:function:: asnumber(value: Union[str, numbers.Number], decimal_separator: str = '.', allow_nonnumber: bool = False) -> Union[numbers.Number, str] Take a number stored as a string and convert to a float. Tries hard to handle different formats. .. py:function:: get_key_multiline_values(block: list[tuple], stop_terms: Iterable) -> tuple[str, list] Pull off the first non-empty line, then optional empty lines, and then each data line until an empty line .. py:function:: get_numbers_re(separator: str) -> Pattern .. py:function:: get_true_length(line: list) -> int Computes line length, not accounting for trailing empty elements .. py:function:: json_serializer(obj) .. py:function:: jump_to_nonempty(data: list) -> list Skip empty rows at beginning of list .. py:function:: nobraces(s: str) -> str Remove braces from header section elements .. py:function:: noquotes(s: str) -> str Remove string start/end characters and colons .. py:function:: normalize_number_in_formula(formula: str, decimal_separator: str = '.') -> str .. py:function:: parameter_set_evaluate_each_formula(ps: bw2parameters.ParameterSet) -> dict[str, float] Do manual evaluation to catch math errors and give individual context. Copied from https://github.com/brightway-lca/brightway2-parameters/blob/main/bw2parameters/parameter_set.py. .. py:function:: skip_empty(data: list) -> Iterable Return iterable of nonempty lines .. py:data:: NO_STRINGS .. py:data:: RE_SPECIAL :value: '.*^$+?[]\\|' .. py:data:: YES_STRINGS .. py:data:: comma .. py:data:: period