Spaces:
Build error
Build error
File size: 1,038 Bytes
9f1a6f8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from abc import ABC, abstractmethod
from pandas import DataFrame
import re
import pickle
class ClassicSearchBackend(ABC):
@abstractmethod
def submit(self, query:str)->DataFrame:
pass
@abstractmethod
def get_num_items(self)->int:
pass
class ImplClassicSearchBackend(ClassicSearchBackend):
def __init__(self):
super().__init__()
with open("./himitsudogu_db.pkl", "rb") as file:
self.himitsudogu_db: dict = pickle.load(file)
def submit(self, query: str) -> DataFrame:
pattern = ".*"+query+".*"
output = DataFrame(columns=["名前","説明"])
for i,(name,description) in enumerate(zip(
self.himitsudogu_db["name_s"],self.himitsudogu_db["description_s"]
)):
if re.match(pattern,name+description):
output.loc[i] = [
name,
description
]
return output
def get_num_items(self)->int:
return len(self.himitsudogu_db["name_s"])
|