command = sys.argv[1]
args = sys.argv[2:]
+ # XXX there must be a better way to get Unicode argv
+ # XXX this doesn't work on Windows durp
+ enc = sys.stdin.encoding or 'utf8'
+ args = [_.decode(enc) for _ in args]
+
# Find the command as a function in this file
func = globals().get("command_%s" % command, None)
if func:
def command_setup(*args):
session = connect()
pokedex.db.load.load(session, verbose=False, drop_tables=True)
- pokedex.lookup.open_index(session=session, recreate=True)
+ pokedex.lookup.PokedexLookup(session=session, recreate=True)
def command_lookup(name):
- results, exact = pokedex.lookup.lookup(name)
- if exact:
+ results = pokedex.lookup.PokedexLookup().lookup(name)
+ if not results:
+ print "No matches."
+ elif results[0].exact:
print "Matched:"
else:
print "Fuzzy-matched:"
- for object in results:
- print object.__tablename__, object.name
+ for result in results:
+ if hasattr(result.object, 'full_name'):
+ name = result.object.full_name
+ else:
+ name = result.object.name
+
+ print "%s: %s" % (result.object.__tablename__, name),
+ if result.language:
+ print "(%s in %s)" % (result.name, result.language)
+ else:
+ print
def command_help():