Best Python code snippet using tempest_python
recipe_adaptation.py
Source:recipe_adaptation.py  
1#!/usr/bin/env python32# -*- coding: utf-8 -*-3"""4Created on Tue Mar 24 17:29:00 20205@author: Andrea Morales Garzón6Adaptation of recipes 7This file pre-processes the ingredients of the recipe, and looks for a mapping to the database.8The properties of the food are consulted to see if there is an incompatibility9with the restriction, and a new mapping is made that allows to map the ingredient10to one of those that are allowed.11 12"""13from gensim.models import KeyedVectors14from gensim.models.phrases import Phraser15from gensim.parsing.preprocessing import preprocess_string, remove_stopwords, stem_text16import gensim17import pandas as pd18import numpy as np19from fjaccard import fjaccard_extended20import ast21import random22import json23# load language models24CUSTOM_FILTERS = [remove_stopwords, stem_text]25CUSTOM_FILTERS_2 = [remove_stopwords]26modelo_guardado = KeyedVectors.load("../models/v2/modelo3")27bigram_loaded = Phraser.load("../models/v2/my_bigram_model.pkl")28df_idiet = pd.read_excel("../data/inglesa-labeled_reducida_vegan_terminada.xlsx")29def funcc(tex):30    x = 'Yes'31    return x32df_idiet['no_restriction'] = df_idiet['Main food description'].apply(funcc)33#%%34# apply word embedding text preprocessing to the food to get their representation35def preprocess_recipe(text_recipe, create_tokens = True, main_ingredient = False):36    if main_ingredient:37        pos = text_recipe.find(',')38        if pos != -1:39            text_recipe = text_recipe[0:(pos+1)]40            41    if create_tokens:42        tokens = list(gensim.utils.tokenize(text_recipe, lower=True))43        44    else:45        tokens = text_recipe46        47    tokens = preprocess_string(" ".join(tokens), [remove_stopwords, stem_text]) 48    sentenc = list(bigram_loaded[tokens])49    50    return sentenc51#%%52# Function to mapping ingredient to food database53def get_DB_equivalent(idiet_item_list, bd_names_ , bd_names_mapping , model, number_instances = False):54    55    # get similarity between ingredient and dataset foods56    vector_similarity = np.zeros(len(bd_names_mapping))57    for i,item in enumerate(bd_names_mapping):58        s = fjaccard_extended(idiet_item_list, item, modelo_guardado)59        vector_similarity[i] = s60    # identify the most accurate61    sorted_list = np.argsort(vector_similarity)62    # get the bestx mappings (in this case we obtain 10)63    if number_instances == True:64        most_similar = [ bd_names_[sorted_list[i]] for i in range(10) ]65        value_most_similar = [ vector_similarity[sorted_list[i]] for i in range(10) ]66        67        # inf distance value is infinity or very high, we consider there is no similar ingredient in the database68        for i,value in enumerate(value_most_similar):69            if value == np.Infinity:70                most_similar[i] = 'No matches'71            if value > 44.0:72                most_similar[i]  = 'No matches'73    else:74        most_similar = bd_names_[sorted_list[0]]75        value_most_similar = vector_similarity[sorted_list[0]]    76        if value_most_similar == np.Infinity:77            most_similar = 'No matches'78    alternatives = [ bd_names_[sorted_list[i]] for i in range(10) ]79    print(alternatives)80    return most_similar, value_most_similar, alternatives81#%%82def get_accurate_mapping(i,model,bigram,db,nutritional_data,bd_names_processed):83    ingredient_processed = preprocess_recipe(i)84    print(ingredient_processed)85    mapping_idiet, value_mapping, alternatives_  = get_DB_equivalent(ingredient_processed,bd_names_=db,bd_names_mapping=bd_names_processed,model=model,number_instances=False)86    mapping = nutritional_data[nutritional_data['Main food description'] == mapping_idiet]87    88    return mapping, mapping_idiet, value_mapping, alternatives_ 89#%%90def get_adapted_recipe(recipe,model,bigram,db,nutritional_data,restriction):91    92    # preprocessing recipe data93    bd_names_processed = [preprocess_recipe(x) for x in db]94    95    96    list_recipe_ingredients = []97    # get recipe ingredients98    recipe_ingredients = recipe['ingredients']99    100    for i in recipe_ingredients:101        print("......")102        print(i)103        104        # for each ingredient in recipe, we search for the most accurate mapping105        mapping, mapping_idiet, value_mapping, others= get_accurate_mapping(i,model,bigram,db,nutritional_data,bd_names_processed)106        modified_action = 'no'107        adapted_ing = ""108        109        if mapping_idiet != 'No matches':110            111            mapping = mapping.iloc[0]112            if mapping[restriction] == "No" and value_mapping <0.9:113                print("entra")114                modified_db = nutritional_data[nutritional_data[restriction] == "Yes"]115                bd_names_mod = list(modified_db['Main food description'])116                bd_names_mod_processed = [preprocess_recipe(x) for x in bd_names_mod] 117                mapping, adapted_ing, value_mapping, others = get_accurate_mapping(i,model,bigram,bd_names_mod,modified_db,bd_names_mod_processed)118                modified_action = 'yes'119                120            if value_mapping > 0.9:121                value_mapping = None122        else:123            value_mapping = None124            125        list_recipe_ingredients.append({'name':i, 'modified':modified_action,'adapted':adapted_ing, 'others':others})126    return list_recipe_ingredients127                128#%%  129# ejemplo130usda_ingredients = pd.read_excel("../data/inglesa-labeled_reducida_vegan_terminada.xlsx")131bd_names = list(usda_ingredients['Main food description'])132df_rcp = pd.read_csv('../data/RAW_recipes-foodcom-kaggle.csv')133dict_rcp = df_rcp.to_dict('records')134##135random.seed(12345)136xx = random.sample(dict_rcp,20)137#%%138    139# order results (used for preference type of adaptations)140    141def ordenar(list_mappings,nutrient):142    list_mappings = list_mappings[2:5]143    print(len(list_mappings))144    valores_nutricionales = np.zeros(len(list_mappings))145    for i,map_ in enumerate(list_mappings):146        print(map_)147        item = usda_ingredients[usda_ingredients['Main food description'] == map_].iloc[0]148        print(item['Main food description'])149        if item[nutrient] == 'Tr':150            valores_nutricionales[i] = 0151        elif item[nutrient] != 'N':152            valores_nutricionales[i] = item[nutrient]153            print(valores_nutricionales[i])154        else: 155            valores_nutricionales[i] = np.nan156            157        print(valores_nutricionales)158        159    mean_value = np.nanmean(valores_nutricionales)160    valores_nutricionales = np.where(valores_nutricionales==np.nan, mean_value, valores_nutricionales) 161    print(mean_value)162    sorted_list = np.argsort(valores_nutricionales)163    print(sorted_list)164    res_ordenado = [list_mappings[i] for i in sorted_list ]165    return res_ordenado166    167        168list_prueba = ['Allspice, ground','Lime juice cordial, diluted','Langoustine, boiled']      169r_list = ordenar(list_prueba, 'Energy (kcal) (kcal)')  170#%%171def get_recipe_adaptation(recipe_,adaptation_type='no_restriction', kind='preferences', order=False):172    173    print(recipe_['name'])174    print(recipe_['ingredients'])175    rp_ = {"id":recipe_176           ['id'],'name':recipe_["name"],"ingredients":ast.literal_eval(recipe_["ingredients"]), "steps":ast.literal_eval(recipe_['steps']), 'description':recipe_['description'], 'type':kind}177    x = get_adapted_recipe(recipe=rp_,model=modelo_guardado,bigram=bigram_loaded,db=bd_names,nutritional_data=usda_ingredients,restriction=adaptation_type)178        179    180    if order:181        for i,element in enumerate(x):182            x[i]['others'] = ordenar(element['others'],'Energy (kcal) (kcal)')183        184        185    rp_['ingredients'] = x186    187    188    189    with open('../res/'+kind+'/data_recipe_'+rp_['name']+'.json', 'w') as fp:190        json.dump(rp_, fp)191    192    print("--")193    194    195#%%196for i in list(xx):197    print("-------------------------------------")198    get_recipe_adaptation(i,adaptation_type='no_restriction', kind='light',order=True)199    ...3_list_of_depths.py
Source:3_list_of_depths.py  
1class Node:2    def __init__(self, value:int, children:list=[]):3        self.value = value4        self.children = children5class LlNode:6    def __init__(self, value:int, next_node=None):7        self.value = value8        self.next = next_node9def create_tree(array:list) -> Node:10    if not array:11        return None12    mid_index = len(array)//213    14    left_child = create_tree(array[:mid_index])15    right_child = create_tree(array[mid_index+1:])16    r = Node(array[mid_index], [left_child, right_child])17    return r18def print_link_list(node:LlNode):19    while node:20        print(node.value)21        node = node.next22def find_depths(tree_root:Node) -> list:23    list_mapping = []24    queue = []25    queue.append(tree_root)26    level_counter = 027    while len(queue) > 0:28        next_queue = []29        list_mapping.append(LlNode(None))30        while len(queue) > 0:31            r = queue.pop()32            33            next_queue.extend([i for i in r.children if i])34            35            ll_element = LlNode(r.value)36            ll_element.next = list_mapping[level_counter].next37            list_mapping[level_counter].next = ll_element38        39        level_counter += 140        queue = next_queue41    return list_mapping42    43    44def main():45    46    values = [0,1,2,3,4,5,6,7,8,9]47    tree_root = create_tree(values)48    list_mappings = find_depths(tree_root)49    50    for i in list_mappings:51        print("list")52        print_link_list(i)53if __name__ == '__main__':...dict_to_xml.py
Source:dict_to_xml.py  
1from xml.dom.minidom import Document2class DictToXML(object):3    default_list_item_name = "item"4    def __init__(self, structure, list_mappings={}):5        self.doc = Document()6        if len(structure) == 1:7            rootName = str(list(structure.keys())[0])8            self.root = self.doc.createElement(rootName)9            self.list_mappings = list_mappings10            self.doc.appendChild(self.root)11            self.build(self.root, structure[rootName])12    def build(self, father, structure):13        if type(structure) == dict:14            for k in structure:15                tag = self.doc.createElement(k)16                father.appendChild(tag)17                self.build(tag, structure[k])18        elif type(structure) == list:19            tag_name = self.default_list_item_name20            if father.tagName in self.list_mappings:21                tag_name = self.list_mappings[father.tagName]22            for l in structure:23                tag = self.doc.createElement(tag_name)24                self.build(tag, l)25                father.appendChild(tag)26        else:27            data = str(structure)28            tag = self.doc.createTextNode(data)29            father.appendChild(tag)30    def display(self):31        print(self.doc.toprettyxml(indent="  "))32    def get_string(self):...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
