def addRecord(self, newID, newGender, newAge, newSales, newBMI, newIncome,
               autoID, overwrite):
     typeCheckStringERR(newID)
     preppedID = None
     invalidID = False
     origRec = None
     insertPos = None
     overwriteSignal = 0  # will become 1 if overwriting will be used
     try:
         preppedID = self._prepID(newID)
         origRec, insertPos = self._prot_findRecord(preppedID)
     except InvalidIDException:
         invalidID = True
     if origRec is not None and overwrite:
         overwriteSignal = 1
     elif (origRec is not None or invalidID) and autoID:
         preppedID, insertPos = self._autoID()
         # doNotUse, insertPos = self._prot_findRecord(preppedID)
     elif origRec is not None:
         raise DuplicateIDException()
     elif invalidID:
         raise InvalidIDException()
     newRec = Record(preppedID, newGender)
     self._allMyRecords[insertPos:insertPos + overwriteSignal] = [newRec]
     newRec.setAge(newAge)
     newRec.setSales(newSales)
     newRec.setBMI(newBMI)
     newRec.setIncome(newIncome)
Example #2
0
    def ReadPacketRecords(self, inp):
        '''
			Read a file object for all captured frames in the pcap

			Args:
				inp: A file input/output object

			Return:
				yields records (this function may be used as an iterator to iterate through very large Pcap files)

			Side Effects:
				records

			Caught Exceptions
				struct.error -> Nothing happens
				IOError -> Nothing happens
		'''
        currPtr = inp.tell()
        inp.seek(0, 2)
        sizeOfInp = inp.tell()
        inp.seek(currPtr)

        try:
            while inp.tell() < sizeOfInp:
                record = Record(parent=self)
                record.ReadRecord(inp)
                if record.is_valid:
                    yield record
        except struct.error:
            None
        except IOError:
            None
def main():
    #define record and car variables
    car = Car()
    car.connect(port="/dev/ttyACM0")
    print("Waiting to hear from vehicle...")
    while (not car.connected):
        time.sleep(0.05)
    print('connected')
    record = Record()
    #have a while loop so multiple runs can be executed
    while (True):
        print(
            "Enter a negative double to go left\nor a positive double to go right\nelse type exit to quit\n"
        )
        divert = (input('<< '))
        try:
            divert = float(divert)

        except ValueError:
            break
        print(divert)
        executeManeuver(divert, car, record)

    record.close()
    car.close()
def normalize(paths: List[str]) -> List[Record]:
	stats = readRecords(paths)
	pairList = sorted(makeThemPair(stats))

	results = []

	for base, opt in pairList:
		rec = Record(base.name, base.traceConfig, opt.ssdConfig, "normalized", 0, [{}])

		rec.latency = opt.latency / base.latency

		baseLastStat = max(base.statistics, key=lambda x: x["host_time"])
		optLastStat = max(opt.statistics, key=lambda x: x["host_time"])

		for key in [
			"cum_bandwidth",
			"ftl.page_mapping.gc.reclaimed_blocks",
			"ftl.page_mapping.valid_pages",
		]:
			baseValue, optValue = map(lambda x: x[key],
			                          [baseLastStat, optLastStat])
			try:
				normalized = optValue / baseValue
			except:
				normalized = float("nan")
			rec.statistics[0][key] = normalized
		
		rec.statistics[0]["WA"] = WA(optLastStat) / WA(baseLastStat)

		results.append(rec)

	return results
Example #5
0
    def insert(self, position, packetData):
        '''
			Create a record with data==packetData and insert it into the pcap records list at position
		'''
        rec = Record(self)
        rec.CreateRecord(packetData)
        self.records.insert(position, rec)
Example #6
0
    def add_bundles(self):
        registry = getUtility(IRegistry)

        bundles = registry.collectionOfInterface(IBundleRegistry,
                                                 prefix="plone.bundles",
                                                 check=False)
        # Create new bundles in the registry
        if "plonemeeting.portal.core" not in bundles:
            bundles["plonemeeting.portal.core"] = Record()
        portal_bundle = bundles["plonemeeting.portal.core"]
        portal_bundle.resources = ["plonemeeting.portal.core"]
        portal_bundle.last_compilation = datetime.now()
        portal_bundle.compile = True
        portal_bundle.enabled = True
        portal_bundle.jscompilation = "++plone++plonemeeting.portal.core/js/core.js"
        portal_bundle.csscompilation = (
            "++plone++plonemeeting.portal.core/css/main-compiled.css")

        if "plonemeeting.portal.core-custom" not in bundles:
            bundles["plonemeeting.portal.core-custom"] = Record()
        portal_bundle_custom = bundles["plonemeeting.portal.core-custom"]
        portal_bundle_custom.resources = ["plonemeeting.portal.core-custom"]
        portal_bundle_custom.css = "@@custom_colors.css"
        portal_bundle_custom.compile = True
        portal_bundle_custom.enabled = True
        portal_bundle_custom.last_compilation = datetime.now()
