Best Python code snippet using playwright-python
documentation_provider.py
Source:documentation_provider.py
...136 return137 indent = " " * 8138 print(f'{indent}"""{class_name}.{to_snake_case(original_method_name)}')139 if method.get("comment"):140 print(f"{indent}{self.beautify_method_comment(method['comment'], indent)}")141 signature_no_return = {**signature} if signature else None142 if signature_no_return and "return" in signature_no_return:143 del signature_no_return["return"]144 # Collect a list of all names, flatten options.145 args = method["args"]146 if signature and signature_no_return:147 print("")148 print(" Parameters")149 print(" ----------")150 for [name, value] in signature.items():151 name = to_snake_case(name)152 if name == "return":153 continue154 original_name = name155 doc_value = args.get(name)156 if name in args:157 del args[name]158 if not doc_value:159 self.errors.add(f"Parameter not documented: {fqname}({name}=)")160 else:161 code_type = self.serialize_python_type(value)162 print(f"{indent}{to_snake_case(original_name)} : {code_type}")163 if doc_value.get("comment"):164 print(165 f"{indent} {self.indent_paragraph(self.render_links(doc_value['comment']), f'{indent} ')}"166 )167 self.compare_types(code_type, doc_value, f"{fqname}({name}=)", "in")168 if (169 signature170 and "return" in signature171 and str(signature["return"]) != "<class 'NoneType'>"172 ):173 value = signature["return"]174 doc_value = method175 self.compare_types(value, doc_value, f"{fqname}(return=)", "out")176 print("")177 print(" Returns")178 print(" -------")179 print(f" {self.serialize_python_type(value)}")180 print(f'{indent}"""')181 for name in args:182 if args[name].get("deprecated"):183 continue184 self.errors.add(185 f"Parameter not implemented: {class_name}.{method_name}({name}=)"186 )187 def print_events(self, class_name: str) -> None:188 clazz = self.classes[class_name]189 if events := clazz["events"]:190 doc = []191 for event_type in ["on", "once"]:192 for event in events:193 return_type = (194 "typing.Union[typing.Awaitable[None], None]"195 if self.is_async196 else "None"197 )198 func_arg = self.serialize_doc_type(event["type"], "")199 if func_arg.startswith("{"):200 func_arg = "typing.Dict"201 if len(events) > 1:202 doc.append(" @typing.overload")203 impl = ""204 if len(events) == 1:205 impl = f" return super().{event_type}(event=event,f=f)"206 doc.append(207 f" def {event_type}(self, event: Literal['{event['name'].lower()}'], f: typing.Callable[['{func_arg}'], '{return_type}']) -> None:"208 )209 doc.append(210 f' """{self.beautify_method_comment(event["comment"]," " * 8)}"""'211 )212 doc.append(impl)213 if len(events) > 1:214 doc.append(215 f" def {event_type}(self, event: str, f: typing.Callable[...,{return_type}]) -> None:"216 )217 doc.append(f" return super().{event_type}(event=event,f=f)")218 print("\n".join(doc))219 def indent_paragraph(self, p: str, indent: str) -> str:220 lines = p.split("\n")221 result = [lines[0]]222 for line in lines[1:]:223 result.append(indent + line)224 return "\n".join(result)225 def beautify_method_comment(self, comment: str, indent: str) -> str:226 comment = comment.replace("\\", "\\\\")227 comment = comment.replace('"', '\\"')228 lines = comment.split("\n")229 result = []230 skip_example = False231 last_was_blank = True232 for line in lines:233 if not line.strip():234 last_was_blank = True235 continue236 match = re.match(r"\s*```(.+)", line)237 if match:238 lang = match[1]239 if lang in ["html", "yml", "sh", "py", "python"]:...
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!!