Best Python code snippet using playwright-python
api.py
Source:api.py
1from sakura.hub.web.apitools import api_init, pack2from sakura.hub.code import list_code_revisions, list_operator_subdirs3from sakura.common.events import EventsAggregator4api = api_init()5EVENTS = EventsAggregator()6# Caution: this GuiToHubAPI class is instanciated once for each web connection!7@api8class GuiToHubAPI:9 def __init__(self, context):10 self.context = context11 # Events12 ########################################13 @property14 def event_listener_id(self):15 # use the web session ID to uniquely identify this event listener16 return self.context.session.id17 def events_monitor(self, obj, obj_id):18 EVENTS.monitor(self.event_listener_id, obj.all_events, obj_id)19 @api.events.unmonitor20 def events_unmonitor(self, obj_id):21 EVENTS.unmonitor(self.event_listener_id, obj_id)22 @api.events.next_events23 def events_next_events(self, timeout):24 evts = EVENTS.next_events(self.event_listener_id, timeout)25 for evt in evts:26 print('notify to GUI', *evt)27 return evts28 ########################################29 # Daemons30 @api.daemons.list31 def list_daemons(self):32 return pack(self.context.daemons)33 ########################################34 # Operator classes35 @property36 def op_classes(self):37 return self.context.op_classes.filter_for_current_user()38 @api.op_classes.list39 def list_operators_classes(self):40 return pack(self.op_classes)41 @api.op_classes.__getitem__.info42 def get_operator_class_info(self, cls_id):43 return pack(self.op_classes[cls_id])44 @api.op_classes.register45 def register_op_class(self, **cls_repo_info):46 return self.op_classes.register(self.context, **cls_repo_info)47 @api.op_classes.__getitem__.unregister48 def unregister_op_class(self, cls_id):49 return self.op_classes[cls_id].unregister()50 @api.op_classes.__getitem__.update_default_revision51 def update_op_class_default_revision(self, cls_id, code_ref, commit_hash):52 return self.op_classes[cls_id].update_default_revision(code_ref, commit_hash)53 ########################################54 # Operator instances55 # instantiate an operator and return the instance info56 @api.operators.create57 def create_operator_instance(self, dataflow_id, cls_id, gui_data = '', local_streams=None):58 return self.dataflows[dataflow_id].create_operator_instance(59 cls_id, gui_data=gui_data, local_streams=local_streams)60 # delete operator instance and links involved61 @api.operators.__getitem__.delete62 def delete_operator_instance(self, op_id):63 return self.context.op_instances[op_id].delete_instance()64 # returns info about operator instance: cls_name, inputs, outputs, parameters65 @api.operators.__getitem__.info66 def get_operator_instance_info(self, op_id):67 return pack(self.context.op_instances[op_id])68 @api.operators.__getitem__.monitor69 def operator_instance_monitor(self, op_id, obj_id):70 self.events_monitor(self.context.op_instances[op_id], obj_id)71 @api.operators.__getitem__.reload72 def update_op_revision(self, op_id):73 return self.context.op_instances[op_id].reload()74 @api.operators.__getitem__.update_revision75 def update_op_revision(self, op_id, code_ref, commit_hash, all_ops_of_cls=False):76 return self.context.op_instances[op_id].update_revision(code_ref, commit_hash, all_ops_of_cls)77 @api.operators.__getitem__.parameters.__getitem__.set_value78 def set_parameter_value(self, op_id, param_id, value):79 return self.context.op_params.lookup(op_id, param_id).set_value(value)80 @api.operators.__getitem__.inputs.__getitem__.info81 def get_operator_input_info(self, op_id, in_id):82 return pack(self.context.op_instances[op_id].input_plugs[in_id])83 @api.operators.__getitem__.inputs.__getitem__.get_range84 def get_operator_input_range(self, op_id, in_id, row_start, row_end):85 return pack(self.context.op_instances[op_id].input_plugs[in_id].get_range(row_start, row_end))86 @api.operators.__getitem__.inputs.__getitem__.chunks87 def get_operator_input_chunks(self, op_id, in_id, allow_approximate=False):88 yield from self.context.op_instances[op_id].input_plugs[in_id].chunks(allow_approximate=allow_approximate)89 @api.operators.__getitem__.outputs.__getitem__.info90 def get_operator_output_info(self, op_id, out_id):91 return pack(self.context.op_instances[op_id].output_plugs[out_id])92 @api.operators.__getitem__.outputs.__getitem__.get_range93 def get_operator_output_range(self, op_id, out_id, row_start, row_end):94 return pack(self.context.op_instances[op_id].output_plugs[out_id].get_range(row_start, row_end))95 @api.operators.__getitem__.outputs.__getitem__.chunks96 def get_operator_output_chunks(self, op_id, out_id, allow_approximate=False):97 yield from self.context.op_instances[op_id].output_plugs[out_id].chunks(allow_approximate=allow_approximate)98 @api.operators.__getitem__.outputs.__getitem__.get_link_id99 def get_operator_outputplug_link_id(self, op_id, out_id):100 return self.context.op_instances[op_id].get_ouputplug_link_id(out_id)101 @api.operators.__getitem__.fire_event102 def fire_operator_event(self, op_id, *args, **kwargs):103 return self.context.op_instances[op_id].sync_handle_event(*args, **kwargs)104 @api.operators.__getitem__.opengl_apps.__getitem__.info105 def get_opengl_app_info(self, op_id, ogl_id):106 return pack(self.context.op_instances[op_id].opengl_apps[ogl_id])107 @api.operators.__getitem__.opengl_apps.__getitem__.fire_event108 def fire_opengl_app_event(self, op_id, ogl_id, *args, **kwargs):109 return self.context.op_instances[op_id].opengl_apps[ogl_id].fire_event(*args, **kwargs)110 @api.operators.__getitem__.opengl_apps.__getitem__.monitor111 def opengl_app_monitor(self, op_id, ogl_id, obj_id):112 self.events_monitor(self.context.op_instances[op_id].opengl_apps[ogl_id], obj_id)113 ########################################114 # Operator files115 @api.operators.__getitem__.get_file_content116 def get_operator_file_content(self, op_id, file_path):117 return self.context.op_instances[op_id].get_file_content(file_path)118 @api.operators.__getitem__.get_file_tree119 def get_operator_file_tree(self, op_id):120 return self.context.op_instances[op_id].get_file_tree()121 @api.operators.__getitem__.save_file_content122 def save_operator_file_content(self, op_id, file_path, file_content):123 return self.context.op_instances[op_id].save_file_content(file_path, file_content)124 @api.operators.__getitem__.create_file125 def new_operator_file(self, op_id, file_path, file_content):126 return self.context.op_instances[op_id].new_file(file_path, file_content)127 @api.operators.__getitem__.create_directory128 def new_operator_directory(self, op_id, dir_path):129 return self.context.op_instances[op_id].new_directory(dir_path)130 @api.operators.__getitem__.move_file131 def move_operator_file(self, op_id, file_src, file_dst):132 return self.context.op_instances[op_id].move_file(file_src, file_dst)133 @api.operators.__getitem__.delete_file134 def delete_operator_file(self, op_id, file_path):135 return self.context.op_instances[op_id].delete_file(file_path)136 ########################################137 # Links138 @api.links.__getitem__.info139 def get_link_info(self, link_id):140 return pack(self.context.links[link_id])141 @api.links.create142 def create_link(self, src_op_id, src_out_id, dst_op_id, dst_in_id):143 return self.context.create_link(src_op_id, src_out_id, dst_op_id, dst_in_id)144 @api.links.__getitem__.delete145 def delete_link(self, link_id):146 return self.context.links[link_id].delete_link()147 @api.links.__getitem__.monitor148 def link_monitor(self, link_id, obj_id):149 self.events_monitor(self.context.links[link_id], obj_id)150 @api.links.list_possible151 def get_possible_links(self, src_op_id, dst_op_id):152 return self.context.get_possible_links(src_op_id, dst_op_id)153 ########################################154 # Gui155 @api.operators.__getitem__.set_gui_data156 def set_operator_instance_gui_data(self, op_id, gui_data):157 self.context.op_instances[op_id].set_gui_data(gui_data)158 @api.operators.__getitem__.get_gui_data159 def get_operator_instance_gui_data(self, op_id):160 return self.context.op_instances[op_id].gui_data161 @api.links.__getitem__.set_gui_data162 def set_link_gui_data(self, link_id, gui_data):163 self.context.links[link_id].gui_data = gui_data164 @api.links.__getitem__.get_gui_data165 def get_link_gui_data(self, link_id):166 return self.context.links[link_id].gui_data167 ########################################168 # Datastores169 @property170 def datastores(self):171 self.context.datastores.refresh_offline_datastores()172 return self.context.datastores.filter_for_current_user()173 @api.datastores.list174 def list_datastores(self):175 return pack(self.datastores)176 @api.datastores.__getitem__.info177 def get_datastore_info(self, datastore_id):178 return self.datastores[datastore_id].get_full_info()179 @api.datastores.__getitem__.grants.request180 def request_datastore_grant(self, datastore_id, grant_name, text):181 return self.datastores[datastore_id].handle_grant_request(grant_name, text)182 @api.datastores.__getitem__.grants.deny183 def deny_datastore_grant(self, datastore_id, login):184 return self.datastores[datastore_id].deny_grant_request(login)185 @api.datastores.__getitem__.update186 def update_datastore_info(self, datastore_id, **kwargs):187 self.datastores[datastore_id].parse_and_update_attributes(**kwargs)188 @api.datastores.__getitem__.grants.update189 def update_datastore_grant(self, datastore_id, login, grant_name):190 return self.datastores[datastore_id].update_grant(login, grant_name)191 @api.datastores.__getitem__.list_expected_columns_tags192 def list_expected_columns_tags(self, datastore_id):193 return self.datastores[datastore_id].list_expected_columns_tags()194 ########################################195 # Databases196 @property197 def databases(self):198 self.context.datastores.refresh_offline_datastores()199 return self.context.databases.filter_for_current_user()200 @api.databases.list201 def list_databases(self):202 return pack(self.databases)203 @api.databases.__getitem__.info204 def get_database_info(self, database_id):205 return self.databases[database_id].get_full_info()206 @api.databases.create207 def new_database(self, datastore_id, name, **kwargs):208 # optional arguments of kwargs: short_desc, creation_date, tags, contacts209 # returns the database_id210 datastore = self.datastores[datastore_id]211 return self.databases.create_db(datastore, name, **kwargs)212 @api.databases.__getitem__.update213 def update_database_info(self, database_id, **kwargs):214 # optional arguments of kwargs: name, short_desc, creation_date, tags, contacts215 self.databases[database_id].parse_and_update_attributes(**kwargs)216 @api.databases.__getitem__.grants.update217 def update_database_grant(self, database_id, login, grant_name):218 self.databases[database_id].update_grant(login, grant_name)219 @api.databases.__getitem__.grants.request220 def request_database_grant(self, database_id, grant_name, text):221 return self.databases[database_id].handle_grant_request(grant_name, text)222 @api.databases.__getitem__.grants.deny223 def deny_database_grant(self, database_id, login):224 return self.databases[database_id].deny_grant_request(login)225 @api.databases.__getitem__.delete226 def delete_database(self, database_id):227 return self.context.databases[database_id].delete_database()228 ########################################229 # Tables230 @api.tables.__getitem__.info231 def get_table_info(self, table_id):232 return pack(self.context.tables[table_id])233 @api.tables.create234 def new_table(self, database_id, name, columns, **kwargs):235 # optional arguments of kwargs: short_desc, creation_date236 # returns the table_id237 database = self.databases[database_id]238 return self.context.tables.create_table(239 database, name, columns, **kwargs)240 @api.tables.__getitem__.update241 def update_table_info(self, table_id, **kwargs):242 # optional arguments of kwargs: name, description, creation_date243 self.context.tables[table_id].set(**kwargs)244 @api.tables.__getitem__.add_rows245 def add_rows_into_table(self, table_id, data):246 return self.context.tables[table_id].add_rows(data)247 @api.tables.__getitem__.get_rows248 def get_rows_from_table(self, table_id, row_start, row_end):249 return pack(self.context.tables[table_id].get_range(row_start, row_end))250 @api.tables.__getitem__.chunks251 def get_chunks_from_table(self, table_id, allow_approximate=False):252 yield from self.context.tables[table_id].chunks(allow_approximate=allow_approximate)253 @api.tables.__getitem__.delete254 def delete_table(self, table_id):255 return self.context.tables[table_id].delete_table()256 ########################################257 # Dataflow258 @property259 def dataflows(self):260 return self.context.dataflows.filter_for_current_user()261 @api.dataflows.__getitem__.info262 def get_dataflow_info(self, dataflow_id):263 return self.dataflows[dataflow_id].get_full_info()264 @api.dataflows.list265 def list_dataflows(self):266 return self.dataflows.pack()267 @api.dataflows.create268 def new_dataflow(self, name, **kwargs):269 return self.dataflows.create_dataflow(name = name, **kwargs)270 @api.dataflows.__getitem__.monitor271 def dataflow_monitor(self, dataflow_id, obj_id):272 self.events_monitor(self.context.dataflows[dataflow_id], obj_id)273 @api.dataflows.__getitem__.update274 def update_dataflow_info(self, dataflow_id, **kwargs):275 self.dataflows[dataflow_id].parse_and_update_attributes(**kwargs)276 @api.dataflows.__getitem__.grants.update277 def update_dataflow_grant(self, dataflow_id, login, grant_name):278 return self.dataflows[dataflow_id].update_grant(login, grant_name)279 @api.dataflows.__getitem__.grants.request280 def request_dataflow_grant(self, dataflow_id, grant_name, text):281 return self.dataflows[dataflow_id].handle_grant_request(grant_name, text)282 @api.dataflows.__getitem__.grants.deny283 def deny_dataflow_grant(self, dataflow_id, login):284 return self.dataflows[dataflow_id].deny_grant_request(login)285 @api.dataflows.__getitem__.set_gui_data286 def set_dataflow_gui_data(self, dataflow_id, gui_data):287 self.dataflows[dataflow_id].gui_data = gui_data288 @api.dataflows.__getitem__.get_gui_data289 def get_dataflow_gui_data(self, dataflow_id):290 return self.dataflows[dataflow_id].gui_data291 @api.dataflows.__getitem__.delete292 def delete_dataflow(self, dataflow_id):293 return self.dataflows[dataflow_id].delete_dataflow()294 ########################################295 # Project296 @property297 def projects(self):298 return self.context.projects.filter_for_current_user()299 @api.projects.__getitem__.info300 def get_project_info(self, project_id):301 return self.projects[project_id].get_full_info()302 @api.projects.list303 def list_projects(self):304 return self.projects.pack()305 @api.projects.create306 def new_project(self, name, **kwargs):307 return self.projects.create_project(name = name, **kwargs)308 @api.projects.__getitem__.update309 def update_project_info(self, project_id, **kwargs):310 self.projects[project_id].parse_and_update_attributes(**kwargs)311 @api.projects.__getitem__.grants.update312 def update_project_grant(self, project_id, login, grant_name):313 return self.projects[project_id].update_grant(login, grant_name)314 @api.projects.__getitem__.grants.request315 def request_project_grant(self, project_id, grant_name, text):316 return self.projects[project_id].handle_grant_request(grant_name, text)317 @api.projects.__getitem__.grants.deny318 def deny_project_grant(self, project_id, login):319 return self.projects[project_id].deny_grant_request(login)320 @api.projects.__getitem__.delete321 def delete_project(self, project_id):322 return self.projects[project_id].delete_project()323 ########################################324 # Project pages325 @property326 def pages(self):327 return self.context.pages.filter_for_current_user()328 @api.pages.create329 def create_project_page(self, project_id, page_name):330 return self.projects[project_id].create_page(page_name)331 @api.pages.__getitem__.info332 def get_project_page_info(self, page_id):333 return self.pages[page_id].pack()334 @api.pages.__getitem__.update335 def update_project_page(self, page_id, page_name=None, page_content=None):336 return self.pages[page_id].update_page(page_name=page_name, page_content=page_content)337 @api.pages.__getitem__.delete338 def delete_project_page(self, page_id):339 return self.pages[page_id].delete_page()340 # Session management341 ####################342 @api.renew_session343 def renew_session(self):344 return self.context.session.renew()345 # User management346 #################347 @api.users.create348 def new_user(self, **user_info):349 print(user_info)350 return self.context.users.new_user(**user_info)351 @api.login352 def login(self, login_or_email, password):353 log = self.context.login(login_or_email, password)354 return log355 @api.other_login356 def other_login(self, type, ticket, service):357 log = self.context.other_login(type, ticket, service)358 return log359 @api.login_options360 def login_options(self):361 opts = self.context.login_options()362 return opts363 @api.logout364 def logout(self):365 self.context.session.user = None366 @api.recover_password367 def recover_password(self, login_or_email):368 self.context.users.recover_password(login_or_email)369 @api.change_passord370 def change_password(self, login_or_email, current_password_or_rec_token, new_password):371 self.context.users.change_password(372 login_or_email, current_password_or_rec_token, new_password)373 # Note: you can use 'api.users.current' as a shortcut to 'api.users[<current_login>]'374 # in the following API calls.375 @api.users.__getitem__.info376 def get_user_info(self, login):377 return self.context.users[login].get_full_info()378 @api.users.__getitem__.update379 def update_user_info(self, login, **kwargs):380 return self.context.users[login].update_attributes(**kwargs)381 @api.users.__getitem__.privileges.request382 def request_user_privilege(self, login, privilege):383 return self.context.users[login].request_privilege(privilege)384 @api.users.__getitem__.privileges.add385 def add_user_privilege(self, login, privilege):386 return self.context.users[login].add_privilege(privilege)387 @api.users.__getitem__.privileges.remove388 def remove_user_privilege(self, login, privilege):389 return self.context.users[login].remove_privilege(privilege)390 @api.users.__getitem__.privileges.deny391 def deny_user_privilege(self, login, privilege):392 return self.context.users[login].deny_privilege(privilege)393 @api.users.list394 def list_all_users(self):395 return tuple(u.pack() for u in self.context.users.select())396 # Transfers management397 ######################398 @api.transfers.start399 def start_transfer(self):400 return self.context.start_transfer() # return transfer_id401 @api.transfers.__getitem__.get_status402 def get_transfer_status(self, transfer_id):403 return self.context.get_transfer_status(transfer_id)404 @api.transfers.__getitem__.abort405 def abort_transfer(self, transfer_id):406 return self.context.abort_transfer(transfer_id)407 # Misc features408 ###############409 @api.misc.list_code_revisions410 def list_code_revisions(self, repo_url, **opts):411 return list_code_revisions(repo_url, **opts)412 @api.misc.list_operator_subdirs413 def list_operator_subdirs(self, repo_url, code_ref):414 return list_operator_subdirs(repo_url, code_ref)415 # Global features416 #################417 @api.monitor418 def global_monitor(self, obj_id):...
telemetry.py
Source:telemetry.py
...68 "Spectator_Car_Index" : packet.spectatorCarIndex,69 "Sli_Pro_Native_Support" : packet.sliProNativeSupport,70 "Num_Marshal_Zones" : packet.numMarshalZones,71 "Marshal_Zones" : packet.marshalZones,72 "Marshal_Zone_Start" : packet.marshalZones.__getitem__(carindex).zoneStart,73 "Marshal_Zone_Flag" : packet.marshalZones.__getitem__(carindex).zoneFlag,74 "Safety_Car_Status_ID" : packet.safetyCarStatus,75 "Safety_Car_Status" : ["No safety car", "full safety car", "virtual safety car"][packet.safetyCarStatus],76 "Network_Game" : packet.networkGame,77 })787980 if isinstance(packet, PacketLapData_V1): 81 telemetry.update({82 "Last_Lap_Time" : packet.lapData.__getitem__(carindex).lastLapTime,83 "Current_Lap_Time": packet.lapData.__getitem__(carindex).currentLapTime,84 "Best_Lap_Time" : packet.lapData.__getitem__(carindex).bestLapTime,85 "Sector_1_Time" : packet.lapData.__getitem__(carindex).sector1Time,86 "Sector_2_Time" : packet.lapData.__getitem__(carindex).sector2Time,87 "Lap_Distance" : packet.lapData.__getitem__(carindex).lapDistance,88 "Total_Distance" : packet.lapData.__getitem__(carindex).totalDistance,89 "Safety_Car_Delta" : packet.lapData.__getitem__(carindex).safetyCarDelta,90 "Car_Position" : packet.lapData.__getitem__(carindex).carPosition,91 "Current_Lap_Num" : packet.lapData.__getitem__(carindex).currentLapNum,92 "Pit_Status_ID" : packet.lapData.__getitem__(carindex).pitStatus,93 "Pit_Status" : ["None", "Pitting", "In Pit Area"][packet.lapData.__getitem__(carindex).pitStatus],94 "Sector_ID" : packet.lapData.__getitem__(carindex).sector,95 "Sector" : ["Sector1", "Sector2", "Sector3"][packet.lapData.__getitem__(carindex).sector],96 "Current_Lap_Invalid" : packet.lapData.__getitem__(carindex).currentLapInvalid,97 "Penalties" : packet.lapData.__getitem__(carindex).penalties,98 "Grid_Position" : packet.lapData.__getitem__(carindex).gridPosition,99 "Driver_Status_ID" : packet.lapData.__getitem__(carindex).driverStatus,100 "Driver_Status" : ["In Garage", "Flying Lap", "In Lap", "Out Lap", "On Track"][packet.lapData.__getitem__(carindex).driverStatus],101 "Result_Status_ID" : packet.lapData.__getitem__(carindex).resultStatus,102 "Result_Status" : ["Invalid", "Inactive", "Active", "Finished", "Disqualified", "Not Classified", "Retired"][packet.lapData.__getitem__(carindex).resultStatus],103 })104 105106 if isinstance(packet, PacketParticipantsData_V1):107 telemetry.update({108 "Num_Active_Cars" : packet.numActiveCars,109 "AI_Controlled" : packet.participants.__getitem__(carindex).aiControlled,110 "Driver_ID" : packet.participants.__getitem__(carindex).driverId,111 "Team_ID" : packet.participants.__getitem__(carindex).teamId, 112 })113114 try:115 telemetry.update({"Driver" : DriverIDs[packet.participants.__getitem__(carindex).driverId]})116 except:117 telemetry.update({"Driver" : "Player"})118119 try:120 telemetry.update({"Team" : TeamIDs[packet.participants.__getitem__(carindex).teamId]})121 except:122 telemetry.update({"Team" : "Not in a team"})123124 telemetry.update({125 "Race_Number" : packet.participants.__getitem__(carindex).raceNumber,126 "Nationality_ID" : packet.participants.__getitem__(carindex).nationality,127 })128129 try:130 telemetry.update({"Nationality" : NationalityIDs[packet.participants.__getitem__(carindex).nationality]})131 except:132 telemetry.update({"Nationality" : "No Nationality"})133134 telemetry.update({135 "Name" : packet.participants.__getitem__(carindex).name,136 "Your_Telemetry_ID" : packet.participants.__getitem__(carindex).yourTelemetry,137 "Your_Telemetry" : ["Restricted", "Public"][packet.participants.__getitem__(carindex).yourTelemetry], 138 })139140141 if isinstance(packet, PacketCarSetupData_V1):142 telemetry.update({143 "Front_Wing" : packet.carSetups.__getitem__(carindex).frontWing,144 "Rear_Wing" : packet.carSetups.__getitem__(carindex).rearWing,145 "On_Throttle" : packet.carSetups.__getitem__(carindex).onThrottle,146 "Off_Throttle" : packet.carSetups.__getitem__(carindex).offThrottle,147 "Front_Camber" : packet.carSetups.__getitem__(carindex).frontCamber,148 "Rear_Camber" : packet.carSetups.__getitem__(carindex).rearCamber,149 "Front_Toe" : packet.carSetups.__getitem__(carindex).frontToe,150 "Rear_Toe" : packet.carSetups.__getitem__(carindex).rearToe,151 "Front_Suspension" : packet.carSetups.__getitem__(carindex).frontSuspension,152 "Rear_Suspension" : packet.carSetups.__getitem__(carindex).rearSuspension,153 "Front_Anti_Roll_Bar" : packet.carSetups.__getitem__(carindex).frontAntiRollBar,154 "Rear_Anti_Roll_Bar" : packet.carSetups.__getitem__(carindex).rearAntiRollBar,155 "Front_Suspension_Height" : packet.carSetups.__getitem__(carindex).frontSuspensionHeight,156 "Rear_Suspension_Height" : packet.carSetups.__getitem__(carindex).rearSuspensionHeight,157 "Brake_Pressure" : packet.carSetups.__getitem__(carindex).brakePressure,158 "Brake_Bias" : packet.carSetups.__getitem__(carindex).brakeBias,159 "Front_Tyre_Pressure" : packet.carSetups.__getitem__(carindex).frontTyrePressure,160 "Rear_Tyre_Pressure" : packet.carSetups.__getitem__(carindex).rearTyrePressure,161 "Ballast" : packet.carSetups.__getitem__(carindex).ballast,162 "Fuel_Load" : packet.carSetups.__getitem__(carindex).fuelLoad,163 })164165166 if isinstance(packet, PacketCarTelemetryData_V1):167 telemetry.update({168 "Speed" : packet.carTelemetryData.__getitem__(carindex).speed,169 "Throttle" : packet.carTelemetryData.__getitem__(carindex).throttle,170 "Steer" : packet.carTelemetryData.__getitem__(carindex).steer,171 "Brake" : packet.carTelemetryData.__getitem__(carindex).brake,172 "Clutch" : packet.carTelemetryData.__getitem__(carindex).clutch,173 "Gear" : packet.carTelemetryData.__getitem__(carindex).gear,174 "Engine_RPM" : packet.carTelemetryData.__getitem__(carindex).engineRPM,175 "DRS" : packet.carTelemetryData.__getitem__(carindex).drs,176 "Rev_Lights_Percent" : packet.carTelemetryData.__getitem__(carindex).revLightsPercent,177 "Brakes_Temperature" : packet.carTelemetryData.__getitem__(carindex).brakesTemperature,178 "Tyres_Surface_Temperature" : packet.carTelemetryData.__getitem__(carindex).tyresSurfaceTemperature,179 "Tyres_Inner_Temperature" : packet.carTelemetryData.__getitem__(carindex).tyresInnerTemperature,180 "Engine_Temperature" : packet.carTelemetryData.__getitem__(carindex).engineTemperature,181 "Tyres_Pressure" : packet.carTelemetryData.__getitem__(carindex).tyresPressure,182 "Surface_Type_ID" : packet.carTelemetryData.__getitem__(carindex).surfaceType,183 })184 185 for x in range(4):186 telemetry.update({187 "Tyre_{}_Surface_Temperature".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).tyresSurfaceTemperature[x],188 "Tyre_{}_Inner_Temperature".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).tyresInnerTemperature[x],189 "Tyre_{}_Brakes_Temperature".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).brakesTemperature[x],190 "Tyre_{}_Pressure".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).tyresPressure[x],191 "Tyre_{}_Surface_Type_ID".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).surfaceType[x],192 "Tyre_{}_Surface_Type".format(tyres[x]) : SurfaceTypes[packet.carTelemetryData.__getitem__(carindex).surfaceType[x]],193 })194195196 if isinstance(packet, PacketCarStatusData_V1):197 telemetry.update({198 "Traction_Control" : packet.carStatusData.__getitem__(carindex).tractionControl,199 "Anti_Lock_Brakes" : packet.carStatusData.__getitem__(carindex).antiLockBrakes,200 "Fuel_Mix_ID" : packet.carStatusData.__getitem__(carindex).fuelMix,201 "Fuel_Mix" : ["Lean", "Standart", "Rich", "Max"][packet.carStatusData.__getitem__(carindex).fuelMix],202 "Front_Brake_Bias" : packet.carStatusData.__getitem__(carindex).frontBrakeBias,203 "Pit_Limiter_Status" : packet.carStatusData.__getitem__(carindex).pitLimiterStatus,204 "Fuel_In_Tank" : packet.carStatusData.__getitem__(carindex).fuelInTank,205 "Fuel_Capacity" : packet.carStatusData.__getitem__(carindex).fuelCapacity,206 "Fuel_Remaining_Laps" : packet.carStatusData.__getitem__(carindex).fuelRemainingLaps,207 "Max_RPM" : packet.carStatusData.__getitem__(carindex).maxRPM,208 "Idle_RPM" : packet.carStatusData.__getitem__(carindex).idleRPM,209 "Max_Gears" : packet.carStatusData.__getitem__(carindex).maxGears,210 "DRS_Allowed" : packet.carStatusData.__getitem__(carindex).drsAllowed,211 "Tyres_Wear" : packet.carStatusData.__getitem__(carindex).tyresWear,212 "Actual_Tyre_Compound_ID" : packet.carStatusData.__getitem__(carindex).actualTyreCompound,213 "Actual_Tyre_Compound" : {16:"F1 Modern C5", 17:"F1 Modern C4", 18:"F1 Modern C3", 19:"F1 Modern C2", 20:"F1 Modern C1", 7:"F1 Modern Intermidiate", 8:"F1 Modern Wet", 9:"F1 Classic Dry",10:"F1 Classic Wet", 11: "F2 Super Soft", 12 : "F2 Soft", 14 : "F2 Medium", 15: "F2 Wet"}[packet.carStatusData.__getitem__(carindex).actualTyreCompound],214 "Tyre_Visual_Compound_ID" : packet.carStatusData.__getitem__(carindex).tyreVisualCompound,215 "Tyre_Visual_Compound" : {16:"F1 Modern Soft", 17:"F1 Modern Medium", 18:"F1 Modern Hard", 7:"F1 Modern Intermidiate", 8:"F1 Modern Wet", 9:"F1 Classic Dry",10:"F1 Classic Wet", 11: "F2 Super Soft", 12 : "F2 Soft", 14 : "F2 Medium", 15: "F2 Wet"}[packet.carStatusData.__getitem__(carindex).tyreVisualCompound],216 "Tyres_Damage" : packet.carStatusData.__getitem__(carindex).tyresDamage,217 "Front_Left_Wing_Damage" : packet.carStatusData.__getitem__(carindex).frontLeftWingDamage,218 "Front_Right_Wing_Damage" : packet.carStatusData.__getitem__(carindex).frontRightWingDamage,219 "Rear_Wing_Damage" : packet.carStatusData.__getitem__(carindex).rearWingDamage,220 "Engine_Damage" : packet.carStatusData.__getitem__(carindex).engineDamage,221 "Gearbox_Damage" : packet.carStatusData.__getitem__(carindex).gearBoxDamage,222 "Vehicle_FIA_Flags_ID" : packet.carStatusData.__getitem__(carindex).vehicleFiaFlags,223 "Vehicle_FIA_Flags" : {-1:"Invalid", 0:"None", 1:"Green", 2:"Blue", 3:"Yellow", 4:"Red"}[packet.carStatusData.__getitem__(carindex).vehicleFiaFlags],224 "ERS_Store_Energy" : packet.carStatusData.__getitem__(carindex).ersStoreEnergy,225 "ERS_Deploy_Mode_ID" : packet.carStatusData.__getitem__(carindex).ersDeployMode,226 "ERS_Deploy_Mode" : ["None", "Low", "Medium", "High", "Overtake", "Hotlap"][packet.carStatusData.__getitem__(carindex).ersDeployMode],227 "ERS_Harvested_This_Lap_MGUK" : packet.carStatusData.__getitem__(carindex).ersHarvestedThisLapMGUK,228 "ERS_Harvested_This_Lap_MGUH" : packet.carStatusData.__getitem__(carindex).ersHarvestedThisLapMGUH,229 "ERS_Deployed_This_Lap" : packet.carStatusData.__getitem__(carindex).ersDeployedThisLap,230 })231232 for x in range(4):233 telemetry.update({234 "Tyre_{}_Wear".format(tyres[x]) : packet.carStatusData.__getitem__(carindex).tyresWear[x],235 "Tyre_{}_Damage".format(tyres[x]) : packet.carStatusData.__getitem__(carindex).tyresDamage[x],236 })237238239 240 if keyboard.is_pressed("esc"):241 print("_________________DRAWING GRAPH_______________")242 Graph.Graph(data)243244245 if lap != telemetry.get("Current_Lap_Num"):246247 data.append([lap, telemetry.get("Last_Lap_Time"), time, speed])248 249 time = []
...
telemetry - backup.py
Source:telemetry - backup.py
...56 "Spectator_Car_Index" : packet.spectatorCarIndex,57 "Sli_Pro_Native_Support" : packet.sliProNativeSupport,58 "Num_Marshal_Zones" : packet.numMarshalZones,59 "Marshal_Zones" : packet.marshalZones,60 "Marshal_Zone_Start" : packet.marshalZones.__getitem__(carindex).zoneStart,61 "Marshal_Zone_Flag" : packet.marshalZones.__getitem__(carindex).zoneFlag,62 "Safety_Car_Status_ID" : packet.safetyCarStatus,63 "Safety_Car_Status" : ["No safety car", "full safety car", "virtual safety car"][packet.safetyCarStatus],64 "Network_Game" : packet.networkGame,65 })666768 if isinstance(packet, PacketLapData_V1): 69 telemetry.update({70 "Last_Lap_Time" : packet.lapData.__getitem__(carindex).lastLapTime,71 "Current_Lap_Time": packet.lapData.__getitem__(carindex).currentLapTime,72 "Best_Lap_Time" : packet.lapData.__getitem__(carindex).bestLapTime,73 "Sector_1_Time" : packet.lapData.__getitem__(carindex).sector1Time,74 "Sector_2_Time" : packet.lapData.__getitem__(carindex).sector2Time,75 "Lap_Distance" : packet.lapData.__getitem__(carindex).lapDistance,76 "Total_Distance" : packet.lapData.__getitem__(carindex).totalDistance,77 "Safety_Car_Delta" : packet.lapData.__getitem__(carindex).safetyCarDelta,78 "Car_Position" : packet.lapData.__getitem__(carindex).carPosition,79 "Current_Lap_Num" : packet.lapData.__getitem__(carindex).currentLapNum,80 "Pit_Status_ID" : packet.lapData.__getitem__(carindex).pitStatus,81 "Pit_Status" : ["None", "Pitting", "In Pit Area"][packet.lapData.__getitem__(carindex).pitStatus],82 "Sector_ID" : packet.lapData.__getitem__(carindex).sector,83 "Sector" : ["Sector1", "Sector2", "Sector3"][packet.lapData.__getitem__(carindex).sector],84 "Current_Lap_Invalid" : packet.lapData.__getitem__(carindex).currentLapInvalid,85 "Penalties" : packet.lapData.__getitem__(carindex).penalties,86 "Grid_Position" : packet.lapData.__getitem__(carindex).gridPosition,87 "Driver_Status_ID" : packet.lapData.__getitem__(carindex).driverStatus,88 "Driver_Status" : ["In Garage", "Flying Lap", "In Lap", "Out Lap", "On Track"][packet.lapData.__getitem__(carindex).driverStatus],89 "Result_Status_ID" : packet.lapData.__getitem__(carindex).resultStatus,90 "Result_Status" : ["Invalid", "Inactive", "Active", "Finished", "Disqualified", "Not Classified", "Retired"][packet.lapData.__getitem__(carindex).resultStatus],91 })92 9394 if isinstance(packet, PacketParticipantsData_V1):95 telemetry.update({96 "Num_Active_Cars" : packet.numActiveCars,97 "AI_Controlled" : packet.participants.__getitem__(carindex).aiControlled,98 "Driver_ID" : packet.participants.__getitem__(carindex).driverId,99 "Team_ID" : packet.participants.__getitem__(carindex).teamId, 100 })101102 try:103 telemetry.update({"Driver" : DriverIDs[packet.participants.__getitem__(carindex).driverId]})104 except:105 telemetry.update({"Driver" : "Player"})106107 try:108 telemetry.update({"Team" : TeamIDs[packet.participants.__getitem__(carindex).teamId]})109 except:110 telemetry.update({"Team" : "Not in a team"})111112 telemetry.update({113 "Race_Number" : packet.participants.__getitem__(carindex).raceNumber,114 "Nationality_ID" : packet.participants.__getitem__(carindex).nationality,115 })116117 try:118 telemetry.update({"Nationality" : NationalityIDs[packet.participants.__getitem__(carindex).nationality]})119 except:120 telemetry.update({"Nationality" : "No Nationality"})121122 telemetry.update({123 "Name" : packet.participants.__getitem__(carindex).name,124 "Your_Telemetry_ID" : packet.participants.__getitem__(carindex).yourTelemetry,125 "Your_Telemetry" : ["Restricted", "Public"][packet.participants.__getitem__(carindex).yourTelemetry], 126 })127128129 if isinstance(packet, PacketCarSetupData_V1):130 telemetry.update({131 "Front_Wing" : packet.carSetups.__getitem__(carindex).frontWing,132 "Rear_Wing" : packet.carSetups.__getitem__(carindex).rearWing,133 "On_Throttle" : packet.carSetups.__getitem__(carindex).onThrottle,134 "Off_Throttle" : packet.carSetups.__getitem__(carindex).offThrottle,135 "Front_Camber" : packet.carSetups.__getitem__(carindex).frontCamber,136 "Rear_Camber" : packet.carSetups.__getitem__(carindex).rearCamber,137 "Front_Toe" : packet.carSetups.__getitem__(carindex).frontToe,138 "Rear_Toe" : packet.carSetups.__getitem__(carindex).rearToe,139 "Front_Suspension" : packet.carSetups.__getitem__(carindex).frontSuspension,140 "Rear_Suspension" : packet.carSetups.__getitem__(carindex).rearSuspension,141 "Front_Anti_Roll_Bar" : packet.carSetups.__getitem__(carindex).frontAntiRollBar,142 "Rear_Anti_Roll_Bar" : packet.carSetups.__getitem__(carindex).rearAntiRollBar,143 "Front_Suspension_Height" : packet.carSetups.__getitem__(carindex).frontSuspensionHeight,144 "Rear_Suspension_Height" : packet.carSetups.__getitem__(carindex).rearSuspensionHeight,145 "Brake_Pressure" : packet.carSetups.__getitem__(carindex).brakePressure,146 "Brake_Bias" : packet.carSetups.__getitem__(carindex).brakeBias,147 "Front_Tyre_Pressure" : packet.carSetups.__getitem__(carindex).frontTyrePressure,148 "Rear_Tyre_Pressure" : packet.carSetups.__getitem__(carindex).rearTyrePressure,149 "Ballast" : packet.carSetups.__getitem__(carindex).ballast,150 "Fuel_Load" : packet.carSetups.__getitem__(carindex).fuelLoad,151 })152153154 if isinstance(packet, PacketCarTelemetryData_V1):155 telemetry.update({156 "Speed" : packet.carTelemetryData.__getitem__(carindex).speed,157 "Throttle" : packet.carTelemetryData.__getitem__(carindex).throttle,158 "Steer" : packet.carTelemetryData.__getitem__(carindex).steer,159 "Brake" : packet.carTelemetryData.__getitem__(carindex).brake,160 "Clutch" : packet.carTelemetryData.__getitem__(carindex).clutch,161 "Gear" : packet.carTelemetryData.__getitem__(carindex).gear,162 "Engine_RPM" : packet.carTelemetryData.__getitem__(carindex).engineRPM,163 "DRS" : packet.carTelemetryData.__getitem__(carindex).drs,164 "Rev_Lights_Percent" : packet.carTelemetryData.__getitem__(carindex).revLightsPercent,165 "Brakes_Temperature" : packet.carTelemetryData.__getitem__(carindex).brakesTemperature,166 "Tyres_Surface_Temperature" : packet.carTelemetryData.__getitem__(carindex).tyresSurfaceTemperature,167 "Tyres_Inner_Temperature" : packet.carTelemetryData.__getitem__(carindex).tyresInnerTemperature,168 "Engine_Temperature" : packet.carTelemetryData.__getitem__(carindex).engineTemperature,169 "Tyres_Pressure" : packet.carTelemetryData.__getitem__(carindex).tyresPressure,170 "Surface_Type_ID" : packet.carTelemetryData.__getitem__(carindex).surfaceType,171 })172 173 for x in range(4):174 telemetry.update({175 "Tyre_{}_Surface_Temperature".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).tyresSurfaceTemperature[x],176 "Tyre_{}_Inner_Temperature".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).tyresInnerTemperature[x],177 "Tyre_{}_Brakes_Temperature".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).brakesTemperature[x],178 "Tyre_{}_Pressure".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).tyresPressure[x],179 "Tyre_{}_Surface_Type_ID".format(tyres[x]) : packet.carTelemetryData.__getitem__(carindex).surfaceType[x],180 "Tyre_{}_Surface_Type".format(tyres[x]) : SurfaceTypes[packet.carTelemetryData.__getitem__(carindex).surfaceType[x]],181 })182183184 if isinstance(packet, PacketCarStatusData_V1):185 telemetry.update({186 "Traction_Control" : packet.carStatusData.__getitem__(carindex).tractionControl,187 "Anti_Lock_Brakes" : packet.carStatusData.__getitem__(carindex).antiLockBrakes,188 "Fuel_Mix_ID" : packet.carStatusData.__getitem__(carindex).fuelMix,189 "Fuel_Mix" : ["Lean", "Standart", "Rich", "Max"][packet.carStatusData.__getitem__(carindex).fuelMix],190 "Front_Brake_Bias" : packet.carStatusData.__getitem__(carindex).frontBrakeBias,191 "Pit_Limiter_Status" : packet.carStatusData.__getitem__(carindex).pitLimiterStatus,192 "Fuel_In_Tank" : packet.carStatusData.__getitem__(carindex).fuelInTank,193 "Fuel_Capacity" : packet.carStatusData.__getitem__(carindex).fuelCapacity,194 "Fuel_Remaining_Laps" : packet.carStatusData.__getitem__(carindex).fuelRemainingLaps,195 "Max_RPM" : packet.carStatusData.__getitem__(carindex).maxRPM,196 "Idle_RPM" : packet.carStatusData.__getitem__(carindex).idleRPM,197 "Max_Gears" : packet.carStatusData.__getitem__(carindex).maxGears,198 "DRS_Allowed" : packet.carStatusData.__getitem__(carindex).drsAllowed,199 "Tyres_Wear" : packet.carStatusData.__getitem__(carindex).tyresWear,200 "Actual_Tyre_Compound_ID" : packet.carStatusData.__getitem__(carindex).actualTyreCompound,201 "Actual_Tyre_Compound" : {16:"F1 Modern C5", 17:"F1 Modern C4", 18:"F1 Modern C3", 19:"F1 Modern C2", 20:"F1 Modern C1", 7:"F1 Modern Intermidiate", 8:"F1 Modern Wet", 9:"F1 Classic Dry",10:"F1 Classic Wet", 11: "F2 Super Soft", 12 : "F2 Soft", 14 : "F2 Medium", 15: "F2 Wet"}[packet.carStatusData.__getitem__(carindex).actualTyreCompound],202 "Tyre_Visual_Compound_ID" : packet.carStatusData.__getitem__(carindex).tyreVisualCompound,203 "Tyre_Visual_Compound" : {16:"F1 Modern Soft", 17:"F1 Modern Medium", 18:"F1 Modern Hard", 7:"F1 Modern Intermidiate", 8:"F1 Modern Wet", 9:"F1 Classic Dry",10:"F1 Classic Wet", 11: "F2 Super Soft", 12 : "F2 Soft", 14 : "F2 Medium", 15: "F2 Wet"}[packet.carStatusData.__getitem__(carindex).tyreVisualCompound],204 "Tyres_Damage" : packet.carStatusData.__getitem__(carindex).tyresDamage,205 "Front_Left_Wing_Damage" : packet.carStatusData.__getitem__(carindex).frontLeftWingDamage,206 "Front_Right_Wing_Damage" : packet.carStatusData.__getitem__(carindex).frontRightWingDamage,207 "Rear_Wing_Damage" : packet.carStatusData.__getitem__(carindex).rearWingDamage,208 "Engine_Damage" : packet.carStatusData.__getitem__(carindex).engineDamage,209 "Gearbox_Damage" : packet.carStatusData.__getitem__(carindex).gearBoxDamage,210 "Vehicle_FIA_Flags_ID" : packet.carStatusData.__getitem__(carindex).vehicleFiaFlags,211 "Vehicle_FIA_Flags" : {-1:"Invalid", 0:"None", 1:"Green", 2:"Blue", 3:"Yellow", 4:"Red"}[packet.carStatusData.__getitem__(carindex).vehicleFiaFlags],212 "ERS_Store_Energy" : packet.carStatusData.__getitem__(carindex).ersStoreEnergy,213 "ERS_Deploy_Mode_ID" : packet.carStatusData.__getitem__(carindex).ersDeployMode,214 "ERS_Deploy_Mode" : ["None", "Low", "Medium", "High", "Overtake", "Hotlap"][packet.carStatusData.__getitem__(carindex).ersDeployMode],215 "ERS_Harvested_This_Lap_MGUK" : packet.carStatusData.__getitem__(carindex).ersHarvestedThisLapMGUK,216 "ERS_Harvested_This_Lap_MGUH" : packet.carStatusData.__getitem__(carindex).ersHarvestedThisLapMGUH,217 "ERS_Deployed_This_Lap" : packet.carStatusData.__getitem__(carindex).ersDeployedThisLap,218 })219220 for x in range(4):221 telemetry.update({222 "Tyre_{}_Wear".format(tyres[x]) : packet.carStatusData.__getitem__(carindex).tyresWear[x],223 "Tyre_{}_Damage".format(tyres[x]) : packet.carStatusData.__getitem__(carindex).tyresDamage[x],224 })225226 for item in telemetry.items():227 print("{} : {}".format(item[0], item[1]))228 print()229 if keyboard.is_pressed("esc"):
...
seq_tests.py
Source:seq_tests.py
...12class Sequence:13 'Sequence using __getitem__'14 def __init__(self, seqn):15 self.seqn = seqn16 def __getitem__(self, i):17 return self.seqn[i]18class IterFunc:19 'Sequence using iterator protocol'20 def __init__(self, seqn):21 self.seqn = seqn22 self.i = 023 def __iter__(self):24 return self25 def next(self):26 if self.i >= len(self.seqn): raise StopIteration27 v = self.seqn[self.i]28 self.i += 129 return v30class IterGen:31 'Sequence using iterator protocol defined with a generator'32 def __init__(self, seqn):33 self.seqn = seqn34 self.i = 035 def __iter__(self):36 for val in self.seqn:37 yield val38class IterNextOnly:39 'Missing __getitem__ and __iter__'40 def __init__(self, seqn):41 self.seqn = seqn42 self.i = 043 def next(self):44 if self.i >= len(self.seqn): raise StopIteration45 v = self.seqn[self.i]46 self.i += 147 return v48class IterNoNext:49 'Iterator missing next()'50 def __init__(self, seqn):51 self.seqn = seqn52 self.i = 053 def __iter__(self):54 return self55class IterGenExc:56 'Test propagation of exceptions'57 def __init__(self, seqn):58 self.seqn = seqn59 self.i = 060 def __iter__(self):61 return self62 def next(self):63 3 // 064class IterFuncStop:65 'Test immediate stop'66 def __init__(self, seqn):67 pass68 def __iter__(self):69 return self70 def next(self):71 raise StopIteration72from itertools import chain, imap73def itermulti(seqn):74 'Test multiple tiers of iterators'75 return chain(imap(lambda x:x, iterfunc(IterGen(Sequence(seqn)))))76class CommonTest(unittest.TestCase):77 # The type to be tested78 type2test = None79 def test_constructors(self):80 l0 = []81 l1 = [0]82 l2 = [0, 1]83 u = self.type2test()84 u0 = self.type2test(l0)85 u1 = self.type2test(l1)86 u2 = self.type2test(l2)87 uu = self.type2test(u)88 uu0 = self.type2test(u0)89 uu1 = self.type2test(u1)90 uu2 = self.type2test(u2)91 v = self.type2test(tuple(u))92 class OtherSeq:93 def __init__(self, initseq):94 self.__data = initseq95 def __len__(self):96 return len(self.__data)97 def __getitem__(self, i):98 return self.__data[i]99 s = OtherSeq(u0)100 v0 = self.type2test(s)101 self.assertEqual(len(v0), len(s))102 s = "this is also a sequence"103 vv = self.type2test(s)104 self.assertEqual(len(vv), len(s))105 # Create from various iteratables106 for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)):107 for g in (Sequence, IterFunc, IterGen,108 itermulti, iterfunc):109 self.assertEqual(self.type2test(g(s)), self.type2test(s))110 self.assertEqual(self.type2test(IterFuncStop(s)), self.type2test())111 self.assertEqual(self.type2test(c for c in "123"), self.type2test("123"))112 self.assertRaises(TypeError, self.type2test, IterNextOnly(s))113 self.assertRaises(TypeError, self.type2test, IterNoNext(s))114 self.assertRaises(ZeroDivisionError, self.type2test, IterGenExc(s))115 def test_truth(self):116 self.assert_(not self.type2test())117 self.assert_(self.type2test([42]))118 def test_getitem(self):119 u = self.type2test([0, 1, 2, 3, 4])120 for i in xrange(len(u)):121 self.assertEqual(u[i], i)122 self.assertEqual(u[long(i)], i)123 for i in xrange(-len(u), -1):124 self.assertEqual(u[i], len(u)+i)125 self.assertEqual(u[long(i)], len(u)+i)126 self.assertRaises(IndexError, u.__getitem__, -len(u)-1)127 self.assertRaises(IndexError, u.__getitem__, len(u))128 self.assertRaises(ValueError, u.__getitem__, slice(0,10,0))129 u = self.type2test()130 self.assertRaises(IndexError, u.__getitem__, 0)131 self.assertRaises(IndexError, u.__getitem__, -1)132 self.assertRaises(TypeError, u.__getitem__)133 a = self.type2test([10, 11])134 self.assertEqual(a[0], 10)135 self.assertEqual(a[1], 11)136 self.assertEqual(a[-2], 10)137 self.assertEqual(a[-1], 11)138 self.assertRaises(IndexError, a.__getitem__, -3)139 self.assertRaises(IndexError, a.__getitem__, 3)140 def test_getslice(self):141 l = [0, 1, 2, 3, 4]142 u = self.type2test(l)143 self.assertEqual(u[0:0], self.type2test())144 self.assertEqual(u[1:2], self.type2test([1]))145 self.assertEqual(u[-2:-1], self.type2test([3]))146 self.assertEqual(u[-1000:1000], u)147 self.assertEqual(u[1000:-1000], self.type2test([]))148 self.assertEqual(u[:], u)149 self.assertEqual(u[1:None], self.type2test([1, 2, 3, 4]))150 self.assertEqual(u[None:3], self.type2test([0, 1, 2]))151 # Extended slices152 self.assertEqual(u[::], u)153 self.assertEqual(u[::2], self.type2test([0, 2, 4]))154 self.assertEqual(u[1::2], self.type2test([1, 3]))155 self.assertEqual(u[::-1], self.type2test([4, 3, 2, 1, 0]))156 self.assertEqual(u[::-2], self.type2test([4, 2, 0]))157 self.assertEqual(u[3::-2], self.type2test([3, 1]))158 self.assertEqual(u[3:3:-2], self.type2test([]))159 self.assertEqual(u[3:2:-2], self.type2test([3]))160 self.assertEqual(u[3:1:-2], self.type2test([3]))161 self.assertEqual(u[3:0:-2], self.type2test([3, 1]))162 self.assertEqual(u[::-100], self.type2test([4]))163 self.assertEqual(u[100:-100:], self.type2test([]))164 self.assertEqual(u[-100:100:], u)165 self.assertEqual(u[100:-100:-1], u[::-1])166 self.assertEqual(u[-100:100:-1], self.type2test([]))167 self.assertEqual(u[-100L:100L:2L], self.type2test([0, 2, 4]))168 # Test extreme cases with long ints169 a = self.type2test([0,1,2,3,4])170 self.assertEqual(a[ -pow(2,128L): 3 ], self.type2test([0,1,2]))171 self.assertEqual(a[ 3: pow(2,145L) ], self.type2test([3,4]))172 self.assertRaises(TypeError, u.__getslice__)173 def test_contains(self):174 u = self.type2test([0, 1, 2])175 for i in u:176 self.assert_(i in u)177 for i in min(u)-1, max(u)+1:178 self.assert_(i not in u)179 self.assertRaises(TypeError, u.__contains__)180 def test_contains_fake(self):181 class AllEq:182 # Sequences must use rich comparison against each item183 # (unless "is" is true, or an earlier item answered)184 # So instances of AllEq must be found in all non-empty sequences.185 def __eq__(self, other):186 return True187 __hash__ = None # Can't meet hash invariant requirements188 self.assert_(AllEq() not in self.type2test([]))189 self.assert_(AllEq() in self.type2test([1]))190 def test_contains_order(self):191 # Sequences must test in-order. If a rich comparison has side192 # effects, these will be visible to tests against later members.193 # In this test, the "side effect" is a short-circuiting raise.194 class DoNotTestEq(Exception):195 pass196 class StopCompares:197 def __eq__(self, other):198 raise DoNotTestEq199 checkfirst = self.type2test([1, StopCompares()])200 self.assert_(1 in checkfirst)201 checklast = self.type2test([StopCompares(), 1])202 self.assertRaises(DoNotTestEq, checklast.__contains__, 1)203 def test_len(self):204 self.assertEqual(len(self.type2test()), 0)205 self.assertEqual(len(self.type2test([])), 0)206 self.assertEqual(len(self.type2test([0])), 1)207 self.assertEqual(len(self.type2test([0, 1, 2])), 3)208 def test_minmax(self):209 u = self.type2test([0, 1, 2])210 self.assertEqual(min(u), 0)211 self.assertEqual(max(u), 2)212 def test_addmul(self):213 u1 = self.type2test([0])214 u2 = self.type2test([0, 1])215 self.assertEqual(u1, u1 + self.type2test())216 self.assertEqual(u1, self.type2test() + u1)217 self.assertEqual(u1 + self.type2test([1]), u2)218 self.assertEqual(self.type2test([-1]) + u1, self.type2test([-1, 0]))219 self.assertEqual(self.type2test(), u2*0)220 self.assertEqual(self.type2test(), 0*u2)221 self.assertEqual(self.type2test(), u2*0L)222 self.assertEqual(self.type2test(), 0L*u2)223 self.assertEqual(u2, u2*1)224 self.assertEqual(u2, 1*u2)225 self.assertEqual(u2, u2*1L)226 self.assertEqual(u2, 1L*u2)227 self.assertEqual(u2+u2, u2*2)228 self.assertEqual(u2+u2, 2*u2)229 self.assertEqual(u2+u2, u2*2L)230 self.assertEqual(u2+u2, 2L*u2)231 self.assertEqual(u2+u2+u2, u2*3)232 self.assertEqual(u2+u2+u2, 3*u2)233 class subclass(self.type2test):234 pass235 u3 = subclass([0, 1])236 self.assertEqual(u3, u3*1)237 self.assert_(u3 is not u3*1)238 def test_iadd(self):239 u = self.type2test([0, 1])240 u += self.type2test()241 self.assertEqual(u, self.type2test([0, 1]))242 u += self.type2test([2, 3])243 self.assertEqual(u, self.type2test([0, 1, 2, 3]))244 u += self.type2test([4, 5])245 self.assertEqual(u, self.type2test([0, 1, 2, 3, 4, 5]))246 u = self.type2test("spam")247 u += self.type2test("eggs")248 self.assertEqual(u, self.type2test("spameggs"))249 def test_imul(self):250 u = self.type2test([0, 1])251 u *= 3252 self.assertEqual(u, self.type2test([0, 1, 0, 1, 0, 1]))253 def test_getitemoverwriteiter(self):254 # Verify that __getitem__ overrides are not recognized by __iter__255 class T(self.type2test):256 def __getitem__(self, key):257 return str(key) + '!!!'258 self.assertEqual(iter(T((1,2))).next(), 1)259 def test_repeat(self):260 for m in xrange(4):261 s = tuple(range(m))262 for n in xrange(-3, 5):263 self.assertEqual(self.type2test(s*n), self.type2test(s)*n)264 self.assertEqual(self.type2test(s)*(-4), self.type2test([]))265 self.assertEqual(id(s), id(s*1))266 def test_bigrepeat(self):267 import sys268 if sys.maxint <= 2147483647:269 x = self.type2test([0])270 x *= 2**16271 self.assertRaises(MemoryError, x.__mul__, 2**16)272 if hasattr(x, '__imul__'):273 self.assertRaises(MemoryError, x.__imul__, 2**16)274 def test_subscript(self):275 a = self.type2test([10, 11])276 self.assertEqual(a.__getitem__(0L), 10)277 self.assertEqual(a.__getitem__(1L), 11)278 self.assertEqual(a.__getitem__(-2L), 10)279 self.assertEqual(a.__getitem__(-1L), 11)280 self.assertRaises(IndexError, a.__getitem__, -3)281 self.assertRaises(IndexError, a.__getitem__, 3)282 self.assertEqual(a.__getitem__(slice(0,1)), self.type2test([10]))283 self.assertEqual(a.__getitem__(slice(1,2)), self.type2test([11]))284 self.assertEqual(a.__getitem__(slice(0,2)), self.type2test([10, 11]))285 self.assertEqual(a.__getitem__(slice(0,3)), self.type2test([10, 11]))286 self.assertEqual(a.__getitem__(slice(3,5)), self.type2test([]))287 self.assertRaises(ValueError, a.__getitem__, slice(0, 10, 0))288 self.assertRaises(TypeError, a.__getitem__, 'x')289 def test_count(self):290 a = self.type2test([0, 1, 2])*3291 self.assertEqual(a.count(0), 3)292 self.assertEqual(a.count(1), 3)293 self.assertEqual(a.count(3), 0)294 self.assertRaises(TypeError, a.count)295 class BadExc(Exception):296 pass297 class BadCmp:298 def __eq__(self, other):299 if other == 2:300 raise BadExc()...
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!