Release v1.0.81#43
Conversation
Greptile SummaryThis release (v1.0.81) adds three new generated API endpoints —
Confidence Score: 4/5Safe to merge — all changes are generated code adding new endpoints and models with no modifications to existing functionality. The only issues found are duplicate and unused imports produced by the code generator; they have no effect on runtime correctness. The UUID encoding inconsistency in to_multipart() is benign because httpx accepts both str and bytes for multipart fields. Core logic, schema alignment, and model (de)serialization are all correct. The generated files under src/roe/_generated/api/ and src/roe/_generated/models/table_upload_request.py have minor generator artifacts noted above, but none require changes before merging. Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant SDK
participant API
User->>SDK: discovery.sync(client) / asyncio(client)
SDK->>API: GET /v1/agents/types/
API-->>SDK: 200 AgentEngineTypeList
SDK-->>User: AgentEngineTypeList
User->>SDK: "discovery_supported_models_list.sync(client, capability=...)"
SDK->>API: "GET /v1/agents/models/?capability=..."
API-->>SDK: 200 SupportedLLMModelList
SDK-->>User: SupportedLLMModelList
User->>SDK: "upload_table.sync(client, body=TableUploadRequest)"
SDK->>SDK: body.to_multipart() → multipart files
SDK->>API: POST /v1/tables/upload/ (multipart/form-data)
API-->>SDK: 201 TableUploadResponse
API-->>SDK: 400 ErrorResponse
SDK-->>User: "TableUploadResponse | ErrorResponse | None"
Reviews (1): Last reviewed commit: "Release v1.0.81" | Re-trigger Greptile |
| from ...client import AuthenticatedClient, Client | ||
| from ...types import Response, UNSET | ||
| from ... import errors | ||
|
|
||
| from ...models.agent_engine_type_list import AgentEngineTypeList |
There was a problem hiding this comment.
from typing import cast appears twice in this file (once bundled inside from typing import Any, cast and again as a standalone import on line 11). While Python silently ignores duplicate imports, this is a generator artifact that adds noise and will confuse static-analysis tools. The same pattern appears in discovery_supported_models_list.py (duplicate from ...types import UNSET) and table_upload_request.py (duplicate from ..types import UNSET, Unset).
| @@ -0,0 +1,166 @@ | |||
| from http import HTTPStatus | |||
| from typing import Any, cast | |||
| from urllib.parse import quote | |||
There was a problem hiding this comment.
from urllib.parse import quote is imported but never referenced in this file. The same unused import also appears in discovery_supported_models_list.py and upload_table.py. These are likely scaffolding left over from the generator for endpoints that use path parameters; since none of these three endpoints have path segments that need URL-encoding, the import is dead code.
| if not isinstance(self.organization_id, Unset): | ||
| if isinstance(self.organization_id, UUID): | ||
|
|
||
| files.append(("organization_id", (None, str(self.organization_id), "text/plain"))) |
There was a problem hiding this comment.
Inconsistent encoding for UUID in
to_multipart
When organization_id is a UUID the value passed to httpx is a plain str, but every other branch in this method encodes values to bytes. httpx accepts both, so this won't hard-crash, but the inconsistency is a generator bug. Adding .encode() makes the output uniform and matches the else branch directly below.
| files.append(("organization_id", (None, str(self.organization_id), "text/plain"))) | |
| files.append(("organization_id", (None, str(self.organization_id).encode(), "text/plain"))) |
|
Closing per request. |
This PR updates the Python SDK for release
1.0.81.Generated from:
1-0-81b5e92f34e243e44a5eb5dfb0a6322544b9397ce9