Example #7
0
 def change_record(self):
     print('Введите e-mail изменяемой записи:', end='\n')
     email = input()
     handbook = open(self.name + '.txt', 'r')
     records = handbook.read()
     handbook.seek(0)
     if '@' not in email:
         print('Неверный ввод. Повторите попытку.', end='\n')
         return
     if email in records:
         print('Введите новое значение:', end='\n')
         changedRecord = Record(input())
         if changedRecord.is_valid():
             records = handbook.readlines()
             handbook.close()
             handbook = open(self.name + '.txt', 'w')
             for record in records:
                 if email in record:
                     handbook.write(changedRecord.get_record_in_one_row() +
                                    '\n')
                 else:
                     handbook.write(record + '\n')
             print('Значение изменено.', end='\n')
         else:
             print('Неверный ввод. Повторите попытку.', end='\n')
         return
     print('Такой записи не существует.', end='\n')
Example #8
0
 def findAll(self, fromDate, toDate):
     records = []
     rows = self.db.selectAllRecords(fromDate, toDate)
     
     for row in rows:
         # 0 = id, 1 = ecv, 2 = arrival, 3 = departure, 4 = companyId
         # 5 = boxId, 6 = photoFileName, 7 = status
         '''
         borrowed = False
         if row[7] == 'borrowed':
             borrowed = True
             
         #ECV, borrowed, companyID, boxId, boxCompanyId
         r = Record(row[1], borrowed, row[4], row[5], row[6])
         r.recordId = row[0]
         cas = row[2].split(" ")
         den = cas[0].split("-")
         hodziny = cas[1].split(":")
         r.arrivalTime = datetime.datetime(int(den[0]),int(den[1]),int(den[2]),int(hodziny[0]),int(hodziny[1]))
         cas = row[3].split(" ")
         den = cas[0].split("-")
         hodziny = cas[1].split(":")
         r.departureTime = datetime.datetime(int(den[0]),int(den[1]),int(den[2]),int(hodziny[0]),int(hodziny[1]))
         print(datetime.datetime(int(den[0]),int(den[1]),int(den[2]),int(hodziny[0]),int(hodziny[1])))
         r.status = row[7]
         '''
         r = Record(None, None, None, None, None)
         r.initFromDatabaseRecord(row)
         
         records.append(r)
     return records
Example #9
0
 def slot_addOneRecord(self):
     a = FormAddRecord()
     a.exec_()
     print(a.success)
     if a.success:
         print("Log: Data Are Valid")
         rc = Record(a.name.text(), a.surname.text(), a.dob.currentText(),
                     a.address.text(), a.occupation.text())
         print(rc.getData())
         self.controller.addOneRecord(rc)
Example #10
0
    def findAllWithStatus(self, fromDate, toDate, status):
        records = []
        rows = self.db.selectAllRecordsWithStatus(fromDate, toDate, status)

        for row in rows:
            r = Record(None, None, None, None, None)    # Prazdny zaznam
            r.initFromDatabaseRecord(row)

            records.append(r)
        return records
Example #11
0
def main():

    main_API_logger = APILog()
    main_SQL_logger = SQLog(filename='main_gs.db')
    global_reporter = Report(
        sqlogger=main_SQL_logger,
        apilogger=main_API_logger,
    )

    recorder = Record(reporter=global_reporter)
    recorder.start_record()
Example #12
0
def add_contact(string):
    string = string.split(' ')
    name = string[1]
    number = string[2]
    if name == '' or number == '':
        return 'Give me name and number, please!'
    obj_name = Name(name)
    obj_phone = Phone(number)
    obj_record = Record(obj_name)
    obj_record.add_phone(obj_phone)
    address_book.add_record(obj_record)
    return f'Contact with name {name} and number {number} was added'
