def main(): dat = common.readFile('day11.dat') seats = parse_input(dat) final_seats = find_equilibrium(seats) print(count_occupied_seats(final_seats))
def main(): dat = common.readFile('day9.dat') consecutive_numbers = find_consecutive_numbers(dat, day9A.find_bad_number(dat)) max_and_min = find_max_and_min(consecutive_numbers) print(max_and_min['max'] + max_and_min['min'])
def checkFanStatus(self): fan_result = common.PASS fan_bus = DEVICE_BUS['fan'] fan_alert = STATUS_ALERT['fan'] fan_led = LED_COMMAND['fan_led'] fan_normal = 'green' fan_abnormal = 'blink_amber' led_bus = DEVICE_BUS['status_led'] led_path = common.I2C_PREFIX + led_bus[0] + '/' + LED_NODES[3] status, output = common.doBash("ls " + common.I2C_PREFIX) if output.find(fan_bus[0]) != -1: for num in range(0, FAN_NUM): for alert_type in fan_alert: path = common.I2C_PREFIX + fan_bus[0] + "/fan" + str( num + 1) + "_" + alert_type result = common.readFile(path) if result != 'Error': fan_result += int(result) if fan_result != common.PASS: if self.fan_led_status != fan_abnormal: common.writeFile(led_path, fan_led[fan_abnormal]) self.fan_led_status = fan_abnormal common.syslog.syslog(common.syslog.LOG_ERR, 'FAN Status Error !!!') return common.FAIL if self.fan_led_status != fan_normal: common.writeFile(led_path, fan_led[fan_normal]) self.fan_led_status = fan_normal common.syslog.syslog(common.syslog.LOG_ERR, 'FAN Status Normal !!!') return common.PASS
def setGetLed(args): """ Commands: sys_led : System status led [green/amber/off/blink_green/blink_amber] pwr_led : Power status led [green/amber/off/blink_green/blink_amber] loc_led : Locator led [on/off/blink] fan_led : Fan led [green/amber/off/blink_green/blink_amber] """ if len(args) < 3 or args[1] not in LED_COMMAND: return setGetLed.__doc__ led_bus = DEVICE_BUS['status_led'] for i in range(0, len(LED_NODES)): if args[1] == LED_NODES[i]: path = common.I2C_PREFIX + led_bus[0] + '/' + LED_NODES[i] command = LED_COMMAND[args[1]] if args[0] == 'set': if args[2] in command: data = command[args[2]] result = common.writeFile(path, data) else: result = setGetLed.__doc__ else: result = common.readFile(node) if result != "Error": result = list(command.keys())[list(command.values()).index(result)] return result
def checkPsuStatus(self): psu_result = common.PASS psu_bus = DEVICE_BUS['psu'] psu_alert = STATUS_ALERT['psu'] psu_led = LED_COMMAND['pwr_led'] psu_normal = 'green' psu_abnormal = 'blink_amber' led_bus = DEVICE_BUS['status_led'] led_path = common.I2C_PREFIX + led_bus[0] + '/' + LED_NODES[1] status, output = common.doBash("ls " + common.I2C_PREFIX) if output.find(psu_bus[0]) != -1 and output.find(psu_bus[1]) != -1: for nodes in psu_bus: for alert_type in psu_alert: path = common.I2C_PREFIX + nodes + "/" + alert_type result = common.readFile(path) if result != 'Error': psu_result += int(result) if psu_result != common.PASS: if self.psu_led_status != psu_abnormal: common.writeFile(led_path, psu_led[psu_abnormal]) self.psu_led_status = psu_abnormal common.syslog.syslog(common.syslog.LOG_ERR, 'PSU Status Error !!!') return common.FAIL if self.psu_led_status != psu_normal: common.writeFile(led_path, psu_led[psu_normal]) self.psu_led_status = psu_normal common.syslog.syslog(common.syslog.LOG_ERR, 'PSU Status Normal !!!') return common.PASS
def __init__(self, gridMapFile, fps=30, cooperative=True, parseTargets=True): # Delay between two frames self.frameDelay = 1/float(fps) # Agents type self.cooperative = cooperative # Grid map file path self.gridMapFile = gridMapFile # Grid map file handle self.gridMapFileHandle = readFile(self.gridMapFile) # Parse map self.gridParser = mapParser(self.gridMapFileHandle, parseTargets) self.parsedMapOrig = copy.deepcopy(self.gridParser.parseMap()) # UI object self.uiHandler = ui(self.parsedMapOrig['agentLocs']) self.viewer = None # Variables self.agentIDs = list(self.parsedMapOrig['agentLocs'].keys()) self.numAgents = len(self.agentIDs) self.observation_space = self.getObservationSpace(self.parsedMapOrig['rows'], self.parsedMapOrig['cols'], self.agentIDs) self.action_space = self.getActionSpace(self.agentIDs) self.isResetCalledAtleastOnce = False self.parseTargets = parseTargets
def fofile(self, filename): # 执行脚本 self.__GetConn() script = common.readFile(filename) result = self.__DB_CONN.executescript(script) self.__DB_CONN.commit() return result.rowcount
def getHWMonitor(): string = '' temp_type = SENSORS_TYPE['temp'] for types in temp_type: val = common.readFile(SENSORS_PATH + types) val_alert = common.readFile(SENSORS_PATH + types + '_alert') if val_alert != 'Error': if int(val_alert, 16) == 1: alert = 'Warning' else: alert = 'Normal' else: alert = val_alert string += '\n' + types + ": " + val + " C" + " ( " + alert + " )" return string
def create(self, name): # 创建数据表 self.__GetConn() script = common.readFile('data/' + name + '.sql') result = self.__DB_CONN.executescript(script) self.__DB_CONN.commit() return result.rowcount
def main(): dat = common.readFile('day4.dat') parsed = day4A.parse_data(dat) filtered = day4A.filter_objs(parsed) filtered = regex_tests(filtered) print(len(filtered))
def selectStocks(year): parser = getConfigParser() BASED_DIR = parser.get('happy', 'based_dir') SOURCE_LOCATION = BASED_DIR + parser.get('happy', 'source_location') SELECTED_STOCK_LOCATION = BASED_DIR + parser.get( 'happy', 'selected_stock_location') NUMBER_OF_DAYS = int(parser.get('happy', 'active_days')) MIN_VOLUME = int(parser.get('happy', 'min_volume')) MIN_OPEN_PRICE = int(parser.get('happy', 'min_open_price')) MAX_OPEN_PRICE = int(parser.get('happy', 'max_open_price')) if len(getCsvFiles(SELECTED_STOCK_LOCATION)) > 0: sh.rm(glob.glob(SELECTED_STOCK_LOCATION + "*")) ic("Started selecting stocks...") csvFiles = getCsvFiles(SOURCE_LOCATION) # csvFiles = ["AAA.csv","APG.csv"] selected = [] for file in csvFiles: df = readFile((SOURCE_LOCATION + "{}").format(file)) df = df.loc[year] if (len(df) > NUMBER_OF_DAYS) and df.Volume.mean() > MIN_VOLUME and ( df.Open.mean() > MIN_OPEN_PRICE and df.Open.mean() < MAX_OPEN_PRICE): df["Short"] = False df["Long"] = False df["Categories"] = "" df["Recommendation"] = "" df["Action"] = "" df.to_csv((SELECTED_STOCK_LOCATION + "{}").format(file)) ic("Completed selecting stocks!")
def main() : dat = common.readFile('day12.dat') end_pos = travers_directions(dat) print(abs(end_pos[0]) + abs(end_pos[1])) waypoint = [10, 1]
def main(): dat = common.readFile('day20.dat') dat.append('') tiles = day20A.parse_data(dat) total, tiles = day20A.find_image(tiles) joined = join_tiles(tiles) print(find_monster(joined))
def merger_to_old_data(self): self.df_new = self.get_response() self.df_old = readFile(self.location + '{}.csv'.format(self.mck)) df_gap = self.df_new.loc[:self.df_old.index.values[0], :][0:-1] df_gap = df_gap[FULL] logger.info("{} new records".format({len(df_gap)})) df = df_gap.append(self.df_old) return df
def main(): dat = common.readFile('day3.dat') trees = toboggan(dat) total = 1 for t in trees: total = total * t print(total)
def main() : dat = common.readFile('day17.dat') pd, dims = parse_dat(dat) i = 0 while i < 6: pd, dims = new_pd(pd, dims) i = i + 1 print(count_active(pd))
def getFanStatus(num): val = common.readFile(SENSORS_PATH + 'fan' + str(num + 1) + '_present') if val != 'Error': if int(val, 16) == 0: result = 'Connect' else: result = 'Disconnect' else: result = val return result
def getVoltage(): string = '' nodes = SENSORS_NODES['fan_vol'] types = SENSORS_TYPE['fan_vol'] for i in range(0, len(nodes)): val = common.readFile(SENSORS_PATH + nodes[i]) alert = getVoltageAlert(i) string += '\n' + types[i] + ": " + val + " V ( " + alert + " )" return string
def getSensors(): string = '' # Firmware version val = common.readFile(SENSORS_PATH + 'mb_fw_version') string = '\n' + "MB-SW Version: " + val val = common.readFile(SENSORS_PATH + 'fb_fw_version') string += '\n' + "FB-SW Version: " + val # Fan string += getFan() # HW Monitor string += '\n' + getHWMonitor() # Voltage string += '\n' + getVoltage() return string
def main(): dat = common.readFile('day18.dat') answers = [] for eq in dat: answers.append(mafs(eq)) total = 0 for a in answers: total = total + a print(total)
def main() : dat = common.readFile('day15.dat') nums = [] last_seen = {} for d in dat[0].split(','): nums.append(int(d)) last_seen[int(d)] = (dat[0].split(',').index(d) + 1, -1) nums = play_game(nums, last_seen) print(nums[-1])
def main(): dat = common.readFile('day10.dat') i = 0 while i < len(dat): dat[i] = int(dat[i]) i = i + 1 sorted_dat = quicksort(dat[len(dat) - 1], dat) sorted_dat.insert(0, 0) sorted_dat.append(sorted_dat[-1] + 3) print(count_jolt_diffs(sorted_dat))
def transform(file, presentation): global currentSection, currentSlide, currentParagraph, right, prefix prefix = {} currentSection = None currentSlide = None currentParagraph = None right = False for line in readFile(file): presentation = transformLine(line, presentation) endCurrentSlide() if currentSection and currentSection.title != 'Prefix': presentation.addSection(currentSection) presentation.addPrefix(prefix) return presentation
def verifyGitStatus (package): messages = [] if len(package.gitStatus) > 0: for s in package.gitStatus: statusPath = os.path.join(package.basePath, s) status = readFile(statusPath) if status.find("nothing to commit, working directory clean") < 0 and status.find("nothing to commit, working tree clean") < 0: messages.append(error(package.basePath, "Working directory is not clean")) else: messages.append(error(package.basePath, "Missing git status files")) return messages
def main(): dat = common.readFile('day21.dat') #print(dat) parsed = parse_data(dat) mapping = {} done = False start_i = 0 while not done: parsed, mapping, done, start_i = accumulate(parsed, mapping, start_i) print(mapping) print(count_remaining(parsed))
def FindAllTag(httpWeb, tag, tagClass): if common.BWebFile(httpWeb): html = requests.get(httpWeb).text else: html = common.readFile(httpWeb) htmlSp = BeautifulSoup(html, "html.parser") if tagClass: allNeedTag = htmlSp.find_all(tag, class_=tagClass) else: allNeedTag = htmlSp.find_all(tag) return allNeedTag
def main(): dat = common.readFile('day16.dat') groups, group_names, my_ticket, nearby_tickets = split_info(dat) nearby_tickets.append(my_ticket) combinations = check_tickets(nearby_tickets, groups) common_groups = find_common_groups(combinations) group_dict = find_final_group(common_groups, group_names) total = 1 for k in group_dict.keys(): if k.startswith('departure'): total = total * my_ticket[group_dict[k]] print(total)
def getVoltageAlert(num): alert = 0 nodes = SENSORS_NODES['vol_alert'] for node in nodes: val = common.readFile(SENSORS_PATH + 'ADC' + str(num + 1) + node) if val != 'Error': alert += int(val, 16) else: return val if alert > 0: result = 'Warning' else: result = 'Normal' return result
def getFanAlert(num): alert = 0 alert_types = SENSORS_NODES['fan_alert'] for alert_type in alert_types: val = common.readFile(SENSORS_PATH + 'fan' + str(num + 1) + alert_type) if val != 'Error': alert += int(val, 16) else: return val if alert > 0: result = 'Warning' else: result = 'Normal' return result
def main(): dat = common.readFile('day10.dat') i = 0 while i < len(dat): dat[i] = int(dat[i]) i = i + 1 sorted_dat = day10A.quicksort(dat[0], dat) sorted_dat.insert(0, 0) sorted_dat.append(sorted_dat[-1] + 3) sets = group_sets(sorted_dat) set_combs = set_combinations(sets) print(count_combinations(sets, set_combs))
def main(): dat = common.readFile('day19.dat') rules, words = parse_data(dat) rules[8] = [[42], [42, 8]] rules[11] = [[42, 31], [42, 11, 31]] count = 0 for word in words: leftovers = apply_rule3(word, rules, 0) #print('' in leftovers, word) if '' in leftovers: count = count + 1 print(count)
def verifyStatement (package): messages = [] if package.statement != None: statementPath = os.path.join(package.basePath, package.statement) statement = readFile(statementPath) hasVersion = False hasProduct = False hasCpu = False hasOs = False for line in statement.splitlines(): if beginsWith(line, "CONFORM_VERSION:"): if hasVersion: messages.append(error(statementPath, "Multiple CONFORM_VERSIONs")) else: assert len(line.split()) >= 2 package.conformVersion = line.split()[1] hasVersion = True elif beginsWith(line, "PRODUCT:"): hasProduct = True # Multiple products allowed elif beginsWith(line, "CPU:"): if hasCpu: messages.append(error(statementPath, "Multiple PRODUCTs")) else: hasCpu = True elif beginsWith(line, "OS:"): if hasOs: messages.append(error(statementPath, "Multiple OSes")) else: assert len(line.split()) >= 2 package.conformOs = line.split()[1] hasOs = True if not hasVersion: messages.append(error(statementPath, "No CONFORM_VERSION")) if not hasProduct: messages.append(error(statementPath, "No PRODUCT")) if not hasCpu: messages.append(error(statementPath, "No CPU")) if not hasOs: messages.append(error(statementPath, "No OS")) else: messages.append(error(package.basePath, "Missing conformance statement file")) return messages
def isGitLogEmpty (package, gitLog): logPath = os.path.join(package.basePath, gitLog) log = readFile(logPath) return len(log.strip()) == 0