""" _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
("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
("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
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).
("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 ----------