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,167 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import (
|
|
3
|
+
TYPE_CHECKING,
|
|
4
|
+
Any,
|
|
5
|
+
TypeVar,
|
|
6
|
+
Union,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from attrs import define as _attrs_define
|
|
10
|
+
from attrs import field as _attrs_field
|
|
11
|
+
|
|
12
|
+
from ..models.create_scrape_bulk_body_defaults_formats_item import (
|
|
13
|
+
CreateScrapeBulkBodyDefaultsFormatsItem,
|
|
14
|
+
)
|
|
15
|
+
from ..types import UNSET, Unset
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from ..models.cookie import Cookie
|
|
19
|
+
from ..models.create_scrape_bulk_body_defaults_headers import (
|
|
20
|
+
CreateScrapeBulkBodyDefaultsHeaders,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
T = TypeVar("T", bound="CreateScrapeBulkBodyDefaults")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@_attrs_define
|
|
28
|
+
class CreateScrapeBulkBodyDefaults:
|
|
29
|
+
"""
|
|
30
|
+
Attributes:
|
|
31
|
+
formats (Union[Unset, list[CreateScrapeBulkBodyDefaultsFormatsItem]]):
|
|
32
|
+
country (Union[Unset, str]): Default: 'US'.
|
|
33
|
+
cookies (Union[Unset, list['Cookie']]):
|
|
34
|
+
headers (Union[Unset, CreateScrapeBulkBodyDefaultsHeaders]):
|
|
35
|
+
delay_ms (Union[Unset, int]): Default: 0.
|
|
36
|
+
timeout_ms (Union[Unset, int]): Default: 30000.
|
|
37
|
+
clean_markdown (Union[Unset, bool]): Bulk-level default for LLM markdown cleaning, applied to
|
|
38
|
+
every scrape entry that does not set its own
|
|
39
|
+
`clean_markdown`. When `true` and `markdown` is in
|
|
40
|
+
`formats`, the converted markdown is sent to Groq for
|
|
41
|
+
cleaning before delivery; any Groq failure returns the
|
|
42
|
+
raw markdown plus a warning. Billing: 3× credits and wire
|
|
43
|
+
bytes applied only when cleaning succeeds.
|
|
44
|
+
Default: False.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
formats: Union[Unset, list[CreateScrapeBulkBodyDefaultsFormatsItem]] = UNSET
|
|
48
|
+
country: Union[Unset, str] = "US"
|
|
49
|
+
cookies: Union[Unset, list["Cookie"]] = UNSET
|
|
50
|
+
headers: Union[Unset, "CreateScrapeBulkBodyDefaultsHeaders"] = UNSET
|
|
51
|
+
delay_ms: Union[Unset, int] = 0
|
|
52
|
+
timeout_ms: Union[Unset, int] = 30000
|
|
53
|
+
clean_markdown: Union[Unset, bool] = False
|
|
54
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> dict[str, Any]:
|
|
57
|
+
formats: Union[Unset, list[str]] = UNSET
|
|
58
|
+
if not isinstance(self.formats, Unset):
|
|
59
|
+
formats = []
|
|
60
|
+
for formats_item_data in self.formats:
|
|
61
|
+
formats_item = formats_item_data.value
|
|
62
|
+
formats.append(formats_item)
|
|
63
|
+
|
|
64
|
+
country = self.country
|
|
65
|
+
|
|
66
|
+
cookies: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
67
|
+
if not isinstance(self.cookies, Unset):
|
|
68
|
+
cookies = []
|
|
69
|
+
for cookies_item_data in self.cookies:
|
|
70
|
+
cookies_item = cookies_item_data.to_dict()
|
|
71
|
+
cookies.append(cookies_item)
|
|
72
|
+
|
|
73
|
+
headers: Union[Unset, dict[str, Any]] = UNSET
|
|
74
|
+
if not isinstance(self.headers, Unset):
|
|
75
|
+
headers = self.headers.to_dict()
|
|
76
|
+
|
|
77
|
+
delay_ms = self.delay_ms
|
|
78
|
+
|
|
79
|
+
timeout_ms = self.timeout_ms
|
|
80
|
+
|
|
81
|
+
clean_markdown = self.clean_markdown
|
|
82
|
+
|
|
83
|
+
field_dict: dict[str, Any] = {}
|
|
84
|
+
field_dict.update(self.additional_properties)
|
|
85
|
+
field_dict.update({})
|
|
86
|
+
if formats is not UNSET:
|
|
87
|
+
field_dict["formats"] = formats
|
|
88
|
+
if country is not UNSET:
|
|
89
|
+
field_dict["country"] = country
|
|
90
|
+
if cookies is not UNSET:
|
|
91
|
+
field_dict["cookies"] = cookies
|
|
92
|
+
if headers is not UNSET:
|
|
93
|
+
field_dict["headers"] = headers
|
|
94
|
+
if delay_ms is not UNSET:
|
|
95
|
+
field_dict["delay_ms"] = delay_ms
|
|
96
|
+
if timeout_ms is not UNSET:
|
|
97
|
+
field_dict["timeout_ms"] = timeout_ms
|
|
98
|
+
if clean_markdown is not UNSET:
|
|
99
|
+
field_dict["clean_markdown"] = clean_markdown
|
|
100
|
+
|
|
101
|
+
return field_dict
|
|
102
|
+
|
|
103
|
+
@classmethod
|
|
104
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
105
|
+
from ..models.cookie import Cookie
|
|
106
|
+
from ..models.create_scrape_bulk_body_defaults_headers import (
|
|
107
|
+
CreateScrapeBulkBodyDefaultsHeaders,
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
d = dict(src_dict)
|
|
111
|
+
formats = []
|
|
112
|
+
_formats = d.pop("formats", UNSET)
|
|
113
|
+
for formats_item_data in _formats or []:
|
|
114
|
+
formats_item = CreateScrapeBulkBodyDefaultsFormatsItem(formats_item_data)
|
|
115
|
+
|
|
116
|
+
formats.append(formats_item)
|
|
117
|
+
|
|
118
|
+
country = d.pop("country", UNSET)
|
|
119
|
+
|
|
120
|
+
cookies = []
|
|
121
|
+
_cookies = d.pop("cookies", UNSET)
|
|
122
|
+
for cookies_item_data in _cookies or []:
|
|
123
|
+
cookies_item = Cookie.from_dict(cookies_item_data)
|
|
124
|
+
|
|
125
|
+
cookies.append(cookies_item)
|
|
126
|
+
|
|
127
|
+
_headers = d.pop("headers", UNSET)
|
|
128
|
+
headers: Union[Unset, CreateScrapeBulkBodyDefaultsHeaders]
|
|
129
|
+
if isinstance(_headers, Unset):
|
|
130
|
+
headers = UNSET
|
|
131
|
+
else:
|
|
132
|
+
headers = CreateScrapeBulkBodyDefaultsHeaders.from_dict(_headers)
|
|
133
|
+
|
|
134
|
+
delay_ms = d.pop("delay_ms", UNSET)
|
|
135
|
+
|
|
136
|
+
timeout_ms = d.pop("timeout_ms", UNSET)
|
|
137
|
+
|
|
138
|
+
clean_markdown = d.pop("clean_markdown", UNSET)
|
|
139
|
+
|
|
140
|
+
create_scrape_bulk_body_defaults = cls(
|
|
141
|
+
formats=formats,
|
|
142
|
+
country=country,
|
|
143
|
+
cookies=cookies,
|
|
144
|
+
headers=headers,
|
|
145
|
+
delay_ms=delay_ms,
|
|
146
|
+
timeout_ms=timeout_ms,
|
|
147
|
+
clean_markdown=clean_markdown,
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
create_scrape_bulk_body_defaults.additional_properties = d
|
|
151
|
+
return create_scrape_bulk_body_defaults
|
|
152
|
+
|
|
153
|
+
@property
|
|
154
|
+
def additional_keys(self) -> list[str]:
|
|
155
|
+
return list(self.additional_properties.keys())
|
|
156
|
+
|
|
157
|
+
def __getitem__(self, key: str) -> Any:
|
|
158
|
+
return self.additional_properties[key]
|
|
159
|
+
|
|
160
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
161
|
+
self.additional_properties[key] = value
|
|
162
|
+
|
|
163
|
+
def __delitem__(self, key: str) -> None:
|
|
164
|
+
del self.additional_properties[key]
|
|
165
|
+
|
|
166
|
+
def __contains__(self, key: str) -> bool:
|
|
167
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="CreateScrapeBulkBodyDefaultsHeaders")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class CreateScrapeBulkBodyDefaultsHeaders:
|
|
12
|
+
""" """
|
|
13
|
+
|
|
14
|
+
additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict)
|
|
15
|
+
|
|
16
|
+
def to_dict(self) -> dict[str, Any]:
|
|
17
|
+
field_dict: dict[str, Any] = {}
|
|
18
|
+
field_dict.update(self.additional_properties)
|
|
19
|
+
|
|
20
|
+
return field_dict
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
24
|
+
d = dict(src_dict)
|
|
25
|
+
create_scrape_bulk_body_defaults_headers = cls()
|
|
26
|
+
|
|
27
|
+
create_scrape_bulk_body_defaults_headers.additional_properties = d
|
|
28
|
+
return create_scrape_bulk_body_defaults_headers
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def additional_keys(self) -> list[str]:
|
|
32
|
+
return list(self.additional_properties.keys())
|
|
33
|
+
|
|
34
|
+
def __getitem__(self, key: str) -> str:
|
|
35
|
+
return self.additional_properties[key]
|
|
36
|
+
|
|
37
|
+
def __setitem__(self, key: str, value: str) -> None:
|
|
38
|
+
self.additional_properties[key] = value
|
|
39
|
+
|
|
40
|
+
def __delitem__(self, key: str) -> None:
|
|
41
|
+
del self.additional_properties[key]
|
|
42
|
+
|
|
43
|
+
def __contains__(self, key: str) -> bool:
|
|
44
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import (
|
|
3
|
+
TYPE_CHECKING,
|
|
4
|
+
Any,
|
|
5
|
+
TypeVar,
|
|
6
|
+
Union,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from attrs import define as _attrs_define
|
|
10
|
+
from attrs import field as _attrs_field
|
|
11
|
+
|
|
12
|
+
from ..models.create_scrape_bulk_body_items_item_formats_item import (
|
|
13
|
+
CreateScrapeBulkBodyItemsItemFormatsItem,
|
|
14
|
+
)
|
|
15
|
+
from ..types import UNSET, Unset
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from ..models.cookie import Cookie
|
|
19
|
+
from ..models.create_scrape_bulk_body_items_item_custom import (
|
|
20
|
+
CreateScrapeBulkBodyItemsItemCustom,
|
|
21
|
+
)
|
|
22
|
+
from ..models.create_scrape_bulk_body_items_item_headers import (
|
|
23
|
+
CreateScrapeBulkBodyItemsItemHeaders,
|
|
24
|
+
)
|
|
25
|
+
from ..models.create_scrape_bulk_body_items_item_metadata import (
|
|
26
|
+
CreateScrapeBulkBodyItemsItemMetadata,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
T = TypeVar("T", bound="CreateScrapeBulkBodyItemsItem")
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@_attrs_define
|
|
34
|
+
class CreateScrapeBulkBodyItemsItem:
|
|
35
|
+
"""
|
|
36
|
+
Attributes:
|
|
37
|
+
url (str):
|
|
38
|
+
formats (Union[Unset, list[CreateScrapeBulkBodyItemsItemFormatsItem]]):
|
|
39
|
+
country (Union[Unset, str]):
|
|
40
|
+
cookies (Union[Unset, list['Cookie']]):
|
|
41
|
+
headers (Union[Unset, CreateScrapeBulkBodyItemsItemHeaders]):
|
|
42
|
+
delay_ms (Union[Unset, int]):
|
|
43
|
+
timeout_ms (Union[Unset, int]):
|
|
44
|
+
metadata (Union[Unset, CreateScrapeBulkBodyItemsItemMetadata]):
|
|
45
|
+
clean_markdown (Union[Unset, bool]): Per-item override for LLM markdown cleaning. When
|
|
46
|
+
`true` and `markdown` is in `formats`, the converted
|
|
47
|
+
markdown is sent to Groq for cleaning (boilerplate
|
|
48
|
+
removal, ad stripping) before delivery. Graceful
|
|
49
|
+
degradation: any Groq failure returns the raw markdown
|
|
50
|
+
unchanged plus a warning. Billing: 3× credits and wire
|
|
51
|
+
bytes applied only when cleaning succeeds.
|
|
52
|
+
Default: False.
|
|
53
|
+
custom (Union[Unset, CreateScrapeBulkBodyItemsItemCustom]): Per-item user-supplied JSON payload, capped at 4096
|
|
54
|
+
UTF-8 bytes. Overrides the top-level `custom` for this
|
|
55
|
+
entry. Echoed on the entry's success envelope in the
|
|
56
|
+
bulk results response. Applies to scrape-type entries
|
|
57
|
+
only.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
url: str
|
|
61
|
+
formats: Union[Unset, list[CreateScrapeBulkBodyItemsItemFormatsItem]] = UNSET
|
|
62
|
+
country: Union[Unset, str] = UNSET
|
|
63
|
+
cookies: Union[Unset, list["Cookie"]] = UNSET
|
|
64
|
+
headers: Union[Unset, "CreateScrapeBulkBodyItemsItemHeaders"] = UNSET
|
|
65
|
+
delay_ms: Union[Unset, int] = UNSET
|
|
66
|
+
timeout_ms: Union[Unset, int] = UNSET
|
|
67
|
+
metadata: Union[Unset, "CreateScrapeBulkBodyItemsItemMetadata"] = UNSET
|
|
68
|
+
clean_markdown: Union[Unset, bool] = False
|
|
69
|
+
custom: Union[Unset, "CreateScrapeBulkBodyItemsItemCustom"] = UNSET
|
|
70
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
71
|
+
|
|
72
|
+
def to_dict(self) -> dict[str, Any]:
|
|
73
|
+
url = self.url
|
|
74
|
+
|
|
75
|
+
formats: Union[Unset, list[str]] = UNSET
|
|
76
|
+
if not isinstance(self.formats, Unset):
|
|
77
|
+
formats = []
|
|
78
|
+
for formats_item_data in self.formats:
|
|
79
|
+
formats_item = formats_item_data.value
|
|
80
|
+
formats.append(formats_item)
|
|
81
|
+
|
|
82
|
+
country = self.country
|
|
83
|
+
|
|
84
|
+
cookies: Union[Unset, list[dict[str, Any]]] = UNSET
|
|
85
|
+
if not isinstance(self.cookies, Unset):
|
|
86
|
+
cookies = []
|
|
87
|
+
for cookies_item_data in self.cookies:
|
|
88
|
+
cookies_item = cookies_item_data.to_dict()
|
|
89
|
+
cookies.append(cookies_item)
|
|
90
|
+
|
|
91
|
+
headers: Union[Unset, dict[str, Any]] = UNSET
|
|
92
|
+
if not isinstance(self.headers, Unset):
|
|
93
|
+
headers = self.headers.to_dict()
|
|
94
|
+
|
|
95
|
+
delay_ms = self.delay_ms
|
|
96
|
+
|
|
97
|
+
timeout_ms = self.timeout_ms
|
|
98
|
+
|
|
99
|
+
metadata: Union[Unset, dict[str, Any]] = UNSET
|
|
100
|
+
if not isinstance(self.metadata, Unset):
|
|
101
|
+
metadata = self.metadata.to_dict()
|
|
102
|
+
|
|
103
|
+
clean_markdown = self.clean_markdown
|
|
104
|
+
|
|
105
|
+
custom: Union[Unset, dict[str, Any]] = UNSET
|
|
106
|
+
if not isinstance(self.custom, Unset):
|
|
107
|
+
custom = self.custom.to_dict()
|
|
108
|
+
|
|
109
|
+
field_dict: dict[str, Any] = {}
|
|
110
|
+
field_dict.update(self.additional_properties)
|
|
111
|
+
field_dict.update(
|
|
112
|
+
{
|
|
113
|
+
"url": url,
|
|
114
|
+
}
|
|
115
|
+
)
|
|
116
|
+
if formats is not UNSET:
|
|
117
|
+
field_dict["formats"] = formats
|
|
118
|
+
if country is not UNSET:
|
|
119
|
+
field_dict["country"] = country
|
|
120
|
+
if cookies is not UNSET:
|
|
121
|
+
field_dict["cookies"] = cookies
|
|
122
|
+
if headers is not UNSET:
|
|
123
|
+
field_dict["headers"] = headers
|
|
124
|
+
if delay_ms is not UNSET:
|
|
125
|
+
field_dict["delay_ms"] = delay_ms
|
|
126
|
+
if timeout_ms is not UNSET:
|
|
127
|
+
field_dict["timeout_ms"] = timeout_ms
|
|
128
|
+
if metadata is not UNSET:
|
|
129
|
+
field_dict["metadata"] = metadata
|
|
130
|
+
if clean_markdown is not UNSET:
|
|
131
|
+
field_dict["clean_markdown"] = clean_markdown
|
|
132
|
+
if custom is not UNSET:
|
|
133
|
+
field_dict["custom"] = custom
|
|
134
|
+
|
|
135
|
+
return field_dict
|
|
136
|
+
|
|
137
|
+
@classmethod
|
|
138
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
139
|
+
from ..models.cookie import Cookie
|
|
140
|
+
from ..models.create_scrape_bulk_body_items_item_custom import (
|
|
141
|
+
CreateScrapeBulkBodyItemsItemCustom,
|
|
142
|
+
)
|
|
143
|
+
from ..models.create_scrape_bulk_body_items_item_headers import (
|
|
144
|
+
CreateScrapeBulkBodyItemsItemHeaders,
|
|
145
|
+
)
|
|
146
|
+
from ..models.create_scrape_bulk_body_items_item_metadata import (
|
|
147
|
+
CreateScrapeBulkBodyItemsItemMetadata,
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
d = dict(src_dict)
|
|
151
|
+
url = d.pop("url")
|
|
152
|
+
|
|
153
|
+
formats = []
|
|
154
|
+
_formats = d.pop("formats", UNSET)
|
|
155
|
+
for formats_item_data in _formats or []:
|
|
156
|
+
formats_item = CreateScrapeBulkBodyItemsItemFormatsItem(formats_item_data)
|
|
157
|
+
|
|
158
|
+
formats.append(formats_item)
|
|
159
|
+
|
|
160
|
+
country = d.pop("country", UNSET)
|
|
161
|
+
|
|
162
|
+
cookies = []
|
|
163
|
+
_cookies = d.pop("cookies", UNSET)
|
|
164
|
+
for cookies_item_data in _cookies or []:
|
|
165
|
+
cookies_item = Cookie.from_dict(cookies_item_data)
|
|
166
|
+
|
|
167
|
+
cookies.append(cookies_item)
|
|
168
|
+
|
|
169
|
+
_headers = d.pop("headers", UNSET)
|
|
170
|
+
headers: Union[Unset, CreateScrapeBulkBodyItemsItemHeaders]
|
|
171
|
+
if isinstance(_headers, Unset):
|
|
172
|
+
headers = UNSET
|
|
173
|
+
else:
|
|
174
|
+
headers = CreateScrapeBulkBodyItemsItemHeaders.from_dict(_headers)
|
|
175
|
+
|
|
176
|
+
delay_ms = d.pop("delay_ms", UNSET)
|
|
177
|
+
|
|
178
|
+
timeout_ms = d.pop("timeout_ms", UNSET)
|
|
179
|
+
|
|
180
|
+
_metadata = d.pop("metadata", UNSET)
|
|
181
|
+
metadata: Union[Unset, CreateScrapeBulkBodyItemsItemMetadata]
|
|
182
|
+
if isinstance(_metadata, Unset):
|
|
183
|
+
metadata = UNSET
|
|
184
|
+
else:
|
|
185
|
+
metadata = CreateScrapeBulkBodyItemsItemMetadata.from_dict(_metadata)
|
|
186
|
+
|
|
187
|
+
clean_markdown = d.pop("clean_markdown", UNSET)
|
|
188
|
+
|
|
189
|
+
_custom = d.pop("custom", UNSET)
|
|
190
|
+
custom: Union[Unset, CreateScrapeBulkBodyItemsItemCustom]
|
|
191
|
+
if isinstance(_custom, Unset):
|
|
192
|
+
custom = UNSET
|
|
193
|
+
else:
|
|
194
|
+
custom = CreateScrapeBulkBodyItemsItemCustom.from_dict(_custom)
|
|
195
|
+
|
|
196
|
+
create_scrape_bulk_body_items_item = cls(
|
|
197
|
+
url=url,
|
|
198
|
+
formats=formats,
|
|
199
|
+
country=country,
|
|
200
|
+
cookies=cookies,
|
|
201
|
+
headers=headers,
|
|
202
|
+
delay_ms=delay_ms,
|
|
203
|
+
timeout_ms=timeout_ms,
|
|
204
|
+
metadata=metadata,
|
|
205
|
+
clean_markdown=clean_markdown,
|
|
206
|
+
custom=custom,
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
create_scrape_bulk_body_items_item.additional_properties = d
|
|
210
|
+
return create_scrape_bulk_body_items_item
|
|
211
|
+
|
|
212
|
+
@property
|
|
213
|
+
def additional_keys(self) -> list[str]:
|
|
214
|
+
return list(self.additional_properties.keys())
|
|
215
|
+
|
|
216
|
+
def __getitem__(self, key: str) -> Any:
|
|
217
|
+
return self.additional_properties[key]
|
|
218
|
+
|
|
219
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
220
|
+
self.additional_properties[key] = value
|
|
221
|
+
|
|
222
|
+
def __delitem__(self, key: str) -> None:
|
|
223
|
+
del self.additional_properties[key]
|
|
224
|
+
|
|
225
|
+
def __contains__(self, key: str) -> bool:
|
|
226
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="CreateScrapeBulkBodyItemsItemCustom")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class CreateScrapeBulkBodyItemsItemCustom:
|
|
12
|
+
"""Per-item user-supplied JSON payload, capped at 4096
|
|
13
|
+
UTF-8 bytes. Overrides the top-level `custom` for this
|
|
14
|
+
entry. Echoed on the entry's success envelope in the
|
|
15
|
+
bulk results response. Applies to scrape-type entries
|
|
16
|
+
only.
|
|
17
|
+
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
21
|
+
|
|
22
|
+
def to_dict(self) -> dict[str, Any]:
|
|
23
|
+
field_dict: dict[str, Any] = {}
|
|
24
|
+
field_dict.update(self.additional_properties)
|
|
25
|
+
|
|
26
|
+
return field_dict
|
|
27
|
+
|
|
28
|
+
@classmethod
|
|
29
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
30
|
+
d = dict(src_dict)
|
|
31
|
+
create_scrape_bulk_body_items_item_custom = cls()
|
|
32
|
+
|
|
33
|
+
create_scrape_bulk_body_items_item_custom.additional_properties = d
|
|
34
|
+
return create_scrape_bulk_body_items_item_custom
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def additional_keys(self) -> list[str]:
|
|
38
|
+
return list(self.additional_properties.keys())
|
|
39
|
+
|
|
40
|
+
def __getitem__(self, key: str) -> Any:
|
|
41
|
+
return self.additional_properties[key]
|
|
42
|
+
|
|
43
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
44
|
+
self.additional_properties[key] = value
|
|
45
|
+
|
|
46
|
+
def __delitem__(self, key: str) -> None:
|
|
47
|
+
del self.additional_properties[key]
|
|
48
|
+
|
|
49
|
+
def __contains__(self, key: str) -> bool:
|
|
50
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="CreateScrapeBulkBodyItemsItemHeaders")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class CreateScrapeBulkBodyItemsItemHeaders:
|
|
12
|
+
""" """
|
|
13
|
+
|
|
14
|
+
additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict)
|
|
15
|
+
|
|
16
|
+
def to_dict(self) -> dict[str, Any]:
|
|
17
|
+
field_dict: dict[str, Any] = {}
|
|
18
|
+
field_dict.update(self.additional_properties)
|
|
19
|
+
|
|
20
|
+
return field_dict
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
24
|
+
d = dict(src_dict)
|
|
25
|
+
create_scrape_bulk_body_items_item_headers = cls()
|
|
26
|
+
|
|
27
|
+
create_scrape_bulk_body_items_item_headers.additional_properties = d
|
|
28
|
+
return create_scrape_bulk_body_items_item_headers
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def additional_keys(self) -> list[str]:
|
|
32
|
+
return list(self.additional_properties.keys())
|
|
33
|
+
|
|
34
|
+
def __getitem__(self, key: str) -> str:
|
|
35
|
+
return self.additional_properties[key]
|
|
36
|
+
|
|
37
|
+
def __setitem__(self, key: str, value: str) -> None:
|
|
38
|
+
self.additional_properties[key] = value
|
|
39
|
+
|
|
40
|
+
def __delitem__(self, key: str) -> None:
|
|
41
|
+
del self.additional_properties[key]
|
|
42
|
+
|
|
43
|
+
def __contains__(self, key: str) -> bool:
|
|
44
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="CreateScrapeBulkBodyItemsItemMetadata")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class CreateScrapeBulkBodyItemsItemMetadata:
|
|
12
|
+
""" """
|
|
13
|
+
|
|
14
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
15
|
+
|
|
16
|
+
def to_dict(self) -> dict[str, Any]:
|
|
17
|
+
field_dict: dict[str, Any] = {}
|
|
18
|
+
field_dict.update(self.additional_properties)
|
|
19
|
+
|
|
20
|
+
return field_dict
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
24
|
+
d = dict(src_dict)
|
|
25
|
+
create_scrape_bulk_body_items_item_metadata = cls()
|
|
26
|
+
|
|
27
|
+
create_scrape_bulk_body_items_item_metadata.additional_properties = d
|
|
28
|
+
return create_scrape_bulk_body_items_item_metadata
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def additional_keys(self) -> list[str]:
|
|
32
|
+
return list(self.additional_properties.keys())
|
|
33
|
+
|
|
34
|
+
def __getitem__(self, key: str) -> Any:
|
|
35
|
+
return self.additional_properties[key]
|
|
36
|
+
|
|
37
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
38
|
+
self.additional_properties[key] = value
|
|
39
|
+
|
|
40
|
+
def __delitem__(self, key: str) -> None:
|
|
41
|
+
del self.additional_properties[key]
|
|
42
|
+
|
|
43
|
+
def __contains__(self, key: str) -> bool:
|
|
44
|
+
return key in self.additional_properties
|