You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
20 years ago
|
|
||
|
import string
|
||
|
|
||
|
# Header for the files information
|
||
|
file_info_header = 'File Size Description\n'\
|
||
|
+ '-' * 78
|
||
|
|
||
|
class ULog:
|
||
|
def __init__(self, path):
|
||
|
self.path = path
|
||
|
self.fp = open(path, 'a')
|
||
|
|
||
|
def puts(self, string):
|
||
|
fp.puts(strftime('%b %d %H:%M:%S ', gmtime())+string)
|
||
|
|
||
|
def close(self):
|
||
|
fp.close()
|
||
|
|
||
|
def format_desc(desc, offset, width=78):
|
||
|
""" Format file's description
|
||
|
"""
|
||
|
yield = ''
|
||
|
desc = string.expandtabs(desc, 1)
|
||
|
for line in string.split(desc, '\n'):
|
||
|
line = string.rstrip(line)
|
||
|
if line == '':
|
||
|
continue
|
||
|
pos = 0
|
||
|
endpos = width
|
||
|
while line[pos:endpos]:
|
||
|
if yield:
|
||
|
yield = yield + '\n'
|
||
|
yield = yield + offset * ' '
|
||
|
yield = yield + line[pos:endpos]
|
||
|
pos = endpos
|
||
|
endpos = endpos + width
|
||
|
return yield
|
||
|
|
||
|
def format_file_info(name, size, desc, line_length=78):
|
||
|
""" Format file information to meet human requirements
|
||
|
"""
|
||
|
if size < 0:
|
||
|
yield = '%-20s ' % name + 11 * ' '
|
||
|
else:
|
||
|
yield = '%-20s %-11d' % (name, size)
|
||
|
if desc:
|
||
|
offset = len(yield) + 1
|
||
|
width = line_length - offset
|
||
|
desc = format_desc(desc, offset, width)
|
||
|
yield = yield + ' ' + string.lstrip(desc)
|
||
|
else:
|
||
|
yield = yield + ' Description not available'
|
||
|
return yield
|
||
|
|