def sample_types(SAMPLE_TYPE, SAMPLE_BYTES):
    """Defines a translation from PDS data types to Python data types,
    using both the type and bytes specified (because the mapping to type
    is not consistent across PDS3).
    """
    return {
        "MSB_INTEGER": ">h",
        "INTEGER": ">h",
        "MAC_INTEGER": ">h",
        "SUN_INTEGER": ">h",
        "MSB_UNSIGNED_INTEGER": ">h" if SAMPLE_BYTES == 2 else ">B",
        "UNSIGNED_INTEGER": ">B",
        "MAC_UNSIGNED_INTEGER": ">B",
        "SUN_UNSIGNED_INTEGER": ">B",
        "LSB_INTEGER": "<h" if SAMPLE_BYTES == 2 else "<B",
        "PC_INTEGER": "<h",
        "VAX_INTEGER": "<h",
        "LSB_UNSIGNED_INTEGER": "<h" if SAMPLE_BYTES == 2 else "<B",
        "PC_UNSIGNED_INTEGER": "<B",
        "VAX_UNSIGNED_INTEGER": "<B",
        "IEEE_REAL": ">f",
        "PC_REAL": "<f",
        "FLOAT": ">f",
        "REAL": ">f",
        "MAC_REAL": ">f",
        "SUN_REAL": ">f",
        "MSB_BIT_STRING": ">B",
        "ASCII_REAL":f"S{SAMPLE_BYTES}", # "Character string representing a real number"
        "ASCII_INTEGER":f"S{SAMPLE_BYTES}", # ASCII character string representing an integer
        "DATE":f"S{SAMPLE_BYTES}", # "ASCII character string representing a date in PDS standard format" (1990-08-01T23:59:59)
        "CHARACTER":f"S{SAMPLE_BYTES}", # ASCII character string
    }[SAMPLE_TYPE]