Best Python code snippet using localstack_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()...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
