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