Best Python code snippet using lisa_python
parttool.py
Source:parttool.py
...92 esptool_args += ["--baud", str(self.baud)]93 esptool_args += args94 with open(os.devnull, "w") as null_file:95 subprocess.check_call(esptool_args, stdout=null_file, stderr=null_file)96 def get_partition_info(self, partition_id):97 partition = None98 if partition_id.name:99 partition = self.partition_table.find_by_name(partition_id.name)100 elif partition_id.type and partition_id.subtype:101 partition = self.partition_table.find_by_type(partition_id.type, partition_id.subtype)102 else: # default boot partition103 search = ["factory"] + ["ota_{}".format(d) for d in range(16)]104 for subtype in search:105 partition = self.partition_table.find_by_type("app", subtype)106 if partition:107 break108 if not partition:109 raise Exception("Partition does not exist")110 return partition111 def erase_partition(self, partition_id):112 partition = self.get_partition_info(partition_id)113 self._call_esptool(["erase_region", str(partition.offset), str(partition.size)] + self.esptool_erase_args)114 def read_partition(self, partition_id, output):115 partition = self.get_partition_info(partition_id)116 self._call_esptool(["read_flash", str(partition.offset), str(partition.size), output] + self.esptool_read_args)117 def write_partition(self, partition_id, input):118 self.erase_partition(partition_id)119 partition = self.get_partition_info(partition_id)120 with open(input, "rb") as input_file:121 content_len = len(input_file.read())122 if content_len > partition.size:123 raise Exception("Input file size exceeds partition size")124 self._call_esptool(["write_flash", str(partition.offset), input] + self.esptool_write_args)125def _write_partition(target, partition_id, input):126 target.write_partition(partition_id, input)127 partition = target.get_partition_info(partition_id)128 status("Written contents of file '{}' at offset 0x{:x}".format(input, partition.offset))129def _read_partition(target, partition_id, output):130 target.read_partition(partition_id, output)131 partition = target.get_partition_info(partition_id)132 status("Read partition '{}' contents from device at offset 0x{:x} to file '{}'"133 .format(partition.name, partition.offset, output))134def _erase_partition(target, partition_id):135 target.erase_partition(partition_id)136 partition = target.get_partition_info(partition_id)137 status("Erased partition '{}' at offset 0x{:x}".format(partition.name, partition.offset))138def _get_partition_info(target, partition_id, info):139 try:140 partition = target.get_partition_info(partition_id)141 except Exception:142 return143 info_dict = {144 "offset": '0x{:x}'.format(partition.offset),145 "size": '0x{:x}'.format(partition.size)146 }147 infos = []148 try:149 for i in info:150 infos += [info_dict[i]]151 except KeyError:152 raise RuntimeError("Request for unknown partition info {}".format(i))153 print(" ".join(infos))154def main():...
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!!