Subversion Repositories pub

Compare Revisions

Ignore whitespace Rev 614 → Rev 615

/relevation/trunk/src/relevation.py
46,6 → 46,7
import getopt
import getpass
from lxml import etree
import locale
import os
import stat
import string
191,7 → 192,7
if type(search_text) == list:
needles = search_text
else:
# FIXME: No longer needed
# FIXME: Used for OR's
assert type(search_text) == str or type(search_text) == unicode
needles = [ search_text, ]
selector = ''
243,8 → 244,9
return nr
 
def dump_single_result(typeName, name, descr, notes, fields):
''' dump_single_result(str, unicode, unicode, list) -> None '''
printe('-------------------------------------------------------------------------------')
s = '\n'
s = u'\n'
s += 'Type: %s\n' % typeName
s += 'Name: %s\n' % name
s += 'Description: %s\n' % descr
251,12 → 253,29
s += 'Notes: %s\n' % notes
for field in fields:
s += '%s %s\n' % field # field, value
print s.encode(sys.stdout.encoding)
try:
# sys.stdout.encoding will be None if piped
print s.encode(sys.stdout.encoding or locale.getpreferredencoding())
except UnicodeEncodeError:
# E.g. console in ASCII ($ LC_ALL=C relevation)
# TODO: Flag for notification
#printe("WARNING: The console doesn't have a compatible encoding, falling back to UTF-8")
print s.encode('utf8')
 
def dump_result(res, query_desc, dumpfn=dump_single_result):
''' Print query results.
dump_result(list of entries, query description) -> int
'''
def u8(s):
''' Return a unicode version of s, whether it's already a unicode
string or a str encoded in UTF-8
'''
# Note the XML is in UTF-8, and that the extracted fields will be
# either type
if type(s) == unicode:
return s
return unicode(s.decode('utf8'))
 
print '-> Search %s: ' % query_desc,
if not len(res):
print 'No results'
273,6 → 292,7
val = chld.text
if val is None:
val = ''
val = u8(val)
if n == 'name':
name = val
elif n == 'description':