codeshow/util.py

def truncate(path, length=30):

segments = path.split('/')

s = segments.pop()

while len(segments) > 0 and len(s) + len(segments[-1]) <= (length-4):

s = segments.pop() + '/' + s

if len(segments) > 0:

s = '.../' + s

return s

def is_binary(filename):

with open(filename, 'rb') as f:

CHUNKSIZE = 1024

while True:

chunk = f.read(CHUNKSIZE)

if '\0' in chunk: return True

if len(chunk) < CHUNKSIZE: break

return False