예제 #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
예제 #2
0
 def test_guess_encoding_inconclusive(self):
     assert guess_encoding(
         bytes(COMMON_ASCII_CHARS) + bytes(5) +
         bytes(COMMON_EBCDIC_CHARS)) == None
예제 #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
예제 #4
0
 def test_guess_encoding_all_null_is_ascii(self):
     assert guess_encoding(bytes(5)) == ASCII
예제 #5
0
 def test_guess_encoding_empty_is_none(self):
     assert guess_encoding(b'') is None
예제 #6
0
 def test_guess_encoding_ebcdic(self):
     assert guess_encoding(bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
예제 #7
0
 def test_guess_encoding_ascii(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS)) == ASCII
예제 #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
예제 #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
예제 #10
0
 def test_guess_encoding_inconclusive(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS) + bytes(5) + bytes(COMMON_EBCDIC_CHARS)) == None
예제 #11
0
 def test_guess_encoding_all_null_is_ascii(self):
     assert guess_encoding(bytes(5)) == ASCII
예제 #12
0
 def test_guess_encoding_empty_is_none(self):
     assert guess_encoding(b'') is None
예제 #13
0
 def test_guess_encoding_ebcdic(self):
     assert guess_encoding(bytes(COMMON_EBCDIC_CHARS)) == EBCDIC
예제 #14
0
 def test_guess_encoding_ascii(self):
     assert guess_encoding(bytes(COMMON_ASCII_CHARS)) == ASCII
예제 #15
0
파일: toolkit.py 프로젝트: hohogpb/segpy
def guess_textual_header_encoding(fh):
    fh.seek(0)
    raw_header = fh.read(TEXTUAL_HEADER_NUM_BYTES)
    encoding = guess_encoding(raw_header)
    return encoding