From 97f96a569597fb6c1feb70340f98042e319f486a Mon Sep 17 00:00:00 2001 From: Eevee Date: Wed, 28 Apr 2010 10:26:27 -0700 Subject: [PATCH] Let lookup accept hex/octal/binary numbers. --- pokedex/lookup.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pokedex/lookup.py b/pokedex/lookup.py index 115e9f0..ce5bb76 100644 --- a/pokedex/lookup.py +++ b/pokedex/lookup.py @@ -387,13 +387,20 @@ class PokedexLookup(object): # Do different things depending what the query looks like # Note: Term objects do an exact match, so we don't have to worry about # a query parser tripping on weird characters in the input + try: + # Let Python try to convert to a number, so 0xff works + name_as_number = int(name, base=0) + except ValueError: + # Oh well + name_as_number = None + if '*' in name or '?' in name: exact_only = True query = whoosh.query.Wildcard(u'name', name) - elif rx_is_number.match(name): + elif name_as_number is not None: # Don't spell-check numbers! exact_only = True - query = whoosh.query.Term(u'row_id', name) + query = whoosh.query.Term(u'row_id', unicode(name_as_number)) else: # Not an integer query = whoosh.query.Term(u'name', name)