Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions .speakeasy/gen.lock
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ generation:
generateNewTests: false
skipResponseBodyAssertions: false
python:
version: 0.13.2
version: 0.13.3
additionalDependencies:
dev: {}
main: {}
Expand Down
14 changes: 7 additions & 7 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -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
Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 - .
- [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 - .
3 changes: 2 additions & 1 deletion docs/models/socks.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
| `socks_version` | *Optional[int]* | :heavy_minus_sign: | N/A |
| `supported_versions` | List[*int*] | :heavy_minus_sign: | N/A |
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
8 changes: 4 additions & 4 deletions src/censys_platform/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
9 changes: 8 additions & 1 deletion src/censys_platform/basesdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -87,6 +88,7 @@ def _build_request_async(
url_override,
http_headers,
allow_empty_value,
allowed_fields,
)

def _build_request(
Expand All @@ -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(
Expand All @@ -131,6 +134,7 @@ def _build_request(
url_override,
http_headers,
allow_empty_value,
allowed_fields,
)

def _build_request_with_client(
Expand All @@ -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 = {}

Expand Down Expand Up @@ -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}

Expand Down
25 changes: 22 additions & 3 deletions src/censys_platform/models/socks.py
Original file line number Diff line number Diff line change
@@ -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


Expand All @@ -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):
Expand All @@ -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(
Expand All @@ -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
1 change: 1 addition & 0 deletions src/censys_platform/utils/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
32 changes: 27 additions & 5 deletions src/censys_platform/utils/security.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Any,
Dict,
List,
Optional,
Tuple,
)
from pydantic import BaseModel
Expand All @@ -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]] = {}

Expand All @@ -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)
Expand All @@ -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


Expand All @@ -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(
Expand Down
Loading