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
Exemple #5
0
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)
Exemple #6
0
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]
Exemple #8
0
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)

Exemple #9
0
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 = {}
Exemple #10
0
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)
Exemple #11
0
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())