diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b7634f9..80d368a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.0.3" + ".": "1.0.4" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0615ef7..65ccbff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 1.0.4 (2025-12-09) + +Full Changelog: [v1.0.3...v1.0.4](https://github.com/Blooio/blooio-python-sdk/compare/v1.0.3...v1.0.4) + +### Bug Fixes + +* **types:** allow pyright to infer TypedDict types within SequenceNotStr ([eee935c](https://github.com/Blooio/blooio-python-sdk/commit/eee935c823f2d2df52d1baa7c64f2ba4d037a6d4)) + + +### Chores + +* add missing docstrings ([13eb515](https://github.com/Blooio/blooio-python-sdk/commit/13eb515f29ad4b006df09013e4a491c65c00e6cd)) + ## 1.0.3 (2025-12-03) Full Changelog: [v1.0.2...v1.0.3](https://github.com/Blooio/blooio-python-sdk/compare/v1.0.2...v1.0.3) diff --git a/pyproject.toml b/pyproject.toml index 3ca51f9..102bd61 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "blooio" -version = "1.0.3" +version = "1.0.4" description = "The official Python library for the blooio API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/blooio/_types.py b/src/blooio/_types.py index 3c388b5..b974bad 100644 --- a/src/blooio/_types.py +++ b/src/blooio/_types.py @@ -243,6 +243,9 @@ class HttpxSendArgs(TypedDict, total=False): if TYPE_CHECKING: # This works because str.__contains__ does not accept object (either in typeshed or at runtime) # https://github.com/hauntsaninja/useful_types/blob/5e9710f3875107d068e7679fd7fec9cfab0eff3b/useful_types/__init__.py#L285 + # + # Note: index() and count() methods are intentionally omitted to allow pyright to properly + # infer TypedDict types when dict literals are used in lists assigned to SequenceNotStr. class SequenceNotStr(Protocol[_T_co]): @overload def __getitem__(self, index: SupportsIndex, /) -> _T_co: ... @@ -251,8 +254,6 @@ def __getitem__(self, index: slice, /) -> Sequence[_T_co]: ... def __contains__(self, value: object, /) -> bool: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[_T_co]: ... - def index(self, value: Any, start: int = 0, stop: int = ..., /) -> int: ... - def count(self, value: Any, /) -> int: ... def __reversed__(self) -> Iterator[_T_co]: ... else: # just point this to a normal `Sequence` at runtime to avoid having to special case diff --git a/src/blooio/_version.py b/src/blooio/_version.py index 883b761..d1b9fff 100644 --- a/src/blooio/_version.py +++ b/src/blooio/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "blooio" -__version__ = "1.0.3" # x-release-please-version +__version__ = "1.0.4" # x-release-please-version diff --git a/src/blooio/types/contact_check_capabilities_response.py b/src/blooio/types/contact_check_capabilities_response.py index 7a41502..3a68ed5 100644 --- a/src/blooio/types/contact_check_capabilities_response.py +++ b/src/blooio/types/contact_check_capabilities_response.py @@ -12,6 +12,8 @@ class Capabilities(BaseModel): + """Messaging capabilities for this contact.""" + imessage: Optional[bool] = None """Whether this contact supports iMessage.""" diff --git a/src/blooio/types/me_retrieve_response.py b/src/blooio/types/me_retrieve_response.py index bda4b00..a42e8ff 100644 --- a/src/blooio/types/me_retrieve_response.py +++ b/src/blooio/types/me_retrieve_response.py @@ -19,6 +19,8 @@ class Device(BaseModel): class IntegrationDetails(BaseModel): + """Integration-specific details (GHL or API integration).""" + customer_webhook_url: Optional[str] = None """Webhook URL for API integrations.""" @@ -30,6 +32,8 @@ class IntegrationDetails(BaseModel): class Usage(BaseModel): + """Usage statistics for this API key.""" + inbound_messages: Optional[int] = None """Total number of inbound messages."""