Example #13
0
class Test():

    while True:
        cho = input('''
        请选择功能:
        1.停车
        2.出车
        3.退出系统   
        ''')
        if cho == '3':
            break

        if cho == '1':
            print('欢迎光临', Park.park_name, '停车场')
            time1 = time.time()
            carnumber = input('请输入车牌号')
            carowner = input('请输入车主姓名')
            carmodel = input('请输入车型')
            car = Car(carnumber, carowner, carmodel)
            record = Record()
            record.time1 = time1
            #进车时调用停车厂类的进车方法,把车的相关信息存入列表,由于不需要传订单所以用0代替
            park = Park(car, record, 0)
            park.goin()

        if cho == '2':
            carnumber1 = input('请输入车牌号')
            b = False
            #判断列表是否存在这个车牌
            for i in range(0, len(Park.car_list) - 1):
                if Park.car_list[i].car.carnum == carnumber1:
                    carwoner1 = Park.car_list[i].car.carowner
                    carmodel1 = Park.car_list[i].car.carmodel
                    #根据列表获得进车时间
                    cartime1 = Park.car_list[i].record.time1
                    #出车时间
                    time4 = time.time()
                    car2 = Car(carnumber1, carwoner1, carmodel1)
                    record1 = Record()
                    record1.time4 = time.time()
                    record1.time1 = cartime1
                    order1 = Order()
                    #调用停车场类的出车方法计算车费,然后打印出来
                    park1 = Park(car2, record1, order1)
                    a = park1.getexit(carnumber)
                    print(a)
                    #出车后移除信息
                    Park.car_list.remove(Park.car_list[i])
                    b = True

            if b == False:
                print('查无此车')
Example #14
0
def main():
    main_module_data = ModuleData()
    main_gps_data = GPSData()
    main_api_logger = APILog()
    main_sql_logger = SQLog(filename='test.db')
    global_reporter = Report(sql_logger=main_sql_logger,
                             api_logger=main_api_logger,
                             gps_data=main_gps_data,
                             module_data=main_module_data)
    main_recorder = Record(reporter=global_reporter)
    global_reporter.report_all_unsent_data()
    main_recorder.start_record()
    global_reporter.start_status_updates()
Example #15
0
    def _read(self):
        #如果有重名,则以后面一个为准,因为实际上bash也是这么做的,后定义的alias会覆盖前面重名的。
        #with open(os.path.expanduser(self.__path), 'r') as f:
        with open(os.path.expanduser(self.__path), 'a+') as f:
            alltext = f.read()
            for matched in self._findall(alltext):
                r = Record()
                if r.parse(matched):
                    swap_out = self.__records_index_name.get(r.getName(), None)
                    if swap_out:
                        self.__records_list.remove(swap_out)

                    self.__records_index_name[r.getName()] = r;
                    self.__records_list.append(r)
Example #16
0
    def _read(self):
        #如果有重名,则以后面一个为准,因为实际上bash也是这么做的,后定义的alias会覆盖前面重名的。
        #with open(os.path.expanduser(self.__path), 'r') as f:
        with open(os.path.expanduser(self.__path), 'a+') as f:
            alltext = f.read()
            for matched in self._findall(alltext):
                r = Record()
                if r.parse(matched):
                    swap_out = self.__records_index_name.get(r.getName(), None)
                    if swap_out:
                        self.__records_list.remove(swap_out)

                    self.__records_index_name[r.getName()] = r
                    self.__records_list.append(r)
Example #17
0
def main():
    #takes a filename as one argument
    if (len(sys.argv) < 2):
        print("No argument received.\n Use HTML file as an argument")
        sys.exit(0)

    #Check if file exists
    if os.path.isfile(sys.argv[1]):
        htmlFileName = sys.argv[1]
    else:
        print("not a valid file")
        sys.exit(0)

    #read file contents
    with open(htmlFileName, "r") as f:
        page = f.read()

    tree = html.fromstring(page)

    #get records form content
    dnsForm = tree.xpath(domainXpath)[0]

    #get Domain
    domainName = dnsForm.attrib['data-domain']

    #get records list
    subdomains = tree.xpath(subdomainsXpath)

    #build filename
    fileName = domainName + ".txt"

    #create file
    f = open(fileName, 'w')

    #write header into file
    #Domain and TTL
    f.write(origin + domainName + "\n")
    f.write(ttl + "\n")

    #go trough all records found
    for sub in subdomains:
        #creates a Record Object
        myRecord = Record(sub, domainName)

        #Print to console status and write to file all entries
        print("Writing " + myRecord.recordName + " to file...")
        f.write(myRecord.getAWSRecordOutput() + "\n")

    #close file
    f.close()
