Exemple #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
Exemple #2
0
 def test_guess_encoding_inconclusive(self):
     assert guess_encoding(
         bytes(COMMON_ASCII_CHARS) + bytes(5) +
         bytes(COMMON_EBCDIC_CHARS)) == None
Exemple #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
Exemple #4
0
 def test_guess_encoding_all_null_is_ascii(self):
     assert guess_encoding(bytes(5)) == ASCII
Exemple #5
0
 def test_guess_encoding_empty_is_none(self):
     assert guess_encoding(b'') is None
Exemple #6
0
 def test_guess_encoding_ebcdic(self):
     assert guess_encoding(bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
Exemple #7
0
 def test_guess_encoding_ascii(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS)) == ASCII
Exemple #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
Exemple #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
Exemple #10
0
 def test_guess_encoding_inconclusive(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS) + bytes(5) + bytes(COMMON_EBCDIC_CHARS)) == None
Exemple #11
0
 def test_guess_encoding_all_null_is_ascii(self):
     assert guess_encoding(bytes(5)) == ASCII
Exemple #12
0
 def test_guess_encoding_empty_is_none(self):
     assert guess_encoding(b'') is None
Exemple #13
0
 def test_guess_encoding_ebcdic(self):
     assert guess_encoding(bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
Exemple #14
0
 def test_guess_encoding_ascii(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS)) == ASCII
Exemple #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