46,7 → 46,6 |
import getopt |
import getpass |
from lxml import etree |
import locale |
import os |
import stat |
import string |
192,7 → 191,7 |
if type(search_text) == list: |
needles = search_text |
else: |
# FIXME: Used for OR's |
# FIXME: No longer needed |
assert type(search_text) == str or type(search_text) == unicode |
needles = [ search_text, ] |
selector = '' |
244,9 → 243,8 |
return nr |
|
def dump_single_result(typeName, name, descr, notes, fields): |
''' dump_single_result(str, unicode, unicode, list) -> None ''' |
printe('-------------------------------------------------------------------------------') |
s = u'\n' |
s = '\n' |
s += 'Type: %s\n' % typeName |
s += 'Name: %s\n' % name |
s += 'Description: %s\n' % descr |
253,29 → 251,12 |
s += 'Notes: %s\n' % notes |
for field in fields: |
s += '%s %s\n' % field # field, value |
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') |
print s.encode(sys.stdout.encoding) |
|
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' |
292,7 → 273,6 |
val = chld.text |
if val is None: |
val = '' |
val = u8(val) |
if n == 'name': |
name = val |
elif n == 'description': |