Example #18
0
    def getTop1000(self):
        self.getPageTop1000()
        soup = BeautifulSoup(self.content, 'lxml')
        table_html = soup.find_all('table')[0]
        # print(table_html)

        # Parse table
        nr = 0
        for table_row in table_html.findAll("tr"):
            # Find Name
            name = re.search(
                "\>([a-zA-Z0-9\"\.\s]+)\<",
                str(table_row.findAll("td", class_="records_name")))
            if name:
                name = name.group(1)
            # Find Time
            time = re.search(
                "\>([\s]*[0-9]+[\:]+[0-9]+[\.]*[0-9]*[\s]*)\<",
                str(table_row.findAll("td", class_="records_time")))
            if time:
                time = time.group(1)
                time = re.sub(r"[\n\t\s]*", "", time)
            # Find Year
            year = re.search(
                "\>([\s]*[0-9]{4}[\s]*)\<",
                str(table_row.findAll("td", class_="records_year")))
            if year:
                year = year.group(1)
                year = re.sub(r"[\n\t\s]*", "", year)
            # Find Beer
            # beer = table_row.findAll("td", nowrap="")
            beer = re.search(
                "beertype_[a-zA-Z\"\+\s]+\>([a-zA-Z\s]+)\<\/a\>\<\/td\>",
                str(table_row.findAll("td", nowrap="")))
            if beer:
                beer = beer.group(1)
            self.records.append(Record(nr, name, time, year, beer))
            nr += 1

        self.records[0] = Record("Nr.", "Name", "Time", "Year", "Beer")
        rec_best = self.records[1]
        self.time_best_alco_runner = rec_best.records_time
        # print(self.time_best_alco_runner)
        self.timeToSec()
        rec_best = self.records[1]
        self.sec_best_alco_runner = rec_best.records_time
        # print(self.sec_best_alco_runner)
        self.divideList()
        self.startThreads()
Example #19
0
def create_cache(records_file_name):
    cache = Cache()
    records_table = open(records_file_name, "r")
    for line in records_table:
        cache.add_static_record(Record.from_json(line))
    records_table.close()
    return cache
Example #20
0
    def checkDots(self, ray):
        encounters = 0

        rayPos = ray.getPosAfterStep(10)
        rightRayPos = ray.getRight().getPosAfterStep(10)
        rayNextPos = ray.getPosAfterStep(1000)
        rightRayNextPos = ray.getRight().getPosAfterStep(1000)

        for i, dot in enumerate(self.dots):
            if dot.getPos().isPointInRect(rayPos, rightRayPos, rayNextPos, rightRayNextPos):
                distance = distanceToSegment(ray.getPos(), ray.getRight().getPos(), dot.getPos())
                time = ray.getTime(distance, self.obstacles[ray.getMaterial()].getRelativeSpeed())
                if time < ray.getNextEncounter():
                    ray.setNextEncounter(time)
                    ray.setObstacleNumber(-1)
                    ray.setVerticeNumber(i)
                    encounters += 1

        for sensor in self.sensors:
            if sensor.getPos().isPointInRect(rayPos, rightRayPos, rayNextPos, rightRayNextPos):
                distance = distanceToSegment(ray.getPos(), ray.getRight().getPos(), sensor.getPos())
                time = ray.getTime(distance, self.obstacles[ray.getMaterial()].getRelativeSpeed())
                if time < ray.getNextEncounter():
                    sensor.addRecord(Record(-time, ray.getIntensity(), 1.0 / ray.getVelocity().getY()))

        return encounters
def generate(n, btMIN, btMAX, atMAX, atMIN=0):
    """

    :param int n:
    :param int btMIN:
    :param int btMAX:
    :param int atMAX:
    :param int atMIN:
    :return None:
    """

    records = []

    # arrivalTimes = []

    for i in range(0, n):
        at = random.randint(atMIN, atMAX)
        # arrivalTimes.append(at)
        # while at in arrivalTimes:
        #     at = random.randint(atMIN, atMAX)
        bt = random.randint(btMIN, btMAX)
        r = Record(i+1, bt, at)
        records.append(r)

    return sortByAT(records)
