From af6d359e1384964e69514ab1254f476b417b1638 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 10 Oct 2025 18:33:22 +0000 Subject: [PATCH 1/2] ## Python SDK Changes Detected: * `glean.client.search.retrieve_feed()`: `response.results.[].primary_entry.digest.sections.[].updates.[].urls` **Added** --- .speakeasy/gen.lock | 12 ++++++------ .speakeasy/gen.yaml | 2 +- .speakeasy/glean-merged-spec.yaml | 5 +++++ .speakeasy/workflow.lock | 14 +++++++------- RELEASES.md | 12 +++++++++++- docs/models/digestupdate.md | 15 ++++++++------- pyproject.toml | 2 +- speakeasyusagegen/.speakeasy/logs/naming.log | 2 +- src/glean/api_client/_version.py | 6 +++--- src/glean/api_client/errors/collectionerror.py | 2 +- src/glean/api_client/errors/gleanbaseerror.py | 2 +- src/glean/api_client/errors/gleandataerror.py | 2 +- src/glean/api_client/errors/gleanerror.py | 2 +- src/glean/api_client/errors/no_response_error.py | 2 +- .../api_client/errors/responsevalidationerror.py | 2 +- src/glean/api_client/models/digestupdate.py | 7 ++++++- .../internal/handler/pathpostrestapiv1getchat.go | 4 ++-- .../sdk/models/components/digestupdate.go | 9 +++++++++ tests/test_summarize.py | 8 +++++--- 19 files changed, 71 insertions(+), 39 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 3ac94b69..5fab9a9b 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 3e3290ca-0ee8-4981-b1bc-14536048fa63 management: - docChecksum: f83688cf1540bc7d583e1661684632b8 + docChecksum: ef00a2f5125097d9f584f0bbb5436f00 docVersion: 0.9.0 - speakeasyVersion: 1.636.2 - generationVersion: 2.723.8 - releaseVersion: 0.10.1 - configChecksum: 07523009c906e4ce8da02892efe34042 + speakeasyVersion: 1.636.3 + generationVersion: 2.723.11 + releaseVersion: 0.10.2 + configChecksum: 0df6a87cbbcb2fcac2bba9f5d9a53017 repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true @@ -2744,4 +2744,4 @@ generatedTests: updateshortcut: "2025-06-12T19:13:52-04:00" releaseNotes: | ## Python SDK Changes Detected: - * `glean.client.insights.retrieve()`: `response.agents_response.top_agents_insights.[].icon` **Added** + * `glean.client.search.retrieve_feed()`: `response.results.[].primary_entry.digest.sections.[].updates.[].urls` **Added** diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 7cb4e61d..9accbce2 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -27,7 +27,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.10.1 + version: 0.10.2 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index b067abf4..08638fae 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -9723,6 +9723,11 @@ components: DigestUpdate: type: object properties: + urls: + type: array + description: List of URLs for similar updates that are grouped together and rendered as a single update. + items: + type: string url: type: string description: URL link to the content or document. diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index bbe79cda..0a5087ac 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,12 +1,12 @@ -speakeasyVersion: 1.636.2 +speakeasyVersion: 1.636.3 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:3f099971b20cdaba1d53693ee90708d1461530957b1e44009e457250d4441b05 - sourceBlobDigest: sha256:02db6ddd119e9c20b2130f2318039c2b6e19b0487ecb3bd5aed5e92acfe203cc + sourceRevisionDigest: sha256:784ebb76d989e40e13173fd5583545b5c83afb48be4d97b2c129cc90e2998f3f + sourceBlobDigest: sha256:7d1478805de16c63a0e5c784706e64b229cb94f7e0b4d438aa52f764be944544 tags: - latest - - speakeasy-sdk-regen-1759915420 + - speakeasy-sdk-regen-1760121026 Glean Client API: sourceNamespace: glean-client-api sourceRevisionDigest: sha256:4edc63ad559e4f2c9fb9ebf5edaaaaa9269f1874d271cfd84b441d6dacac43d2 @@ -17,10 +17,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:3f099971b20cdaba1d53693ee90708d1461530957b1e44009e457250d4441b05 - sourceBlobDigest: sha256:02db6ddd119e9c20b2130f2318039c2b6e19b0487ecb3bd5aed5e92acfe203cc + sourceRevisionDigest: sha256:784ebb76d989e40e13173fd5583545b5c83afb48be4d97b2c129cc90e2998f3f + sourceBlobDigest: sha256:7d1478805de16c63a0e5c784706e64b229cb94f7e0b4d438aa52f764be944544 codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:a4e8c70388ad6f5de8d9a9f574d8c2fbfbcb5dbbb39aec928142f828023631c5 + codeSamplesRevisionDigest: sha256:0c78dc6fe3fd8e0ce3f9c12806901702b8ee76b252cce8dd81e313f35a75635f workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index ce9f5796..6f6dd7ec 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -288,4 +288,14 @@ Based on: ### Generated - [python v0.10.1] . ### Releases -- [PyPI v0.10.1] https://pypi.org/project/glean/0.10.1 - . \ No newline at end of file +- [PyPI v0.10.1] https://pypi.org/project/glean/0.10.1 - . + +## 2025-10-10 18:30:03 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.636.3 (2.723.11) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.10.2] . +### Releases +- [PyPI v0.10.2] https://pypi.org/project/glean/0.10.2 - . \ No newline at end of file diff --git a/docs/models/digestupdate.md b/docs/models/digestupdate.md index 579ab92e..ee7bb749 100644 --- a/docs/models/digestupdate.md +++ b/docs/models/digestupdate.md @@ -3,10 +3,11 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `url` | *Optional[str]* | :heavy_minus_sign: | URL link to the content or document. | -| `title` | *Optional[str]* | :heavy_minus_sign: | Title or headline of the update. | -| `datasource` | *Optional[str]* | :heavy_minus_sign: | Name or identifier of the data source (e.g., slack, confluence, etc.). | -| `summary` | *Optional[str]* | :heavy_minus_sign: | Brief summary or description of the update content. | -| `type` | [Optional[models.UpdateType]](../models/updatetype.md) | :heavy_minus_sign: | Optional type classification for the update. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `urls` | List[*str*] | :heavy_minus_sign: | List of URLs for similar updates that are grouped together and rendered as a single update. | +| `url` | *Optional[str]* | :heavy_minus_sign: | URL link to the content or document. | +| `title` | *Optional[str]* | :heavy_minus_sign: | Title or headline of the update. | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | Name or identifier of the data source (e.g., slack, confluence, etc.). | +| `summary` | *Optional[str]* | :heavy_minus_sign: | Brief summary or description of the update content. | +| `type` | [Optional[models.UpdateType]](../models/updatetype.md) | :heavy_minus_sign: | Optional type classification for the update. | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 21bcaa83..912b7de5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "glean-api-client" -version = "0.10.1" +version = "0.10.2" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Glean Technologies, Inc." }] license = "MIT" diff --git a/speakeasyusagegen/.speakeasy/logs/naming.log b/speakeasyusagegen/.speakeasy/logs/naming.log index c7a209f0..8096515a 100644 --- a/speakeasyusagegen/.speakeasy/logs/naming.log +++ b/speakeasyusagegen/.speakeasy/logs/naming.log @@ -840,7 +840,7 @@ FeedResponse (HttpMeta: HTTPMetadata, FeedResponse: FeedResponse) Digest (podcastFileId: string, podcastDuration: float32, digestDate: string ...) DigestSection (id: string, type: SectionType, displayName: string ...) SectionType (enum: CHANNEL, MENTIONS, TOPIC) - DigestUpdate (url: string, title: string, datasource: string ...) + DigestUpdate (urls: array, url: string, title: string ...) UpdateType (enum: ACTIONABLE, INFORMATIVE) ChatSuggestion (query: string, feature: string) PromptTemplateResult (promptTemplate: PromptTemplate, trackingToken: string, favoriteInfo: FavoriteInfo ...) diff --git a/src/glean/api_client/_version.py b/src/glean/api_client/_version.py index 583d6d47..e331b560 100644 --- a/src/glean/api_client/_version.py +++ b/src/glean/api_client/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "glean" -__version__: str = "0.10.1" +__version__: str = "0.10.2" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.723.8" -__user_agent__: str = "speakeasy-sdk/python 0.10.1 2.723.8 0.9.0 glean" +__gen_version__: str = "2.723.11" +__user_agent__: str = "speakeasy-sdk/python 0.10.2 2.723.11 0.9.0 glean" try: if __package__ is not None: diff --git a/src/glean/api_client/errors/collectionerror.py b/src/glean/api_client/errors/collectionerror.py index 8acd8b4b..aa03a80d 100644 --- a/src/glean/api_client/errors/collectionerror.py +++ b/src/glean/api_client/errors/collectionerror.py @@ -18,7 +18,7 @@ class CollectionErrorData(BaseModel): ] -@dataclass(frozen=True) +@dataclass(unsafe_hash=True) class CollectionError(GleanBaseError): data: CollectionErrorData = field(hash=False) diff --git a/src/glean/api_client/errors/gleanbaseerror.py b/src/glean/api_client/errors/gleanbaseerror.py index 6b0969d7..b2f7acde 100644 --- a/src/glean/api_client/errors/gleanbaseerror.py +++ b/src/glean/api_client/errors/gleanbaseerror.py @@ -5,7 +5,7 @@ from dataclasses import dataclass, field -@dataclass(frozen=True) +@dataclass(unsafe_hash=True) class GleanBaseError(Exception): """The base class for all HTTP error responses.""" diff --git a/src/glean/api_client/errors/gleandataerror.py b/src/glean/api_client/errors/gleandataerror.py index a17d348d..6ac9f877 100644 --- a/src/glean/api_client/errors/gleandataerror.py +++ b/src/glean/api_client/errors/gleandataerror.py @@ -37,7 +37,7 @@ class GleanDataErrorData(BaseModel): ] = None -@dataclass(frozen=True) +@dataclass(unsafe_hash=True) class GleanDataError(GleanBaseError): data: GleanDataErrorData = field(hash=False) diff --git a/src/glean/api_client/errors/gleanerror.py b/src/glean/api_client/errors/gleanerror.py index 10bef4a8..ace7a943 100644 --- a/src/glean/api_client/errors/gleanerror.py +++ b/src/glean/api_client/errors/gleanerror.py @@ -9,7 +9,7 @@ MAX_MESSAGE_LEN = 10_000 -@dataclass(frozen=True) +@dataclass(unsafe_hash=True) class GleanError(GleanBaseError): """The fallback error class if no more specific error class is matched.""" diff --git a/src/glean/api_client/errors/no_response_error.py b/src/glean/api_client/errors/no_response_error.py index b710ea2b..1deab64b 100644 --- a/src/glean/api_client/errors/no_response_error.py +++ b/src/glean/api_client/errors/no_response_error.py @@ -3,7 +3,7 @@ from dataclasses import dataclass -@dataclass(frozen=True) +@dataclass(unsafe_hash=True) class NoResponseError(Exception): """Error raised when no HTTP response is received from the server.""" diff --git a/src/glean/api_client/errors/responsevalidationerror.py b/src/glean/api_client/errors/responsevalidationerror.py index b4c200af..3e029c12 100644 --- a/src/glean/api_client/errors/responsevalidationerror.py +++ b/src/glean/api_client/errors/responsevalidationerror.py @@ -7,7 +7,7 @@ from glean.api_client.errors import GleanBaseError -@dataclass(frozen=True) +@dataclass(unsafe_hash=True) class ResponseValidationError(GleanBaseError): """Error raised when there is a type mismatch between the response data and the expected Pydantic model.""" diff --git a/src/glean/api_client/models/digestupdate.py b/src/glean/api_client/models/digestupdate.py index 10e4d1cd..98f04a5a 100644 --- a/src/glean/api_client/models/digestupdate.py +++ b/src/glean/api_client/models/digestupdate.py @@ -3,11 +3,13 @@ from __future__ import annotations from .updatetype import UpdateType from glean.api_client.types import BaseModel -from typing import Optional +from typing import List, Optional from typing_extensions import NotRequired, TypedDict class DigestUpdateTypedDict(TypedDict): + urls: NotRequired[List[str]] + r"""List of URLs for similar updates that are grouped together and rendered as a single update.""" url: NotRequired[str] r"""URL link to the content or document.""" title: NotRequired[str] @@ -21,6 +23,9 @@ class DigestUpdateTypedDict(TypedDict): class DigestUpdate(BaseModel): + urls: Optional[List[str]] = None + r"""List of URLs for similar updates that are grouped together and rendered as a single update.""" + url: Optional[str] = None r"""URL link to the content or document.""" diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go index 35e69d35..f8469b5b 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go @@ -628,8 +628,8 @@ func testGetchatGetchat0(w http.ResponseWriter, req *http.Request) { Roles: []components.UserRoleSpecification{}, SourceDocumentSpec: types.Pointer(components.CreateDocumentSpecUnionDocumentSpec3( components.DocumentSpec3{ - UgcType: components.DocumentSpecUgcType1Shortcuts, - ContentID: 602763, + UgcType: components.DocumentSpecUgcType1Announcements, + ContentID: 848009, }, )), SourceType: components.AnswerSourceTypeAssistant.ToPointer(), diff --git a/tests/mockserver/internal/sdk/models/components/digestupdate.go b/tests/mockserver/internal/sdk/models/components/digestupdate.go index 0f1dbc89..e024d4cf 100644 --- a/tests/mockserver/internal/sdk/models/components/digestupdate.go +++ b/tests/mockserver/internal/sdk/models/components/digestupdate.go @@ -3,6 +3,8 @@ package components type DigestUpdate struct { + // List of URLs for similar updates that are grouped together and rendered as a single update. + Urls []string `json:"urls,omitempty"` // URL link to the content or document. URL *string `json:"url,omitempty"` // Title or headline of the update. @@ -15,6 +17,13 @@ type DigestUpdate struct { Type *UpdateType `json:"type,omitempty"` } +func (o *DigestUpdate) GetUrls() []string { + if o == nil { + return nil + } + return o.Urls +} + func (o *DigestUpdate) GetURL() *string { if o == nil { return nil diff --git a/tests/test_summarize.py b/tests/test_summarize.py index 63b4eb85..cac8e978 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -1,6 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from glean.api_client import Glean +from glean.api_client import Glean, models import os from tests.test_client import create_test_http_client @@ -18,10 +18,12 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ { - "url": "https://dim-glider.com/", + "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, + "content_id": 602763, }, { - "id": "", + "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, + "content_id": 602763, }, ] ) From 67f3c6a1414c05c1424c92f9fcc222a34e8d8058 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Fri, 10 Oct 2025 18:33:32 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow