Skip to content

Commit 703a109

Browse files
committed
bring back the overloads
1 parent 78fde4a commit 703a109

File tree

1 file changed

+350
-2
lines changed

1 file changed

+350
-2
lines changed

src/scrapybara/client.py

+350-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
Generator,
1313
Callable,
1414
AsyncGenerator,
15+
Literal,
16+
overload,
1517
)
1618
import typing
1719
import os
@@ -655,10 +657,183 @@ def get_stream_url(
655657
self.id, request_options=request_options
656658
)
657659

660+
@overload
658661
def computer(
659662
self,
660663
*,
661-
action: Union[Action, MoveMouseAction, ClickMouseAction, DragMouseAction, ScrollAction, PressKeyAction, TypeTextAction, WaitAction, TakeScreenshotAction, GetCursorPositionAction],
664+
action: MoveMouseAction,
665+
request_options: Optional[RequestOptions] = None,
666+
) -> ComputerResponse: ...
667+
668+
@overload
669+
def computer(
670+
self,
671+
*,
672+
action: ClickMouseAction,
673+
request_options: Optional[RequestOptions] = None,
674+
) -> ComputerResponse: ...
675+
676+
@overload
677+
def computer(
678+
self,
679+
*,
680+
action: DragMouseAction,
681+
request_options: Optional[RequestOptions] = None,
682+
) -> ComputerResponse: ...
683+
684+
@overload
685+
def computer(
686+
self,
687+
*,
688+
action: ScrollAction,
689+
request_options: Optional[RequestOptions] = None,
690+
) -> ComputerResponse: ...
691+
692+
@overload
693+
def computer(
694+
self,
695+
*,
696+
action: PressKeyAction,
697+
request_options: Optional[RequestOptions] = None,
698+
) -> ComputerResponse: ...
699+
700+
@overload
701+
def computer(
702+
self,
703+
*,
704+
action: TypeTextAction,
705+
request_options: Optional[RequestOptions] = None,
706+
) -> ComputerResponse: ...
707+
708+
@overload
709+
def computer(
710+
self,
711+
*,
712+
action: WaitAction,
713+
request_options: Optional[RequestOptions] = None,
714+
) -> ComputerResponse: ...
715+
716+
@overload
717+
def computer(
718+
self,
719+
*,
720+
action: TakeScreenshotAction,
721+
request_options: Optional[RequestOptions] = None,
722+
) -> ComputerResponse: ...
723+
724+
@overload
725+
def computer(
726+
self,
727+
*,
728+
action: GetCursorPositionAction,
729+
request_options: Optional[RequestOptions] = None,
730+
) -> ComputerResponse: ...
731+
732+
@overload
733+
def computer(
734+
self,
735+
*,
736+
action: Literal["move_mouse"],
737+
coordinates: List[int],
738+
hold_keys: Optional[List[str]] = None,
739+
request_options: Optional[RequestOptions] = None,
740+
) -> ComputerResponse: ...
741+
742+
@overload
743+
def computer(
744+
self,
745+
*,
746+
action: Literal["click_mouse"],
747+
button: Button,
748+
click_type: Optional[ClickMouseActionClickType] = None,
749+
coordinates: Optional[List[int]] = None,
750+
num_clicks: Optional[int] = None,
751+
hold_keys: Optional[List[str]] = None,
752+
request_options: Optional[RequestOptions] = None,
753+
) -> ComputerResponse: ...
754+
755+
@overload
756+
def computer(
757+
self,
758+
*,
759+
action: Literal["drag_mouse"],
760+
path: List[List[int]],
761+
hold_keys: Optional[List[str]] = None,
762+
request_options: Optional[RequestOptions] = None,
763+
) -> ComputerResponse: ...
764+
765+
@overload
766+
def computer(
767+
self,
768+
*,
769+
action: Literal["scroll"],
770+
coordinates: Optional[List[int]] = None,
771+
delta_x: Optional[float] = None,
772+
delta_y: Optional[float] = None,
773+
hold_keys: Optional[List[str]] = None,
774+
request_options: Optional[RequestOptions] = None,
775+
) -> ComputerResponse: ...
776+
777+
@overload
778+
def computer(
779+
self,
780+
*,
781+
action: Literal["press_key"],
782+
keys: List[str],
783+
duration: Optional[float] = None,
784+
request_options: Optional[RequestOptions] = None,
785+
) -> ComputerResponse: ...
786+
787+
@overload
788+
def computer(
789+
self,
790+
*,
791+
action: Literal["type_text"],
792+
text: str,
793+
hold_keys: Optional[List[str]] = None,
794+
request_options: Optional[RequestOptions] = None,
795+
) -> ComputerResponse: ...
796+
797+
@overload
798+
def computer(
799+
self,
800+
*,
801+
action: Literal["wait"],
802+
duration: float,
803+
request_options: Optional[RequestOptions] = None,
804+
) -> ComputerResponse: ...
805+
806+
@overload
807+
def computer(
808+
self,
809+
*,
810+
action: Literal["take_screenshot"],
811+
request_options: Optional[RequestOptions] = None,
812+
) -> ComputerResponse: ...
813+
814+
@overload
815+
def computer(
816+
self,
817+
*,
818+
action: Literal["get_cursor_position"],
819+
request_options: Optional[RequestOptions] = None,
820+
) -> ComputerResponse: ...
821+
822+
def computer(
823+
self,
824+
*,
825+
action: Union[
826+
Action,
827+
MoveMouseAction,
828+
ClickMouseAction,
829+
DragMouseAction,
830+
ScrollAction,
831+
PressKeyAction,
832+
TypeTextAction,
833+
WaitAction,
834+
TakeScreenshotAction,
835+
GetCursorPositionAction,
836+
],
662837
button: Optional[Button] = None,
663838
click_type: Optional[ClickMouseActionClickType] = None,
664839
coordinates: Optional[List[int]] = None,
@@ -918,10 +1093,183 @@ async def get_stream_url(
9181093
self.id, request_options=request_options
9191094
)
9201095

1096+
@overload
1097+
async def computer(
1098+
self,
1099+
*,
1100+
action: MoveMouseAction,
1101+
request_options: Optional[RequestOptions] = None,
1102+
) -> ComputerResponse: ...
1103+
1104+
@overload
1105+
async def computer(
1106+
self,
1107+
*,
1108+
action: ClickMouseAction,
1109+
request_options: Optional[RequestOptions] = None,
1110+
) -> ComputerResponse: ...
1111+
1112+
@overload
1113+
async def computer(
1114+
self,
1115+
*,
1116+
action: DragMouseAction,
1117+
request_options: Optional[RequestOptions] = None,
1118+
) -> ComputerResponse: ...
1119+
1120+
@overload
1121+
async def computer(
1122+
self,
1123+
*,
1124+
action: ScrollAction,
1125+
request_options: Optional[RequestOptions] = None,
1126+
) -> ComputerResponse: ...
1127+
1128+
@overload
1129+
async def computer(
1130+
self,
1131+
*,
1132+
action: PressKeyAction,
1133+
request_options: Optional[RequestOptions] = None,
1134+
) -> ComputerResponse: ...
1135+
1136+
@overload
1137+
async def computer(
1138+
self,
1139+
*,
1140+
action: TypeTextAction,
1141+
request_options: Optional[RequestOptions] = None,
1142+
) -> ComputerResponse: ...
1143+
1144+
@overload
1145+
async def computer(
1146+
self,
1147+
*,
1148+
action: WaitAction,
1149+
request_options: Optional[RequestOptions] = None,
1150+
) -> ComputerResponse: ...
1151+
1152+
@overload
1153+
async def computer(
1154+
self,
1155+
*,
1156+
action: TakeScreenshotAction,
1157+
request_options: Optional[RequestOptions] = None,
1158+
) -> ComputerResponse: ...
1159+
1160+
@overload
1161+
async def computer(
1162+
self,
1163+
*,
1164+
action: GetCursorPositionAction,
1165+
request_options: Optional[RequestOptions] = None,
1166+
) -> ComputerResponse: ...
1167+
1168+
@overload
1169+
async def computer(
1170+
self,
1171+
*,
1172+
action: Literal["move_mouse"],
1173+
coordinates: List[int],
1174+
hold_keys: Optional[List[str]] = None,
1175+
request_options: Optional[RequestOptions] = None,
1176+
) -> ComputerResponse: ...
1177+
1178+
@overload
1179+
async def computer(
1180+
self,
1181+
*,
1182+
action: Literal["click_mouse"],
1183+
button: Button,
1184+
click_type: Optional[ClickMouseActionClickType] = None,
1185+
coordinates: Optional[List[int]] = None,
1186+
num_clicks: Optional[int] = None,
1187+
hold_keys: Optional[List[str]] = None,
1188+
request_options: Optional[RequestOptions] = None,
1189+
) -> ComputerResponse: ...
1190+
1191+
@overload
1192+
async def computer(
1193+
self,
1194+
*,
1195+
action: Literal["drag_mouse"],
1196+
path: List[List[int]],
1197+
hold_keys: Optional[List[str]] = None,
1198+
request_options: Optional[RequestOptions] = None,
1199+
) -> ComputerResponse: ...
1200+
1201+
@overload
1202+
async def computer(
1203+
self,
1204+
*,
1205+
action: Literal["scroll"],
1206+
coordinates: Optional[List[int]] = None,
1207+
delta_x: Optional[float] = None,
1208+
delta_y: Optional[float] = None,
1209+
hold_keys: Optional[List[str]] = None,
1210+
request_options: Optional[RequestOptions] = None,
1211+
) -> ComputerResponse: ...
1212+
1213+
@overload
1214+
async def computer(
1215+
self,
1216+
*,
1217+
action: Literal["press_key"],
1218+
keys: List[str],
1219+
duration: Optional[float] = None,
1220+
request_options: Optional[RequestOptions] = None,
1221+
) -> ComputerResponse: ...
1222+
1223+
@overload
1224+
async def computer(
1225+
self,
1226+
*,
1227+
action: Literal["type_text"],
1228+
text: str,
1229+
hold_keys: Optional[List[str]] = None,
1230+
request_options: Optional[RequestOptions] = None,
1231+
) -> ComputerResponse: ...
1232+
1233+
@overload
1234+
async def computer(
1235+
self,
1236+
*,
1237+
action: Literal["wait"],
1238+
duration: float,
1239+
request_options: Optional[RequestOptions] = None,
1240+
) -> ComputerResponse: ...
1241+
1242+
@overload
1243+
async def computer(
1244+
self,
1245+
*,
1246+
action: Literal["take_screenshot"],
1247+
request_options: Optional[RequestOptions] = None,
1248+
) -> ComputerResponse: ...
1249+
1250+
@overload
1251+
async def computer(
1252+
self,
1253+
*,
1254+
action: Literal["get_cursor_position"],
1255+
request_options: Optional[RequestOptions] = None,
1256+
) -> ComputerResponse: ...
1257+
9211258
async def computer(
9221259
self,
9231260
*,
924-
action: Union[Action, MoveMouseAction, ClickMouseAction, DragMouseAction, ScrollAction, PressKeyAction, TypeTextAction, WaitAction, TakeScreenshotAction, GetCursorPositionAction],
1261+
action: Union[
1262+
Action,
1263+
MoveMouseAction,
1264+
ClickMouseAction,
1265+
DragMouseAction,
1266+
ScrollAction,
1267+
PressKeyAction,
1268+
TypeTextAction,
1269+
WaitAction,
1270+
TakeScreenshotAction,
1271+
GetCursorPositionAction,
1272+
],
9251273
button: Optional[Button] = None,
9261274
click_type: Optional[ClickMouseActionClickType] = None,
9271275
coordinates: Optional[List[int]] = None,

0 commit comments

Comments
 (0)