bytekit-sdk 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bytekit/__init__.py +8 -0
- bytekit/api/__init__.py +1 -0
- bytekit/api/account/__init__.py +1 -0
- bytekit/api/account/get_account.py +157 -0
- bytekit/api/bulk/__init__.py +1 -0
- bytekit/api/bulk/create_bulk.py +204 -0
- bytekit/api/bulk/delete_bulk.py +177 -0
- bytekit/api/bulk/get_bulk.py +157 -0
- bytekit/api/bulk/list_bulk_screenshots.py +152 -0
- bytekit/api/fetch/__init__.py +1 -0
- bytekit/api/fetch/get_fetch.py +254 -0
- bytekit/api/fetch/post_fetch.py +178 -0
- bytekit/api/fetch_bulk/__init__.py +1 -0
- bytekit/api/fetch_bulk/create_fetch_bulk.py +180 -0
- bytekit/api/fetch_bulk/get_fetch_bulk.py +157 -0
- bytekit/api/monitors/__init__.py +1 -0
- bytekit/api/monitors/create_monitor.py +180 -0
- bytekit/api/monitors/delete_monitor.py +155 -0
- bytekit/api/monitors/get_monitor.py +157 -0
- bytekit/api/monitors/list_monitor_captures.py +188 -0
- bytekit/api/monitors/list_monitors.py +193 -0
- bytekit/api/monitors/update_monitor.py +191 -0
- bytekit/api/scrape/__init__.py +1 -0
- bytekit/api/scrape/create_scrape.py +197 -0
- bytekit/api/scrape/get_scrape.py +231 -0
- bytekit/api/scrape_bulk/__init__.py +1 -0
- bytekit/api/scrape_bulk/create_scrape_bulk.py +188 -0
- bytekit/api/scrape_bulk/get_scrape_bulk.py +157 -0
- bytekit/api/screenshots/__init__.py +1 -0
- bytekit/api/screenshots/create_screenshot.py +208 -0
- bytekit/api/screenshots/get_screenshot.py +177 -0
- bytekit/api/search/__init__.py +1 -0
- bytekit/api/search/create_search.py +225 -0
- bytekit/api/sitemap/__init__.py +1 -0
- bytekit/api/sitemap/create_sitemap.py +192 -0
- bytekit/api/sitemap/get_sitemap.py +157 -0
- bytekit/api/usage/__init__.py +1 -0
- bytekit/api/usage/get_usage.py +126 -0
- bytekit/api/usage/get_usage_by_endpoint.py +215 -0
- bytekit/api/usage/get_usage_daily.py +203 -0
- bytekit/api/webhooks/__init__.py +1 -0
- bytekit/api/webhooks/list_webhook_deliveries.py +214 -0
- bytekit/api/webhooks/retry_webhook_delivery.py +165 -0
- bytekit/client.py +418 -0
- bytekit/errors.py +18 -0
- bytekit/models/__init__.py +401 -0
- bytekit/models/account_bearer_response.py +207 -0
- bytekit/models/account_bearer_response_api_key.py +134 -0
- bytekit/models/account_bearer_response_api_key_environment.py +8 -0
- bytekit/models/account_bearer_response_auto_topup.py +83 -0
- bytekit/models/account_bearer_response_plan.py +150 -0
- bytekit/models/account_bearer_response_subscription.py +85 -0
- bytekit/models/account_bearer_response_subscription_plan.py +99 -0
- bytekit/models/account_bearer_response_subscription_status.py +10 -0
- bytekit/models/account_session_response.py +164 -0
- bytekit/models/account_session_response_notifications.py +51 -0
- bytekit/models/account_session_response_plan.py +150 -0
- bytekit/models/bandwidth_balance.py +91 -0
- bytekit/models/capture_response.py +216 -0
- bytekit/models/capture_response_outcome.py +10 -0
- bytekit/models/clip.py +83 -0
- bytekit/models/cookie.py +90 -0
- bytekit/models/create_bulk_body.py +155 -0
- bytekit/models/create_bulk_body_defaults.py +423 -0
- bytekit/models/create_bulk_body_defaults_device.py +9 -0
- bytekit/models/create_bulk_body_defaults_device_scale_factor_type_1.py +9 -0
- bytekit/models/create_bulk_body_defaults_device_scale_factor_type_2_type_1.py +9 -0
- bytekit/models/create_bulk_body_defaults_device_scale_factor_type_3_type_1.py +9 -0
- bytekit/models/create_bulk_body_defaults_formats_item.py +12 -0
- bytekit/models/create_bulk_body_defaults_type.py +9 -0
- bytekit/models/create_bulk_body_defaults_viewport_type_0.py +67 -0
- bytekit/models/create_bulk_body_defaults_wait_until.py +10 -0
- bytekit/models/create_bulk_body_items_item.py +380 -0
- bytekit/models/create_bulk_body_items_item_device.py +9 -0
- bytekit/models/create_bulk_body_items_item_formats_item.py +12 -0
- bytekit/models/create_bulk_body_items_item_scenario.py +10 -0
- bytekit/models/create_bulk_body_items_item_type.py +9 -0
- bytekit/models/create_bulk_body_items_item_viewport_type_0.py +67 -0
- bytekit/models/create_bulk_body_items_item_wait_until.py +10 -0
- bytekit/models/create_bulk_response_202.py +164 -0
- bytekit/models/create_bulk_response_202_status.py +10 -0
- bytekit/models/create_fetch_bulk_body.py +161 -0
- bytekit/models/create_fetch_bulk_body_defaults.py +91 -0
- bytekit/models/create_fetch_bulk_body_defaults_format.py +9 -0
- bytekit/models/create_fetch_bulk_body_metadata.py +44 -0
- bytekit/models/create_fetch_bulk_body_urls_item_type_1.py +102 -0
- bytekit/models/create_fetch_bulk_body_urls_item_type_1_format.py +9 -0
- bytekit/models/create_fetch_bulk_response_202.py +44 -0
- bytekit/models/create_scrape_bulk_body.py +179 -0
- bytekit/models/create_scrape_bulk_body_custom.py +52 -0
- bytekit/models/create_scrape_bulk_body_defaults.py +167 -0
- bytekit/models/create_scrape_bulk_body_defaults_formats_item.py +12 -0
- bytekit/models/create_scrape_bulk_body_defaults_headers.py +44 -0
- bytekit/models/create_scrape_bulk_body_items_item.py +226 -0
- bytekit/models/create_scrape_bulk_body_items_item_custom.py +50 -0
- bytekit/models/create_scrape_bulk_body_items_item_formats_item.py +12 -0
- bytekit/models/create_scrape_bulk_body_items_item_headers.py +44 -0
- bytekit/models/create_scrape_bulk_body_items_item_metadata.py +44 -0
- bytekit/models/create_scrape_bulk_response_202.py +166 -0
- bytekit/models/create_scrape_bulk_response_202_status.py +10 -0
- bytekit/models/create_search_body.py +140 -0
- bytekit/models/create_search_body_date_range.py +13 -0
- bytekit/models/create_search_body_type.py +10 -0
- bytekit/models/create_search_response_200.py +119 -0
- bytekit/models/create_search_response_200_results_item.py +161 -0
- bytekit/models/create_search_response_200_results_item_image.py +113 -0
- bytekit/models/create_search_response_502.py +46 -0
- bytekit/models/create_search_response_502_error.py +8 -0
- bytekit/models/credit_balance.py +91 -0
- bytekit/models/delete_bulk_response_200.py +164 -0
- bytekit/models/delete_bulk_response_200_status.py +11 -0
- bytekit/models/error.py +83 -0
- bytekit/models/error_error.py +100 -0
- bytekit/models/error_status.py +8 -0
- bytekit/models/fetch_request.py +276 -0
- bytekit/models/fetch_request_cache_ttl_type_1.py +8 -0
- bytekit/models/fetch_request_custom.py +48 -0
- bytekit/models/fetch_request_format.py +9 -0
- bytekit/models/fetch_request_markdown_images.py +11 -0
- bytekit/models/fetch_request_markdown_links.py +11 -0
- bytekit/models/fetch_request_markdown_mode.py +10 -0
- bytekit/models/get_bulk_response_200.py +164 -0
- bytekit/models/get_bulk_response_200_status.py +11 -0
- bytekit/models/get_fetch_bulk_response_200.py +44 -0
- bytekit/models/get_fetch_cache_ttl_type_1.py +8 -0
- bytekit/models/get_fetch_format.py +9 -0
- bytekit/models/get_scrape_bulk_response_200.py +164 -0
- bytekit/models/get_scrape_bulk_response_200_status.py +11 -0
- bytekit/models/get_usage_by_endpoint_response_200.py +114 -0
- bytekit/models/get_usage_by_endpoint_response_200_rows_item.py +90 -0
- bytekit/models/get_usage_by_endpoint_response_200_rows_item_endpoint.py +17 -0
- bytekit/models/get_usage_by_endpoint_response_200_totals.py +67 -0
- bytekit/models/get_usage_daily_response_200.py +97 -0
- bytekit/models/get_usage_daily_response_200_data_item.py +219 -0
- bytekit/models/get_usage_response_200.py +344 -0
- bytekit/models/get_usage_response_200_plan_type.py +10 -0
- bytekit/models/list_bulk_screenshots_response_200.py +44 -0
- bytekit/models/list_monitor_captures_response_200.py +101 -0
- bytekit/models/list_monitors_response_200.py +101 -0
- bytekit/models/list_monitors_status.py +12 -0
- bytekit/models/list_webhook_deliveries_response_200.py +101 -0
- bytekit/models/list_webhook_deliveries_status.py +11 -0
- bytekit/models/metadata.py +44 -0
- bytekit/models/monitor_create_request.py +219 -0
- bytekit/models/monitor_create_request_interval_type.py +11 -0
- bytekit/models/monitor_create_request_notify_on.py +9 -0
- bytekit/models/monitor_create_request_options.py +44 -0
- bytekit/models/monitor_create_request_scrape_options.py +44 -0
- bytekit/models/monitor_create_request_type.py +9 -0
- bytekit/models/monitor_create_request_webhook_headers.py +44 -0
- bytekit/models/monitor_create_response.py +423 -0
- bytekit/models/monitor_response.py +411 -0
- bytekit/models/monitor_response_interval_type.py +11 -0
- bytekit/models/monitor_response_metadata_type_0.py +44 -0
- bytekit/models/monitor_response_status.py +12 -0
- bytekit/models/monitor_response_type.py +9 -0
- bytekit/models/monitor_response_webhook_headers_type_0.py +44 -0
- bytekit/models/monitor_update_request.py +223 -0
- bytekit/models/monitor_update_request_interval_type.py +11 -0
- bytekit/models/monitor_update_request_notify_on.py +9 -0
- bytekit/models/monitor_update_request_options.py +44 -0
- bytekit/models/monitor_update_request_scrape_options.py +44 -0
- bytekit/models/monitor_update_request_status.py +9 -0
- bytekit/models/monitor_update_request_webhook_headers.py +44 -0
- bytekit/models/scrape_error_envelope.py +113 -0
- bytekit/models/scrape_error_envelope_error.py +93 -0
- bytekit/models/scrape_error_envelope_error_code.py +18 -0
- bytekit/models/scrape_error_envelope_schema_version.py +8 -0
- bytekit/models/scrape_error_envelope_status.py +8 -0
- bytekit/models/scrape_formats.py +183 -0
- bytekit/models/scrape_markdown_tokens.py +75 -0
- bytekit/models/scrape_metadata.py +262 -0
- bytekit/models/scrape_queued_envelope.py +124 -0
- bytekit/models/scrape_queued_envelope_schema_version.py +8 -0
- bytekit/models/scrape_queued_envelope_status.py +8 -0
- bytekit/models/scrape_request.py +485 -0
- bytekit/models/scrape_request_cache_ttl_type_1.py +8 -0
- bytekit/models/scrape_request_custom.py +48 -0
- bytekit/models/scrape_request_events_item.py +10 -0
- bytekit/models/scrape_request_formats_item.py +12 -0
- bytekit/models/scrape_request_headers.py +44 -0
- bytekit/models/scrape_request_markdown_images.py +11 -0
- bytekit/models/scrape_request_markdown_links.py +11 -0
- bytekit/models/scrape_request_markdown_mode.py +10 -0
- bytekit/models/scrape_request_token_encoding.py +9 -0
- bytekit/models/scrape_request_x_internal_scrape_path.py +8 -0
- bytekit/models/scrape_scored_image.py +128 -0
- bytekit/models/scrape_scored_link.py +94 -0
- bytekit/models/scrape_stats.py +75 -0
- bytekit/models/scrape_success_envelope.py +345 -0
- bytekit/models/scrape_success_envelope_cache.py +10 -0
- bytekit/models/scrape_success_envelope_custom.py +48 -0
- bytekit/models/scrape_success_envelope_schema_version.py +8 -0
- bytekit/models/scrape_success_envelope_status.py +8 -0
- bytekit/models/scrape_table.py +96 -0
- bytekit/models/scrape_table_kind.py +10 -0
- bytekit/models/scrape_warning.py +88 -0
- bytekit/models/scrape_warning_code.py +17 -0
- bytekit/models/screenshot_request.py +445 -0
- bytekit/models/screenshot_request_device.py +9 -0
- bytekit/models/screenshot_request_device_scale_factor_type_1.py +9 -0
- bytekit/models/screenshot_request_device_scale_factor_type_2_type_1.py +9 -0
- bytekit/models/screenshot_request_device_scale_factor_type_3_type_1.py +9 -0
- bytekit/models/screenshot_request_format.py +9 -0
- bytekit/models/screenshot_request_headers.py +44 -0
- bytekit/models/screenshot_request_wait_until.py +10 -0
- bytekit/models/screenshot_response.py +264 -0
- bytekit/models/screenshot_response_status.py +11 -0
- bytekit/models/sitemap_request.py +210 -0
- bytekit/models/sitemap_request_process_type_0.py +90 -0
- bytekit/models/sitemap_request_process_type_0_options.py +44 -0
- bytekit/models/sitemap_request_strategy.py +10 -0
- bytekit/models/sitemap_response.py +418 -0
- bytekit/models/sitemap_response_cache.py +10 -0
- bytekit/models/sitemap_response_metadata_type_0.py +44 -0
- bytekit/models/sitemap_response_process_type_0.py +44 -0
- bytekit/models/sitemap_response_sources_type_0.py +44 -0
- bytekit/models/sitemap_response_status.py +11 -0
- bytekit/models/viewport.py +67 -0
- bytekit/models/webhook_delivery_response.py +270 -0
- bytekit/models/webhook_delivery_response_event_type.py +14 -0
- bytekit/models/webhook_delivery_response_status.py +11 -0
- bytekit/py.typed +0 -0
- bytekit/types.py +54 -0
- bytekit_sdk-0.3.0.dist-info/METADATA +141 -0
- bytekit_sdk-0.3.0.dist-info/RECORD +227 -0
- bytekit_sdk-0.3.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
TypeVar,
|
|
5
|
+
Union,
|
|
6
|
+
cast,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from attrs import define as _attrs_define
|
|
10
|
+
from attrs import field as _attrs_field
|
|
11
|
+
|
|
12
|
+
from ..models.scrape_table_kind import ScrapeTableKind
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="ScrapeTable")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class ScrapeTable:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
kind (ScrapeTableKind):
|
|
22
|
+
gfm (Union[None, str]):
|
|
23
|
+
rows (int):
|
|
24
|
+
cols (int):
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
kind: ScrapeTableKind
|
|
28
|
+
gfm: Union[None, str]
|
|
29
|
+
rows: int
|
|
30
|
+
cols: int
|
|
31
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
32
|
+
|
|
33
|
+
def to_dict(self) -> dict[str, Any]:
|
|
34
|
+
kind = self.kind.value
|
|
35
|
+
|
|
36
|
+
gfm: Union[None, str]
|
|
37
|
+
gfm = self.gfm
|
|
38
|
+
|
|
39
|
+
rows = self.rows
|
|
40
|
+
|
|
41
|
+
cols = self.cols
|
|
42
|
+
|
|
43
|
+
field_dict: dict[str, Any] = {}
|
|
44
|
+
field_dict.update(self.additional_properties)
|
|
45
|
+
field_dict.update(
|
|
46
|
+
{
|
|
47
|
+
"kind": kind,
|
|
48
|
+
"gfm": gfm,
|
|
49
|
+
"rows": rows,
|
|
50
|
+
"cols": cols,
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
return field_dict
|
|
55
|
+
|
|
56
|
+
@classmethod
|
|
57
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
58
|
+
d = dict(src_dict)
|
|
59
|
+
kind = ScrapeTableKind(d.pop("kind"))
|
|
60
|
+
|
|
61
|
+
def _parse_gfm(data: object) -> Union[None, str]:
|
|
62
|
+
if data is None:
|
|
63
|
+
return data
|
|
64
|
+
return cast(Union[None, str], data)
|
|
65
|
+
|
|
66
|
+
gfm = _parse_gfm(d.pop("gfm"))
|
|
67
|
+
|
|
68
|
+
rows = d.pop("rows")
|
|
69
|
+
|
|
70
|
+
cols = d.pop("cols")
|
|
71
|
+
|
|
72
|
+
scrape_table = cls(
|
|
73
|
+
kind=kind,
|
|
74
|
+
gfm=gfm,
|
|
75
|
+
rows=rows,
|
|
76
|
+
cols=cols,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
scrape_table.additional_properties = d
|
|
80
|
+
return scrape_table
|
|
81
|
+
|
|
82
|
+
@property
|
|
83
|
+
def additional_keys(self) -> list[str]:
|
|
84
|
+
return list(self.additional_properties.keys())
|
|
85
|
+
|
|
86
|
+
def __getitem__(self, key: str) -> Any:
|
|
87
|
+
return self.additional_properties[key]
|
|
88
|
+
|
|
89
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
90
|
+
self.additional_properties[key] = value
|
|
91
|
+
|
|
92
|
+
def __delitem__(self, key: str) -> None:
|
|
93
|
+
del self.additional_properties[key]
|
|
94
|
+
|
|
95
|
+
def __contains__(self, key: str) -> bool:
|
|
96
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
TypeVar,
|
|
5
|
+
Union,
|
|
6
|
+
cast,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from attrs import define as _attrs_define
|
|
10
|
+
from attrs import field as _attrs_field
|
|
11
|
+
|
|
12
|
+
from ..models.scrape_warning_code import ScrapeWarningCode
|
|
13
|
+
|
|
14
|
+
T = TypeVar("T", bound="ScrapeWarning")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@_attrs_define
|
|
18
|
+
class ScrapeWarning:
|
|
19
|
+
"""
|
|
20
|
+
Attributes:
|
|
21
|
+
code (ScrapeWarningCode):
|
|
22
|
+
message (str):
|
|
23
|
+
element (Union[None, str]):
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
code: ScrapeWarningCode
|
|
27
|
+
message: str
|
|
28
|
+
element: Union[None, str]
|
|
29
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
30
|
+
|
|
31
|
+
def to_dict(self) -> dict[str, Any]:
|
|
32
|
+
code = self.code.value
|
|
33
|
+
|
|
34
|
+
message = self.message
|
|
35
|
+
|
|
36
|
+
element: Union[None, str]
|
|
37
|
+
element = self.element
|
|
38
|
+
|
|
39
|
+
field_dict: dict[str, Any] = {}
|
|
40
|
+
field_dict.update(self.additional_properties)
|
|
41
|
+
field_dict.update(
|
|
42
|
+
{
|
|
43
|
+
"code": code,
|
|
44
|
+
"message": message,
|
|
45
|
+
"element": element,
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
return field_dict
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
53
|
+
d = dict(src_dict)
|
|
54
|
+
code = ScrapeWarningCode(d.pop("code"))
|
|
55
|
+
|
|
56
|
+
message = d.pop("message")
|
|
57
|
+
|
|
58
|
+
def _parse_element(data: object) -> Union[None, str]:
|
|
59
|
+
if data is None:
|
|
60
|
+
return data
|
|
61
|
+
return cast(Union[None, str], data)
|
|
62
|
+
|
|
63
|
+
element = _parse_element(d.pop("element"))
|
|
64
|
+
|
|
65
|
+
scrape_warning = cls(
|
|
66
|
+
code=code,
|
|
67
|
+
message=message,
|
|
68
|
+
element=element,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
scrape_warning.additional_properties = d
|
|
72
|
+
return scrape_warning
|
|
73
|
+
|
|
74
|
+
@property
|
|
75
|
+
def additional_keys(self) -> list[str]:
|
|
76
|
+
return list(self.additional_properties.keys())
|
|
77
|
+
|
|
78
|
+
def __getitem__(self, key: str) -> Any:
|
|
79
|
+
return self.additional_properties[key]
|
|
80
|
+
|
|
81
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
82
|
+
self.additional_properties[key] = value
|
|
83
|
+
|
|
84
|
+
def __delitem__(self, key: str) -> None:
|
|
85
|
+
del self.additional_properties[key]
|
|
86
|
+
|
|
87
|
+
def __contains__(self, key: str) -> bool:
|
|
88
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ScrapeWarningCode(str, Enum):
|
|
5
|
+
ARTIFACT_UNAVAILABLE = "artifact_unavailable"
|
|
6
|
+
COMPLEX_MATH = "complex_math"
|
|
7
|
+
EXTRACTION_FALLBACK = "extraction_fallback"
|
|
8
|
+
LLM_CLEAN_FAILED = "llm_clean_failed"
|
|
9
|
+
LLM_CLEAN_UNAVAILABLE = "llm_clean_unavailable"
|
|
10
|
+
LOSSY_TABLE = "lossy_table"
|
|
11
|
+
MODE_DISABLED_FALLBACK = "mode_disabled_fallback"
|
|
12
|
+
QUERY_NO_MATCH = "query_no_match"
|
|
13
|
+
TRUNCATED = "truncated"
|
|
14
|
+
UNSUPPORTED_ELEMENT = "unsupported_element"
|
|
15
|
+
|
|
16
|
+
def __str__(self) -> str:
|
|
17
|
+
return str(self.value)
|
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import (
|
|
3
|
+
TYPE_CHECKING,
|
|
4
|
+
Any,
|
|
5
|
+
TypeVar,
|
|
6
|
+
Union,
|
|
7
|
+
cast,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from attrs import define as _attrs_define
|
|
11
|
+
|
|
12
|
+
from ..models.screenshot_request_device import ScreenshotRequestDevice
|
|
13
|
+
from ..models.screenshot_request_device_scale_factor_type_1 import (
|
|
14
|
+
ScreenshotRequestDeviceScaleFactorType1,
|
|
15
|
+
)
|
|
16
|
+
from ..models.screenshot_request_device_scale_factor_type_2_type_1 import (
|
|
17
|
+
ScreenshotRequestDeviceScaleFactorType2Type1,
|
|
18
|
+
)
|
|
19
|
+
from ..models.screenshot_request_device_scale_factor_type_3_type_1 import (
|
|
20
|
+
ScreenshotRequestDeviceScaleFactorType3Type1,
|
|
21
|
+
)
|
|
22
|
+
from ..models.screenshot_request_format import ScreenshotRequestFormat
|
|
23
|
+
from ..models.screenshot_request_wait_until import ScreenshotRequestWaitUntil
|
|
24
|
+
from ..types import UNSET, Unset
|
|
25
|
+
|
|
26
|
+
if TYPE_CHECKING:
|
|
27
|
+
from ..models.clip import Clip
|
|
28
|
+
from ..models.cookie import Cookie
|
|
29
|
+
from ..models.metadata import Metadata
|
|
30
|
+
from ..models.screenshot_request_headers import ScreenshotRequestHeaders
|
|
31
|
+
from ..models.viewport import Viewport
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
T = TypeVar("T", bound="ScreenshotRequest")
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@_attrs_define
|
|
38
|
+
class ScreenshotRequest:
|
|
39
|
+
"""
|
|
40
|
+
Attributes:
|
|
41
|
+
url (str):
|
|
42
|
+
device (Union[Unset, ScreenshotRequestDevice]):
|
|
43
|
+
viewport (Union['Viewport', None, Unset]):
|
|
44
|
+
full_page (Union[Unset, bool]):
|
|
45
|
+
format_ (Union[Unset, ScreenshotRequestFormat]):
|
|
46
|
+
quality (Union[Unset, int]):
|
|
47
|
+
block_ads (Union[Unset, bool]):
|
|
48
|
+
block_cookie_banners (Union[Unset, bool]):
|
|
49
|
+
wait_until (Union[Unset, ScreenshotRequestWaitUntil]):
|
|
50
|
+
wait_for_selector (Union[None, Unset, str]):
|
|
51
|
+
delay_ms (Union[Unset, int]):
|
|
52
|
+
scroll (Union[Unset, bool]):
|
|
53
|
+
clip (Union['Clip', None, Unset]):
|
|
54
|
+
headers (Union[Unset, ScreenshotRequestHeaders]):
|
|
55
|
+
cookies (Union[Unset, list['Cookie']]):
|
|
56
|
+
dark_mode (Union[Unset, bool]):
|
|
57
|
+
device_scale_factor (Union[None, ScreenshotRequestDeviceScaleFactorType1,
|
|
58
|
+
ScreenshotRequestDeviceScaleFactorType2Type1, ScreenshotRequestDeviceScaleFactorType3Type1, Unset]):
|
|
59
|
+
include_html (Union[Unset, bool]):
|
|
60
|
+
country (Union[Unset, str]):
|
|
61
|
+
language (Union[None, Unset, str]):
|
|
62
|
+
metadata (Union[Unset, Metadata]): Arbitrary key-value metadata. Max 4096 bytes when JSON-serialized.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
url: str
|
|
66
|
+
device: Union[Unset, ScreenshotRequestDevice] = UNSET
|
|
67
|
+
viewport: Union["Viewport", None, Unset] = UNSET
|
|
68
|
+
full_page: Union[Unset, bool] = UNSET
|
|
69
|
+
format_: Union[Unset, ScreenshotRequestFormat] = UNSET
|
|
70
|
+
quality: Union[Unset, int] = UNSET
|
|
71
|
+
block_ads: Union[Unset, bool] = UNSET
|
|
72
|
+
block_cookie_banners: Union[Unset, bool] = UNSET
|
|
73
|
+
wait_until: Union[Unset, ScreenshotRequestWaitUntil] = UNSET
|
|
74
|
+
wait_for_selector: Union[None, Unset, str] = UNSET
|
|
75
|
+
delay_ms: Union[Unset, int] = UNSET
|
|
76
|
+
scroll: Union[Unset, bool] = UNSET
|
|
77
|
+
clip: Union["Clip", None, Unset] = UNSET
|
|
78
|
+
headers: Union[Unset, "ScreenshotRequestHeaders"] = UNSET
|
|
79
|
+
cookies: Union[Unset, list["Cookie"]] = UNSET
|
|
80
|
+
dark_mode: Union[Unset, bool] = UNSET
|
|
81
|
+
device_scale_factor: Union[
|
|
82
|
+
None,
|
|
83
|
+
ScreenshotRequestDeviceScaleFactorType1,
|
|
84
|
+
ScreenshotRequestDeviceScaleFactorType2Type1,
|
|
85
|
+
ScreenshotRequestDeviceScaleFactorType3Type1,
|
|
86
|
+
Unset,
|
|
87
|
+
] = UNSET
|
|
88
|
+
include_html: Union[Unset, bool] = UNSET
|
|
89
|
+
country: Union[Unset, str] = UNSET
|
|
90
|
+
language: Union[None, Unset, str] = UNSET
|
|
91
|
+
metadata: Union[Unset, "Metadata"] = UNSET
|
|
92
|
+
|
|
93
|
+
def to_dict(self) -> dict[str, Any]:
|
|
94
|
+
from ..models.clip import Clip
|
|
95
|
+
from ..models.viewport import Viewport
|
|
96
|
+
|
|
97
|
+
url = self.url
|
|
98
|
+
|
|
99
|
+
device: Union[Unset, str] = UNSET
|
|
100
|
+
if not isinstance(self.device, Unset):
|
|
101
|
+
device = self.device.value
|
|
102
|
+
|
|
103
|
+
viewport: Union[None, Unset, dict[str, Any]]
|
|
104
|
+
if isinstance(self.viewport, Unset):
|
|
105
|
+
viewport = UNSET
|
|
106
|
+
elif isinstance(self.viewport, Viewport):
|
|
107
|
+
viewport = self.viewport.to_dict()
|
|
108
|
+
else:
|
|
109
|
+
viewport = self.viewport
|
|
110
|
+
|
|
111
|
+
full_page = self.full_page
|
|
112
|
+
|
|
113
|
+
format_: Union[Unset, str] = UNSET
|
|
114
|
+
if not isinstance(self.format_, Unset):
|
|
115
|
+
format_ = self.format_.value
|
|
116
|
+
|
|
117
|
+
quality = self.quality
|
|
118
|
+
|
|
119
|
+
block_ads = self.block_ads
|
|
120
|
+
|
|
121
|
+
block_cookie_banners = self.block_cookie_banners
|
|
122
|
+
|
|
123
|
+
wait_until: Union[Unset, str] = UNSET
|
|
124
|
+
if not isinstance(self.wait_until, Unset):
|
|
125
|
+
wait_until = self.wait_until.value
|
|
126
|
+
|
|
127
|
+
wait_for_selector: Union[None, Unset, str]
|
|
128
|
+
if isinstance(self.wait_for_selector, Unset):
|
|
129
|
+
wait_for_selector = UNSET
|
|
130
|
+
else:
|
|
131
|
+
wait_for_selector = self.wait_for_selector
|
|
132
|
+
|
|
133
|
+
delay_ms = self.delay_ms
|
|
134
|
+
|
|
135
|
+
scroll = self.scroll
|
|
136
|
+
|
|
137
|
+
clip: Union[None, Unset, dict[str, Any]]
|
|
138
|
+
if isinstance(self.clip, Unset):
|
|
139
|
+
clip = UNSET
|
|
140
|
+
elif isinstance(self.clip, Clip):
|
|
141
|
+
clip = self.clip.to_dict()
|
|
142
|
+
else:
|
|
143
|
+
clip = self.clip
|
|
144
|
+
|
|
145
|
+
headers: Union[Unset, dict[str, Any]] = UNSET
|
|
146
|
+
if not isinstance(self.headers, Unset):
|
|
147
|
+
headers = self.headers.to_dict()
|
|
148
|
+
|
|
149
|
+
cookies: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
150
|
+
if not isinstance(self.cookies, Unset):
|
|
151
|
+
cookies = []
|
|
152
|
+
for cookies_item_data in self.cookies:
|
|
153
|
+
cookies_item = cookies_item_data.to_dict()
|
|
154
|
+
cookies.append(cookies_item)
|
|
155
|
+
|
|
156
|
+
dark_mode = self.dark_mode
|
|
157
|
+
|
|
158
|
+
device_scale_factor: Union[None, Unset, int]
|
|
159
|
+
if isinstance(self.device_scale_factor, Unset):
|
|
160
|
+
device_scale_factor = UNSET
|
|
161
|
+
elif isinstance(
|
|
162
|
+
self.device_scale_factor, ScreenshotRequestDeviceScaleFactorType1
|
|
163
|
+
):
|
|
164
|
+
device_scale_factor = self.device_scale_factor.value
|
|
165
|
+
elif isinstance(
|
|
166
|
+
self.device_scale_factor, ScreenshotRequestDeviceScaleFactorType2Type1
|
|
167
|
+
):
|
|
168
|
+
device_scale_factor = self.device_scale_factor.value
|
|
169
|
+
elif isinstance(
|
|
170
|
+
self.device_scale_factor, ScreenshotRequestDeviceScaleFactorType3Type1
|
|
171
|
+
):
|
|
172
|
+
device_scale_factor = self.device_scale_factor.value
|
|
173
|
+
else:
|
|
174
|
+
device_scale_factor = self.device_scale_factor
|
|
175
|
+
|
|
176
|
+
include_html = self.include_html
|
|
177
|
+
|
|
178
|
+
country = self.country
|
|
179
|
+
|
|
180
|
+
language: Union[None, Unset, str]
|
|
181
|
+
if isinstance(self.language, Unset):
|
|
182
|
+
language = UNSET
|
|
183
|
+
else:
|
|
184
|
+
language = self.language
|
|
185
|
+
|
|
186
|
+
metadata: Union[Unset, dict[str, Any]] = UNSET
|
|
187
|
+
if not isinstance(self.metadata, Unset):
|
|
188
|
+
metadata = self.metadata.to_dict()
|
|
189
|
+
|
|
190
|
+
field_dict: dict[str, Any] = {}
|
|
191
|
+
|
|
192
|
+
field_dict.update(
|
|
193
|
+
{
|
|
194
|
+
"url": url,
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
if device is not UNSET:
|
|
198
|
+
field_dict["device"] = device
|
|
199
|
+
if viewport is not UNSET:
|
|
200
|
+
field_dict["viewport"] = viewport
|
|
201
|
+
if full_page is not UNSET:
|
|
202
|
+
field_dict["full_page"] = full_page
|
|
203
|
+
if format_ is not UNSET:
|
|
204
|
+
field_dict["format"] = format_
|
|
205
|
+
if quality is not UNSET:
|
|
206
|
+
field_dict["quality"] = quality
|
|
207
|
+
if block_ads is not UNSET:
|
|
208
|
+
field_dict["block_ads"] = block_ads
|
|
209
|
+
if block_cookie_banners is not UNSET:
|
|
210
|
+
field_dict["block_cookie_banners"] = block_cookie_banners
|
|
211
|
+
if wait_until is not UNSET:
|
|
212
|
+
field_dict["wait_until"] = wait_until
|
|
213
|
+
if wait_for_selector is not UNSET:
|
|
214
|
+
field_dict["wait_for_selector"] = wait_for_selector
|
|
215
|
+
if delay_ms is not UNSET:
|
|
216
|
+
field_dict["delay_ms"] = delay_ms
|
|
217
|
+
if scroll is not UNSET:
|
|
218
|
+
field_dict["scroll"] = scroll
|
|
219
|
+
if clip is not UNSET:
|
|
220
|
+
field_dict["clip"] = clip
|
|
221
|
+
if headers is not UNSET:
|
|
222
|
+
field_dict["headers"] = headers
|
|
223
|
+
if cookies is not UNSET:
|
|
224
|
+
field_dict["cookies"] = cookies
|
|
225
|
+
if dark_mode is not UNSET:
|
|
226
|
+
field_dict["dark_mode"] = dark_mode
|
|
227
|
+
if device_scale_factor is not UNSET:
|
|
228
|
+
field_dict["device_scale_factor"] = device_scale_factor
|
|
229
|
+
if include_html is not UNSET:
|
|
230
|
+
field_dict["include_html"] = include_html
|
|
231
|
+
if country is not UNSET:
|
|
232
|
+
field_dict["country"] = country
|
|
233
|
+
if language is not UNSET:
|
|
234
|
+
field_dict["language"] = language
|
|
235
|
+
if metadata is not UNSET:
|
|
236
|
+
field_dict["metadata"] = metadata
|
|
237
|
+
|
|
238
|
+
return field_dict
|
|
239
|
+
|
|
240
|
+
@classmethod
|
|
241
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
242
|
+
from ..models.clip import Clip
|
|
243
|
+
from ..models.cookie import Cookie
|
|
244
|
+
from ..models.metadata import Metadata
|
|
245
|
+
from ..models.screenshot_request_headers import ScreenshotRequestHeaders
|
|
246
|
+
from ..models.viewport import Viewport
|
|
247
|
+
|
|
248
|
+
d = dict(src_dict)
|
|
249
|
+
url = d.pop("url")
|
|
250
|
+
|
|
251
|
+
_device = d.pop("device", UNSET)
|
|
252
|
+
device: Union[Unset, ScreenshotRequestDevice]
|
|
253
|
+
if isinstance(_device, Unset):
|
|
254
|
+
device = UNSET
|
|
255
|
+
else:
|
|
256
|
+
device = ScreenshotRequestDevice(_device)
|
|
257
|
+
|
|
258
|
+
def _parse_viewport(data: object) -> Union["Viewport", None, Unset]:
|
|
259
|
+
if data is None:
|
|
260
|
+
return data
|
|
261
|
+
if isinstance(data, Unset):
|
|
262
|
+
return data
|
|
263
|
+
try:
|
|
264
|
+
if not isinstance(data, dict):
|
|
265
|
+
raise TypeError()
|
|
266
|
+
viewport_type_0 = Viewport.from_dict(data)
|
|
267
|
+
|
|
268
|
+
return viewport_type_0
|
|
269
|
+
except: # noqa: E722
|
|
270
|
+
pass
|
|
271
|
+
return cast(Union["Viewport", None, Unset], data)
|
|
272
|
+
|
|
273
|
+
viewport = _parse_viewport(d.pop("viewport", UNSET))
|
|
274
|
+
|
|
275
|
+
full_page = d.pop("full_page", UNSET)
|
|
276
|
+
|
|
277
|
+
_format_ = d.pop("format", UNSET)
|
|
278
|
+
format_: Union[Unset, ScreenshotRequestFormat]
|
|
279
|
+
if isinstance(_format_, Unset):
|
|
280
|
+
format_ = UNSET
|
|
281
|
+
else:
|
|
282
|
+
format_ = ScreenshotRequestFormat(_format_)
|
|
283
|
+
|
|
284
|
+
quality = d.pop("quality", UNSET)
|
|
285
|
+
|
|
286
|
+
block_ads = d.pop("block_ads", UNSET)
|
|
287
|
+
|
|
288
|
+
block_cookie_banners = d.pop("block_cookie_banners", UNSET)
|
|
289
|
+
|
|
290
|
+
_wait_until = d.pop("wait_until", UNSET)
|
|
291
|
+
wait_until: Union[Unset, ScreenshotRequestWaitUntil]
|
|
292
|
+
if isinstance(_wait_until, Unset):
|
|
293
|
+
wait_until = UNSET
|
|
294
|
+
else:
|
|
295
|
+
wait_until = ScreenshotRequestWaitUntil(_wait_until)
|
|
296
|
+
|
|
297
|
+
def _parse_wait_for_selector(data: object) -> Union[None, Unset, str]:
|
|
298
|
+
if data is None:
|
|
299
|
+
return data
|
|
300
|
+
if isinstance(data, Unset):
|
|
301
|
+
return data
|
|
302
|
+
return cast(Union[None, Unset, str], data)
|
|
303
|
+
|
|
304
|
+
wait_for_selector = _parse_wait_for_selector(d.pop("wait_for_selector", UNSET))
|
|
305
|
+
|
|
306
|
+
delay_ms = d.pop("delay_ms", UNSET)
|
|
307
|
+
|
|
308
|
+
scroll = d.pop("scroll", UNSET)
|
|
309
|
+
|
|
310
|
+
def _parse_clip(data: object) -> Union["Clip", None, Unset]:
|
|
311
|
+
if data is None:
|
|
312
|
+
return data
|
|
313
|
+
if isinstance(data, Unset):
|
|
314
|
+
return data
|
|
315
|
+
try:
|
|
316
|
+
if not isinstance(data, dict):
|
|
317
|
+
raise TypeError()
|
|
318
|
+
clip_type_0 = Clip.from_dict(data)
|
|
319
|
+
|
|
320
|
+
return clip_type_0
|
|
321
|
+
except: # noqa: E722
|
|
322
|
+
pass
|
|
323
|
+
return cast(Union["Clip", None, Unset], data)
|
|
324
|
+
|
|
325
|
+
clip = _parse_clip(d.pop("clip", UNSET))
|
|
326
|
+
|
|
327
|
+
_headers = d.pop("headers", UNSET)
|
|
328
|
+
headers: Union[Unset, ScreenshotRequestHeaders]
|
|
329
|
+
if isinstance(_headers, Unset):
|
|
330
|
+
headers = UNSET
|
|
331
|
+
else:
|
|
332
|
+
headers = ScreenshotRequestHeaders.from_dict(_headers)
|
|
333
|
+
|
|
334
|
+
cookies = []
|
|
335
|
+
_cookies = d.pop("cookies", UNSET)
|
|
336
|
+
for cookies_item_data in _cookies or []:
|
|
337
|
+
cookies_item = Cookie.from_dict(cookies_item_data)
|
|
338
|
+
|
|
339
|
+
cookies.append(cookies_item)
|
|
340
|
+
|
|
341
|
+
dark_mode = d.pop("dark_mode", UNSET)
|
|
342
|
+
|
|
343
|
+
def _parse_device_scale_factor(
|
|
344
|
+
data: object,
|
|
345
|
+
) -> Union[
|
|
346
|
+
None,
|
|
347
|
+
ScreenshotRequestDeviceScaleFactorType1,
|
|
348
|
+
ScreenshotRequestDeviceScaleFactorType2Type1,
|
|
349
|
+
ScreenshotRequestDeviceScaleFactorType3Type1,
|
|
350
|
+
Unset,
|
|
351
|
+
]:
|
|
352
|
+
if data is None:
|
|
353
|
+
return data
|
|
354
|
+
if isinstance(data, Unset):
|
|
355
|
+
return data
|
|
356
|
+
try:
|
|
357
|
+
if not isinstance(data, int):
|
|
358
|
+
raise TypeError()
|
|
359
|
+
device_scale_factor_type_1 = ScreenshotRequestDeviceScaleFactorType1(
|
|
360
|
+
data
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
return device_scale_factor_type_1
|
|
364
|
+
except: # noqa: E722
|
|
365
|
+
pass
|
|
366
|
+
try:
|
|
367
|
+
if not isinstance(data, int):
|
|
368
|
+
raise TypeError()
|
|
369
|
+
device_scale_factor_type_2_type_1 = (
|
|
370
|
+
ScreenshotRequestDeviceScaleFactorType2Type1(data)
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
return device_scale_factor_type_2_type_1
|
|
374
|
+
except: # noqa: E722
|
|
375
|
+
pass
|
|
376
|
+
try:
|
|
377
|
+
if not isinstance(data, int):
|
|
378
|
+
raise TypeError()
|
|
379
|
+
device_scale_factor_type_3_type_1 = (
|
|
380
|
+
ScreenshotRequestDeviceScaleFactorType3Type1(data)
|
|
381
|
+
)
|
|
382
|
+
|
|
383
|
+
return device_scale_factor_type_3_type_1
|
|
384
|
+
except: # noqa: E722
|
|
385
|
+
pass
|
|
386
|
+
return cast(
|
|
387
|
+
Union[
|
|
388
|
+
None,
|
|
389
|
+
ScreenshotRequestDeviceScaleFactorType1,
|
|
390
|
+
ScreenshotRequestDeviceScaleFactorType2Type1,
|
|
391
|
+
ScreenshotRequestDeviceScaleFactorType3Type1,
|
|
392
|
+
Unset,
|
|
393
|
+
],
|
|
394
|
+
data,
|
|
395
|
+
)
|
|
396
|
+
|
|
397
|
+
device_scale_factor = _parse_device_scale_factor(
|
|
398
|
+
d.pop("device_scale_factor", UNSET)
|
|
399
|
+
)
|
|
400
|
+
|
|
401
|
+
include_html = d.pop("include_html", UNSET)
|
|
402
|
+
|
|
403
|
+
country = d.pop("country", UNSET)
|
|
404
|
+
|
|
405
|
+
def _parse_language(data: object) -> Union[None, Unset, str]:
|
|
406
|
+
if data is None:
|
|
407
|
+
return data
|
|
408
|
+
if isinstance(data, Unset):
|
|
409
|
+
return data
|
|
410
|
+
return cast(Union[None, Unset, str], data)
|
|
411
|
+
|
|
412
|
+
language = _parse_language(d.pop("language", UNSET))
|
|
413
|
+
|
|
414
|
+
_metadata = d.pop("metadata", UNSET)
|
|
415
|
+
metadata: Union[Unset, Metadata]
|
|
416
|
+
if isinstance(_metadata, Unset):
|
|
417
|
+
metadata = UNSET
|
|
418
|
+
else:
|
|
419
|
+
metadata = Metadata.from_dict(_metadata)
|
|
420
|
+
|
|
421
|
+
screenshot_request = cls(
|
|
422
|
+
url=url,
|
|
423
|
+
device=device,
|
|
424
|
+
viewport=viewport,
|
|
425
|
+
full_page=full_page,
|
|
426
|
+
format_=format_,
|
|
427
|
+
quality=quality,
|
|
428
|
+
block_ads=block_ads,
|
|
429
|
+
block_cookie_banners=block_cookie_banners,
|
|
430
|
+
wait_until=wait_until,
|
|
431
|
+
wait_for_selector=wait_for_selector,
|
|
432
|
+
delay_ms=delay_ms,
|
|
433
|
+
scroll=scroll,
|
|
434
|
+
clip=clip,
|
|
435
|
+
headers=headers,
|
|
436
|
+
cookies=cookies,
|
|
437
|
+
dark_mode=dark_mode,
|
|
438
|
+
device_scale_factor=device_scale_factor,
|
|
439
|
+
include_html=include_html,
|
|
440
|
+
country=country,
|
|
441
|
+
language=language,
|
|
442
|
+
metadata=metadata,
|
|
443
|
+
)
|
|
444
|
+
|
|
445
|
+
return screenshot_request
|