def get_num_of_facts(dir_data: str): li = os.listdir(dir_data) num = 0 for it in li: if "." in it: num += utilities.get_lines(os.path.join(dir_data, it)) return num
def lessen_facts(dir_in: str, dir_out: str, num_out: int, fn_result): if not os.path.exists(dir_out): os.mkdir(dir_out) num_in = get_num_of_facts(dir_in) print("#facts before lessening: " + str(num_in)) with open(fn_result, "a", encoding="utf-8") as fr: fr.write("#facts before lessening: " + str(num_in) + "\n") tot = 0 li = os.listdir(dir_in) fns = [] for it in li: if "." in it: fns.append(it) for i, fn in enumerate(fns): fin = os.path.join(dir_in, fn) fout = os.path.join(dir_out, fn) lines1 = utilities.get_lines(fin) lines2 = int(1.0 * num_out / num_in * lines1 + 0.5) if i + 1 == len(fns): lines2 = num_out - tot utilities.get_partof_file(fin, fout, 0, lines2) tot += lines2 print("#facts after lessening: " + str(tot))
def generate_ingredients(filename): lines = get_lines(filename) ingredients = get_ingredients(lines) result = [] for ing in ingredients: result.append(ingredient(ing)) return result
def sampling_for_query_answering(test_id: str, dir_data: str, sampled_pres: set, fn_result: str, fn_rules: str, rule_len: int, limit_rules: 100000): cnt_facts = 0 dir_data_self = os.path.join(test_id, "data") if os.path.exists(dir_data_self): shutil.rmtree(dir_data_self) os.mkdir(dir_data_self) set_pres = get_pres_from_rules(fn_rules, rule_len, limit_rules) li_pres = [] for p in set_pres: data_fn = formatter.format_uri(p, True) + ".dlp" if data_fn not in sampled_pres: li_pres.append(p) else: cnt_facts += utilities.get_lines(os.path.join(dir_data, data_fn)) if len(li_pres) > 0: sampling = Sampling(dir_data, fn_result) cnt_facts += sampling.main(li_pres) with open(fn_result, "a", encoding="utf-8") as f: f.write("#facts (inaccurate): %d\n" % cnt_facts) # store data in test_id/data/ for p in set_pres: data_fn = formatter.format_uri(p, True) + ".dlp" shutil.copyfile(os.path.join(dir_data, data_fn), os.path.join(dir_data_self, data_fn)) return cnt_facts
def main(): ducky_script_lines = utilities.get_lines(DUCKY_SCRIPT_PATH) # print(ducky_script_lines) parser = dsp.DuckyScriptParser() parsed = parser.parse(ducky_script_lines) converter = dth.DuckyScriptConverter() converted = converter.convert(parsed.split('\n')) array_str = utilities.create_array_string('const U8 code', 'usb_keys', converted) keyboard_task_lines = utilities.get_lines(KEYBOARD_TASK_PATH) changed_lines = utilities.replace_line(keyboard_task_lines, 'const U8 code usb_keys', array_str) new_keyboard_task_file = '\n'.join(changed_lines) # overwrite file utilities.write_file(KEYBOARD_TASK_PATH, new_keyboard_task_file) # run make utilities.make(MAKEFILE_PATH)
def todays_bets(book='Caesars', threshold=4, display=True, save=True): """ Generates potential value bets for todays games. :param book (str, optional): The sports book to use :param threshold (int, optional): The value threshold for making a bet :param display (bool, optional): Print resulting DataFrame to screen :param save (bool, optional): Save csv file to DATA/Predictions folder :return: DataFrame of games and bets """ lines = get_lines(sportsbook=book) games = find_games() #TODO filter down games full = games.merge(lines, how='left', left_on=['HOME_TEAM_ID', 'VISITOR_TEAM_ID'], right_on=['home_team', 'away_team']) def internal_predict(row): sleep(10) return GamePredict(row.home_team, row.away_team).predict_spread() full['predicted_spread'] = full.apply(internal_predict, axis=1) #TODO write bet algo def place_bet(row, threshold=4): if max(row.vegas_line_home, row.predicted_spread) - min( row.vegas_line_home, row.predicted_spread) > threshold: if row.vegas_line_home - row.predicted_spread > row.predicted_spread - row.vegas_line_home: return row.home_team else: return row.away_team else: return '---' full['bet'] = full.apply(place_bet, threshold=threshold, axis=1) if display: print(full) if save: date = pd.Timestamp('today').date() full.to_csv(f'DATA/Predictions/{date}.csv') return full
def __init__(self, string): new = string.strip(' ') string = '' for character in new: if character != '\u2009': string += character #the lists of units and fraction conversions self.units = get_lines('/home/user/Projects/Python/Recipes/Data/ingredients/references/units.txt') self.fractions = get_conversions('/home/user/Projects/Python/Recipes/Data/ingredients/references/fractions.csv') self.conversions = get_conversions('/home/user/Projects/Python/Recipes/Data/ingredients/references/conversions.csv') #makes a list for the ingredient - [amount, 'unit', 'item'] #as well as instance variables divided = self.divide(string) amount = self.clarify_amount(divided[0]) if len(divided) < 3: self.item = self.clarify_item(divided[1]) self.listed = [amount, self.item] else: unit = self.clarify_unit(divided[1]) self.amount = self.convert(amount, unit) self.unit = 'tablespoon' self.item = self.clarify_item(divided[2]) self.listed = [self.amount, self.unit, self.item]
import utilities lines = utilities.get_lines('Day8/input.txt') # class Instruction(): # def __init__(self, instruction_type, value): # self.type = instruction_type # self.value = value def part1(): visited = [] i = 0 counter = 0 while i not in visited: visited.append(i) instruction = lines[i][:3] if instruction == 'nop': i += 1 elif instruction == 'acc': counter += int(lines[i][4:]) i += 1 elif instruction == 'jmp': i += int(lines[i][4:]) else: print('invalid instruction. i: {} instruction: {}'.format( i, instruction)) print(counter)
from utilities import get_lines, get_steps, iterate_directory, get_words, get_sentences, get_occurances, write_csv actions = get_lines('information/actions.txt') ingredients = get_lines( '/home/user/Projects/Python/Recipes/Data/ingredients/information/items.txt' ) a = 0 for action in actions: a += 1 associated = [] f = 0 for filename in iterate_directory( '/home/user/Projects/Python/Recipes/Cookbook'): f += 1 for step in get_steps( get_lines('/home/user/Projects/Python/Recipes/Cookbook/' + filename)): s = 0 for sentence in get_sentences(step): s += 1 if action in get_words(sentence): for word in get_words(sentence): for ingredient in ingredients: if ingredient in word or word == ingredient: associated.append(ingredient) print('Action: ' + str(a) + ' File: ' + str(f) + ' Sentence: ' + str(s), end='\r') occurance = {}
from utilities import get_conversions, write_dict, write_list, iterate_directory, get_lines ingredient_names = get_lines('information/items.txt') write_list('stuff.js', ingredient_names, 'names') occurances = get_conversions('information/occurances.csv') write_dict('stuff.js', occurances, 'occurances') counter = 0 for filename in iterate_directory('information/associations'): associations = get_conversions('information/associations/' + filename) name = '' for character in filename: if character in ')(*&^%$#@!~`-=_+[]\\|}{;\'":<>?,./1234567890': name += '_' else: name += character if 'Dew' not in name and 'Nuts' not in name and 'Ruth' not in name and 'Jell' not in name: write_dict('stuff.js', associations, 'association_' + name) counter += 1 print(str(counter), end='\r') #associations_reference = {} #for filename in iterate_directory('information/associations'): # dict_name = 'association_' + filename # name = ' '.join(filename[: -3].split('_')) # associations_reference[name] = dict_name #write_dict('stuff.js', associations_reference, 'associations_reference') for filename in iterate_directory('information/proportions'): proportions = get_conversions('information/proportions/' + filename)
from utilities import get_lines, iterate_directory, get_ingredients, get_occurances, write_csv from classfile import ingredient, generate_ingredients class recipe: def __init__(self, ingredients): self.items = [] for ingredient in ingredients: self.items.append(ingredient.item) all_items = get_lines('information/items.txt') total_associations = [] for item in all_items: try: for file in iterate_directory( '/home/user/Projects/Python/Recipes/Cookbook'): ings = generate_ingredients( '/home/user/Projects/Python/Recipes/Cookbook/' + file) r = recipe(ings) if item in r.items: for it in r.items: total_associations.append(it) log = open('log_connect.txt', 'w') log.write('item: ' + item + ', file: ' + file + ', associations: ' + str(len(total_associations))) log.close() global dict dict = {} if len(total_associations) > 0:
from utilities import iterate_directory, write_list, write_dict, get_lines, get_conversions lines = get_lines('information/actions.txt') write_list('otherstuff.js', lines, 'actions') dict = get_conversions('information/actions.csv') write_dict('otherstuff.js', dict, 'action_occurances') for filename in iterate_directory('information/associations'): conversions = get_conversions('information/associations/' + filename) write_dict( 'otherstuff.js', conversions, filename[:-3].strip( ', .\\/<>?{}[]|;:"\'=-0987654321`~!@#$%^&*()_+').lower())