Release v1.0.81#42
Conversation
Greptile SummaryThis release (v1.0.81) adds three new API endpoints —
Confidence Score: 4/5Safe to merge with one fix recommended before release: the The discovery endpoints and their models are clean and correct. The src/roe/_generated/models/table_upload_request.py — specifically the Important Files Changed
Sequence DiagramsequenceDiagram
participant C as Client
participant S as Roe API
Note over C,S: Discovery endpoints (new in v1.0.81)
C->>S: "GET /v1/agents/models/?capability=image"
S-->>C: 200 SupportedLLMModelList
C->>S: GET /v1/agents/types/
S-->>C: 200 AgentEngineTypeList
Note over C,S: Table upload (new in v1.0.81)
C->>S: POST /v1/tables/upload/ (multipart/form-data)
Note right of C: table_name, file, with_headers,<br/>organization_id (optional)
S-->>C: 201 TableUploadResponse
S-->>C: 400 ErrorResponse (bad request)
Reviews (1): Last reviewed commit: "Release v1.0.81" | Re-trigger Greptile |
| if not isinstance(self.organization_id, Unset): | ||
| if isinstance(self.organization_id, UUID): | ||
|
|
||
| files.append(("organization_id", (None, str(self.organization_id), "text/plain"))) | ||
| else: | ||
| files.append(("organization_id", (None, str(self.organization_id).encode(), "text/plain"))) |
There was a problem hiding this comment.
None organization_id serialized as "None" string — when a caller explicitly passes organization_id=None (not UNSET), the else branch encodes it as the literal bytes b"None", which the server will likely reject as an invalid UUID. The guard should skip the field when the value is None, consistent with how nullable optional fields are handled elsewhere in the generated 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"))) | |
| else: | |
| files.append(("organization_id", (None, str(self.organization_id).encode(), "text/plain"))) | |
| if not isinstance(self.organization_id, Unset) and self.organization_id is not None: | |
| if isinstance(self.organization_id, UUID): | |
| files.append(("organization_id", (None, str(self.organization_id).encode(), "text/plain"))) | |
| else: | |
| files.append(("organization_id", (None, str(self.organization_id).encode(), "text/plain"))) |
| from http import HTTPStatus | ||
| from typing import Any, cast | ||
| from urllib.parse import quote | ||
|
|
||
| import httpx | ||
|
|
||
| from ...client import AuthenticatedClient, Client | ||
| from ...types import Response, UNSET | ||
| from ... import errors | ||
|
|
||
| from ...models.agent_engine_type_list import AgentEngineTypeList | ||
| from typing import cast |
There was a problem hiding this comment.
Duplicate
from typing import cast import and unused from urllib.parse import quote import. These are harmless but noisy; the duplicate was likely introduced by the code generator merging two import blocks.
| from http import HTTPStatus | |
| from typing import Any, cast | |
| from urllib.parse import quote | |
| import httpx | |
| from ...client import AuthenticatedClient, Client | |
| from ...types import Response, UNSET | |
| from ... import errors | |
| from ...models.agent_engine_type_list import AgentEngineTypeList | |
| from typing import cast | |
| from http import HTTPStatus | |
| from typing import Any, cast | |
| import httpx | |
| from ...client import AuthenticatedClient, Client | |
| from ...types import Response, UNSET | |
| from ... import errors | |
| from ...models.agent_engine_type_list import AgentEngineTypeList |
| from http import HTTPStatus | ||
| from typing import Any, cast | ||
| from urllib.parse import quote | ||
|
|
||
| import httpx | ||
|
|
||
| from ...client import AuthenticatedClient, Client | ||
| from ...types import Response, UNSET | ||
| from ... import errors | ||
|
|
||
| from ...models.supported_llm_model_list import SupportedLLMModelList | ||
| from ...types import UNSET, Unset | ||
| from typing import cast |
There was a problem hiding this comment.
Duplicate
from typing import cast import, duplicate UNSET import via from ...types import Response, UNSET and from ...types import UNSET, Unset, and unused from urllib.parse import quote. Same code-generator artifact as in the other discovery file.
| from http import HTTPStatus | |
| from typing import Any, cast | |
| from urllib.parse import quote | |
| import httpx | |
| from ...client import AuthenticatedClient, Client | |
| from ...types import Response, UNSET | |
| from ... import errors | |
| from ...models.supported_llm_model_list import SupportedLLMModelList | |
| from ...types import UNSET, Unset | |
| from typing import cast | |
| from http import HTTPStatus | |
| from typing import Any, cast | |
| import httpx | |
| from ...client import AuthenticatedClient, Client | |
| from ...types import Response, UNSET, Unset | |
| from ... import errors | |
| from ...models.supported_llm_model_list import SupportedLLMModelList |
| from http import HTTPStatus | ||
| from typing import Any, cast | ||
| from urllib.parse import quote | ||
|
|
||
| import httpx | ||
|
|
||
| from ...client import AuthenticatedClient, Client | ||
| from ...types import Response, UNSET | ||
| from ... import errors | ||
|
|
||
| from ...models.error_response import ErrorResponse | ||
| from ...models.table_upload_request import TableUploadRequest | ||
| from ...models.table_upload_response import TableUploadResponse | ||
| from typing import cast |
There was a problem hiding this comment.
Unused
from urllib.parse import quote import and duplicate from typing import cast import at the end of the import block, same generator artifact as the discovery files.
| from http import HTTPStatus | |
| from typing import Any, cast | |
| from urllib.parse import quote | |
| import httpx | |
| from ...client import AuthenticatedClient, Client | |
| from ...types import Response, UNSET | |
| from ... import errors | |
| from ...models.error_response import ErrorResponse | |
| from ...models.table_upload_request import TableUploadRequest | |
| from ...models.table_upload_response import TableUploadResponse | |
| from typing import cast | |
| from http import HTTPStatus | |
| from typing import Any, cast | |
| import httpx | |
| from ...client import AuthenticatedClient, Client | |
| from ...types import Response, UNSET | |
| from ... import errors | |
| from ...models.error_response import ErrorResponse | |
| from ...models.table_upload_request import TableUploadRequest | |
| from ...models.table_upload_response import TableUploadResponse |
|
Closing per request. |
This PR updates the Python SDK for release
1.0.81.Generated from:
1-0-81d90d35f88e75d7d3684d5b803fa0737c76b55c20