From f82c661f58f11863076bc7696e885477f1e175f9 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 31 Mar 2026 00:42:39 +0000 Subject: [PATCH 1/2] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.760.0 --- .speakeasy/gen.lock | 48 +++++++++++++-------------- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 14 ++++---- RELEASES.md | 12 ++++++- docs/models/socks.md | 3 +- pyproject.toml | 2 +- src/censys_platform/_version.py | 8 ++--- src/censys_platform/basesdk.py | 9 ++++- src/censys_platform/models/socks.py | 25 ++++++++++++-- src/censys_platform/utils/metadata.py | 1 + src/censys_platform/utils/security.py | 32 +++++++++++++++--- 11 files changed, 108 insertions(+), 48 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index a6ca98a..3a2b32e 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 5ca2c9b7-aea6-4a23-a631-998fcc6c18a8 management: - docChecksum: 3e1ee0d04d400c49b97d8b79799cfadd - docVersion: 1.0.87 - speakeasyVersion: 1.759.3 - generationVersion: 2.869.25 - releaseVersion: 0.13.2 - configChecksum: aac04d5f1c252101e25c82d88e3132c4 + docChecksum: 75e289c62b5c116d278be94c442b86f5 + docVersion: 1.0.88 + speakeasyVersion: 1.760.0 + generationVersion: 2.873.1 + releaseVersion: 0.13.3 + configChecksum: 3056047312b3f2be37addc3570da42f5 repoURL: https://github.com/censys/censys-sdk-python.git installationURL: https://github.com/censys/censys-sdk-python.git published: true persistentEdits: - generation_id: e4d7069f-b0b7-4a6b-8b37-1b45ccf5efd1 - pristine_commit_hash: b29d090209545f2add1cabbf09f8d5fda051f3b6 - pristine_tree_hash: dc2bc3e14421c5e62628b673c929c52b47eb8e03 + generation_id: 47192fd9-bea8-4b19-9d90-6bd8e81f5a56 + pristine_commit_hash: afc52352d2a7075023bc52b313e5176471e47b19 + pristine_tree_hash: b5649a3fdcc574873b8753fd9f36e98077b2492c features: python: acceptHeaders: 3.0.0 @@ -26,7 +26,7 @@ features: envVarSecurityUsage: 0.3.2 examples: 3.0.3 flattening: 3.1.1 - globalSecurity: 3.0.5 + globalSecurity: 3.0.7 globalSecurityCallbacks: 1.0.0 globalSecurityFlattening: 1.0.0 globalServerURLs: 3.2.1 @@ -2354,8 +2354,8 @@ trackedFiles: pristine_git_object: 9aa6c6f75ab94a993552ccfce81477ef19466804 docs/models/socks.md: id: 357a63138746 - last_write_checksum: sha1:bef6cfe236fe0f61af26570cb1dbf177639d30bb - pristine_git_object: a0f6cd44c55af0e11087b463ebc00223100fb6e2 + last_write_checksum: sha1:fd987b34db9e6c310cb92ac6a5b6b63dee2d1af2 + pristine_git_object: 4a682e9e44f5f59574f72179bd7f3947e32ad316 docs/models/source.md: id: 6541ef7b41e7 last_write_checksum: sha1:a1dfad203b8cefddef04d2e365cc465cc8759fb2 @@ -3250,8 +3250,8 @@ trackedFiles: pristine_git_object: bfd8691be4b4b5ee9f2c4baf849970d807ade207 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:123a5f766bcc6a26a19971433b11d783dbbee5cd - pristine_git_object: 3b123c431cddd71a31cbd0018945adec86cc541c + last_write_checksum: sha1:d57fb25ea309f292b721174801fa20d6d917f597 + pristine_git_object: 6f6ba7313cc4bb41c2a4d3dee2f4396b49b2f2b4 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:10d6ae008b24c68e99d7e8ba9c2e747070685ead @@ -3278,16 +3278,16 @@ trackedFiles: pristine_git_object: 352d3691d91c2d0ba0f05b48b56d4df5ce520098 src/censys_platform/_version.py: id: d2dc39704c23 - last_write_checksum: sha1:dd9919d657725532ef1582206048eaac80f4cdac - pristine_git_object: c5f2f2441929e3f6068c78731dbbfbc9aa988cfd + last_write_checksum: sha1:11e7bc7c35c1aadc6204244cb0b07f161542b779 + pristine_git_object: d5742c269285e0210cc68cfd5a4025250e469906 src/censys_platform/account_management.py: id: 09993862b047 last_write_checksum: sha1:8c463369fda5bd1e76e021b26bfb99b492a2db90 pristine_git_object: f75ccc66c32ada0b45237f70e890ea34d2ba9537 src/censys_platform/basesdk.py: id: a49fe6a31a15 - last_write_checksum: sha1:70562d9af3c163f65fdba759d3c29cf0460f4c24 - pristine_git_object: bf543c0a852c0b54ec69471a6cdb0a457faaa15a + last_write_checksum: sha1:ffcffead07f81c00345236170d6fc58ecc0ea339 + pristine_git_object: 0c390f11920c21dacb2ca29e03ce2512ea896f17 src/censys_platform/collections.py: id: e6d640c28668 last_write_checksum: sha1:7f049199c57677439f37c0c092a45e7e04fa500e @@ -5390,8 +5390,8 @@ trackedFiles: pristine_git_object: ac144f7c323783312256ed633b8ac5ddf3ebd956 src/censys_platform/models/socks.py: id: cf9146b4a20d - last_write_checksum: sha1:0fd9709030ffa6d1edc622bc65ec666de17f4671 - pristine_git_object: af557f242910969fc51a87ea51a6ce396c1068ff + last_write_checksum: sha1:7be416fd740d8cb89b7d9e2c455329dc7a94170b + pristine_git_object: 644111c3cb5c456bcef1ddb66d6ac6efe093f633 src/censys_platform/models/sourceusagebreakdown.py: id: 135e8c6797e6 last_write_checksum: sha1:c6cfc3c18f48274c139a0e07d55b39a98734232c @@ -5922,8 +5922,8 @@ trackedFiles: pristine_git_object: b661aff65d38b77d035149699aea09b2785d2fc6 src/censys_platform/utils/metadata.py: id: 8842e90b07b4 - last_write_checksum: sha1:c6a560bd0c63ab158582f34dadb69433ea73b3d4 - pristine_git_object: 173b3e5ce658675c2f504222a56b3daaaa68107d + last_write_checksum: sha1:e703e5cbb5255144aacf86898d1420529afaaff8 + pristine_git_object: 5abddd588837ac297050ca3b543627faadb350a9 src/censys_platform/utils/queryparams.py: id: 2b8faac58713 last_write_checksum: sha1:b94c3f314fd3da0d1d215afc2731f48748e2aa59 @@ -5938,8 +5938,8 @@ trackedFiles: pristine_git_object: af07d4e941007af4213c5ec9047ef8a2fca04e5e src/censys_platform/utils/security.py: id: 1559cefe0793 - last_write_checksum: sha1:435dd8b180cefcd733e635b9fa45512da091d9c0 - pristine_git_object: 17996bd54b8624009802fbbdf30bcb4225b8dfed + last_write_checksum: sha1:c11eef495b6aaa249178c24c796940cc540b7a00 + pristine_git_object: 42d8d78e9981eed7507670014d99588e27ab325a src/censys_platform/utils/serializers.py: id: a3afe58d4a90 last_write_checksum: sha1:ce1d8d7f500a9ccba0aeca5057cee9c271f4dfd7 diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 0f71c14..fa7a34e 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -29,7 +29,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false python: - version: 0.13.2 + version: 0.13.3 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index b2d7be8..7a46d4e 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,20 +1,20 @@ -speakeasyVersion: 1.759.3 +speakeasyVersion: 1.760.0 sources: converge-source: sourceNamespace: converge-source - sourceRevisionDigest: sha256:4ef08a63f4a984605ea96405c9c7e4e3ee4c40cf04132c15eab98778d501ac73 - sourceBlobDigest: sha256:cda7d692d79d9b333c0e60790909346f53cf32dc182bfb0c9954f524da98ac76 + sourceRevisionDigest: sha256:b5473a36f79a9edbaaaecd26cba1f3ae109951bb7f7fa0bc32d33f2c443eb265 + sourceBlobDigest: sha256:d4daf24d11ba09e332e2bc79264fee886c3eb5c5b1b723f30a0b8e3541d24d3e tags: - latest - - 1.0.87 + - 1.0.88 targets: censys-sdk-python: source: converge-source sourceNamespace: converge-source - sourceRevisionDigest: sha256:4ef08a63f4a984605ea96405c9c7e4e3ee4c40cf04132c15eab98778d501ac73 - sourceBlobDigest: sha256:cda7d692d79d9b333c0e60790909346f53cf32dc182bfb0c9954f524da98ac76 + sourceRevisionDigest: sha256:b5473a36f79a9edbaaaecd26cba1f3ae109951bb7f7fa0bc32d33f2c443eb265 + sourceBlobDigest: sha256:d4daf24d11ba09e332e2bc79264fee886c3eb5c5b1b723f30a0b8e3541d24d3e codeSamplesNamespace: converge-source-python-code-samples - codeSamplesRevisionDigest: sha256:eb3a199ee8a9bc50360e8ada3bd0f6bd3218878e71194a4aa17281fec5838d4c + codeSamplesRevisionDigest: sha256:63be56d57e52fd6a441fd28032970b1902d58251b0adf9bf85e94dbc2792bda3 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index 7b7c34b..aa0566e 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -226,4 +226,14 @@ Based on: ### Generated - [python v0.13.2] . ### Releases -- [PyPI v0.13.2] https://pypi.org/project/censys-platform/0.13.2 - . \ No newline at end of file +- [PyPI v0.13.2] https://pypi.org/project/censys-platform/0.13.2 - . + +## 2026-03-31 00:41:01 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.760.0 (2.873.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.13.3] . +### Releases +- [PyPI v0.13.3] https://pypi.org/project/censys-platform/0.13.3 - . \ No newline at end of file diff --git a/docs/models/socks.md b/docs/models/socks.md index a0f6cd4..4a682e9 100644 --- a/docs/models/socks.md +++ b/docs/models/socks.md @@ -8,4 +8,5 @@ | `no_authentication_required` | *Optional[bool]* | :heavy_minus_sign: | N/A | | `preferred_authentication` | *Optional[str]* | :heavy_minus_sign: | N/A | | `preferred_authentication_value` | *Optional[int]* | :heavy_minus_sign: | N/A | -| `socks_version` | *Optional[int]* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `socks_version` | *Optional[int]* | :heavy_minus_sign: | N/A | +| `supported_versions` | List[*int*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 3b123c4..6f6ba73 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "censys-platform" -version = "0.13.2" +version = "0.13.3" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Speakeasy" },] readme = "README-PYPI.md" diff --git a/src/censys_platform/_version.py b/src/censys_platform/_version.py index c5f2f24..d5742c2 100644 --- a/src/censys_platform/_version.py +++ b/src/censys_platform/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "censys-platform" -__version__: str = "0.13.2" -__openapi_doc_version__: str = "1.0.87" -__gen_version__: str = "2.869.25" -__user_agent__: str = "speakeasy-sdk/python 0.13.2 2.869.25 1.0.87 censys-platform" +__version__: str = "0.13.3" +__openapi_doc_version__: str = "1.0.88" +__gen_version__: str = "2.873.1" +__user_agent__: str = "speakeasy-sdk/python 0.13.3 2.873.1 1.0.88 censys-platform" try: if __package__ is not None: diff --git a/src/censys_platform/basesdk.py b/src/censys_platform/basesdk.py index bf543c0..0c390f1 100644 --- a/src/censys_platform/basesdk.py +++ b/src/censys_platform/basesdk.py @@ -66,6 +66,7 @@ def _build_request_async( url_override: Optional[str] = None, http_headers: Optional[Mapping[str, str]] = None, allow_empty_value: Optional[List[str]] = None, + allowed_fields: Optional[List[str]] = None, ) -> httpx.Request: client = self.sdk_configuration.async_client return self._build_request_with_client( @@ -87,6 +88,7 @@ def _build_request_async( url_override, http_headers, allow_empty_value, + allowed_fields, ) def _build_request( @@ -110,6 +112,7 @@ def _build_request( url_override: Optional[str] = None, http_headers: Optional[Mapping[str, str]] = None, allow_empty_value: Optional[List[str]] = None, + allowed_fields: Optional[List[str]] = None, ) -> httpx.Request: client = self.sdk_configuration.client return self._build_request_with_client( @@ -131,6 +134,7 @@ def _build_request( url_override, http_headers, allow_empty_value, + allowed_fields, ) def _build_request_with_client( @@ -155,6 +159,7 @@ def _build_request_with_client( url_override: Optional[str] = None, http_headers: Optional[Mapping[str, str]] = None, allow_empty_value: Optional[List[str]] = None, + allowed_fields: Optional[List[str]] = None, ) -> httpx.Request: query_params = {} @@ -188,7 +193,9 @@ def _build_request_with_client( security = security() if security is not None: - security_headers, security_query_params = utils.get_security(security) + security_headers, security_query_params = utils.get_security( + security, allowed_fields + ) headers = {**headers, **security_headers} query_params = {**query_params, **security_query_params} diff --git a/src/censys_platform/models/socks.py b/src/censys_platform/models/socks.py index af557f2..644111c 100644 --- a/src/censys_platform/models/socks.py +++ b/src/censys_platform/models/socks.py @@ -1,9 +1,15 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from censys_platform.types import BaseModel, UNSET_SENTINEL +from censys_platform.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer -from typing import Optional +from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -12,6 +18,7 @@ class SocksTypedDict(TypedDict): preferred_authentication: NotRequired[str] preferred_authentication_value: NotRequired[int] socks_version: NotRequired[int] + supported_versions: NotRequired[Nullable[List[int]]] class Socks(BaseModel): @@ -23,6 +30,8 @@ class Socks(BaseModel): socks_version: Optional[int] = None + supported_versions: OptionalNullable[List[int]] = UNSET + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( @@ -31,17 +40,27 @@ def serialize_model(self, handler): "preferred_authentication", "preferred_authentication_value", "socks_version", + "supported_versions", ] ) + nullable_fields = set(["supported_versions"]) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): k = f.alias or n val = serialized.get(k, serialized.get(n)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/censys_platform/utils/metadata.py b/src/censys_platform/utils/metadata.py index 173b3e5..5abddd5 100644 --- a/src/censys_platform/utils/metadata.py +++ b/src/censys_platform/utils/metadata.py @@ -15,6 +15,7 @@ class SecurityMetadata: scheme_type: Optional[str] = None sub_type: Optional[str] = None field_name: Optional[str] = None + composite: bool = False def get_field_name(self, default: str) -> str: return self.field_name or default diff --git a/src/censys_platform/utils/security.py b/src/censys_platform/utils/security.py index 17996bd..42d8d78 100644 --- a/src/censys_platform/utils/security.py +++ b/src/censys_platform/utils/security.py @@ -5,6 +5,7 @@ Any, Dict, List, + Optional, Tuple, ) from pydantic import BaseModel @@ -16,7 +17,9 @@ ) -def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: +def get_security( + security: Any, allowed_fields: Optional[List[str]] = None +) -> Tuple[Dict[str, str], Dict[str, List[str]]]: headers: Dict[str, str] = {} query_params: Dict[str, List[str]] = {} @@ -27,7 +30,14 @@ def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: raise TypeError("security must be a pydantic model") sec_fields: Dict[str, FieldInfo] = security.__class__.model_fields - for name in sec_fields: + sec_field_names = ( + list(sec_fields.keys()) if allowed_fields is None else allowed_fields + ) + + for name in sec_field_names: + if name not in sec_fields: + continue + sec_field = sec_fields[name] value = getattr(security, name) @@ -49,6 +59,9 @@ def get_security(security: Any) -> Tuple[Dict[str, str], Dict[str, List[str]]]: else: _parse_security_scheme(headers, query_params, metadata, name, value) + if not metadata.composite: + return headers, query_params + return headers, query_params @@ -59,15 +72,24 @@ def _parse_security_option( raise TypeError("security option must be a pydantic model") opt_fields: Dict[str, FieldInfo] = option.__class__.model_fields + for name in opt_fields: opt_field = opt_fields[name] metadata = find_field_metadata(opt_field, SecurityMetadata) if metadata is None or not metadata.scheme: continue - _parse_security_scheme( - headers, query_params, metadata, name, getattr(option, name) - ) + + value = getattr(option, name) + if ( + metadata.scheme_type == "http" + and metadata.sub_type == "basic" + and not isinstance(value, BaseModel) + ): + _parse_basic_auth_scheme(headers, option) + return + + _parse_security_scheme(headers, query_params, metadata, name, value) def _parse_security_scheme( From 270a6e951714cbcc1f01ec7c8487837d24f68f7d Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 00:42:53 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow