"""

_ITEMS = [("record_type", ("F", 1, "\x00", lambda x: x)),
          ("number_of_a_records", ("00000000", 8, "0",
                                   lambda x: rjust_zero(x, 8))),
          ("zeros", (21 * "0", 21, "0", lambda x: x)),
          ("blank_1", ("", 19, "\x00", lambda x: x)),
          ("total_number_of_payees", ("00000000", 8, "0",
                                      lambda x: rjust_zero(x, 8))),
          ("blank_2", ("", 442, "\x00", lambda x: x)),
          ("record_sequence_number", ("", 8, "0", lambda x: x)),
          ("blank_3", ("", 241, "\x00", lambda x: x)),
          ("blank_4", ("", 2, "\x00", lambda x: x))]

_END_OF_TRANSMISSION_SORT, _END_OF_TRANSMISSION_TRANSFORMS = \
    factor_transforms(_ITEMS)


def xform(data):
    """
    Applies transformation functions definted in _END_OF_TRANSMISSION_TRANSFORMS
    to data supplied as parameter to respective key-value pairs provided as the
    input parameter.

    Parameters
    ----------
    data : dict
        Expects data parameter to have keys that exist in the
        _END_OF_TRANSMISSION_TRANSFORMS dict.

    Returns
Example #2
0
          ("record_sequence_number", ("", 8, "\x00", lambda x: x)),
          ("blank_4", ("", 10, "\x00", lambda x: x)),
          ("vendor_indicator", ("I", 1, "\x00", uppercase)),
          ("vendor_name", ("", 40, "\x00", uppercase)),
          ("vendor_mailing_address", ("", 40, "\x00", lambda x: x)),
          ("vendor_city", ("", 40, "\x00", uppercase)),
          ("vendor_state", ("", 2, "\x00", uppercase)),
          ("vendor_zip_code", ("", 9, "\x00", lambda x: x)),
          ("vendor_contact_name", ("", 40, "\x00", uppercase)),
          ("vendor_contact_telephone_and_ext", ("", 15, "\x00", digits_only)),
          ("blank_5", ("", 35, "\x00", lambda x: x)),
          ("vendor_foreign_entity_indicator", ("", 1, "\x00", uppercase)),
          ("blank_6", ("", 8, "\x00", lambda x: x)),
          ("blank_7", ("", 2, "\x00", lambda x: x))]

_TRANSMITTER_SORT, _TRANSMITTER_TRANSFORMS = factor_transforms(_ITEMS)


def xform(data):
    """
    Applies transformation functions definted in _TRANSMITTER_TRANSFORMS to data
    supplied as parameter to respective key-value pairs provided as the
    input parameter.

    Parameters
    ----------
    data : dict
        Expects data parameter to have keys that exist in the
        _TRANSMITTER_TRANSFORMS dict.

    Returns
Example #3
0
    ("record_type", ("C", 1, "\x00", lambda x: x)),
    ("number_of_payees", ("", 8, "0", lambda x: x)),
    ("blank_1", ("", 6, "\x00", lambda x: x)),
]

for field in chain((x for x in range(1, 10)), \
                   (chr(x) for x in range(ord('A'), ord('H')))):
    _ITEMS.append((f"payment_amount_{field}", (18 * "0", 18, "0",
                                               lambda x: rjust_zero(x, 18))))

_ITEMS += [("blank_2", ("", 196, "\x00", lambda x: x)),
           ("record_sequence_number", ("", 8, "0", lambda x: x)),
           ("blank_3", ("", 241, "\x00", lambda x: x)),
           ("blank_4", ("", 2, "\x00", lambda x: x))]

_END_OF_PAYER_SORT, _END_OF_PAYER_TRANSFORMS = factor_transforms(_ITEMS)


def xform(data):
    """
    Applies transformation functions definted in _END_OF_PAYER_TRANSFORMS to
    data supplied as parameter to respective key-value pairs provided as the
    input parameter.

    Parameters
    ----------
    data : dict
        Expects data parameter to have keys that exist in the
        _END_OF_PAYER_TRANSFORMS dict.

    Returns
Example #4
0
for field in chain((x for x in range(1, 10)), \
                   (chr(x) for x in range(ord('A'), ord('H')))):
    _ITEMS.append((f"payment_amount_{field}", (18 * "0", 18, "0",
                                               lambda x: rjust_zero(x, 18))))

_ITEMS += [("blank_2", ("", 196, "\x00", lambda x: x)),
           ("record_sequence_number", ("", 8, "0", lambda x: x)),
           ("blank_3", ("", 199, "\x00", lambda x: x)),
           ("state_income_tax_withheld", ("", 18, "\x00", lambda x: x)),
           ("local_income_tax_withheld", ("", 18, "\x00", lambda x: x)),
           ("blank_4", ("", 4, "\x00", lambda x: x)),
           ("combined_federal_state_code", ("", 2, "\x00", lambda x: x)),
           ("blank_5", ("", 2, "\x00", lambda x: x))]

_STATE_TOTALS_SORT, _STATE_TOTALS_TRANSFORMS = factor_transforms(_ITEMS)


def xform(data):
    """
    Applies transformation functions definted in _STATE_TOTALS_TRANSFORMS to
    data supplied as parameter to respective key-value pairs provided as the
    input parameter.

    Parameters
    ----------
    data : array[dict]
        Array of dict elements containing State Totals data.
        Expects element of the array to have keys that exist in the
        _STATE_TOTALS_TRANSFORMS dict (not required to have all keys).
Example #5
0
    ("record_sequence_number",
     ("00000003", 8, "\x00", lambda x: rjust_zero(x, 8))),
    ("blank_5", ("", 36, "\x00", lambda x: x)),
    ("second_tin_notice", ("", 1, "\x00", lambda x: x)),
    ("blank_6", ("", 2, "\x00", lambda x: x)),
    ("direct_sales_indicator", ("", 1, "\x00", lambda x: x)),
    ("fatca_filing_requirement_indicator", ("", 1, "\x00", lambda x: x)),
    ("blank_7", ("", 114, "\x00", lambda x: x)),
    ("special_data_entries", ("", 60, "\x00", lambda x: x)),
    ("state_income_tax_withheld", ("", 12, "\x00", lambda x: x)),
    ("local_income_tax_withheld", ("", 12, "\x00", lambda x: x)),
    ("combined_federal_state_code", ("", 2, "\x00", lambda x: x)),
    ("blank_8", ("", 2, "\x00", lambda x: x))
]

_PAYEE_SORT, _PAYEE_TRANSFORMS = factor_transforms(_ITEMS)

def xform(data):
    """
    Applies transformation functions definted in _PAYEE_TRANSFORMS to data
    supplied as parameter.

    Parameters
    ----------
    data : array[dict]
        Array of dict elements containing Payee data.
        Expects element of the array to have keys that exist in the
        _PAYEE_TRANSFORMS dict (not required to have all keys).

    Returns
    ----------