Esempio n. 1
0
def guess_textual_header_encoding(fh):
    """Read the SEG Y card image header, also known as the textual header

    Args:
        fh: A file-like object open in binary mode positioned such that the
            beginning of the textual header will be the next byte to read.

    Returns:
        Either 'cp037' for EBCDIC or 'ascii' for ASCII.
    """
    with restored_position_seek(fh, 0):
        raw_header = fh.read(TEXTUAL_HEADER_NUM_BYTES)
    encoding = guess_encoding(raw_header)
    return encoding
Esempio n. 2
0
 def test_guess_encoding_inconclusive(self):
     assert guess_encoding(
         bytes(COMMON_ASCII_CHARS) + bytes(5) +
         bytes(COMMON_EBCDIC_CHARS)) == None
Esempio n. 3
0
 def test_guess_encoding_mostly_ebcdic(self):
     assert guess_encoding(
         bytes(COMMON_ASCII_CHARS) + bytes(COMMON_EBCDIC_CHARS) +
         bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
Esempio n. 4
0
 def test_guess_encoding_all_null_is_ascii(self):
     assert guess_encoding(bytes(5)) == ASCII
Esempio n. 5
0
 def test_guess_encoding_empty_is_none(self):
     assert guess_encoding(b'') is None
Esempio n. 6
0
 def test_guess_encoding_ebcdic(self):
     assert guess_encoding(bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
Esempio n. 7
0
 def test_guess_encoding_ascii(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS)) == ASCII
Esempio n. 8
0
def guess_textual_header_encoding(fh):
    fh.seek(0)
    raw_header = fh.read(TEXTUAL_HEADER_NUM_BYTES)
    encoding = guess_encoding(raw_header)
    return encoding
Esempio n. 9
0
 def test_guess_encoding_mostly_ebcdic(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS) + bytes(COMMON_EBCDIC_CHARS) + bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
Esempio n. 10
0
 def test_guess_encoding_inconclusive(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS) + bytes(5) + bytes(COMMON_EBCDIC_CHARS)) == None
Esempio n. 11
0
 def test_guess_encoding_all_null_is_ascii(self):
     assert guess_encoding(bytes(5)) == ASCII
Esempio n. 12
0
 def test_guess_encoding_empty_is_none(self):
     assert guess_encoding(b'') is None
Esempio n. 13
0
 def test_guess_encoding_ebcdic(self):
     assert guess_encoding(bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
Esempio n. 14
0
 def test_guess_encoding_ascii(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS)) == ASCII
Esempio n. 15
0
def guess_textual_header_encoding(fh):
    fh.seek(0)
    raw_header = fh.read(TEXTUAL_HEADER_NUM_BYTES)
    encoding = guess_encoding(raw_header)
    return encoding