def main(): if len(sys.argv) == 2: map_name = sys.argv[1] else: exit(1) map_file = open(map_name, 'r') # ввод данных map_data = map_file.read() links = re.findall('\w+-\w+', map_data) rooms = re.findall('\w+ \d+ \d+', map_data) paths = re.findall('(L.*?)\n', map_data) print(paths) # парсинг данных на узлы, ребра и перемещения за каждый шаг rooms_dict = {} links_list = [] for room in rooms: buf = room.split(' ') rooms_dict[buf[0]] = (Room(buf[0], int(buf[1]) * ZOOM, int(buf[2]) * ZOOM, NODE_SIZE)) print(buf[0], buf[1], buf[2]) for link in links: buf = link.split('-') if not buf[0].startswith('L'): line = Link(None, None) for room in rooms_dict: room = rooms_dict[room] if room.name == buf[0]: line.start = room elif room.name == buf[1]: line.end = room links_list.append(line) start_room = re.findall('##start\n(\w+)', map_data)[0].split('\n')[0] moves_list = [] moved_ants = set() for path in paths: move_per_ant = ' ' + path move_per_ant = move_per_ant.split(' L') moves = {} for ant_move in move_per_ant: if ant_move != '': ant_move = ant_move.split('-') if not ant_move[0] in moved_ants: moved_ants.add(ant_move[0]) moves[ant_move[0]] = Move(rooms_dict[start_room], rooms_dict[ant_move[1]], ant_move[0]) else: previous_ant_move = moves_list[-1][ant_move[0]] moves[ant_move[0]] = Move(previous_ant_move.end, rooms_dict[ant_move[1]], ant_move[0]) moves_list.append(moves) game = Game(links_list, moves_list) game.run()
def main(): Q = QiniuProvider() countries = parseTable( Link(f'{domain}/wiki/List_of_IOC_country_codes').getText()) beginTime = datetime.now() with ThreadPoolExecutor(max_workers=10) as pool: allTasks = [] sqlFile = open('countryList.sql', 'w', encoding="utf-8") sqlWriter = SQLExporter(sqlFile, 'nationality', ['name', 'code', 'flag']) for country in countries: print(f'graping {country.name}...') allTasks.append( pool.submit( executor, ExecutorParams(q=Q, country=country, writer=sqlWriter))) for task in as_completed(allTasks): print(f'{task.result()} downloaded.') sqlFile.close() endTime = datetime.now() print(f'run time: {endTime - beginTime}')
def upload(self, filePath: str) -> Link: remoteFileName = basename(filePath) remoteDir = 'flag' key = f'{remoteDir}/{remoteFileName}' token = self.q.upload_token(bucket=self.bucket, key=key) ret, info = put_file(token, key, filePath) url = f'https://{self.domain}/{ret["key"]}' print(f'uploaded to {url}') return Link(url)
def create_link(teacher_id, student_id): """Create a teacher/student link.""" link = Link(teacher_id=teacher_id, student_id=student_id) db.session.add(link) db.session.commit() return link
def add_link(): link_url = request.forms.get('link_url') autodelete = request.forms.get('autodelete') == 'on' password = request.forms.get('password', '') if link_url: while True: id = generate_id() if manager.get_link_by_id(id) is None: break manager.save(Link(id, link_url, autodelete, password)) redirect('/')
def post(self): action = self.param('action') name, url = (self.request.get(item) for item in ('linkName', 'linkURL')) if (action == 'edit'): key = self.param('id') link = Link.get_by_id(int(key)) link.linkName = name link.linkURL = url else: link = Link(linkName=name, linkURL=url) link.put() self.redirect('/admin/links') return
def startElement(self, name, attributes): if name == "day": self.setDay(attributes["date"]) elif name == "conference": self.conference = Conference() self.in_conference = True elif name == "event": event_id = attributes["id"] self.event = Event(event_id) self.in_event = True elif name == "link": if self.in_event: self.link = Link(attributes["href"]) elif name == "person": if self.in_event: self.person = self.get_person(attributes["id"])
def _read_links(file) -> (int, list): number_of_links = int(file.readline().split()[0]) # Move pointer to second line link_list = [] # Enumerate uses next to move lines for idx, line in enumerate(file): values = line.split() if len(values) == 1 and values[0] == '-1': # Separator found! Links have been read return number_of_links, link_list link_list.append( Link(idx + 1, int(values[0]), int(values[1]), int(values[2]), float(values[3]), int(values[4])) ) raise Exception
def storeFoundCover(self, manager, edition): coverPath = 'covers/{}/{}.{}'.format(manager.fetcher.SOURCE, manager.fetcher.coverID, manager.coverFormat.lower()) self.putObjectInBucket(manager.coverContent, coverPath, self.fileBucket) coverLink = Link(url='https://{}.s3.amazonaws.com/{}'.format( self.fileBucket, coverPath), media_type='image/{}'.format( manager.coverFormat.lower()), flags={'cover': True}) edition.links.append(coverLink) self.records.add(edition) if len(self.records) >= self.batchSize: self.bulkSaveObjects(self.records) self.records = set()
def add_link(self, from_id: tp.Tuple[str, int], to_id: tp.Tuple[str, int], colour: str="black", \ arrow_draw: ArrowDraw = ArrowDraw.FWD_ARROW, link_2_col: tp.Optional[str] = None): self._links.append( Link(self._id_if_str(from_id), self._id_if_str(to_id), colour, arrow_draw, link_2_col))