csb43.formats

Conversion from AEB43 to dict and tabular formats

class csb43.formats.CsbJsonEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)

a JSON encoder ready for currency and dates

default(o)

Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

For example, to support arbitrary iterators, you could implement default like this:

def default(self, o):
    try:
        iterable = iter(o)
    except TypeError:
        pass
    else:
        return list(iterable)
    # Let the base class default method raise the TypeError
    return JSONEncoder.default(self, o)
exception csb43.formats.FormatWarning

a warning related to conversion formats

csb43.formats.convert_aeb43_to_dict(batch: Batch, expected_format: str = 'json', decimal_fallback=None) _TablibSurrogate

Convert from CSB43 to a dictionary format

Args:
batchBatch

an AEB43 Batch

expected_formatstr

destination format

csb43.formats.convert_aeb43_to_tabular(batch: Batch, expected_format='ods', decimal_fallback=None)

Convert an AEB43 batch into a tablib data object

Args:

batchBatch

an AEB43 batch

expected_format: str

output format

decimal_fallback: str | None

fall-back representation for decimal objects

Returns a tablib.Databook or tablib.Dataset

csb43.formats.convert_from_aeb43(batch: Batch, expected_format: str, decimal_fallback: str | None = None)

Convert a batch file into a tablib data object or a dictionary-like object

Args:

batchBatch

an AEB43 batch

decimal_fallback

decimal number fallback representation:

  • ‘float’: use type float

  • ‘str’: represent decimal as a string

  • None: use default fallback (‘str’)

Returns tablib.Databook, tablib.Dataset or an object with an attribute named as expected_format

formats.FORMATS = ['json', 'csv', 'latex', 'ods', 'xlsx', 'yaml', 'tsv', 'html', 'jira', 'dbf', 'rst', 'xls']
formats.TABLIB_FORMATS = ['json', 'xlsx', 'xls', 'yaml', 'csv', 'tsv', 'ods', 'dbf', 'html', 'jira', 'latex', 'rst']
formats.DICT_FORMATS = ['json', 'yaml']
csb43.formats.convertFromCsb(csb: File, expectedFormat, decimal_fallback=None)

Convert a File file into an tablib data object or a dictionary-like object

Parameters:
  • csb (csb43.csb43.File) – a csb file

  • decimal_fallback – decimal number fallback representation:

  • ‘float’: use type float

  • ‘str’: represent decimal as a string

  • None: use default fallback (‘str’)

Return type:

tablib.Databook, tablib.Dataset or a object with an attribute named as expectedFormat

Deprecated since version 0.10.0: use csb43.formats.convert_from_aeb43

csb43.formats.convertFromCsb2Dict(csb: File, expectedFormat='json', decimal_fallback=None)

Convert from CSB43 to a dictionary format

Parameters:
  • csb (csb43.csb43.File) – a csb file

  • decimal_fallback – decimal number fallback representation

Return type:

a object with an attribute named as expectedFormat

Raises:

csb43.utils.Csb43Exception when the format is unknown or unsupported

>>> from csb43.csb43 import File
>>> import csb43.formats as formats
>>> f = File()
>>> o = formats.convertFromCsb2Dict(f, 'yaml')
>>> print(o.yaml)
cuentas: []
>>> o = formats.convertFromCsb2Dict(f, 'json')
>>> print(o.json)
{
 "cuentas": []
}

Deprecated since version 0.10.0: use csb43.formats.convert_aeb43_to_dict

csb43.formats.convertFromCsb2Tabular(csb: File, expectedFormat='ods', decimal_fallback=None)

Convert a File file into an tablib data object

Parameters:
  • csb (csb43.csb43.File) – a csb file

  • decimal_fallback – decimal number fallback representation

Return type:

tablib.Databook or tablib.Dataset

Deprecated since version 0.10.0: use csb43.formats.convert_aeb43_to_tabular