def get_member_record(record_time, member_info_cell, member_records_cell):
    user_number = member_info_cell[2].value
    user_name = member_info_cell[10].value

    count = record_time.end_day - record_time.start_day + 1

    records = []
    for index in range(0, count):

        record_source = member_records_cell[index].value
        check_in = ''
        check_out = ''

        if len(record_source) > 0:
            detail = record_source.split('\n')
            # print(f'value = {detail}')
            if len(detail) == 2:
                # 只有一条记录的时候需要判断是签到还是签退
                if int(detail[0].split(':')[0]) < 12:
                    #  早于12点认为是签到
                    check_in = detail[0]
                else:
                    check_out = detail[0]
            else:
                check_in = detail[0]
                check_out = detail[1]

        record_detail = Record(str(record_time.start_month) + '/' + str(index + 1), check_in, check_out)
        records.append(record_detail)
        # print(
        #     f'name = {user_name}, number = {user_number}, day = {record_time.start_month}/{index + 1}, check_in = {check_in}, check_out = {check_out}')

    return Person(user_name, user_number, records)
Example #23
0
    def getAllRecords(self):
        #open the connection
        try:
            cnx = mysql.connector.connect(user=self.username,
                                          password=self.password,
                                          host=self.host,
                                          database=self.database)
            cursor = cnx.cursor(prepared=True)
            #Training set pulled out here, just getting the first x  patients' records, when grouper = 5 it means patient does not have MS
            #This is a subquery, the inside query makes a list of ruids from the first 200 patients in the DB then the outer query gets every
            #record for each of those ruids
            show_DB = """select  ruid, entry_date, content from notes where ruid in
            (Select * from (select distinct ruid from notes where grouper != 5 order by ruid, entry_date Limit 200) as t);"""
            cursor.execute(show_DB, multi=True)
            results = cursor.fetchall()
            #converts each result to a record object
            for result in results:
                ruid = result[0]
                date = result[1]
                content = result[2]
                record = Record(ruid, date, content)
                #appends to records attribute then to be used elsewhere
                self.records.append(record)

        except mysql.connector.Error as err:
            if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
                print("Something is wrong with your user name or password")
            elif err.errno == errorcode.ER_BAD_DB_ERROR:
                print("Database does not exist")
            else:
                print(err)
        else:
            cnx.close()
Example #24
0
    def __init__(self, parent=None):
        super(Interface, self).__init__(parent)

        self.recordTab = Record()
        self.fromFileTab = FromFile()

        self.tab1 = QWidget()
        self.tab2 = QWidget()

        self.addTab(self.tab1, "Tab 1")
        self.addTab(self.tab2, "Tab 2")

        self.tab1UI()
        self.tab2UI()
        self.setWindowTitle("Emokit Visualizer")
        self.showMaximized()
Example #25
0
class Interface ( QTabWidget ):
    def __init__(self, parent=None):
        super(Interface, self).__init__(parent)

        self.recordTab = Record()
        self.fromFileTab = FromFile()

        self.tab1 = QWidget()
        self.tab2 = QWidget()

        self.addTab(self.tab1, "Tab 1")
        self.addTab(self.tab2, "Tab 2")

        self.tab1UI()
        self.tab2UI()
        self.setWindowTitle("Emokit Visualizer")
        self.showMaximized()

    def tab1UI(self):
        self.setTabText(0, "Record")
        self.tab1.setLayout( self.recordTab.setRecordTab() )

        self.timer = pg.QtCore.QTimer()
        self.timer.timeout.connect(self.recordTab.update)
        self.timer.start(10)

    def tab2UI(self):
        self.setTabText(1, "From file")
        self.tab2.setLayout( self.fromFileTab.setFromFileTab() )
 def add_doc(self, doc_id):
     terms = self.get_terms(doc_id)
     for i in range(len(terms)):
         term = terms[i]
         if term not in self.index:
             self.index[term] = Record(term, [])
         self.index[term].add_position(doc_id, i)
Example #27
0
 def on_delete(self, username):
     username = username.get()
     if username == "":
         showinfo(title='Error', message='Username can not be empty')
     else:
         Record(username, password='', website='').save()
         showinfo(message='Information has been successfully deleted')
Example #28
0
 def addContents(self, fids):
     advertisement = Advertisement()
     for fid in fids:
         record = Record(fid, '127.0.0.1', RecordStatus.on_the_disk)
         self.resourceTable.records.append(record)
         advertisement.addRecord(fid)
     advertisement.send(None, self.port, self.interface)
