From d6e4099244a4beee2f0aa21a33667fd9749bfc12 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) -- 2.7.4