From d38d11a241f8b47dcf62ecb2933f72f70e80aca4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 15:16:30 +0000 Subject: [PATCH 1/5] chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 077a972..04cfb63 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: timeout-minutes: 10 name: lint runs-on: ${{ github.repository == 'stainless-sdks/dedalus-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@v6 @@ -35,7 +35,7 @@ jobs: run: ./scripts/lint build: - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') timeout-minutes: 10 name: build permissions: From ea163fc51951aca7687bbb7936113c1432df3a2e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 15:45:28 +0000 Subject: [PATCH 2/5] chore(tests): bump steady to v0.19.7 --- scripts/mock | 6 +++--- scripts/test | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/mock b/scripts/mock index b319bdf..09eb49f 100755 --- a/scripts/mock +++ b/scripts/mock @@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}" # Run steady mock on the given spec if [ "$1" == "--daemon" ]; then # Pre-install the package so the download doesn't eat into the startup timeout - npm exec --package=@stdy/cli@0.19.6 -- steady --version + npm exec --package=@stdy/cli@0.19.7 -- steady --version - npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & + npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & # Wait for server to come online via health endpoint (max 30s) echo -n "Waiting for server" @@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then echo else - npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" + npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" fi diff --git a/scripts/test b/scripts/test index ba2580a..d13602a 100755 --- a/scripts/test +++ b/scripts/test @@ -43,7 +43,7 @@ elif ! steady_is_running ; then echo -e "To run the server, pass in the path or url of your OpenAPI" echo -e "spec to the steady command:" echo - echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.6 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" + echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.7 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" echo exit 1 From 453d5c37afde54a6b1603b2485b0100f894acfd1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 00:02:28 +0000 Subject: [PATCH 3/5] fix(api): rename stream_status to watch, remove wake_if_needed from workspace methods --- .stats.yml | 6 +-- README.md | 4 +- api.md | 2 +- .../resources/workspaces/executions.py | 4 -- .../resources/workspaces/previews.py | 4 -- src/dedalus_sdk/resources/workspaces/ssh.py | 18 +-------- .../resources/workspaces/terminals.py | 4 -- .../resources/workspaces/workspaces.py | 28 ++++++++----- src/dedalus_sdk/types/workspace.py | 2 +- .../types/workspace_create_params.py | 1 + src/dedalus_sdk/types/workspace_list.py | 2 +- .../types/workspace_update_params.py | 1 + .../workspaces/execution_create_params.py | 2 - .../types/workspaces/preview_create_params.py | 2 - .../types/workspaces/ssh_create_params.py | 2 - .../workspaces/terminal_create_params.py | 2 - tests/api_resources/test_workspaces.py | 40 +++++++++---------- .../workspaces/test_executions.py | 2 - .../api_resources/workspaces/test_previews.py | 2 - tests/api_resources/workspaces/test_ssh.py | 18 --------- .../workspaces/test_terminals.py | 2 - 21 files changed, 50 insertions(+), 98 deletions(-) diff --git a/.stats.yml b/.stats.yml index a16d1b5..26f199e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 27 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/dedalus-labs%2Fdedalus-a2b38be63dcddaea1a314843f9685b8e26c1f584b1696712f6a9668014afc0a7.yml -openapi_spec_hash: ba6a5b38ed5fa9d49b03b154e3b99b53 -config_hash: a71704446fb82d83c7357258c182bdb5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/dedalus-labs%2Fdedalus-7a281169c5f380aa29376e393f8c5f87d35998fecc9e1210835f1165c0bc467f.yml +openapi_spec_hash: da9a43b37a46e0d22a823085861cdd82 +config_hash: 7fcee0473099fe6d9a119f37c80e53d7 diff --git a/README.md b/README.md index 128250a..da701dd 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ from dedalus_sdk import Dedalus client = Dedalus() -stream = client.workspaces.stream_status( +stream = client.workspaces.watch( workspace_id="workspace_id", ) for workspace in stream: @@ -141,7 +141,7 @@ from dedalus_sdk import AsyncDedalus client = AsyncDedalus() -stream = await client.workspaces.stream_status( +stream = await client.workspaces.watch( workspace_id="workspace_id", ) async for workspace in stream: diff --git a/api.md b/api.md index fce5d81..14c717c 100644 --- a/api.md +++ b/api.md @@ -13,7 +13,7 @@ Methods: - client.workspaces.update(workspace_id, \*\*params) -> Workspace - client.workspaces.list(\*\*params) -> SyncCursorPage[Item] - client.workspaces.delete(workspace_id) -> Workspace -- client.workspaces.stream_status(workspace_id) -> Workspace +- client.workspaces.watch(workspace_id) -> Workspace ## Artifacts diff --git a/src/dedalus_sdk/resources/workspaces/executions.py b/src/dedalus_sdk/resources/workspaces/executions.py index 1839bb7..c53caac 100644 --- a/src/dedalus_sdk/resources/workspaces/executions.py +++ b/src/dedalus_sdk/resources/workspaces/executions.py @@ -55,7 +55,6 @@ def create( env: Dict[str, str] | Omit = omit, stdin: str | Omit = omit, timeout_ms: int | Omit = omit, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -89,7 +88,6 @@ def create( "env": env, "stdin": stdin, "timeout_ms": timeout_ms, - "wake_if_needed": wake_if_needed, }, execution_create_params.ExecutionCreateParams, ), @@ -359,7 +357,6 @@ async def create( env: Dict[str, str] | Omit = omit, stdin: str | Omit = omit, timeout_ms: int | Omit = omit, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -393,7 +390,6 @@ async def create( "env": env, "stdin": stdin, "timeout_ms": timeout_ms, - "wake_if_needed": wake_if_needed, }, execution_create_params.ExecutionCreateParams, ), diff --git a/src/dedalus_sdk/resources/workspaces/previews.py b/src/dedalus_sdk/resources/workspaces/previews.py index 29af311..54377cb 100644 --- a/src/dedalus_sdk/resources/workspaces/previews.py +++ b/src/dedalus_sdk/resources/workspaces/previews.py @@ -50,7 +50,6 @@ def create( *, port: int, protocol: Literal["http", "https"] | Omit = omit, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -81,7 +80,6 @@ def create( { "port": port, "protocol": protocol, - "wake_if_needed": wake_if_needed, }, preview_create_params.PreviewCreateParams, ), @@ -251,7 +249,6 @@ async def create( *, port: int, protocol: Literal["http", "https"] | Omit = omit, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -282,7 +279,6 @@ async def create( { "port": port, "protocol": protocol, - "wake_if_needed": wake_if_needed, }, preview_create_params.PreviewCreateParams, ), diff --git a/src/dedalus_sdk/resources/workspaces/ssh.py b/src/dedalus_sdk/resources/workspaces/ssh.py index a66de23..e4c11f6 100644 --- a/src/dedalus_sdk/resources/workspaces/ssh.py +++ b/src/dedalus_sdk/resources/workspaces/ssh.py @@ -47,7 +47,6 @@ def create( workspace_id: str, *, public_key: str, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -74,13 +73,7 @@ def create( raise ValueError(f"Expected a non-empty value for `workspace_id` but received {workspace_id!r}") return self._post( path_template("/v1/workspaces/{workspace_id}/ssh", workspace_id=workspace_id), - body=maybe_transform( - { - "public_key": public_key, - "wake_if_needed": wake_if_needed, - }, - ssh_create_params.SSHCreateParams, - ), + body=maybe_transform({"public_key": public_key}, ssh_create_params.SSHCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -246,7 +239,6 @@ async def create( workspace_id: str, *, public_key: str, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -273,13 +265,7 @@ async def create( raise ValueError(f"Expected a non-empty value for `workspace_id` but received {workspace_id!r}") return await self._post( path_template("/v1/workspaces/{workspace_id}/ssh", workspace_id=workspace_id), - body=await async_maybe_transform( - { - "public_key": public_key, - "wake_if_needed": wake_if_needed, - }, - ssh_create_params.SSHCreateParams, - ), + body=await async_maybe_transform({"public_key": public_key}, ssh_create_params.SSHCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/dedalus_sdk/resources/workspaces/terminals.py b/src/dedalus_sdk/resources/workspaces/terminals.py index 135a419..0c6096b 100644 --- a/src/dedalus_sdk/resources/workspaces/terminals.py +++ b/src/dedalus_sdk/resources/workspaces/terminals.py @@ -72,7 +72,6 @@ def create( cwd: str | Omit = omit, env: Dict[str, str] | Omit = omit, shell: str | Omit = omit, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -106,7 +105,6 @@ def create( "cwd": cwd, "env": env, "shell": shell, - "wake_if_needed": wake_if_needed, }, terminal_create_params.TerminalCreateParams, ), @@ -296,7 +294,6 @@ async def create( cwd: str | Omit = omit, env: Dict[str, str] | Omit = omit, shell: str | Omit = omit, - wake_if_needed: bool | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -330,7 +327,6 @@ async def create( "cwd": cwd, "env": env, "shell": shell, - "wake_if_needed": wake_if_needed, }, terminal_create_params.TerminalCreateParams, ), diff --git a/src/dedalus_sdk/resources/workspaces/workspaces.py b/src/dedalus_sdk/resources/workspaces/workspaces.py index 0f0c387..18d290a 100644 --- a/src/dedalus_sdk/resources/workspaces/workspaces.py +++ b/src/dedalus_sdk/resources/workspaces/workspaces.py @@ -124,6 +124,8 @@ def create( Args: memory_mib: Memory in MiB. + storage_gib: Storage in GiB. + vcpu: CPU in vCPUs. extra_headers: Send extra headers @@ -211,6 +213,8 @@ def update( Args: memory_mib: Memory in MiB. + storage_gib: Storage in GiB. + vcpu: CPU in vCPUs. extra_headers: Send extra headers @@ -331,7 +335,7 @@ def delete( cast_to=Workspace, ) - def stream_status( + def watch( self, workspace_id: str, *, @@ -433,6 +437,8 @@ async def create( Args: memory_mib: Memory in MiB. + storage_gib: Storage in GiB. + vcpu: CPU in vCPUs. extra_headers: Send extra headers @@ -520,6 +526,8 @@ async def update( Args: memory_mib: Memory in MiB. + storage_gib: Storage in GiB. + vcpu: CPU in vCPUs. extra_headers: Send extra headers @@ -640,7 +648,7 @@ async def delete( cast_to=Workspace, ) - async def stream_status( + async def watch( self, workspace_id: str, *, @@ -701,8 +709,8 @@ def __init__(self, workspaces: WorkspacesResource) -> None: self.delete = to_raw_response_wrapper( workspaces.delete, ) - self.stream_status = to_raw_response_wrapper( - workspaces.stream_status, + self.watch = to_raw_response_wrapper( + workspaces.watch, ) @cached_property @@ -745,8 +753,8 @@ def __init__(self, workspaces: AsyncWorkspacesResource) -> None: self.delete = async_to_raw_response_wrapper( workspaces.delete, ) - self.stream_status = async_to_raw_response_wrapper( - workspaces.stream_status, + self.watch = async_to_raw_response_wrapper( + workspaces.watch, ) @cached_property @@ -789,8 +797,8 @@ def __init__(self, workspaces: WorkspacesResource) -> None: self.delete = to_streamed_response_wrapper( workspaces.delete, ) - self.stream_status = to_streamed_response_wrapper( - workspaces.stream_status, + self.watch = to_streamed_response_wrapper( + workspaces.watch, ) @cached_property @@ -833,8 +841,8 @@ def __init__(self, workspaces: AsyncWorkspacesResource) -> None: self.delete = async_to_streamed_response_wrapper( workspaces.delete, ) - self.stream_status = async_to_streamed_response_wrapper( - workspaces.stream_status, + self.watch = async_to_streamed_response_wrapper( + workspaces.watch, ) @cached_property diff --git a/src/dedalus_sdk/types/workspace.py b/src/dedalus_sdk/types/workspace.py index 88ba981..435cae4 100644 --- a/src/dedalus_sdk/types/workspace.py +++ b/src/dedalus_sdk/types/workspace.py @@ -9,7 +9,7 @@ class Workspace(BaseModel): - desired_state: Literal["active", "inactive", "destroyed"] + desired_state: Literal["running", "sleeping", "destroyed"] memory_mib: int """Memory in MiB.""" diff --git a/src/dedalus_sdk/types/workspace_create_params.py b/src/dedalus_sdk/types/workspace_create_params.py index a3622e9..641c5b5 100644 --- a/src/dedalus_sdk/types/workspace_create_params.py +++ b/src/dedalus_sdk/types/workspace_create_params.py @@ -12,6 +12,7 @@ class WorkspaceCreateParams(TypedDict, total=False): """Memory in MiB.""" storage_gib: Required[int] + """Storage in GiB.""" vcpu: Required[float] """CPU in vCPUs.""" diff --git a/src/dedalus_sdk/types/workspace_list.py b/src/dedalus_sdk/types/workspace_list.py index 9cd68cc..a09302d 100644 --- a/src/dedalus_sdk/types/workspace_list.py +++ b/src/dedalus_sdk/types/workspace_list.py @@ -13,7 +13,7 @@ class Item(BaseModel): created_at: datetime - desired_state: Literal["active", "inactive", "destroyed"] + desired_state: Literal["running", "sleeping", "destroyed"] memory_mib: int """Memory in MiB.""" diff --git a/src/dedalus_sdk/types/workspace_update_params.py b/src/dedalus_sdk/types/workspace_update_params.py index fdc40d3..dfeab87 100644 --- a/src/dedalus_sdk/types/workspace_update_params.py +++ b/src/dedalus_sdk/types/workspace_update_params.py @@ -16,6 +16,7 @@ class WorkspaceUpdateParams(TypedDict, total=False): """Memory in MiB.""" storage_gib: int + """Storage in GiB.""" vcpu: float """CPU in vCPUs.""" diff --git a/src/dedalus_sdk/types/workspaces/execution_create_params.py b/src/dedalus_sdk/types/workspaces/execution_create_params.py index 3400720..a95100a 100644 --- a/src/dedalus_sdk/types/workspaces/execution_create_params.py +++ b/src/dedalus_sdk/types/workspaces/execution_create_params.py @@ -20,5 +20,3 @@ class ExecutionCreateParams(TypedDict, total=False): stdin: str timeout_ms: int - - wake_if_needed: bool diff --git a/src/dedalus_sdk/types/workspaces/preview_create_params.py b/src/dedalus_sdk/types/workspaces/preview_create_params.py index 3678e00..d2bb119 100644 --- a/src/dedalus_sdk/types/workspaces/preview_create_params.py +++ b/src/dedalus_sdk/types/workspaces/preview_create_params.py @@ -11,5 +11,3 @@ class PreviewCreateParams(TypedDict, total=False): port: Required[int] protocol: Literal["http", "https"] - - wake_if_needed: bool diff --git a/src/dedalus_sdk/types/workspaces/ssh_create_params.py b/src/dedalus_sdk/types/workspaces/ssh_create_params.py index ca983af..d4b48c3 100644 --- a/src/dedalus_sdk/types/workspaces/ssh_create_params.py +++ b/src/dedalus_sdk/types/workspaces/ssh_create_params.py @@ -9,5 +9,3 @@ class SSHCreateParams(TypedDict, total=False): public_key: Required[str] - - wake_if_needed: bool diff --git a/src/dedalus_sdk/types/workspaces/terminal_create_params.py b/src/dedalus_sdk/types/workspaces/terminal_create_params.py index 09e2cd1..23c4a2e 100644 --- a/src/dedalus_sdk/types/workspaces/terminal_create_params.py +++ b/src/dedalus_sdk/types/workspaces/terminal_create_params.py @@ -18,5 +18,3 @@ class TerminalCreateParams(TypedDict, total=False): env: Dict[str, str] shell: str - - wake_if_needed: bool diff --git a/tests/api_resources/test_workspaces.py b/tests/api_resources/test_workspaces.py index f898002..0420c23 100644 --- a/tests/api_resources/test_workspaces.py +++ b/tests/api_resources/test_workspaces.py @@ -223,23 +223,23 @@ def test_path_params_delete(self, client: Dedalus) -> None: ) @parametrize - def test_method_stream_status(self, client: Dedalus) -> None: - workspace_stream = client.workspaces.stream_status( + def test_method_watch(self, client: Dedalus) -> None: + workspace_stream = client.workspaces.watch( workspace_id="workspace_id", ) workspace_stream.response.close() @parametrize - def test_method_stream_status_with_all_params(self, client: Dedalus) -> None: - workspace_stream = client.workspaces.stream_status( + def test_method_watch_with_all_params(self, client: Dedalus) -> None: + workspace_stream = client.workspaces.watch( workspace_id="workspace_id", last_event_id="Last-Event-ID", ) workspace_stream.response.close() @parametrize - def test_raw_response_stream_status(self, client: Dedalus) -> None: - response = client.workspaces.with_raw_response.stream_status( + def test_raw_response_watch(self, client: Dedalus) -> None: + response = client.workspaces.with_raw_response.watch( workspace_id="workspace_id", ) @@ -248,8 +248,8 @@ def test_raw_response_stream_status(self, client: Dedalus) -> None: stream.close() @parametrize - def test_streaming_response_stream_status(self, client: Dedalus) -> None: - with client.workspaces.with_streaming_response.stream_status( + def test_streaming_response_watch(self, client: Dedalus) -> None: + with client.workspaces.with_streaming_response.watch( workspace_id="workspace_id", ) as response: assert not response.is_closed @@ -261,9 +261,9 @@ def test_streaming_response_stream_status(self, client: Dedalus) -> None: assert cast(Any, response.is_closed) is True @parametrize - def test_path_params_stream_status(self, client: Dedalus) -> None: + def test_path_params_watch(self, client: Dedalus) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `workspace_id` but received ''"): - client.workspaces.with_raw_response.stream_status( + client.workspaces.with_raw_response.watch( workspace_id="", ) @@ -477,23 +477,23 @@ async def test_path_params_delete(self, async_client: AsyncDedalus) -> None: ) @parametrize - async def test_method_stream_status(self, async_client: AsyncDedalus) -> None: - workspace_stream = await async_client.workspaces.stream_status( + async def test_method_watch(self, async_client: AsyncDedalus) -> None: + workspace_stream = await async_client.workspaces.watch( workspace_id="workspace_id", ) await workspace_stream.response.aclose() @parametrize - async def test_method_stream_status_with_all_params(self, async_client: AsyncDedalus) -> None: - workspace_stream = await async_client.workspaces.stream_status( + async def test_method_watch_with_all_params(self, async_client: AsyncDedalus) -> None: + workspace_stream = await async_client.workspaces.watch( workspace_id="workspace_id", last_event_id="Last-Event-ID", ) await workspace_stream.response.aclose() @parametrize - async def test_raw_response_stream_status(self, async_client: AsyncDedalus) -> None: - response = await async_client.workspaces.with_raw_response.stream_status( + async def test_raw_response_watch(self, async_client: AsyncDedalus) -> None: + response = await async_client.workspaces.with_raw_response.watch( workspace_id="workspace_id", ) @@ -502,8 +502,8 @@ async def test_raw_response_stream_status(self, async_client: AsyncDedalus) -> N await stream.close() @parametrize - async def test_streaming_response_stream_status(self, async_client: AsyncDedalus) -> None: - async with async_client.workspaces.with_streaming_response.stream_status( + async def test_streaming_response_watch(self, async_client: AsyncDedalus) -> None: + async with async_client.workspaces.with_streaming_response.watch( workspace_id="workspace_id", ) as response: assert not response.is_closed @@ -515,8 +515,8 @@ async def test_streaming_response_stream_status(self, async_client: AsyncDedalus assert cast(Any, response.is_closed) is True @parametrize - async def test_path_params_stream_status(self, async_client: AsyncDedalus) -> None: + async def test_path_params_watch(self, async_client: AsyncDedalus) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `workspace_id` but received ''"): - await async_client.workspaces.with_raw_response.stream_status( + await async_client.workspaces.with_raw_response.watch( workspace_id="", ) diff --git a/tests/api_resources/workspaces/test_executions.py b/tests/api_resources/workspaces/test_executions.py index d001187..15777c1 100644 --- a/tests/api_resources/workspaces/test_executions.py +++ b/tests/api_resources/workspaces/test_executions.py @@ -39,7 +39,6 @@ def test_method_create_with_all_params(self, client: Dedalus) -> None: env={"foo": "string"}, stdin="stdin", timeout_ms=0, - wake_if_needed=True, ) assert_matches_type(Execution, execution, path=["response"]) @@ -349,7 +348,6 @@ async def test_method_create_with_all_params(self, async_client: AsyncDedalus) - env={"foo": "string"}, stdin="stdin", timeout_ms=0, - wake_if_needed=True, ) assert_matches_type(Execution, execution, path=["response"]) diff --git a/tests/api_resources/workspaces/test_previews.py b/tests/api_resources/workspaces/test_previews.py index bc6a22c..bc1e519 100644 --- a/tests/api_resources/workspaces/test_previews.py +++ b/tests/api_resources/workspaces/test_previews.py @@ -32,7 +32,6 @@ def test_method_create_with_all_params(self, client: Dedalus) -> None: workspace_id="workspace_id", port=0, protocol="http", - wake_if_needed=True, ) assert_matches_type(Preview, preview, path=["response"]) @@ -233,7 +232,6 @@ async def test_method_create_with_all_params(self, async_client: AsyncDedalus) - workspace_id="workspace_id", port=0, protocol="http", - wake_if_needed=True, ) assert_matches_type(Preview, preview, path=["response"]) diff --git a/tests/api_resources/workspaces/test_ssh.py b/tests/api_resources/workspaces/test_ssh.py index c504af1..535709d 100644 --- a/tests/api_resources/workspaces/test_ssh.py +++ b/tests/api_resources/workspaces/test_ssh.py @@ -26,15 +26,6 @@ def test_method_create(self, client: Dedalus) -> None: ) assert_matches_type(SSHSession, ssh, path=["response"]) - @parametrize - def test_method_create_with_all_params(self, client: Dedalus) -> None: - ssh = client.workspaces.ssh.create( - workspace_id="workspace_id", - public_key="public_key", - wake_if_needed=True, - ) - assert_matches_type(SSHSession, ssh, path=["response"]) - @parametrize def test_raw_response_create(self, client: Dedalus) -> None: response = client.workspaces.ssh.with_raw_response.create( @@ -226,15 +217,6 @@ async def test_method_create(self, async_client: AsyncDedalus) -> None: ) assert_matches_type(SSHSession, ssh, path=["response"]) - @parametrize - async def test_method_create_with_all_params(self, async_client: AsyncDedalus) -> None: - ssh = await async_client.workspaces.ssh.create( - workspace_id="workspace_id", - public_key="public_key", - wake_if_needed=True, - ) - assert_matches_type(SSHSession, ssh, path=["response"]) - @parametrize async def test_raw_response_create(self, async_client: AsyncDedalus) -> None: response = await async_client.workspaces.ssh.with_raw_response.create( diff --git a/tests/api_resources/workspaces/test_terminals.py b/tests/api_resources/workspaces/test_terminals.py index 782b19b..e84e52d 100644 --- a/tests/api_resources/workspaces/test_terminals.py +++ b/tests/api_resources/workspaces/test_terminals.py @@ -36,7 +36,6 @@ def test_method_create_with_all_params(self, client: Dedalus) -> None: cwd="cwd", env={"foo": "string"}, shell="shell", - wake_if_needed=True, ) assert_matches_type(Terminal, terminal, path=["response"]) @@ -244,7 +243,6 @@ async def test_method_create_with_all_params(self, async_client: AsyncDedalus) - cwd="cwd", env={"foo": "string"}, shell="shell", - wake_if_needed=True, ) assert_matches_type(Terminal, terminal, path=["response"]) From 45e2a3fbb28cc4a3f4d8183827ec17d46113ee3e Mon Sep 17 00:00:00 2001 From: Windsor Date: Tue, 24 Mar 2026 18:50:27 -0700 Subject: [PATCH 4/5] fix: sync uv.lock version with pyproject.toml --- uv.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uv.lock b/uv.lock index 91129d1..8125437 100644 --- a/uv.lock +++ b/uv.lock @@ -244,7 +244,7 @@ wheels = [ [[package]] name = "dedalus-sdk" -version = "0.0.1" +version = "0.0.2" source = { editable = "." } dependencies = [ { name = "anyio" }, From cfdfe1bf98aae62eb410748237787a83b588061f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 01:50:38 +0000 Subject: [PATCH 5/5] release: 0.0.3 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- src/dedalus_sdk/_version.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c7159c1..28e831b 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.0.2" + ".": "0.0.3" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fd26f5..0a02c65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.0.3 (2026-03-25) + +Full Changelog: [v0.0.2...v0.0.3](https://github.com/dedalus-labs/dedalus-python/compare/v0.0.2...v0.0.3) + +### Bug Fixes + +* **api:** rename stream_status to watch, remove wake_if_needed from workspace methods ([453d5c3](https://github.com/dedalus-labs/dedalus-python/commit/453d5c37afde54a6b1603b2485b0100f894acfd1)) +* sync uv.lock version with pyproject.toml ([45e2a3f](https://github.com/dedalus-labs/dedalus-python/commit/45e2a3fbb28cc4a3f4d8183827ec17d46113ee3e)) + + +### Chores + +* **ci:** skip lint on metadata-only changes ([d38d11a](https://github.com/dedalus-labs/dedalus-python/commit/d38d11a241f8b47dcf62ecb2933f72f70e80aca4)) +* **tests:** bump steady to v0.19.7 ([ea163fc](https://github.com/dedalus-labs/dedalus-python/commit/ea163fc51951aca7687bbb7936113c1432df3a2e)) + ## 0.0.2 (2026-03-23) Full Changelog: [v0.0.1...v0.0.2](https://github.com/dedalus-labs/dedalus-python/compare/v0.0.1...v0.0.2) diff --git a/pyproject.toml b/pyproject.toml index 43ffdb5..190cfd6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "dedalus-sdk" -version = "0.0.2" +version = "0.0.3" description = "The official Python library for the Dedalus API" dynamic = ["readme"] license = "MIT" diff --git a/src/dedalus_sdk/_version.py b/src/dedalus_sdk/_version.py index 96bd39b..8fd0082 100644 --- a/src/dedalus_sdk/_version.py +++ b/src/dedalus_sdk/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "dedalus_sdk" -__version__ = "0.0.2" # x-release-please-version +__version__ = "0.0.3" # x-release-please-version