Example #29
0
class SqlDb(Record("db_conn")):
    """Abstracts the db_conn and cursor behavior a little bit."""
    def drop(self, table_name):
        db_cursor = self.db_conn.cursor()
        try:
            db_cursor.execute(sql.drop_table(table_name))
            self.db_conn.commit()
        except sqlite3.OperationalError:
            pass  # Already dropped?

    def create(self, table_name, field_types):
        db_cursor = self.db_conn.cursor()
        try:
            db_cursor.execute(sql.create_table(table_name, field_types))
            self.db_conn.commit()
        except sqlite3.OperationalError:
            pass  # Already exists?

    def insert(self, table_name, table_fields, tuples):
        db_cursor = self.db_conn.cursor()
        insert_statement = sql.insert(table_name, table_fields)
        for tup in tuples:
            db_cursor.execute(insert_statement, tup)
        self.db_conn.commit()

    def select(self, table_name, fields, into=None):
        db_cursor = self.db_conn.cursor()
        for values in db_cursor.execute(sql.select(table_name, fields)):
            if into is not None:
                values = into(*values)
            yield values
Example #30
0
def hours():
    #######################################################
    name = str(request.get_cookie("name"))
    start = str(request.get_cookie("start"))
    #######################################################

    # try to open file with user's name and retrieve data
    filePath = hoursDir + "/" + name
    # for each record, create a new Record object and add to list to pass to template
    # list of records as [obj]
    records = Record.parseRecordsFromFile(filePath)

    # DEBUG
    print("\n***DEBUG***")
    for r in records:
        print(r)
    print("***********\n")

    # if file doesn't exist, nullify cookies and proceed
    if not records:
        name = ""
        start = ""

    #######################################################
    return template('hours', records=records, name=name, start=start)
Example #31
0
    def getDrugRecords(self):
        results = []
        try:
            cnx = mysql.connector.connect(user=self.username,
                                          password=self.password,
                                          host='localhost',
                                          database='MFD_MS')
            cursor = cnx.cursor(prepared=True)
            #Training set pulled out here, just getting the first x  patients' records
            # sqlStatement = "Select ruid, entry_date, content from notes where doc_type != 'PL' and sub_type not like '%PROBLEM%'"
            sqlStatement = "select  ruid, entry_date, content from notes where ruid in (Select * from (select distinct ruid from notes where grouper != 5 and doc_type != 'PL' and sub_type not like '%PROBLEM%' order by ruid, entry_date Limit 200) as t);"
            cursor.execute(sqlStatement, multi=True)
            dbResults = cursor.fetchall()
            for result in dbResults:
                record = Record(result[0], result[1], result[2])
                results.append(record)

        except mysql.connector.Error as err:
            if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
                print("Something is wrong with your user name or password")
            elif err.errno == errorcode.ER_BAD_DB_ERROR:
                print("Database does not exist")
            else:
                print(err)
        else:
            cnx.close()

        return results
def __new_init__(self, data):
    ndata = []
    lang = getToolByName(getSite(), 'portal_languages').getPreferredLanguage()
    try:
        encoding = getToolByName(self, "portal_properties").site_properties.default_charset
    except AttributeError:
        encoding = 'ascii'
    for v in data:
        try:
            value = json.loads(v)
            value = value['___multilanguage___']
            v = value.get(lang, '')
            if isinstance(v, basestring):
                v = v.encode(encoding)
        except:
            pass
        ndata.append(v)
    Record.__init__(self, tuple(ndata))
Example #33
0
def getRecords(conn):

    cursor = conn.cursor()

    cursor.execute("SELECT * FROM records")

    recordList = []

    row = cursor.fetchone()
    while row:

       record = Record(row[0],row[1],row[2],row[3],row[4])

       temp_player = getPlayer(record.PlayerID, conn)
       temp_video = getVideo(record.VideoID, conn)

       record.PlayerName = temp_player.FirstName + " " + temp_player.LastName
       record.VideoUrl = temp_video.ExtUrl

       recordList.append(record)

       row = cursor.fetchone()

    return recordList
Example #34
0
    def add(self, target, name, force=False):
        #检查
        swap_out = self.__records_index_name.get(name, None)
        if swap_out:
            print "[warn] alias already exists: %s" % swap_out.toString()
            if not force:
                print "[fail] If you wanna override, please use 'cdthis -f'."
                return False;
            self.__records_list.remove(swap_out)

        r = Record();
        r.setName(name)
        r.setTarget(target)
        t = datetime.datetime.now()
        r.setCreatetime(t.strftime("%y-%m-%d %H:%M:%S"))
        self.__records_list.insert(0, r)
        self.__records_index_name[name] = r
        print "[OK] new alias done."
        return True
        pass
