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
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')