Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.8.0"
".": "0.8.1"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 21
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-a5b1d2c806c42c1534eefc8d34516f7f6e4ab68cb6a836534ee549bdbe4653f3.yml
openapi_spec_hash: 0be350cc8ddbd1fc7e058ce6c3a44ee8
config_hash: 307153ecd5b85f77ce8e0d87f6e5dfab
configured_endpoints: 19
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-84945582139b11633f792c1052a33e6af9cafc96bbafc2902a905312d14c4cc1.yml
openapi_spec_hash: c77be216626b789a543529a6de56faed
config_hash: 65328ff206b8c0168c915914506d9dba
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.8.1 (2025-07-21)

Full Changelog: [v0.8.0...v0.8.1](https://github.com/onkernel/kernel-python-sdk/compare/v0.8.0...v0.8.1)

### Chores

* **api:** remove deprecated endpoints ([348e40a](https://github.com/onkernel/kernel-python-sdk/commit/348e40a5f610769a5ec59d4f4e40b79d166cdf57))

## 0.8.0 (2025-07-16)

Full Changelog: [v0.7.1...v0.8.0](https://github.com/onkernel/kernel-python-sdk/compare/v0.7.1...v0.8.0)
Expand Down
34 changes: 10 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,10 @@ client = Kernel(
environment="development",
)

deployment = client.apps.deployments.create(
entrypoint_rel_path="main.ts",
file=b"REPLACE_ME",
env_vars={"OPENAI_API_KEY": "x"},
version="1.0.0",
browser = client.browsers.create(
persistence={"id": "browser-for-user-1234"},
)
print(deployment.apps)
print(browser.session_id)
```

While you can provide an `api_key` keyword argument,
Expand All @@ -65,13 +62,10 @@ client = AsyncKernel(


async def main() -> None:
deployment = await client.apps.deployments.create(
entrypoint_rel_path="main.ts",
file=b"REPLACE_ME",
env_vars={"OPENAI_API_KEY": "x"},
version="1.0.0",
browser = await client.browsers.create(
persistence={"id": "browser-for-user-1234"},
)
print(deployment.apps)
print(browser.session_id)


asyncio.run(main())
Expand Down Expand Up @@ -103,13 +97,10 @@ async def main() -> None:
api_key="My API Key",
http_client=DefaultAioHttpClient(),
) as client:
deployment = await client.apps.deployments.create(
entrypoint_rel_path="main.ts",
file=b"REPLACE_ME",
env_vars={"OPENAI_API_KEY": "x"},
version="1.0.0",
browser = await client.browsers.create(
persistence={"id": "browser-for-user-1234"},
)
print(deployment.apps)
print(browser.session_id)


asyncio.run(main())
Expand Down Expand Up @@ -149,7 +140,7 @@ from kernel import Kernel

client = Kernel()

client.apps.deployments.create(
client.deployments.create(
entrypoint_rel_path="src/app.py",
file=Path("/path/to/file"),
)
Expand All @@ -174,7 +165,6 @@ client = Kernel()

try:
client.browsers.create(
invocation_id="REPLACE_ME",
persistence={"id": "browser-for-user-1234"},
)
except kernel.APIConnectionError as e:
Expand Down Expand Up @@ -220,7 +210,6 @@ client = Kernel(

# Or, configure per-request:
client.with_options(max_retries=5).browsers.create(
invocation_id="REPLACE_ME",
persistence={"id": "browser-for-user-1234"},
)
```
Expand All @@ -246,7 +235,6 @@ client = Kernel(

# Override per-request:
client.with_options(timeout=5.0).browsers.create(
invocation_id="REPLACE_ME",
persistence={"id": "browser-for-user-1234"},
)
```
Expand Down Expand Up @@ -290,7 +278,6 @@ from kernel import Kernel

client = Kernel()
response = client.browsers.with_raw_response.create(
invocation_id="REPLACE_ME",
persistence={
"id": "browser-for-user-1234"
},
Expand All @@ -313,7 +300,6 @@ To stream the response body, use `.with_streaming_response` instead, which requi

```python
with client.browsers.with_streaming_response.create(
invocation_id="REPLACE_ME",
persistence={"id": "browser-for-user-1234"},
) as response:
print(response.headers.get("X-My-Header"))
Expand Down
15 changes: 1 addition & 14 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,7 @@ from kernel.types import AppListResponse

Methods:

- <code title="get /apps">client.apps.<a href="./src/kernel/resources/apps/apps.py">list</a>(\*\*<a href="src/kernel/types/app_list_params.py">params</a>) -> <a href="./src/kernel/types/app_list_response.py">AppListResponse</a></code>

## Deployments

Types:

```python
from kernel.types.apps import DeploymentCreateResponse, DeploymentFollowResponse
```

Methods:

- <code title="post /deploy">client.apps.deployments.<a href="./src/kernel/resources/apps/deployments.py">create</a>(\*\*<a href="src/kernel/types/apps/deployment_create_params.py">params</a>) -> <a href="./src/kernel/types/apps/deployment_create_response.py">DeploymentCreateResponse</a></code>
- <code title="get /apps/{id}/events">client.apps.deployments.<a href="./src/kernel/resources/apps/deployments.py">follow</a>(id) -> <a href="./src/kernel/types/apps/deployment_follow_response.py">DeploymentFollowResponse</a></code>
- <code title="get /apps">client.apps.<a href="./src/kernel/resources/apps.py">list</a>(\*\*<a href="src/kernel/types/app_list_params.py">params</a>) -> <a href="./src/kernel/types/app_list_response.py">AppListResponse</a></code>

# Invocations

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "kernel"
version = "0.8.0"
version = "0.8.1"
description = "The official Python library for the kernel API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
3 changes: 1 addition & 2 deletions src/kernel/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,14 @@
)
from ._utils import is_given, get_async_library
from ._version import __version__
from .resources import deployments, invocations
from .resources import apps, deployments, invocations
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
from ._exceptions import KernelError, APIStatusError
from ._base_client import (
DEFAULT_MAX_RETRIES,
SyncAPIClient,
AsyncAPIClient,
)
from .resources.apps import apps
from .resources.browsers import browsers

__all__ = [
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "kernel"
__version__ = "0.8.0" # x-release-please-version
__version__ = "0.8.1" # x-release-please-version
48 changes: 8 additions & 40 deletions src/kernel/resources/apps/apps.py → src/kernel/resources/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,24 @@

import httpx

from ...types import app_list_params
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from ..._utils import maybe_transform, async_maybe_transform
from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import (
from ..types import app_list_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._utils import maybe_transform, async_maybe_transform
from .._compat import cached_property
from .._resource import SyncAPIResource, AsyncAPIResource
from .._response import (
to_raw_response_wrapper,
to_streamed_response_wrapper,
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
from .deployments import (
DeploymentsResource,
AsyncDeploymentsResource,
DeploymentsResourceWithRawResponse,
AsyncDeploymentsResourceWithRawResponse,
DeploymentsResourceWithStreamingResponse,
AsyncDeploymentsResourceWithStreamingResponse,
)
from ..._base_client import make_request_options
from ...types.app_list_response import AppListResponse
from .._base_client import make_request_options
from ..types.app_list_response import AppListResponse

__all__ = ["AppsResource", "AsyncAppsResource"]


class AppsResource(SyncAPIResource):
@cached_property
def deployments(self) -> DeploymentsResource:
return DeploymentsResource(self._client)

@cached_property
def with_raw_response(self) -> AppsResourceWithRawResponse:
"""
Expand Down Expand Up @@ -102,10 +90,6 @@ def list(


class AsyncAppsResource(AsyncAPIResource):
@cached_property
def deployments(self) -> AsyncDeploymentsResource:
return AsyncDeploymentsResource(self._client)

@cached_property
def with_raw_response(self) -> AsyncAppsResourceWithRawResponse:
"""
Expand Down Expand Up @@ -181,10 +165,6 @@ def __init__(self, apps: AppsResource) -> None:
apps.list,
)

@cached_property
def deployments(self) -> DeploymentsResourceWithRawResponse:
return DeploymentsResourceWithRawResponse(self._apps.deployments)


class AsyncAppsResourceWithRawResponse:
def __init__(self, apps: AsyncAppsResource) -> None:
Expand All @@ -194,10 +174,6 @@ def __init__(self, apps: AsyncAppsResource) -> None:
apps.list,
)

@cached_property
def deployments(self) -> AsyncDeploymentsResourceWithRawResponse:
return AsyncDeploymentsResourceWithRawResponse(self._apps.deployments)


class AppsResourceWithStreamingResponse:
def __init__(self, apps: AppsResource) -> None:
Expand All @@ -207,10 +183,6 @@ def __init__(self, apps: AppsResource) -> None:
apps.list,
)

@cached_property
def deployments(self) -> DeploymentsResourceWithStreamingResponse:
return DeploymentsResourceWithStreamingResponse(self._apps.deployments)


class AsyncAppsResourceWithStreamingResponse:
def __init__(self, apps: AsyncAppsResource) -> None:
Expand All @@ -219,7 +191,3 @@ def __init__(self, apps: AsyncAppsResource) -> None:
self.list = async_to_streamed_response_wrapper(
apps.list,
)

@cached_property
def deployments(self) -> AsyncDeploymentsResourceWithStreamingResponse:
return AsyncDeploymentsResourceWithStreamingResponse(self._apps.deployments)
33 changes: 0 additions & 33 deletions src/kernel/resources/apps/__init__.py

This file was deleted.

Loading