Example #35
0
 def start(self):
     self.success = False
     self.gameOver = False
     self.setCurses()
     Global.shell = MineShell()
     Global.timer = Timer() 
     createField = 'minefield ' + str(self.width) + ' ' + str(self.height) + ' ' + str(self.num)
     Global.shell.getInput(createField)
     window = Window(self.scr)
     layout = window.drawLayout(self.width, self.height)
     if layout == None:
         curses.endwin()
         print("The window is too small to display the Game field")
         print("Please increase the window size or decrease the font size")
         sys.exit(0);
     self.mineWin, log, panel, record = layout 
     self.record = Record(record)
     self.mine = GameField(self.mineWin, Global.shell)
     self.mine.drawUndeployedMineField()
     Global.panel = panel
     clock = ClockUpdater()
     clock.daemon = True
     clock.start()
     return self.mine, log, panel, self.record
Example #36
0
 def __init__(self, user_id):
     Record.__init__(self, user_id)
Example #37
0
 def __init__(self, record):
   Record.__init__(self, record.doc)
Example #38
0
    def readAnnormalDataRecords(self) :

        fixedItemsTag = FixedItems(self.path, self.pageOffset)
        #carve tag
        recordOffset = 0
        recordSize = 0

        for i in range(self.availablePageTag, (self.pageSize - self.pageHeaderSize)/4) :
            tagOffset = self.pageSize - i*4
            
            #get Record Size
            recordSize = fixedItemsTag.setItem("recordSize"+str(i), tagOffset-4, 2) & (self.pageSize -1 )
            
            #get Record Offset
            recordOffset = fixedItemsTag.setItem("recordOffset"+str(i), tagOffset-2, 2) & (self.pageSize -1 )
            #check Record Size
            if recordSize <= 0 or recordSize > self.pageSize :
                break
            #check Record Offset
            if recordOffset < 0 or recordOffset > self.pageSize :
                break
            #check Record Bitmap
            if not self.checkBitmap(recordOffset, recordSize) :
                continue
            
            #get Page Tag Flag
            if self.pageSize >= 16384 : 
                pageTagFlag = fixedItemsTag.setItem("pageTagFlag"+str(i), self.pageHeaderSize + 1 + recordOffset , 1)
            else :
                pageTagFlag = (fixedItemsTag.setItem("pageTagFlag"+str(i), tagOffset-1 , 1) )
            
            record = Record(self.path, self.pageSize, self.pageOffset, recordOffset, recordSize, pageTagFlag)
            #check Record Header
            if not record.isNormalRecord(self.columns) :
                break
            
            self.abnormalRecordList.append(record)
            self.setBitmap(recordOffset, recordSize)
            self.setBitmap(tagOffset-self.pageHeaderSize-4, 4)
            
        fixedItemsTag = None
        
        #carve data
        
        recordInfo = self.carvingData(self.pageHeaderSize)
        recordOffset = recordInfo[0]
        pageTagFlag = recordInfo[1]
        minimumSize = recordInfo[2]
        while recordOffset < self.pageSize : #max page Size
            if minimumSize == 0 :
                break
            recordInfo = self.carvingData(recordOffset + minimumSize)
            
            tempRecordOffset = recordInfo[0]
            tempPageTagFlag = recordInfo[1]
            minimumSize = recordInfo[2]
            
            
            recordSize = tempRecordOffset - recordOffset
            recordOffset -= self.pageHeaderSize 

            record = Record(self.path, self.pageSize, self.pageOffset, recordOffset, recordSize , pageTagFlag)
            self.abnormalRecordList.append(record)
            self.setBitmap(recordOffset, recordSize)
            
            recordOffset = tempRecordOffset
            pageTagFlag = tempPageTagFlag
            
            
        
        #read record
        for record in self.abnormalRecordList :
            record.setRecordType("Abnormal_Data")
            try :
                record.readRecord(self.columns)
            except :
                continue
        
        return self.abnormalRecordList
Example #39
0
 def __init__(self, data, parent, binit=binit):
     Record.__init__(self,data)
     binit(self.__of__(parent))
Example #40
0
 def __init__(self, item_id):
     Record.__init__(self, item_id)
