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.12.6"
".": "0.13.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
configured_endpoints: 19
configured_endpoints: 24
openapi_spec_hash: 68055a774f3305fb11efa5b5b5881446
config_hash: 00442fdab71911b02ab1e10f9ec05b79
config_hash: f0743196c68fb84cbd06a95f134702b3
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 0.13.0 (2026-01-08)

Full Changelog: [v0.12.6...v0.13.0](https://github.com/openlayer-ai/openlayer-python/compare/v0.12.6...v0.13.0)

### Features

* **api:** add missing endpoints ([cfc7059](https://github.com/openlayer-ai/openlayer-python/commit/cfc7059cce8056367a8e78ea1a978addf9bbefd5))

## 0.12.6 (2026-01-08)

Full Changelog: [v0.12.5...v0.12.6](https://github.com/openlayer-ai/openlayer-python/compare/v0.12.5...v0.12.6)
Expand Down
38 changes: 38 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,44 @@ Methods:
- <code title="put /projects/{projectId}/tests">client.projects.tests.<a href="./src/openlayer/resources/projects/tests.py">update</a>(project_id, \*\*<a href="src/openlayer/types/projects/test_update_params.py">params</a>) -> <a href="./src/openlayer/types/projects/test_update_response.py">TestUpdateResponse</a></code>
- <code title="get /projects/{projectId}/tests">client.projects.tests.<a href="./src/openlayer/resources/projects/tests.py">list</a>(project_id, \*\*<a href="src/openlayer/types/projects/test_list_params.py">params</a>) -> <a href="./src/openlayer/types/projects/test_list_response.py">TestListResponse</a></code>

# Workspaces

Types:

```python
from openlayer.types import WorkspaceRetrieveResponse, WorkspaceUpdateResponse
```

Methods:

- <code title="get /workspaces/{workspaceId}">client.workspaces.<a href="./src/openlayer/resources/workspaces/workspaces.py">retrieve</a>(workspace_id) -> <a href="./src/openlayer/types/workspace_retrieve_response.py">WorkspaceRetrieveResponse</a></code>
- <code title="put /workspaces/{workspaceId}">client.workspaces.<a href="./src/openlayer/resources/workspaces/workspaces.py">update</a>(workspace_id, \*\*<a href="src/openlayer/types/workspace_update_params.py">params</a>) -> <a href="./src/openlayer/types/workspace_update_response.py">WorkspaceUpdateResponse</a></code>

## Invites

Types:

```python
from openlayer.types.workspaces import InviteCreateResponse, InviteListResponse
```

Methods:

- <code title="post /workspaces/{workspaceId}/invites">client.workspaces.invites.<a href="./src/openlayer/resources/workspaces/invites.py">create</a>(workspace_id, \*\*<a href="src/openlayer/types/workspaces/invite_create_params.py">params</a>) -> <a href="./src/openlayer/types/workspaces/invite_create_response.py">InviteCreateResponse</a></code>
- <code title="get /workspaces/{workspaceId}/invites">client.workspaces.invites.<a href="./src/openlayer/resources/workspaces/invites.py">list</a>(workspace_id, \*\*<a href="src/openlayer/types/workspaces/invite_list_params.py">params</a>) -> <a href="./src/openlayer/types/workspaces/invite_list_response.py">InviteListResponse</a></code>

## APIKeys

Types:

```python
from openlayer.types.workspaces import APIKeyCreateResponse
```

Methods:

- <code title="post /workspaces/{workspaceId}/api-keys">client.workspaces.api_keys.<a href="./src/openlayer/resources/workspaces/api_keys.py">create</a>(workspace_id, \*\*<a href="src/openlayer/types/workspaces/api_key_create_params.py">params</a>) -> <a href="./src/openlayer/types/workspaces/api_key_create_response.py">APIKeyCreateResponse</a></code>

# Commits

Types:
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 = "openlayer"
version = "0.12.6"
version = "0.13.0"
description = "The official Python library for the openlayer API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
39 changes: 38 additions & 1 deletion src/openlayer/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,12 @@
)

if TYPE_CHECKING:
from .resources import tests, commits, storage, projects, inference_pipelines
from .resources import tests, commits, storage, projects, workspaces, inference_pipelines
from .resources.tests import TestsResource, AsyncTestsResource
from .resources.commits.commits import CommitsResource, AsyncCommitsResource
from .resources.storage.storage import StorageResource, AsyncStorageResource
from .resources.projects.projects import ProjectsResource, AsyncProjectsResource
from .resources.workspaces.workspaces import WorkspacesResource, AsyncWorkspacesResource
from .resources.inference_pipelines.inference_pipelines import (
InferencePipelinesResource,
AsyncInferencePipelinesResource,
Expand Down Expand Up @@ -111,6 +112,12 @@ def projects(self) -> ProjectsResource:

return ProjectsResource(self)

@cached_property
def workspaces(self) -> WorkspacesResource:
from .resources.workspaces import WorkspacesResource

return WorkspacesResource(self)

@cached_property
def commits(self) -> CommitsResource:
from .resources.commits import CommitsResource
Expand Down Expand Up @@ -316,6 +323,12 @@ def projects(self) -> AsyncProjectsResource:

return AsyncProjectsResource(self)

@cached_property
def workspaces(self) -> AsyncWorkspacesResource:
from .resources.workspaces import AsyncWorkspacesResource

return AsyncWorkspacesResource(self)

@cached_property
def commits(self) -> AsyncCommitsResource:
from .resources.commits import AsyncCommitsResource
Expand Down Expand Up @@ -476,6 +489,12 @@ def projects(self) -> projects.ProjectsResourceWithRawResponse:

return ProjectsResourceWithRawResponse(self._client.projects)

@cached_property
def workspaces(self) -> workspaces.WorkspacesResourceWithRawResponse:
from .resources.workspaces import WorkspacesResourceWithRawResponse

return WorkspacesResourceWithRawResponse(self._client.workspaces)

@cached_property
def commits(self) -> commits.CommitsResourceWithRawResponse:
from .resources.commits import CommitsResourceWithRawResponse
Expand Down Expand Up @@ -513,6 +532,12 @@ def projects(self) -> projects.AsyncProjectsResourceWithRawResponse:

return AsyncProjectsResourceWithRawResponse(self._client.projects)

@cached_property
def workspaces(self) -> workspaces.AsyncWorkspacesResourceWithRawResponse:
from .resources.workspaces import AsyncWorkspacesResourceWithRawResponse

return AsyncWorkspacesResourceWithRawResponse(self._client.workspaces)

@cached_property
def commits(self) -> commits.AsyncCommitsResourceWithRawResponse:
from .resources.commits import AsyncCommitsResourceWithRawResponse
Expand Down Expand Up @@ -550,6 +575,12 @@ def projects(self) -> projects.ProjectsResourceWithStreamingResponse:

return ProjectsResourceWithStreamingResponse(self._client.projects)

@cached_property
def workspaces(self) -> workspaces.WorkspacesResourceWithStreamingResponse:
from .resources.workspaces import WorkspacesResourceWithStreamingResponse

return WorkspacesResourceWithStreamingResponse(self._client.workspaces)

@cached_property
def commits(self) -> commits.CommitsResourceWithStreamingResponse:
from .resources.commits import CommitsResourceWithStreamingResponse
Expand Down Expand Up @@ -587,6 +618,12 @@ def projects(self) -> projects.AsyncProjectsResourceWithStreamingResponse:

return AsyncProjectsResourceWithStreamingResponse(self._client.projects)

@cached_property
def workspaces(self) -> workspaces.AsyncWorkspacesResourceWithStreamingResponse:
from .resources.workspaces import AsyncWorkspacesResourceWithStreamingResponse

return AsyncWorkspacesResourceWithStreamingResponse(self._client.workspaces)

@cached_property
def commits(self) -> commits.AsyncCommitsResourceWithStreamingResponse:
from .resources.commits import AsyncCommitsResourceWithStreamingResponse
Expand Down
2 changes: 1 addition & 1 deletion src/openlayer/_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__ = "openlayer"
__version__ = "0.12.6" # x-release-please-version
__version__ = "0.13.0" # x-release-please-version
14 changes: 14 additions & 0 deletions src/openlayer/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,14 @@
ProjectsResourceWithStreamingResponse,
AsyncProjectsResourceWithStreamingResponse,
)
from .workspaces import (
WorkspacesResource,
AsyncWorkspacesResource,
WorkspacesResourceWithRawResponse,
AsyncWorkspacesResourceWithRawResponse,
WorkspacesResourceWithStreamingResponse,
AsyncWorkspacesResourceWithStreamingResponse,
)
from .inference_pipelines import (
InferencePipelinesResource,
AsyncInferencePipelinesResource,
Expand All @@ -48,6 +56,12 @@
"AsyncProjectsResourceWithRawResponse",
"ProjectsResourceWithStreamingResponse",
"AsyncProjectsResourceWithStreamingResponse",
"WorkspacesResource",
"AsyncWorkspacesResource",
"WorkspacesResourceWithRawResponse",
"AsyncWorkspacesResourceWithRawResponse",
"WorkspacesResourceWithStreamingResponse",
"AsyncWorkspacesResourceWithStreamingResponse",
"CommitsResource",
"AsyncCommitsResource",
"CommitsResourceWithRawResponse",
Expand Down
47 changes: 47 additions & 0 deletions src/openlayer/resources/workspaces/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .invites import (
InvitesResource,
AsyncInvitesResource,
InvitesResourceWithRawResponse,
AsyncInvitesResourceWithRawResponse,
InvitesResourceWithStreamingResponse,
AsyncInvitesResourceWithStreamingResponse,
)
from .api_keys import (
APIKeysResource,
AsyncAPIKeysResource,
APIKeysResourceWithRawResponse,
AsyncAPIKeysResourceWithRawResponse,
APIKeysResourceWithStreamingResponse,
AsyncAPIKeysResourceWithStreamingResponse,
)
from .workspaces import (
WorkspacesResource,
AsyncWorkspacesResource,
WorkspacesResourceWithRawResponse,
AsyncWorkspacesResourceWithRawResponse,
WorkspacesResourceWithStreamingResponse,
AsyncWorkspacesResourceWithStreamingResponse,
)

__all__ = [
"InvitesResource",
"AsyncInvitesResource",
"InvitesResourceWithRawResponse",
"AsyncInvitesResourceWithRawResponse",
"InvitesResourceWithStreamingResponse",
"AsyncInvitesResourceWithStreamingResponse",
"APIKeysResource",
"AsyncAPIKeysResource",
"APIKeysResourceWithRawResponse",
"AsyncAPIKeysResourceWithRawResponse",
"APIKeysResourceWithStreamingResponse",
"AsyncAPIKeysResourceWithStreamingResponse",
"WorkspacesResource",
"AsyncWorkspacesResource",
"WorkspacesResourceWithRawResponse",
"AsyncWorkspacesResourceWithRawResponse",
"WorkspacesResourceWithStreamingResponse",
"AsyncWorkspacesResourceWithStreamingResponse",
]
Loading