本文整理汇总了Python中search.Search.searchFromList方法的典型用法代码示例。如果您正苦于以下问题:Python Search.searchFromList方法的具体用法?Python Search.searchFromList怎么用?Python Search.searchFromList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类search.Search
的用法示例。
在下文中一共展示了Search.searchFromList方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Main
# 需要导入模块: from search import Search [as 别名]
# 或者: from search.Search import searchFromList [as 别名]
class Main(object):
def __init__(self):
# Testimoodi pois päältä oletuksena. Testimoodissa mm. AskUserInput metodit käyttävät kysymystä syötteenä.
self.testMode = False
self.mainMenuTitles = ["1. Varastotilanne", "2. Raaka-aineet", "3. Reseptit","4. Haku","5. Tallenna", "6. Lataa", "0. Sulje ohjelma"]
self.storageMenuTitles = ["1. Kerro lisätietoja raaka-aineesta", "2. Näytä varastotilanne", "0. Takaisin"]
self.ingredientsMenuTitles = ["1. Kerro lisätietoja raaka-aineesta", "2. Listaa raaka-aineet", "0. Takaisin"]
self.recipesMenuTitles = ["1. Kerro lisätietoja reseptistä", "2. Listaa reseptit", "0. Takaisin"]
self.searchMenuTitles = ["1. Kerro lisätietoja reseptistä", "2. Reseptit, joissa raaka-aine esiintyy", "3. Sopii allergikolle", "4. Reseptit, joihin varastotarvikkeet riittävät", "5. Reseptit, joista puuttuu N-määrä raaka-aineita varastosta", "6. Reseptit, joista löytyy N-määrä raaka-aineita varastosta", "0. Takaisin"]
self.saveMenuTitles = ["1. Tallenna kaikki", "2. Tallenna reseptit", "3. Tallenna raaka-aineet", "4. Tallenna varasto", "0. Takaisin"]
self.loadMenuTitles = ["1. Lataa kaikki", "2. Lataa reseptit", "3. Lataa raaka-aineet", "4. Lataa varasto", "0. Takaisin"]
self.storageFile='varasto.csv'
self.recipesFile='reseptit.txt'
self.ingredientsFile='raaka_aineet.txt'
self.IO = IO()
self.ingredientsList = []
self.recipesList = []
self.storageList = []
self.search = Search()
self.loadFromFileToList(INGREDIENTS)
self.loadFromFileToList(RECIPES)
self.loadFromFileToList(STORAGE)
self.IO.loadRecipesForIngredients(self.ingredientsList, self.recipesList)
def openFileUTF8(self,file):
try:
fileIO = codecs.open(file, "r", "utf-8")
return fileIO
except IOError:
print("Tiedoston",file,"avaaminen ei onnistu.")
return 0
def loadFromFileToList(self, listType):
try:
if listType == INGREDIENTS:
self.ingredientsList = []
fileIO = self.openFileUTF8(self.ingredientsFile)
self.ingredientsList, self.ingredientsSuccess, self.ingredientsError = self.IO.loadIngredients(fileIO)
elif listType == RECIPES:
self.recipesList = []
fileIO = self.openFileUTF8(self.recipesFile)
self.recipesList, self.recipesSuccess, self.recipesError = self.IO.loadRecipes(fileIO, self.ingredientsList)
elif listType == STORAGE:
self.storageList = []
fileIO = self.openFileUTF8(self.storageFile)
self.storageList, self.storageSuccess, self.storageError = self.IO.loadStorage(fileIO, self.ingredientsList)
else:
print("Tuntematon tyyppi")
return -1
except CorruptedFileError as e:
fileIO.close()
print(str(e))
exit()
fileIO.close()
def printList(self, listToPrint, listType):
if listType == INGREDIENTS:
for i in listToPrint:
print(i.getName()+ i.getAllergensStr())
elif listType == RECIPES:
for i in listToPrint:
print(i.getName(), i.getTimeStr()+",", i.getOutcomeStr())
elif listType == STORAGE:
for i in listToPrint:
print(i.getName() + ",", i.getQuantity(), i.getUnit())
else:
print("Tuntematon tyyppi")
return -1
def askNameAndPrintMoreInfo(self, listType):
if listType == INGREDIENTS:
userInput = self.askUserInputText("Raaka-aineen nimi > ")
searchList = self.ingredientsList
elif listType == RECIPES:
userInput = self.askUserInputText("Reseptin nimi > ")
searchList = self.recipesList
elif listType == STORAGE:
userInput = self.askUserInputText("Varastoidun raaka-aineen nimi > ")
searchList = self.storageList
else:
print("Tuntematon tyyppi")
return -1
result = self.search.searchFromList(userInput, searchList)
#.........这里部分代码省略.........
示例2: MainGUI
# 需要导入模块: from search import Search [as 别名]
# 或者: from search.Search import searchFromList [as 别名]
#.........这里部分代码省略.........
table.clear()
table.setRowCount(len(data[1]))
table.setColumnCount(len(data[0]))
table.setHorizontalHeaderLabels(data[0])
data = iter(data)
next(data) # Skipataan eka, koska ne on headerit
for n, columnData in enumerate(data):
for m, item in enumerate(columnData):
newitem = QTableWidgetItem(item)
table.setItem(m, n, newitem)
table.resizeColumnsToContents()
table.resizeRowsToContents()
table.clear
table.horizontalHeader().setStretchLastSection(True)
def populateSearchTable(self):
''' Tämä metodi populoi datan hakunäkymän taulukkoon. Tätä metodia kutsuu hakunäkymän "Hae" painike.
Hakunäkymällä on mahdollista valita nolla tai useampi hakuvaihtoehto, tämä metodi sisältää myös logiikan
valittujen vaihtoehtojen tarkastamiselle sekä oikean hakutuloksen saamiseksi.
Haku hyödyntää Search luokan metodeja, jotka palauttavat listan resepteistä, jotka täyttävät hakukriteerin.
Hakulogiikka on ns. iteratiivinen ja alussa Search luokan metodeille annetaan listana kaikki tunnetut reseptit,
mahdollinen seuraava haku kuitenkin tehdään edellisen haun palauttamasta listasta, jolloin lopuksi listassa on enää kaikki
hakutulokset täyttävät reseptit.
'''
searchList = self.recipesList
if self.checkName.isChecked():
searchList = self.search.searchFromList(self.searchName.text(), searchList)
if self.checkAllergen.isChecked():
searchList = self.search.searchNoAllergen(self.searchAllergen.text(), searchList)
if self.checkIngredient.isChecked():
searchList = self.search.searchIncludesIngredient(self.searchIngredient.text(), searchList)
if self.checkFoundN.isChecked():
searchList = self.search.searcForhRecipesNIngredientsInStorage(searchList, self.spinFoundN.value(), self.storageList, False)
elif self.checkMissingN.isChecked():
print(self.spinMissingN.value())
searchList = self.search.searcForhRecipesNIngredientsInStorage(searchList, self.spinMissingN.value(), self.storageList, True)
if len(searchList)>0:
data = self.getRecipesInDataListForTable(searchList)
self.populateTableWithData(self.searchTable, data)
else:
self.statusBar().showMessage("Reseptejä ei löytynyt hakuehdoilla")
self.searchTable.clearContents()
def populateStorageTable(self):
''' Tämä metodi populoi varastolistaus tauluun kaikki varastossa olevat raaka-aineet'''
data = self.getIngredientContainersInDataListForTable(self.storageList)
self.populateTableWithData(self.storageTable,data)
self.statusBar().showMessage("Varastolistaus päivitetty")
def populateStorageEditFields(self,mi):
''' Tämä metodi populoi varastonäkymällä olevat tekstikentät, joilla voi muokata varastossa olevaa raaka-ainetta.
Tätä metodia kutsutaan, kun varastolistauksessa klikataan riviä.
Rivin indeksi tallennetaan self.storageToEdit muuttujaan, jotta muutoksia tallennettaessa tiedetään
mitä varasto raaka-ainetta täytyy muokata
Args: