Stubbing out a lookup function. #15

This commit is contained in:
Eevee 2009-07-21 00:12:25 -07:00
parent 7c7e0484c2
commit f23a3401f2
1 changed files with 31 additions and 0 deletions

31
pokedex/lookup.py Normal file
View File

@ -0,0 +1,31 @@
# encoding: utf8
from sqlalchemy.sql import func
import pokedex.db.tables as tables
def lookup(session, name):
"""Attempts to find some sort of object, given a database session and name.
Returns a list of (object, matchiness) tuples. Matchiness is 1 for exact
matches. It is possible to get multiple exact matches; for example,
'Metronome' will match both the move and the item. In these cases, the
results are returned in rough order of "importance", e.g., Pokémon come
before moves come before types.
This function does fuzzy matching iff there are no exact matches.
Formes are not returned; "Shaymin" will return only grass Shaymin.
Currently recognizes:
- Pokémon names: "Eevee"
"""
q = session.query(tables.Pokemon) \
.filter(func.lower(tables.Pokemon.name) == name.lower()) \
.filter_by(forme_base_pokemon_id=None)
try:
result = q.one()
return [ (result, 1) ]
except:
return []