Example #41
0
class Game:
    def __init__(self, stdscr, width, height, num):
        self.width = width
        self.height = height
        self.num = num
        self.scr = stdscr
        self.fileName = str(width) + 'X' + str(height) + 'with' + str(num) + 'mines'
        self.success = None
        self.gameOver = None 
        self.record = None
        self.mine = None
        #self.timer = None
        self.mineWin = None
        self.startTime = None
        self.clock = None

    def start(self):
        self.success = False
        self.gameOver = False
        self.setCurses()
        Global.shell = MineShell()
        Global.timer = Timer() 
        createField = 'minefield ' + str(self.width) + ' ' + str(self.height) + ' ' + str(self.num)
        Global.shell.getInput(createField)
        window = Window(self.scr)
        layout = window.drawLayout(self.width, self.height)
        if layout == None:
            curses.endwin()
            print("The window is too small to display the Game field")
            print("Please increase the window size or decrease the font size")
            sys.exit(0);
        self.mineWin, log, panel, record = layout 
        self.record = Record(record)
        self.mine = GameField(self.mineWin, Global.shell)
        self.mine.drawUndeployedMineField()
        Global.panel = panel
        clock = ClockUpdater()
        clock.daemon = True
        clock.start()
        return self.mine, log, panel, self.record

    def pause(self):
        #self.timer.pause()
        Global.timer.pause()
        self.mine.drawUndeployedMineField()
        self.mine.disablePoke()
        return

    def resume(self):
        #self.timer.resume()
        Global.timer.resume()
        self.record.eraseRecord()
        self.mine.drawUndeployedMineField()
        if self.isGameOver():
            self.displayGameOver(self.success)
        else:
            self.mine.drawPokedMineField()
            self.mine.enablePoke()
        return

    def restart(self):
        self.success = False
        self.gameOver = False
        self.record.eraseRecord()
        Global.shell = MineShell()
        Global.timer = Timer() 
        createField = 'minefield ' + str(self.width) + ' ' + str(self.height) + ' ' + str(self.num)
        Global.shell.getInput(createField)
        self.mine = GameField(self.mineWin, Global.shell)
        self.mine.drawUndeployedMineField()
        return
    
    def poke(self, y, x):
        if Global.timer.isTimerStarted() == False:
            Global.timer.start()
        return self.mine.pokeMineField(y, x)

    def flag(self, y, x):
        alreadyFlagged = self.mine.flagMineField(y, x)
        if alreadyFlagged:
            self.mine.unflagMineField(y, x)

    def checkWin(self):
        return self.mine.shell.getInput('query success')

    def checkLose(self):
        return self.mine.shell.getInput('query failure')
    
    def status(self):
        flags = self.mine.shell.getInput('query flags')
        mines = self.mine.shell.getInput('query mines')
        return flags, mines

    def exit(self):
        sys.exit(0) 
        return

    def addNewRecord(self):
        self.record.addNewRecord(self.fileName, Global.totalTime)

    def displayRecord(self):
        if not self.checkWin() and not self.checkLose():
            self.pause()
            self.record.displayRecords(self.fileName, None)
        elif self.checkWin():
            self.record.displayRecords(self.fileName, Global.totalTime)
        elif self.checkLose():
            self.record.displayRecords(self.fileName, None)
        return

    def displayGameOver(self, success):
        self.mine.displayGameOver(success)
        self.mine.disablePoke()
    
    def isGameOver(self):
        return self.gameOver

    def gameWin(self):
        if self.isGameOver():
            return
        self.success = True
        self.gameOver = True
        Global.timer.end()
        self.displayGameOver(True)
        self.addNewRecord()
        self.displayRecord()
        return

    def gameLose(self):
        if self.isGameOver():
            return
        Global.timer.end()
        self.gameOver = True
        self.displayGameOver(False)
        return
        

    def setCurses(self):
        self.scr.refresh()
        curses.start_color()
        curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK)
        curses.init_pair(3, curses.COLOR_GREEN, curses.COLOR_BLACK)
        curses.init_pair(6, curses.COLOR_BLUE, curses.COLOR_BLACK)
        curses.init_pair(2, curses.COLOR_CYAN, curses.COLOR_BLACK)
        curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK)
        curses.init_pair(5, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
        curses.init_pair(7, curses.COLOR_RED, curses.COLOR_BLACK)
        curses.mousemask(-1)
        curses.mouseinterval(0)
        curses.curs_set(0)
Example #42
0
 def __init__(self, data, parent, binit=binit):
     Record.__init__(self,data)
     if parent is not None: self=self.__of__(parent)
     binit(self)