Skip to content

Commit 9a59907

Browse files
chore: remove special handling for __getitem__ (microsoft#894)
1 parent b010d3e commit 9a59907

File tree

6 files changed

+42
-221
lines changed

6 files changed

+42
-221
lines changed

playwright/_impl/_playwright.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ def __init__(
4040
for device in initializer["deviceDescriptors"]
4141
}
4242

43+
def __getitem__(self, value: str) -> "BrowserType":
44+
if value == "chromium":
45+
return self.chromium
46+
elif value == "firefox":
47+
return self.firefox
48+
elif value == "webkit":
49+
return self.webkit
50+
raise ValueError("Invalid browser " + value)
51+
4352
def stop(self) -> None:
4453
pass
4554

playwright/async_api/_generated.py

Lines changed: 4 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,6 @@
7676

7777

7878
class Request(AsyncBase):
79-
def __init__(self, obj: RequestImpl):
80-
super().__init__(obj)
81-
8279
@property
8380
def url(self) -> str:
8481
"""Request.url
@@ -341,9 +338,6 @@ async def headers_array(self) -> typing.List[typing.List[str]]:
341338

342339

343340
class Response(AsyncBase):
344-
def __init__(self, obj: ResponseImpl):
345-
super().__init__(obj)
346-
347341
@property
348342
def url(self) -> str:
349343
"""Response.url
@@ -546,9 +540,6 @@ async def json(self) -> typing.Any:
546540

547541

548542
class Route(AsyncBase):
549-
def __init__(self, obj: RouteImpl):
550-
super().__init__(obj)
551-
552543
@property
553544
def request(self) -> "Request":
554545
"""Route.request
@@ -702,9 +693,6 @@ async def handle(route, request):
702693

703694

704695
class WebSocket(AsyncBase):
705-
def __init__(self, obj: WebSocketImpl):
706-
super().__init__(obj)
707-
708696
@property
709697
def url(self) -> str:
710698
"""WebSocket.url
@@ -800,9 +788,6 @@ def is_closed(self) -> bool:
800788

801789

802790
class Keyboard(AsyncBase):
803-
def __init__(self, obj: KeyboardImpl):
804-
super().__init__(obj)
805-
806791
async def down(self, key: str) -> NoneType:
807792
"""Keyboard.down
808793

@@ -961,9 +946,6 @@ async def press(self, key: str, *, delay: float = None) -> NoneType:
961946

962947

963948
class Mouse(AsyncBase):
964-
def __init__(self, obj: MouseImpl):
965-
super().__init__(obj)
966-
967949
async def move(self, x: float, y: float, *, steps: int = None) -> NoneType:
968950
"""Mouse.move
969951

@@ -1098,9 +1080,6 @@ async def dblclick(
10981080

10991081

11001082
class Touchscreen(AsyncBase):
1101-
def __init__(self, obj: TouchscreenImpl):
1102-
super().__init__(obj)
1103-
11041083
async def tap(self, x: float, y: float) -> NoneType:
11051084
"""Touchscreen.tap
11061085

@@ -1121,9 +1100,6 @@ async def tap(self, x: float, y: float) -> NoneType:
11211100

11221101

11231102
class JSHandle(AsyncBase):
1124-
def __init__(self, obj: JSHandleImpl):
1125-
super().__init__(obj)
1126-
11271103
async def evaluate(self, expression: str, arg: typing.Any = None) -> typing.Any:
11281104
"""JSHandle.evaluate
11291105

@@ -1291,9 +1267,6 @@ async def json_value(self) -> typing.Any:
12911267

12921268

12931269
class ElementHandle(JSHandle):
1294-
def __init__(self, obj: ElementHandleImpl):
1295-
super().__init__(obj)
1296-
12971270
def as_element(self) -> typing.Optional["ElementHandle"]:
12981271
"""ElementHandle.as_element
12991272

@@ -2656,9 +2629,6 @@ async def wait_for_selector(
26562629

26572630

26582631
class Accessibility(AsyncBase):
2659-
def __init__(self, obj: AccessibilityImpl):
2660-
super().__init__(obj)
2661-
26622632
async def snapshot(
26632633
self, *, interesting_only: bool = None, root: "ElementHandle" = None
26642634
) -> typing.Optional[typing.Dict]:
@@ -2720,9 +2690,6 @@ def find_focused_node(node):
27202690

27212691

27222692
class FileChooser(AsyncBase):
2723-
def __init__(self, obj: FileChooserImpl):
2724-
super().__init__(obj)
2725-
27262693
@property
27272694
def page(self) -> "Page":
27282695
"""FileChooser.page
@@ -2803,9 +2770,6 @@ async def set_files(
28032770

28042771

28052772
class Frame(AsyncBase):
2806-
def __init__(self, obj: FrameImpl):
2807-
super().__init__(obj)
2808-
28092773
@property
28102774
def page(self) -> "Page":
28112775
"""Frame.page
@@ -5037,9 +5001,6 @@ async def set_checked(
50375001

50385002

50395003
class Worker(AsyncBase):
5040-
def __init__(self, obj: WorkerImpl):
5041-
super().__init__(obj)
5042-
50435004
@property
50445005
def url(self) -> str:
50455006
"""Worker.url
@@ -5124,9 +5085,6 @@ async def evaluate_handle(
51245085

51255086

51265087
class Selectors(AsyncBase):
5127-
def __init__(self, obj: SelectorsImpl):
5128-
super().__init__(obj)
5129-
51305088
async def register(
51315089
self,
51325090
name: str,
@@ -5208,9 +5166,6 @@ async def main():
52085166

52095167

52105168
class ConsoleMessage(AsyncBase):
5211-
def __init__(self, obj: ConsoleMessageImpl):
5212-
super().__init__(obj)
5213-
52145169
@property
52155170
def type(self) -> str:
52165171
"""ConsoleMessage.type
@@ -5264,9 +5219,6 @@ def location(self) -> SourceLocation:
52645219

52655220

52665221
class Dialog(AsyncBase):
5267-
def __init__(self, obj: DialogImpl):
5268-
super().__init__(obj)
5269-
52705222
@property
52715223
def type(self) -> str:
52725224
"""Dialog.type
@@ -5335,9 +5287,6 @@ async def dismiss(self) -> NoneType:
53355287

53365288

53375289
class Download(AsyncBase):
5338-
def __init__(self, obj: DownloadImpl):
5339-
super().__init__(obj)
5340-
53415290
@property
53425291
def page(self) -> "Page":
53435292
"""Download.page
@@ -5451,9 +5400,6 @@ async def cancel(self) -> NoneType:
54515400

54525401

54535402
class Video(AsyncBase):
5454-
def __init__(self, obj: VideoImpl):
5455-
super().__init__(obj)
5456-
54575403
async def path(self) -> pathlib.Path:
54585404
"""Video.path
54595405

@@ -5500,9 +5446,6 @@ async def delete(self) -> NoneType:
55005446

55015447

55025448
class Page(AsyncContextManager):
5503-
def __init__(self, obj: PageImpl):
5504-
super().__init__(obj)
5505-
55065449
@property
55075450
def accessibility(self) -> "Accessibility":
55085451
"""Page.accessibility
@@ -9072,9 +9015,6 @@ async def set_checked(
90729015

90739016

90749017
class BrowserContext(AsyncContextManager):
9075-
def __init__(self, obj: BrowserContextImpl):
9076-
super().__init__(obj)
9077-
90789018
@property
90799019
def pages(self) -> typing.List["Page"]:
90809020
"""BrowserContext.pages
@@ -9837,9 +9777,6 @@ async def new_cdp_session(
98379777

98389778

98399779
class CDPSession(AsyncBase):
9840-
def __init__(self, obj: CDPSessionImpl):
9841-
super().__init__(obj)
9842-
98439780
async def send(self, method: str, params: typing.Dict = None) -> typing.Dict:
98449781
"""CDPSession.send
98459782

@@ -9878,9 +9815,6 @@ async def detach(self) -> NoneType:
98789815

98799816

98809817
class Browser(AsyncContextManager):
9881-
def __init__(self, obj: BrowserImpl):
9882-
super().__init__(obj)
9883-
98849818
@property
98859819
def contexts(self) -> typing.List["BrowserContext"]:
98869820
"""Browser.contexts
@@ -10382,9 +10316,6 @@ async def stop_tracing(self) -> bytes:
1038210316

1038310317

1038410318
class BrowserType(AsyncBase):
10385-
def __init__(self, obj: BrowserTypeImpl):
10386-
super().__init__(obj)
10387-
1038810319
@property
1038910320
def name(self) -> str:
1039010321
"""BrowserType.name
@@ -10875,9 +10806,6 @@ async def connect(
1087510806

1087610807

1087710808
class Playwright(AsyncBase):
10878-
def __init__(self, obj: PlaywrightImpl):
10879-
super().__init__(obj)
10880-
1088110809
@property
1088210810
def devices(self) -> typing.Dict:
1088310811
"""Playwright.devices
@@ -10959,6 +10887,10 @@ def webkit(self) -> "BrowserType":
1095910887
"""
1096010888
return mapping.from_impl(self._impl_obj.webkit)
1096110889

10890+
def __getitem__(self, value: str) -> "BrowserType":
10891+
10892+
return mapping.from_impl(self._impl_obj.__getitem__(value=value))
10893+
1096210894
def stop(self) -> NoneType:
1096310895
"""Playwright.stop
1096410896

@@ -10982,23 +10914,11 @@ def stop(self) -> NoneType:
1098210914

1098310915
return mapping.from_maybe_impl(self._impl_obj.stop())
1098410916

10985-
def __getitem__(self, value: str) -> "BrowserType":
10986-
if value == "chromium":
10987-
return self.chromium
10988-
elif value == "firefox":
10989-
return self.firefox
10990-
elif value == "webkit":
10991-
return self.webkit
10992-
raise ValueError("Invalid browser " + value)
10993-
1099410917

1099510918
mapping.register(PlaywrightImpl, Playwright)
1099610919

1099710920

1099810921
class Tracing(AsyncBase):
10999-
def __init__(self, obj: TracingImpl):
11000-
super().__init__(obj)
11001-
1100210922
async def start(
1100310923
self, *, name: str = None, snapshots: bool = None, screenshots: bool = None
1100410924
) -> NoneType:
@@ -11100,9 +11020,6 @@ async def stop(self, *, path: typing.Union[str, pathlib.Path] = None) -> NoneTyp
1110011020

1110111021

1110211022
class Locator(AsyncBase):
11103-
def __init__(self, obj: LocatorImpl):
11104-
super().__init__(obj)
11105-
1110611023
@property
1110711024
def first(self) -> "Locator":
1110811025
"""Locator.first

0 commit comments

Comments
 (0)