From: Eevee Date: Wed, 28 Apr 2010 17:26:27 +0000 (-0700) Subject: Let lookup accept hex/octal/binary numbers. X-Git-Tag: veekun-promotions/2010050901~19 X-Git-Url: http://git.veekun.com/zzz-pokedex.git/commitdiff_plain/d6e4099244a4beee2f0aa21a33667fd9749bfc12?hp=cfbbcdee866e534ca53d8a019ace48c713ac778f Let lookup accept hex/octal/binary numbers. --- 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)