示例#1
0
def get_type_optimized(path, follow=False):
    mtypes = sorted(Mime.globs.all_matches(path),
                    key=(lambda x: x[1]),
                    reverse=True)
    if mtypes:
        max_weight = mtypes[0][1]
        i = 1
        for mt, w in mtypes[1:]:
            if w < max_weight:
                break
            i += 1
        mtypes = mtypes[:i]
        if len(mtypes) == 1:
            return mtypes[0][0]

        possible = [mt for mt, w in mtypes]
    else:
        possible = None

    # Break if we have a named-based candidate
    if mtypes:
        return mtypes[0][0]

    t = None
    try:
        t = Mime.magic.match(path, possible=possible)
    except IOError:
        t = None

    if t:
        return t
    elif mtypes:
        return mtypes[0][0]
    else:
        return Mime.text if Mime.is_text_file(path) else Mime.octet_stream
示例#2
0
    def test_is_text(self):
        assert Mime._is_text(b'abcdef \n')
        assert not Mime._is_text(b'abcdef\x08')
        assert not Mime._is_text(b'abcdef\x0e')
        assert not Mime._is_text(b'abcdef\x1f')
        assert not Mime._is_text(b'abcdef\x7f')

        # Check nonexistant file.
        assert not Mime.is_text_file('/fwoijorij')
示例#3
0
 def test_is_text(self):
     assert Mime._is_text(b'abcdef \n')
     assert not Mime._is_text(b'abcdef\x08')
     assert not Mime._is_text(b'abcdef\x0e')
     assert not Mime._is_text(b'abcdef\x1f')
     assert not Mime._is_text(b'abcdef\x7f')
     
     # Check nonexistant file.
     assert not Mime.is_text_file('/fwoijorij')