mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Stubbing out a lookup function. #15
This commit is contained in:
parent
7c7e0484c2
commit
f23a3401f2
1 changed files with 31 additions and 0 deletions
31
pokedex/lookup.py
Normal file
31
pokedex/lookup.py
Normal 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 []
|
Loading…
Reference in a new issue