def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.clicker = Clicker() self.hotkey = Hotkey(self.toggle) self.delay = float(self.input_delay.Value) self.credit_frame = EventedUICredits(self) self.toggled = False
def next_page(self) -> bool: try: # locate next button next = AdaptiveRecursor(NextButton(self.driver, self.wait_time)).get() # go to next page Clicker(self.driver, next).click() except: print('Next not detected') return False return True
def main() -> None: """Main function to run the app.""" prompt = Prompt() prompt.greet() prompt.check_conditions() iterate_through_primary = prompt.iterate_through_primary() iterate_through_secondary = prompt.iterate_through_secondary() prompt.announce_start() clicker = Clicker(iterate_through_primary, iterate_through_secondary) clicker.run()
def __init__(self, character_class): clicker = Clicker() clicker.registerExit(clicker.RIGHT_CTRL, self.stop_event_hendler) self.bot_tread_stop_event = threading.Event() self.clicker_tread = threading.Thread(target=self.start_clicker, args=(clicker, )) self.bot_tread = threading.Thread(target=self.start_bot, args=(clicker, self.bot_tread_stop_event, character_class)) self.clicker_tread.start() self.bot_tread.start()
def get(self, z, x, y, format): assert (0 <= z <= 30) assert (x < pow(2, z)) assert (y < pow(2, z)) destination_dir = self.folder(format) url = addDimention(self.url, z) url = addDimention(url, x) url = addDimention(url, y) url = addFormat(url, format) url = applyToken(url, self.token) cl = Clicker() filename = wget.download(url, out=destination_dir) time = cl.get() os.remove(filename) return time
def process_job(self, job) -> str: # initialize input_string and save job text input_string = str() input_string += job.text + '\n\n' # save job summary and link self.save_job_summary(job) self.save_job_link(job) # get job title job_title = self.get_job_title(job) # click on job title and expand job description Clicker(self.driver, job_title).click() # return input_string return input_string
def select_date(self): Clicker( self.driver, AdaptiveRecursor(DateSelector(self.driver, self.wait_time)).get()).click()
def select_experience(self): Clicker( self.driver, AdaptiveRecursor( ExperienceSelector(self.driver, self.wait_time, self.experience)).get()).click()
def select_distance(self): Clicker( self.driver, AdaptiveRecursor( DistanceSelector(self.driver, self.wait_time, self.distance)).get()).click()
# Bumpiness bumps = np.sum(np.abs(np.subtract(col_heights[1:], col_heights[:-1]))) #print_mask(grid_clone) # Preview score testing #sleep(.1) # return score return agg_hght * AGGR_HGHT_COEF + \ comp_lines * COMP_LINES_COEF + \ holes * HOLES_COEF + \ bumps * BUMP_COEF fg = FrameGrabber(0.224, 0.227, 0.553, 0.623, WINDOW_TITLE) clicker = Clicker(WINDOW_TITLE) subprocess.run('', shell=True) # Required to enable escape codes os.system('cls') # Clear screen before printing grid print('+', '-' * 10, '+\n', ('|' * 12 + '\n') * 20, '+', '-' * 10, '+\n', sep='') while GetAsyncKeyState(VK_ESCAPE) == 0: # Take a multiframe average to reduce noise raw_frame = fg.grab()[:, :, :3].astype("uint16") for _ in range(FRAME_SAMPLES - 1): sleep(SAMPLE_DELAY)
def main(): Clicker().start_clicking()
def __init__(self): '''инициализирует игру и создает игровые ресурсы''' pygame.init() self.settings = Settings() self.screen = pygame.display.set_mode( (self.settings.screen_width, self.settings.screen_height)) pygame.display.set_caption("Cactus evolution") self.clicker = Clicker(self) self.arrows = pygame.sprite.Group() self.game_folder = os.path.dirname(__file__) self.sounds_folder = os.path.join(self.game_folder, 'sounds') self.passed_time = 0 self.start_game_time = time.time() self.clock = pygame.time.Clock() self.stats = GameStats(self) self.sb = Scoreboard(self) self.au = Authorization(self) self.last = None self.in_mission = False self.time = None self.access = False self.random_color = None self.left = False self.right = False self.up = False self.down = False self.current_color = None #Создание кнопки Play self.play_button = Button(self, "Play") self.start_time = None self.music_play = False self.waiting = True self.pause = False self.start_countdown = True self.timer = False #self.timer_h = 1 self.timer_s = self.settings.timer self.timer_tick = None self.timer_access = True #Меню self.menu_access = True self.check_start_game = False self.menu = Menu(self) self.multiplayer_access = False self.singleplayer_access = False self.shop_access = False self.end_access = False self.reset_arrows = True self.authorization_access = True self.user_login = '' self.user_password = '' self.font = pygame.font.Font(None, 32) self.text_surface = None self.write_access_login = False self.write_access_password = False self.login = '' self.password = '' self.bool_resp = None self.without_symb = None self.multiplayer_timer = 30 self.multiplayer_ticks = None self.mu = Multiplayer(self) self.SSP_access = True self.step = None self.reg = Registration(self) self.reg_access = False #Мультиплеер - инфа о игроках и игре self.search_game_access = False self.end_round = False self.interval = 3 self.start_room = False self.CLIENT_ID = None self.enemy_id = None self.game_data = {} self.game_search_ticks = None self.game_search_timer = None self.search_button = True self.choise = False self.my_health_loss = 0 self.enemy_health_loss = 0 self.my_health = None self.enemy_health = 1000 self.end_multiplayer_game_access = False self.rez = '' self.shop = Shop(self) self.level = None self.next_level_exp = None self.exp = None self.coins = None self.singleplayer_coins = 0 self.multiplayer_coins = 0 self.multiplayer_add_coins = False self.singleplayer_add_coins = False self.singleplayer_exp = 0 self.multiplayer_exp = 0
robot.prog = robot.progs.index(prog) robot.screen = 3 robot.wboot = False def runner(): robot.scrout() Wait(800) robot.onCenter() RoboThread(target=runner).start() else: robot = Robot() robot.draw() clicker = Clicker() clicker.bind(((810, 252), (41, 40)), robot.onCenter) clicker.bind(((810, 308), (41, 26)), robot.onBack) clicker.bind(((751, 252), (41, 40)), robot.onLeft) clicker.bind(((870, 252), (41, 40)), robot.onRight) clicker.bind(((960, 400), (50, 50)), robot.onDialog) while running: for event in pygame.event.get(): if event.type == MOUSEBUTTONDOWN and event.button == 1: clicker.process(pygame.mouse.get_pos()) if event.type == QUIT: robot.die = True
def twopanel_profile(self, va, time, wrf_sds, out_sd, two_panel=1, dom=1, mean=1, std=1, xlim=0, ylim=0, latlon=0, locname=0, overlay=0, ml=-2): """ Create two-panel figure with profile location on map, with profile of all ensemble members in comparison. Inputs: va : variable for profile time : time of plot wrf_sds : subdirs containing wrf file out_d : out directory for plots Optional: two_panel : add inset for plot location dom : WRF domain to use mean : overlay mean on profile std : overlay +/- std dev on profile xlim : three-item list/tuple with limits, spacing interval for xaxis, in whatever default units ylim : similarly for yaxis but in hPa or dictionary with locations (METAR etc) and two-item tuple latlon : two-item list/tuple with lat/lon. If not specified, use pop-ups to select. locname : pass this to the filename of output for saving overlay : data from the same time to overlay on inset ml : member level. negative number that corresponds to the folder in absolute string for naming purposes. """ # Initialise with first wrfout file self.W = self.get_wrfout(wrf_sds[0], dom=dom) outpath = self.get_outpath(out_sd) # Get list of all wrfout files enspaths = self.list_ncfiles(wrf_sds) self.data = 0 if two_panel: P2 = Figure(self.C, self.W, layout='inseth') if overlay: F = BirdsEye(self.C, self.W) self.data = F.plot2D('cref', time, 2000, dom, outpath, save=0, return_data=1) # Create basemap for clicker object # F = BirdsEye(self.C,self.W) # self.data = F.plot2D('cref',time,2000,dom,outpath,save=0,return_data=1) # TODO: Not sure basemap inset works for lat/lon specified if isinstance(latlon, collections.Sequence): if not len(latlon) == 2: print( "Latitude and longitude needs to be two-item list/tuple.") raise Exception lat0, lon0 = latlon C = Clicker(self.C, self.W, fig=P2.fig, ax=P2.ax0, data=self.data) x0, y0 = C.bmap(lon0, lat0) C.ax.scatter(x0, y0, marker='x') else: t_long = utils.string_from_time('output', time) print("Pick location for {0}".format(t_long)) C = Clicker(self.C, self.W, fig=P2.fig, ax=P2.ax0, data=self.data) # fig should be P2.fig. # C.fig.tight_layout() # Pick location for profile C.click_x_y(plotpoint=1) lon0, lat0 = C.bmap(C.x0, C.y0, inverse=True) # Compute profile P = Profile(self.C) P.composite_profile(va, time, (lat0, lon0), enspaths, outpath, dom=dom, mean=mean, std=std, xlim=xlim, ylim=ylim, fig=P2.fig, ax=P2.ax1, locname=locname, ml=ml)
def cold_pool_strength(self, time, wrf_sd=0, wrf_nc=0, out_sd=0, swath_width=100, dom=1, twoplot=0, fig=0, axes=0, dz=0): """ Pick A, B points on sim ref overlay This sets the angle between north and line AB Also sets the length in along-line direction For every gridpt along line AB: Locate gust front via shear Starting at front, do 3-grid-pt-average in line-normal direction time : time (tuple or datenum) to plot wrf_sd : string - subdirectory of wrfout file wrf_nc : filename of wrf file requested. If no wrfout file is explicitly specified, the netCDF file in that folder is chosen if unambiguous. out_sd : subdirectory of output .png. swath_width : length in gridpoints in cross-section-normal direction dom : domain number return2 : return two figures. cold pool strength and cref/cross-section. axes : if two-length tuple, this is the first and second axes for cross-section/cref and cold pool strength, respectively dz : plot height of cold pool only. """ # Initialise self.W = self.get_wrfout(wrf_sd, wrf_nc, dom=dom) outpath = self.get_outpath(out_sd) # keyword arguments for plots line_kwargs = {} cps_kwargs = {} # Create two-panel figure if twoplot: P2 = Figure(self.C, self.W, plotn=(1, 2)) line_kwargs['ax'] = P2.ax.flat[0] line_kwargs['fig'] = P2.fig P2.ax.flat[0].set_size_inches(3, 3) cps_kwargs['ax'] = P2.ax.flat[1] cps_kwargs['fig'] = P2.fig P2.ax.flat[1].set_size_inches(6, 6) elif isinstance(axes, tuple) and len(axes) == 2: line_kwargs['ax'] = axes[0] line_kwargs['fig'] = fig cps_kwargs['ax'] = axes[1] cps_kwargs['fig'] = fig return_ax = 1 # Plot sim ref, send basemap axis to clicker function F = BirdsEye(self.C, self.W) self.data = F.plot2D('cref', time, 2000, dom, outpath, save=0, return_data=1) C = Clicker(self.C, self.W, data=self.data, **line_kwargs) # C.fig.tight_layout() # Line from front to back of system C.draw_line() # C.draw_box() lon0, lat0 = C.bmap(C.x0, C.y0, inverse=True) lon1, lat1 = C.bmap(C.x1, C.y1, inverse=True) # Pick location for environmental dpt # C.click_x_y() # Here, it is the end of the cross-section lon_env, lat_env = C.bmap(C.x1, C.y1, inverse=True) y_env, x_env, exactlat, exactlon = utils.getXY(self.W.lats1D, self.W.lons1D, lat_env, lon_env) # Create the cross-section object X = CrossSection(self.C, self.W, lat0, lon0, lat1, lon1) # Ask user the line-normal box width (self.km) #C.set_box_width(X) # Compute the grid (DX x DY) cps = self.W.cold_pool_strength(X, time, swath_width=swath_width, env=(x_env, y_env), dz=dz) # import pdb; pdb.set_trace() # Plot this array CPfig = BirdsEye(self.C, self.W, **cps_kwargs) tstr = utils.string_from_time('output', time) if dz: fprefix = 'ColdPoolDepth_' else: fprefix = 'ColdPoolStrength_' fname = fprefix + tstr pdb.set_trace() # imfig,imax = plt.subplots(1) # imax.imshow(cps) # plt.show(imfig) # CPfig.plot_data(cps,'contourf',outpath,fname,time,V=N.arange(5,105,5)) mplcommand = 'contour' plotkwargs = {} if dz: clvs = N.arange(100, 5100, 100) else: clvs = N.arange(10, 85, 2.5) if mplcommand[:7] == 'contour': plotkwargs['levels'] = clvs plotkwargs['cmap'] = plt.cm.ocean_r cf2 = CPfig.plot_data(cps, mplcommand, outpath, fname, time, **plotkwargs) # CPfig.fig.tight_layout() plt.close(fig) if twoplot: P2.save(outpath, fname + "_twopanel") if return_ax: return C.cf, cf2
def main(): env.app = gui.App(theme=gui.Theme(p("theme/default/"))) settings = gui.Image(p("icons/settings.png")) console = gui.Image(p("icons/python.png")) # settings.connect c = gui.Container(align=-1, valign=-1) c.add(console, 970, 10) c.add(settings, 960, 400) env.app.init(c, env.screen) running = True if len(sys.argv) > 1: robot = Robot(wboot=False) robot.draw() prog = sys.argv[1] robot.progLoad() robot.prog = robot.progs.index(prog) robot.screen = 3 robot.wboot = False def runner(): robot.screen_y = 3 robot.scrout() pygame.time.delay(800) robot.onCenter() RoboThread(target=runner).start() else: robot = Robot() robot.draw() clicker = Clicker() clicker.bind(((810, 252), (41, 40)), robot.onCenter) clicker.bind(((810, 308), (41, 26)), robot.onBack) clicker.bind(((751, 252), (41, 40)), robot.onLeft) clicker.bind(((870, 252), (41, 40)), robot.onRight) clicker.bind(((970, 10), (45, 45)), robot.onConsole) clicker.bind(((960, 400), (50, 50)), robot.background_dialog) # sensor binds clicker.bind(((735, 440), (19, 23)), robot.port1) clicker.bind(((795, 440), (19, 23)), robot.port2) clicker.bind(((855, 440), (19, 23)), robot.port3) clicker.bind(((915, 440), (19, 23)), robot.port4) robot.load_config('./config.yml') while running: for event in pygame.event.get(): if event.type == MOUSEBUTTONDOWN and event.button == 1: clicker.process(pygame.mouse.get_pos()) if event.type == KEYDOWN: if event.mod & KMOD_CTRL: if event.key == K_h: robot.brick_hidden = not robot.brick_hidden env.check_brick() if event.key == K_d: robot.background_dialog() if event.key == K_c: robot.onConsole() if event.type == QUIT: robot.die = True running = False pygame.quit() sys.exit(0) elif event.type == MOUSEBUTTONDOWN and robot.mouseOver(): if event.button == 1: robot.dragged = not robot.dragged if robot.dragged: pygame.mouse.set_cursor(*pygame.cursors.broken_x) else: pygame.mouse.set_cursor(*pygame.cursors.arrow) if event.button == 4: robot.angle += 1 robot.angle = round(robot.angle, 0) elif event.button == 5: robot.angle -= 1 robot.angle = round(robot.angle, 0) env.app.event(event) pygame.event.pump() keystate = pygame.key.get_pressed() mod = pygame.key.get_mods() # rotate robot by keys if keystate[K_LEFT] and mod & KMOD_SHIFT: robot.angle -= 1 elif keystate[K_RIGHT] and mod & KMOD_SHIFT: robot.angle += 1 if robot.dragged: robot.draw() robot.drag() else: robot.tick() clock.tick(40) # Frame rate
from mapbox import Mapbox from harvester import Harvester from tile import Tile from clicker import Clicker mapbox = Mapbox() print("png-z0: " + str(mapbox.get(0, 0, 0, "png"))) print("mvt-z0: " + str(mapbox.get(0, 0, 0, "mvt"))) print("png-z30: " + str(mapbox.get(30, 0, 0, "png"))) print("mvt-z30: " + str(mapbox.get(30, 0, 0, "mvt"))) harvester = Harvester(["png", "mvt"]) tile = Tile(7, 25, 53) cl = Clicker() while tile.level() != 31: print(str(tile)) results = harvester.fill(tile, 1000) print(tile.level(), end=": ") print(results) tile.zoomin() harvester.clean() print(cl.get())