예제 #1
0
def main():
    dat = common.readFile('day11.dat')

    seats = parse_input(dat)

    final_seats = find_equilibrium(seats)
    print(count_occupied_seats(final_seats))
예제 #2
0
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'])
예제 #3
0
    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
예제 #4
0
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
예제 #5
0
    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
예제 #6
0
    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
예제 #7
0
 def fofile(self, filename):
     # 执行脚本
     self.__GetConn()
     script = common.readFile(filename)
     result = self.__DB_CONN.executescript(script)
     self.__DB_CONN.commit()
     return result.rowcount
예제 #8
0
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
예제 #9
0
 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
예제 #10
0
def main():
    dat = common.readFile('day4.dat')

    parsed = day4A.parse_data(dat)
    filtered = day4A.filter_objs(parsed)
    filtered = regex_tests(filtered)
    print(len(filtered))
예제 #11
0
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!")
예제 #12
0
def main() :
    dat = common.readFile('day12.dat')

    end_pos = travers_directions(dat)
    print(abs(end_pos[0]) + abs(end_pos[1]))

    waypoint = [10, 1]
예제 #13
0
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))
예제 #14
0
 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
예제 #15
0
def main():
    dat = common.readFile('day3.dat')

    trees = toboggan(dat)

    total = 1
    for t in trees:
        total = total * t

    print(total)
예제 #16
0
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))
예제 #17
0
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
예제 #18
0
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
예제 #19
0
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
예제 #20
0
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)
예제 #21
0
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])
예제 #22
0
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))
예제 #23
0
파일: t2p.py 프로젝트: kgellien/presgen
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
예제 #24
0
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
예제 #25
0
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))
예제 #26
0
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
예제 #27
0
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)
예제 #28
0
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
예제 #29
0
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
예제 #30
0
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))
예제 #31
0
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)
예제 #32
0
파일: verify.py 프로젝트: eth0047/VK-GL-CTS
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
예제 #33
0
파일: verify.py 프로젝트: eth0047/VK-GL-CTS
def isGitLogEmpty (package, gitLog):
	logPath	= os.path.join(package.basePath, gitLog)
	log		= readFile(logPath)

	return len(log.strip()) == 0