methodwebscan 0.0.159__py3-none-any.whl → 0.0.161__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.
- methodwebscan/__init__.py +2 -0
- methodwebscan/core/__init__.py +2 -0
- methodwebscan/core/pydantic_utilities.py +80 -119
- methodwebscan/core/serialization.py +7 -3
- methodwebscan/resources/__init__.py +2 -0
- methodwebscan/resources/common/__init__.py +2 -0
- methodwebscan/resources/common/resources/__init__.py +2 -0
- methodwebscan/resources/common/resources/config/__init__.py +2 -0
- methodwebscan/resources/common/resources/config/send_http_request_config.py +6 -6
- methodwebscan/resources/common/resources/http/__init__.py +2 -0
- methodwebscan/resources/common/resources/http/binary_body.py +3 -3
- methodwebscan/resources/common/resources/http/body.py +3 -2
- methodwebscan/resources/common/resources/http/form_body.py +2 -2
- methodwebscan/resources/common/resources/http/http_request.py +4 -4
- methodwebscan/resources/common/resources/http/http_request_params.py +3 -3
- methodwebscan/resources/common/resources/http/http_request_response.py +4 -4
- methodwebscan/resources/common/resources/http/http_response.py +3 -3
- methodwebscan/resources/common/resources/http/json_body.py +2 -2
- methodwebscan/resources/common/resources/http/multipart_body.py +3 -3
- methodwebscan/resources/common/resources/http/multipart_part.py +3 -3
- methodwebscan/resources/common/resources/http/text_body.py +2 -2
- methodwebscan/resources/common/resources/method/__init__.py +2 -0
- methodwebscan/resources/common/resources/method/browserbase_request_config.py +2 -2
- methodwebscan/resources/common/resources/method/browserbase_request_secrets.py +2 -2
- methodwebscan/resources/common/resources/method/headless_request_config.py +2 -2
- methodwebscan/resources/common/resources/nuclei/__init__.py +2 -0
- methodwebscan/resources/common/resources/nuclei/resources/__init__.py +2 -0
- methodwebscan/resources/common/resources/nuclei/resources/config/__init__.py +2 -0
- methodwebscan/resources/common/resources/nuclei/resources/config/nuclei_config.py +3 -3
- methodwebscan/resources/common/resources/nuclei/resources/config/nuclei_dast_config.py +3 -3
- methodwebscan/resources/common/resources/nuclei/resources/parameter/__init__.py +2 -0
- methodwebscan/resources/common/resources/nuclei/resources/parameter/request_parameter.py +3 -3
- methodwebscan/resources/common/resources/nuclei/resources/probe/__init__.py +2 -0
- methodwebscan/resources/common/resources/nuclei/resources/probe/nuclei_expected_matcher.py +2 -2
- methodwebscan/resources/common/resources/nuclei/resources/probe/nuclei_matcher_details.py +4 -4
- methodwebscan/resources/common/resources/nuclei/resources/probe/nuclei_probe.py +3 -3
- methodwebscan/resources/common/resources/nuclei/resources/report/__init__.py +2 -0
- methodwebscan/resources/common/resources/nuclei/resources/report/classification_details.py +4 -4
- methodwebscan/resources/common/resources/nuclei/resources/report/cve_details.py +2 -2
- methodwebscan/resources/common/resources/nuclei/resources/report/cwe_details.py +2 -2
- methodwebscan/resources/common/resources/nuclei/resources/report/nuclei_attempt_info.py +3 -3
- methodwebscan/resources/common/resources/nuclei/resources/report/nuclei_finding_info.py +3 -3
- methodwebscan/resources/common/resources/nuclei/resources/report/nuclei_target_info.py +3 -3
- methodwebscan/resources/discover/__init__.py +2 -0
- methodwebscan/resources/discover/resources/__init__.py +2 -0
- methodwebscan/resources/discover/resources/application/__init__.py +2 -0
- methodwebscan/resources/discover/resources/application/application_fingerprint_attempt.py +3 -3
- methodwebscan/resources/discover/resources/application/application_fingerprint_module.py +4 -4
- methodwebscan/resources/discover/resources/application/application_fingerprint_target.py +3 -3
- methodwebscan/resources/discover/resources/application/application_fingerprints.py +3 -3
- methodwebscan/resources/discover/resources/application/application_resource.py +4 -4
- methodwebscan/resources/discover/resources/application/application_resource_config_type.py +1 -0
- methodwebscan/resources/discover/resources/application/discover_application_config.py +3 -3
- methodwebscan/resources/discover/resources/application/discover_application_report.py +4 -4
- methodwebscan/resources/discover/resources/application/discover_application_result.py +3 -3
- methodwebscan/resources/discover/resources/directory/__init__.py +2 -0
- methodwebscan/resources/discover/resources/directory/directory_target_info.py +3 -3
- methodwebscan/resources/discover/resources/directory/discover_directory_config.py +4 -4
- methodwebscan/resources/discover/resources/directory/discover_directory_report.py +4 -4
- methodwebscan/resources/discover/resources/directory/discover_directory_result.py +3 -3
- methodwebscan/resources/discover/resources/page/__init__.py +2 -0
- methodwebscan/resources/discover/resources/page/discover_page_config.py +5 -5
- methodwebscan/resources/discover/resources/page/discover_page_report.py +4 -4
- methodwebscan/resources/discover/resources/page/discover_page_result.py +3 -3
- methodwebscan/resources/discover/resources/probe/__init__.py +2 -0
- methodwebscan/resources/discover/resources/probe/discover_probe_config.py +5 -5
- methodwebscan/resources/discover/resources/probe/discover_probe_report.py +4 -4
- methodwebscan/resources/discover/resources/probe/discover_probe_result.py +3 -3
- methodwebscan/resources/discover/resources/route/__init__.py +2 -0
- methodwebscan/resources/discover/resources/route/discover_route_config.py +5 -5
- methodwebscan/resources/discover/resources/route/discover_route_report.py +4 -4
- methodwebscan/resources/discover/resources/route/discover_route_result.py +3 -3
- methodwebscan/resources/discover/resources/route/route_body_param.py +2 -2
- methodwebscan/resources/discover/resources/route/route_details.py +4 -4
- methodwebscan/resources/discover/resources/route/route_query_param.py +2 -2
- methodwebscan/resources/discover/resources/saas/__init__.py +2 -0
- methodwebscan/resources/discover/resources/saas/discover_saas_config.py +4 -4
- methodwebscan/resources/discover/resources/saas/discover_saas_report.py +4 -4
- methodwebscan/resources/discover/resources/saas/discover_saas_result.py +3 -3
- methodwebscan/resources/discover/resources/saas/saas_active_attempt.py +3 -3
- methodwebscan/resources/discover/resources/saas/saas_active_company.py +3 -3
- methodwebscan/resources/discover/resources/saas/saas_active_finding.py +2 -2
- methodwebscan/resources/discover/resources/saas/saas_active_request.py +4 -4
- methodwebscan/resources/discover/resources/saas/saas_fingerprint_entry.py +4 -4
- methodwebscan/resources/discover/resources/saas/saas_fingerprint_file.py +3 -3
- methodwebscan/resources/discover/resources/saas/saas_fingerprint_profile.py +2 -2
- methodwebscan/resources/enumerate/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/apiapplication/__init__.py +4 -0
- methodwebscan/resources/enumerate/resources/apiapplication/resources/__init__.py +4 -0
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/api_application_route_details.py +9 -9
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/o_auth_flow.py +3 -3
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/o_auth_flow_details.py +2 -2
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/request_schema.py +4 -5
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/schema_property.py +4 -5
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/security_requirement.py +2 -2
- methodwebscan/resources/enumerate/resources/apiapplication/resources/common/security_scheme.py +3 -3
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/__init__.py +4 -0
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/enumerate_graphql_config.py +2 -2
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/enumerate_graphql_data.py +40 -0
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/enumerate_graphql_report.py +9 -9
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/enumerate_graphql_result.py +10 -24
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/graph_ql_data.py +3 -3
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/graph_ql_field.py +2 -2
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/graph_ql_query.py +2 -2
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/graph_ql_schema.py +3 -3
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/graph_ql_schema_data.py +3 -3
- methodwebscan/resources/enumerate/resources/apiapplication/resources/graphql/graph_ql_type.py +3 -3
- methodwebscan/resources/enumerate/resources/apiapplication/resources/swagger/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/apiapplication/resources/swagger/enumerate_swagger_config.py +2 -2
- methodwebscan/resources/enumerate/resources/apiapplication/resources/swagger/enumerate_swagger_report.py +9 -9
- methodwebscan/resources/enumerate/resources/apiapplication/resources/swagger/enumerate_swagger_result.py +10 -10
- methodwebscan/resources/enumerate/resources/cms/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/cms/resources/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/plugins/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/plugins/enumerate_wordpress_plugins_config.py +3 -3
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/plugins/enumerate_wordpress_plugins_report.py +4 -4
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/plugins/enumerate_wordpress_plugins_result.py +3 -3
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/plugins/wordpress_api_response.py +2 -2
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/plugins/wordpress_plugin_details.py +3 -3
- methodwebscan/resources/enumerate/resources/cms/resources/wordpress/resources/plugins/wordpress_plugins_target.py +3 -3
- methodwebscan/resources/enumerate/resources/general/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/general/resources/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/general/resources/ratelimit/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/general/resources/ratelimit/enumerate_rate_limit_config.py +2 -2
- methodwebscan/resources/enumerate/resources/general/resources/ratelimit/enumerate_rate_limit_report.py +4 -4
- methodwebscan/resources/enumerate/resources/general/resources/ratelimit/enumerate_rate_limit_result.py +3 -3
- methodwebscan/resources/enumerate/resources/general/resources/ratelimit/rate_limit_attempt.py +4 -4
- methodwebscan/resources/enumerate/resources/general/resources/ratelimit/rate_limit_target.py +3 -3
- methodwebscan/resources/enumerate/resources/kube/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/kube/resources/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/kube/resources/kube/__init__.py +2 -0
- methodwebscan/resources/enumerate/resources/kube/resources/kube/enumerate_kube_config.py +3 -3
- methodwebscan/resources/enumerate/resources/kube/resources/kube/enumerate_kube_report.py +4 -4
- methodwebscan/resources/enumerate/resources/kube/resources/kube/enumerate_kube_result.py +3 -3
- methodwebscan/resources/pentest/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/dast/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/dast/pentest_application_dast_config.py +4 -4
- methodwebscan/resources/pentest/resources/application/resources/dast/pentest_application_dast_report.py +4 -4
- methodwebscan/resources/pentest/resources/application/resources/dast/pentest_application_dast_result.py +3 -3
- methodwebscan/resources/pentest/resources/application/resources/scan/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/cve/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/cve/pentest_application_cve_config.py +2 -2
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/cve/pentest_application_cve_report.py +4 -4
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/cve/pentest_application_cve_result.py +3 -3
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/misconfiguration/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/misconfiguration/pentest_application_misconfiguration_config.py +3 -3
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/misconfiguration/pentest_application_misconfiguration_report.py +4 -4
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/misconfiguration/pentest_application_misconfiguration_result.py +3 -3
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/technology/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/technology/pentest_application_technology_config.py +3 -3
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/technology/pentest_application_technology_report.py +4 -4
- methodwebscan/resources/pentest/resources/application/resources/scan/resources/technology/pentest_application_technology_result.py +3 -3
- methodwebscan/resources/pentest/resources/cms/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/cms/resources/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/resources/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/resources/xmlrpcfunctionsexposed/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/resources/xmlrpcfunctionsexposed/pentest_cms_wordpress_xmlrpc_functions_exposed_config.py +2 -2
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/resources/xmlrpcfunctionsexposed/pentest_cms_wordpress_xmlrpc_functions_exposed_report.py +4 -4
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/resources/xmlrpcfunctionsexposed/xmlrpc_functions_exposed_attempt.py +3 -3
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/resources/xmlrpcfunctionsexposed/xmlrpc_functions_exposed_result.py +3 -3
- methodwebscan/resources/pentest/resources/cms/resources/wordpress/resources/xmlrpcfunctionsexposed/xmlrpc_functions_exposed_target.py +4 -4
- methodwebscan/resources/pentest/resources/route/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/route/resources/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/pentest_route_static_asset_takeover_config.py +4 -4
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/pentest_route_static_asset_takeover_report.py +4 -4
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/pentest_route_static_asset_takeover_result.py +3 -3
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/static_asset_takeover_fingerprint.py +2 -2
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/static_asset_takeover_static_request.py +3 -3
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/static_asset_takeover_test.py +3 -3
- methodwebscan/resources/pentest/resources/route/resources/staticassettakeover/static_asset_takeover_vulnerable_details.py +3 -3
- methodwebscan/resources/pentest/resources/waf/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/waf/resources/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/waf/resources/detect/__init__.py +2 -0
- methodwebscan/resources/pentest/resources/waf/resources/detect/pentest_waf_detect_config.py +3 -3
- methodwebscan/resources/pentest/resources/waf/resources/detect/pentest_waf_detect_report.py +4 -4
- methodwebscan/resources/pentest/resources/waf/resources/detect/waf_body.py +3 -3
- methodwebscan/resources/pentest/resources/waf/resources/detect/waf_detect_attempt.py +4 -4
- methodwebscan/resources/pentest/resources/waf/resources/detect/waf_detect_result.py +3 -3
- methodwebscan/resources/pentest/resources/waf/resources/detect/waf_detect_target.py +3 -3
- methodwebscan/resources/pentest/resources/waf/resources/detect/waf_detected.py +5 -5
- methodwebscan/resources/pentest/resources/waf/resources/detect/waf_fingerprint.py +3 -3
- {methodwebscan-0.0.159.dist-info → methodwebscan-0.0.161.dist-info}/METADATA +3 -2
- {methodwebscan-0.0.159.dist-info → methodwebscan-0.0.161.dist-info}/RECORD +194 -193
- {methodwebscan-0.0.159.dist-info → methodwebscan-0.0.161.dist-info}/WHEEL +1 -1
methodwebscan/__init__.py
CHANGED
methodwebscan/core/__init__.py
CHANGED
|
@@ -2,76 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
# nopycln: file
|
|
4
4
|
import datetime as dt
|
|
5
|
-
import typing
|
|
6
5
|
from collections import defaultdict
|
|
7
|
-
|
|
8
|
-
import typing_extensions
|
|
6
|
+
from typing import Any, Callable, Dict, List, Mapping, Tuple, Type, TypeVar, Union, cast
|
|
9
7
|
|
|
10
8
|
import pydantic
|
|
11
9
|
|
|
12
|
-
from .datetime_utils import serialize_datetime
|
|
13
|
-
|
|
14
10
|
IS_PYDANTIC_V2 = pydantic.VERSION.startswith("2.")
|
|
15
11
|
|
|
16
12
|
if IS_PYDANTIC_V2:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
from pydantic.v1.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
from pydantic.v1.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
from pydantic.v1.json import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2
|
|
26
|
-
ENCODERS_BY_TYPE as encoders_by_type,
|
|
27
|
-
)
|
|
28
|
-
from pydantic.v1.typing import ( # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2
|
|
29
|
-
get_args as get_args,
|
|
30
|
-
)
|
|
31
|
-
from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2
|
|
32
|
-
get_origin as get_origin,
|
|
33
|
-
)
|
|
34
|
-
from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2
|
|
35
|
-
is_literal_type as is_literal_type,
|
|
36
|
-
)
|
|
37
|
-
from pydantic.v1.typing import ( # pyright: ignore[reportMissingImports] # Pydantic v2
|
|
38
|
-
is_union as is_union,
|
|
39
|
-
)
|
|
40
|
-
from pydantic.v1.fields import ModelField as ModelField # type: ignore # pyright: ignore[reportMissingImports] # Pydantic v2
|
|
13
|
+
from pydantic.v1.datetime_parse import parse_date as parse_date
|
|
14
|
+
from pydantic.v1.datetime_parse import parse_datetime as parse_datetime
|
|
15
|
+
from pydantic.v1.fields import ModelField as ModelField
|
|
16
|
+
from pydantic.v1.json import ENCODERS_BY_TYPE as encoders_by_type # type: ignore[attr-defined]
|
|
17
|
+
from pydantic.v1.typing import get_args as get_args
|
|
18
|
+
from pydantic.v1.typing import get_origin as get_origin
|
|
19
|
+
from pydantic.v1.typing import is_literal_type as is_literal_type
|
|
20
|
+
from pydantic.v1.typing import is_union as is_union
|
|
41
21
|
else:
|
|
42
|
-
from pydantic.datetime_parse import parse_date as parse_date # type: ignore
|
|
43
|
-
from pydantic.datetime_parse import parse_datetime as parse_datetime # type: ignore
|
|
44
|
-
from pydantic.fields import ModelField as ModelField # type: ignore
|
|
45
|
-
from pydantic.json import ENCODERS_BY_TYPE as encoders_by_type # type: ignore
|
|
46
|
-
from pydantic.typing import get_args as get_args # type: ignore
|
|
47
|
-
from pydantic.typing import get_origin as get_origin # type: ignore
|
|
48
|
-
from pydantic.typing import is_literal_type as is_literal_type # type: ignore
|
|
49
|
-
from pydantic.typing import is_union as is_union # type: ignore
|
|
50
|
-
|
|
51
|
-
# isort: on
|
|
22
|
+
from pydantic.datetime_parse import parse_date as parse_date # type: ignore[no-redef]
|
|
23
|
+
from pydantic.datetime_parse import parse_datetime as parse_datetime # type: ignore[no-redef]
|
|
24
|
+
from pydantic.fields import ModelField as ModelField # type: ignore[attr-defined, no-redef]
|
|
25
|
+
from pydantic.json import ENCODERS_BY_TYPE as encoders_by_type # type: ignore[no-redef]
|
|
26
|
+
from pydantic.typing import get_args as get_args # type: ignore[no-redef]
|
|
27
|
+
from pydantic.typing import get_origin as get_origin # type: ignore[no-redef]
|
|
28
|
+
from pydantic.typing import is_literal_type as is_literal_type # type: ignore[no-redef]
|
|
29
|
+
from pydantic.typing import is_union as is_union # type: ignore[no-redef]
|
|
52
30
|
|
|
31
|
+
from .datetime_utils import serialize_datetime
|
|
32
|
+
from typing_extensions import TypeAlias
|
|
53
33
|
|
|
54
|
-
T =
|
|
55
|
-
Model =
|
|
34
|
+
T = TypeVar("T")
|
|
35
|
+
Model = TypeVar("Model", bound=pydantic.BaseModel)
|
|
56
36
|
|
|
57
37
|
|
|
58
|
-
def parse_obj_as(type_:
|
|
38
|
+
def parse_obj_as(type_: Type[T], object_: Any) -> T:
|
|
59
39
|
if IS_PYDANTIC_V2:
|
|
60
|
-
adapter = pydantic.TypeAdapter(type_) # type: ignore
|
|
40
|
+
adapter = pydantic.TypeAdapter(type_) # type: ignore[attr-defined]
|
|
61
41
|
return adapter.validate_python(object_)
|
|
62
|
-
|
|
63
|
-
return pydantic.parse_obj_as(type_, object_)
|
|
42
|
+
return pydantic.parse_obj_as(type_, object_)
|
|
64
43
|
|
|
65
44
|
|
|
66
|
-
def to_jsonable_with_fallback(
|
|
67
|
-
obj: typing.Any, fallback_serializer: typing.Callable[[typing.Any], typing.Any]
|
|
68
|
-
) -> typing.Any:
|
|
45
|
+
def to_jsonable_with_fallback(obj: Any, fallback_serializer: Callable[[Any], Any]) -> Any:
|
|
69
46
|
if IS_PYDANTIC_V2:
|
|
70
47
|
from pydantic_core import to_jsonable_python
|
|
71
48
|
|
|
72
49
|
return to_jsonable_python(obj, fallback=fallback_serializer)
|
|
73
|
-
|
|
74
|
-
return fallback_serializer(obj)
|
|
50
|
+
return fallback_serializer(obj)
|
|
75
51
|
|
|
76
52
|
|
|
77
53
|
class UniversalBaseModel(pydantic.BaseModel):
|
|
@@ -80,81 +56,77 @@ class UniversalBaseModel(pydantic.BaseModel):
|
|
|
80
56
|
smart_union = True
|
|
81
57
|
allow_population_by_field_name = True
|
|
82
58
|
json_encoders = {dt.datetime: serialize_datetime}
|
|
83
|
-
# Allow fields
|
|
59
|
+
# Allow fields beginning with `model_` to be used in the model
|
|
84
60
|
protected_namespaces = ()
|
|
85
61
|
|
|
86
|
-
def json(self, **kwargs:
|
|
87
|
-
kwargs_with_defaults
|
|
62
|
+
def json(self, **kwargs: Any) -> str:
|
|
63
|
+
kwargs_with_defaults = {
|
|
88
64
|
"by_alias": True,
|
|
89
65
|
"exclude_unset": True,
|
|
90
66
|
**kwargs,
|
|
91
67
|
}
|
|
92
68
|
if IS_PYDANTIC_V2:
|
|
93
|
-
return super().model_dump_json(**kwargs_with_defaults) # type: ignore
|
|
94
|
-
|
|
95
|
-
return super().json(**kwargs_with_defaults)
|
|
69
|
+
return super().model_dump_json(**kwargs_with_defaults) # type: ignore[misc]
|
|
70
|
+
return super().json(**kwargs_with_defaults)
|
|
96
71
|
|
|
97
|
-
def dict(self, **kwargs:
|
|
72
|
+
def dict(self, **kwargs: Any) -> Dict[str, Any]:
|
|
98
73
|
"""
|
|
99
74
|
Override the default dict method to `exclude_unset` by default. This function patches
|
|
100
75
|
`exclude_unset` to work include fields within non-None default values.
|
|
101
76
|
"""
|
|
102
|
-
# Note: the logic here is
|
|
77
|
+
# Note: the logic here is multiplexed given the levers exposed in Pydantic V1 vs V2
|
|
103
78
|
# Pydantic V1's .dict can be extremely slow, so we do not want to call it twice.
|
|
104
79
|
#
|
|
105
80
|
# We'd ideally do the same for Pydantic V2, but it shells out to a library to serialize models
|
|
106
81
|
# that we have less control over, and this is less intrusive than custom serializers for now.
|
|
107
82
|
if IS_PYDANTIC_V2:
|
|
108
|
-
kwargs_with_defaults_exclude_unset
|
|
83
|
+
kwargs_with_defaults_exclude_unset = {
|
|
109
84
|
**kwargs,
|
|
110
85
|
"by_alias": True,
|
|
111
86
|
"exclude_unset": True,
|
|
112
87
|
"exclude_none": False,
|
|
113
88
|
}
|
|
114
|
-
kwargs_with_defaults_exclude_none
|
|
89
|
+
kwargs_with_defaults_exclude_none = {
|
|
115
90
|
**kwargs,
|
|
116
91
|
"by_alias": True,
|
|
117
92
|
"exclude_none": True,
|
|
118
93
|
"exclude_unset": False,
|
|
119
94
|
}
|
|
120
95
|
return deep_union_pydantic_dicts(
|
|
121
|
-
super().model_dump(**kwargs_with_defaults_exclude_unset), # type: ignore
|
|
122
|
-
super().model_dump(**kwargs_with_defaults_exclude_none), # type: ignore
|
|
96
|
+
super().model_dump(**kwargs_with_defaults_exclude_unset), # type: ignore[misc]
|
|
97
|
+
super().model_dump(**kwargs_with_defaults_exclude_none), # type: ignore[misc]
|
|
123
98
|
)
|
|
124
99
|
|
|
125
|
-
|
|
126
|
-
_fields_set = self.__fields_set__.copy()
|
|
100
|
+
_fields_set = self.__fields_set__.copy()
|
|
127
101
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
102
|
+
fields = _get_model_fields(self.__class__)
|
|
103
|
+
for name, field in fields.items():
|
|
104
|
+
if name not in _fields_set:
|
|
105
|
+
default = _get_field_default(field)
|
|
132
106
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
107
|
+
# If the default values are non-null act like they've been set
|
|
108
|
+
# This effectively allows exclude_unset to work like exclude_none where
|
|
109
|
+
# the latter passes through intentionally set none values.
|
|
110
|
+
if default is not None or ("exclude_unset" in kwargs and not kwargs["exclude_unset"]):
|
|
111
|
+
_fields_set.add(name)
|
|
138
112
|
|
|
139
|
-
|
|
140
|
-
|
|
113
|
+
if default is not None:
|
|
114
|
+
self.__fields_set__.add(name)
|
|
141
115
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
116
|
+
kwargs_with_defaults_exclude_unset_include_fields = {
|
|
117
|
+
"by_alias": True,
|
|
118
|
+
"exclude_unset": True,
|
|
119
|
+
"include": _fields_set,
|
|
120
|
+
**kwargs,
|
|
121
|
+
}
|
|
148
122
|
|
|
149
|
-
|
|
123
|
+
return super().dict(**kwargs_with_defaults_exclude_unset_include_fields)
|
|
150
124
|
|
|
151
125
|
|
|
152
|
-
def _union_list_of_pydantic_dicts(
|
|
153
|
-
|
|
154
|
-
) -> typing.List[typing.Any]:
|
|
155
|
-
converted_list: typing.List[typing.Any] = []
|
|
126
|
+
def _union_list_of_pydantic_dicts(source: List[Any], destination: List[Any]) -> List[Any]:
|
|
127
|
+
converted_list: List[Any] = []
|
|
156
128
|
for i, item in enumerate(source):
|
|
157
|
-
destination_value = destination[i]
|
|
129
|
+
destination_value = destination[i]
|
|
158
130
|
if isinstance(item, dict):
|
|
159
131
|
converted_list.append(deep_union_pydantic_dicts(item, destination_value))
|
|
160
132
|
elif isinstance(item, list):
|
|
@@ -164,9 +136,7 @@ def _union_list_of_pydantic_dicts(
|
|
|
164
136
|
return converted_list
|
|
165
137
|
|
|
166
138
|
|
|
167
|
-
def deep_union_pydantic_dicts(
|
|
168
|
-
source: typing.Dict[str, typing.Any], destination: typing.Dict[str, typing.Any]
|
|
169
|
-
) -> typing.Dict[str, typing.Any]:
|
|
139
|
+
def deep_union_pydantic_dicts(source: Dict[str, Any], destination: Dict[str, Any]) -> Dict[str, Any]:
|
|
170
140
|
for key, value in source.items():
|
|
171
141
|
node = destination.setdefault(key, {})
|
|
172
142
|
if isinstance(value, dict):
|
|
@@ -184,18 +154,16 @@ def deep_union_pydantic_dicts(
|
|
|
184
154
|
|
|
185
155
|
if IS_PYDANTIC_V2:
|
|
186
156
|
|
|
187
|
-
class V2RootModel(UniversalBaseModel, pydantic.RootModel): # type: ignore
|
|
157
|
+
class V2RootModel(UniversalBaseModel, pydantic.RootModel): # type: ignore[name-defined, type-arg]
|
|
188
158
|
pass
|
|
189
159
|
|
|
190
|
-
UniversalRootModel:
|
|
160
|
+
UniversalRootModel: TypeAlias = V2RootModel
|
|
191
161
|
else:
|
|
192
|
-
UniversalRootModel:
|
|
162
|
+
UniversalRootModel: TypeAlias = UniversalBaseModel # type: ignore[misc, no-redef]
|
|
193
163
|
|
|
194
164
|
|
|
195
|
-
def encode_by_type(o:
|
|
196
|
-
encoders_by_class_tuples:
|
|
197
|
-
defaultdict(tuple)
|
|
198
|
-
)
|
|
165
|
+
def encode_by_type(o: Any) -> Any:
|
|
166
|
+
encoders_by_class_tuples: Dict[Callable[[Any], Any], Tuple[Any, ...]] = defaultdict(tuple)
|
|
199
167
|
for type_, encoder in encoders_by_type.items():
|
|
200
168
|
encoders_by_class_tuples[encoder] += (type_,)
|
|
201
169
|
|
|
@@ -206,54 +174,47 @@ def encode_by_type(o: typing.Any) -> typing.Any:
|
|
|
206
174
|
return encoder(o)
|
|
207
175
|
|
|
208
176
|
|
|
209
|
-
def update_forward_refs(model:
|
|
177
|
+
def update_forward_refs(model: Type["Model"], **localns: Any) -> None:
|
|
210
178
|
if IS_PYDANTIC_V2:
|
|
211
|
-
model.model_rebuild(raise_errors=False) # type: ignore
|
|
179
|
+
model.model_rebuild(raise_errors=False) # type: ignore[attr-defined]
|
|
212
180
|
else:
|
|
213
181
|
model.update_forward_refs(**localns)
|
|
214
182
|
|
|
215
183
|
|
|
216
184
|
# Mirrors Pydantic's internal typing
|
|
217
|
-
AnyCallable =
|
|
185
|
+
AnyCallable = Callable[..., Any]
|
|
218
186
|
|
|
219
187
|
|
|
220
|
-
def universal_root_validator(
|
|
221
|
-
pre: bool = False,
|
|
222
|
-
) -> typing.Callable[[AnyCallable], AnyCallable]:
|
|
188
|
+
def universal_root_validator(pre: bool = False) -> Callable[[AnyCallable], AnyCallable]:
|
|
223
189
|
def decorator(func: AnyCallable) -> AnyCallable:
|
|
224
190
|
if IS_PYDANTIC_V2:
|
|
225
|
-
return pydantic.model_validator(mode="before" if pre else "after")(func) # type: ignore
|
|
226
|
-
|
|
227
|
-
return pydantic.root_validator(pre=pre)(func) # type: ignore # Pydantic v1
|
|
191
|
+
return cast(AnyCallable, pydantic.model_validator(mode="before" if pre else "after")(func)) # type: ignore[attr-defined]
|
|
192
|
+
return cast(AnyCallable, pydantic.root_validator(pre=pre)(func)) # type: ignore[call-overload]
|
|
228
193
|
|
|
229
194
|
return decorator
|
|
230
195
|
|
|
231
196
|
|
|
232
|
-
def universal_field_validator(field_name: str, pre: bool = False) ->
|
|
197
|
+
def universal_field_validator(field_name: str, pre: bool = False) -> Callable[[AnyCallable], AnyCallable]:
|
|
233
198
|
def decorator(func: AnyCallable) -> AnyCallable:
|
|
234
199
|
if IS_PYDANTIC_V2:
|
|
235
|
-
return pydantic.field_validator(field_name, mode="before" if pre else "after")(func) # type: ignore
|
|
236
|
-
|
|
237
|
-
return pydantic.validator(field_name, pre=pre)(func) # type: ignore # Pydantic v1
|
|
200
|
+
return cast(AnyCallable, pydantic.field_validator(field_name, mode="before" if pre else "after")(func)) # type: ignore[attr-defined]
|
|
201
|
+
return cast(AnyCallable, pydantic.validator(field_name, pre=pre)(func))
|
|
238
202
|
|
|
239
203
|
return decorator
|
|
240
204
|
|
|
241
205
|
|
|
242
|
-
PydanticField =
|
|
206
|
+
PydanticField = Union[ModelField, pydantic.fields.FieldInfo]
|
|
243
207
|
|
|
244
208
|
|
|
245
|
-
def _get_model_fields(
|
|
246
|
-
model: typing.Type["Model"],
|
|
247
|
-
) -> typing.Mapping[str, PydanticField]:
|
|
209
|
+
def _get_model_fields(model: Type["Model"]) -> Mapping[str, PydanticField]:
|
|
248
210
|
if IS_PYDANTIC_V2:
|
|
249
|
-
return model.model_fields # type: ignore
|
|
250
|
-
|
|
251
|
-
return model.__fields__ # type: ignore # Pydantic v1
|
|
211
|
+
return cast(Mapping[str, PydanticField], model.model_fields) # type: ignore[attr-defined]
|
|
212
|
+
return cast(Mapping[str, PydanticField], model.__fields__)
|
|
252
213
|
|
|
253
214
|
|
|
254
|
-
def _get_field_default(field: PydanticField) ->
|
|
215
|
+
def _get_field_default(field: PydanticField) -> Any:
|
|
255
216
|
try:
|
|
256
|
-
value = field.get_default() # type: ignore
|
|
217
|
+
value = field.get_default() # type: ignore[union-attr]
|
|
257
218
|
except:
|
|
258
219
|
value = field.default
|
|
259
220
|
if IS_PYDANTIC_V2:
|
|
@@ -4,9 +4,8 @@ import collections
|
|
|
4
4
|
import inspect
|
|
5
5
|
import typing
|
|
6
6
|
|
|
7
|
-
import typing_extensions
|
|
8
|
-
|
|
9
7
|
import pydantic
|
|
8
|
+
import typing_extensions
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
class FieldMetadata:
|
|
@@ -161,7 +160,12 @@ def _convert_mapping(
|
|
|
161
160
|
direction: typing.Literal["read", "write"],
|
|
162
161
|
) -> typing.Mapping[str, object]:
|
|
163
162
|
converted_object: typing.Dict[str, object] = {}
|
|
164
|
-
|
|
163
|
+
try:
|
|
164
|
+
annotations = typing_extensions.get_type_hints(expected_type, include_extras=True)
|
|
165
|
+
except NameError:
|
|
166
|
+
# The TypedDict contains a circular reference, so
|
|
167
|
+
# we use the __annotations__ attribute directly.
|
|
168
|
+
annotations = getattr(expected_type, "__annotations__", {})
|
|
165
169
|
aliases_to_field_names = _get_alias_to_field_name(annotations)
|
|
166
170
|
for key, value in object_.items():
|
|
167
171
|
if direction == "read" and key in aliases_to_field_names:
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
|
-
from ..http.http_request import HttpRequest
|
|
5
|
-
import pydantic
|
|
6
|
-
from ..method.request_method import RequestMethod
|
|
7
3
|
import typing
|
|
8
|
-
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from ..http.http_request import HttpRequest
|
|
9
8
|
from ..method.browserbase_request_config import BrowserbaseRequestConfig
|
|
10
9
|
from ..method.browserbase_request_secrets import BrowserbaseRequestSecrets
|
|
11
|
-
from
|
|
10
|
+
from ..method.headless_request_config import HeadlessRequestConfig
|
|
11
|
+
from ..method.request_method import RequestMethod
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class SendHttpRequestConfig(UniversalBaseModel):
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
|
-
import pydantic
|
|
5
3
|
import typing
|
|
6
|
-
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class BinaryBody(UniversalBaseModel):
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
|
|
4
|
+
|
|
5
5
|
import typing
|
|
6
|
+
|
|
6
7
|
import pydantic
|
|
7
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
8
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
8
9
|
from .multipart_part import MultipartPart
|
|
9
10
|
|
|
10
11
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
4
|
+
|
|
5
5
|
import pydantic
|
|
6
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class FormBody(UniversalBaseModel):
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import datetime as dt
|
|
4
|
+
import typing
|
|
5
|
+
|
|
4
6
|
import pydantic
|
|
7
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
5
8
|
from .http_method import HttpMethod
|
|
6
|
-
import typing
|
|
7
9
|
from .http_request_params import HttpRequestParams
|
|
8
|
-
import datetime as dt
|
|
9
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class HttpRequest(UniversalBaseModel):
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
5
|
-
|
|
6
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
4
|
+
|
|
7
5
|
import pydantic
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .body import Body
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class HttpRequestParams(UniversalBaseModel):
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
|
-
from .http_request import HttpRequest
|
|
5
3
|
import typing
|
|
6
|
-
|
|
7
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
4
|
+
|
|
8
5
|
import pydantic
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .http_request import HttpRequest
|
|
8
|
+
from .http_response import HttpResponse
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class HttpRequestResponse(UniversalBaseModel):
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import datetime as dt
|
|
4
4
|
import typing
|
|
5
|
+
|
|
5
6
|
import pydantic
|
|
7
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
6
8
|
from .body import Body
|
|
7
|
-
import datetime as dt
|
|
8
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class HttpResponse(UniversalBaseModel):
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
4
|
+
|
|
5
5
|
import pydantic
|
|
6
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class JsonBody(UniversalBaseModel):
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
5
|
-
|
|
4
|
+
|
|
6
5
|
import pydantic
|
|
7
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .multipart_part import MultipartPart
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class MultipartBody(UniversalBaseModel):
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
5
|
-
|
|
6
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
4
|
+
|
|
7
5
|
import pydantic
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
|
+
from .binary_body import BinaryBody
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class MultipartPart(UniversalBaseModel):
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
4
|
+
|
|
5
5
|
import pydantic
|
|
6
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class TextBody(UniversalBaseModel):
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
|
|
3
5
|
from .browserbase_request_config import BrowserbaseRequestConfig
|
|
4
6
|
from .browserbase_request_secrets import BrowserbaseRequestSecrets
|
|
5
7
|
from .headless_request_config import HeadlessRequestConfig
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
5
|
-
|
|
4
|
+
|
|
6
5
|
import pydantic
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class BrowserbaseRequestConfig(UniversalBaseModel):
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
5
3
|
import typing
|
|
4
|
+
|
|
6
5
|
import pydantic
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class BrowserbaseRequestSecrets(UniversalBaseModel):
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .....core.pydantic_utilities import UniversalBaseModel
|
|
4
3
|
import typing
|
|
4
|
+
|
|
5
5
|
import pydantic
|
|
6
|
-
from .....core.pydantic_utilities import IS_PYDANTIC_V2
|
|
6
|
+
from .....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class HeadlessRequestConfig(UniversalBaseModel):
|