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.1.0-alpha.1"
".": "0.1.0-alpha.2"
}
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.1.0-alpha.2 (2025-01-16)

Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/cleanlab/codex-python/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)

### Features

* **api:** api update ([#17](https://github.com/cleanlab/codex-python/issues/17)) ([c605871](https://github.com/cleanlab/codex-python/commit/c60587191744877e006ab15adf10f0e5fb7eb252))

## 0.1.0-alpha.1 (2025-01-14)

Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/cleanlab/codex-python/compare/v0.0.1-alpha.0...v0.1.0-alpha.1)
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ client = Codex()
all_entries = []
# Automatically fetches more pages as needed.
for entry in client.projects.entries.list(
project_id=0,
project_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
):
# Do something with entry here
all_entries.append(entry)
Expand All @@ -118,7 +118,7 @@ async def main() -> None:
all_entries = []
# Iterate through items across all pages, issuing requests as needed.
async for entry in client.projects.entries.list(
project_id=0,
project_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
):
all_entries.append(entry)
print(all_entries)
Expand All @@ -131,7 +131,7 @@ Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get

```python
first_page = await client.projects.entries.list(
project_id=0,
project_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
if first_page.has_next_page():
print(f"will fetch next page using these details: {first_page.next_page_info()}")
Expand All @@ -145,7 +145,7 @@ Or just work directly with the returned data:

```python
first_page = await client.projects.entries.list(
project_id=0,
project_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
for entry in first_page.entries:
print(entry.id)
Expand Down
2 changes: 1 addition & 1 deletion api.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Methods:
- <code title="put /api/projects/{project_id}/access_keys/{access_key_id}">client.projects.access_keys.<a href="./src/codex/resources/projects/access_keys.py">update</a>(access_key_id, \*, project_id, \*\*<a href="src/codex/types/projects/access_key_update_params.py">params</a>) -> <a href="./src/codex/types/projects/access_key_schema.py">AccessKeySchema</a></code>
- <code title="get /api/projects/{project_id}/access_keys/">client.projects.access_keys.<a href="./src/codex/resources/projects/access_keys.py">list</a>(project_id) -> <a href="./src/codex/types/projects/access_key_list_response.py">AccessKeyListResponse</a></code>
- <code title="delete /api/projects/{project_id}/access_keys/{access_key_id}">client.projects.access_keys.<a href="./src/codex/resources/projects/access_keys.py">delete</a>(access_key_id, \*, project_id) -> None</code>
- <code title="get /api/projects/id_from_access_key">client.projects.access_keys.<a href="./src/codex/resources/projects/access_keys.py">retrieve_project_id</a>() -> <a href="./src/codex/types/projects/access_key_retrieve_project_id_response.py">AccessKeyRetrieveProjectIDResponse</a></code>
- <code title="get /api/projects/id_from_access_key">client.projects.access_keys.<a href="./src/codex/resources/projects/access_keys.py">retrieve_project_id</a>() -> str</code>
- <code title="post /api/projects/{project_id}/access_keys/{access_key_id}/revoke">client.projects.access_keys.<a href="./src/codex/resources/projects/access_keys.py">revoke</a>(access_key_id, \*, project_id) -> None</code>

## Entries
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 = "codex-sdk"
version = "0.1.0-alpha.1"
version = "0.1.0-alpha.2"
description = "The official Python library for the Codex API"
dynamic = ["readme"]
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion src/codex/_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__ = "codex"
__version__ = "0.1.0-alpha.1" # x-release-please-version
__version__ = "0.1.0-alpha.2" # x-release-please-version
89 changes: 64 additions & 25 deletions src/codex/resources/projects/access_keys.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
from ...types.projects import access_key_create_params, access_key_update_params
from ...types.projects.access_key_schema import AccessKeySchema
from ...types.projects.access_key_list_response import AccessKeyListResponse
from ...types.projects.access_key_retrieve_project_id_response import AccessKeyRetrieveProjectIDResponse

__all__ = ["AccessKeysResource", "AsyncAccessKeysResource"]

Expand All @@ -51,7 +50,7 @@ def with_streaming_response(self) -> AccessKeysResourceWithStreamingResponse:

def create(
self,
project_id: int,
project_id: str,
*,
name: str,
description: Optional[str] | NotGiven = NOT_GIVEN,
Expand All @@ -75,6 +74,8 @@ def create(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
return self._post(
f"/api/projects/{project_id}/access_keys/",
body=maybe_transform(
Expand All @@ -93,9 +94,9 @@ def create(

def retrieve(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
# 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,
Expand All @@ -115,6 +116,10 @@ def retrieve(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
return self._get(
f"/api/projects/{project_id}/access_keys/{access_key_id}",
options=make_request_options(
Expand All @@ -125,9 +130,9 @@ def retrieve(

def update(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
name: str,
description: Optional[str] | NotGiven = NOT_GIVEN,
expires_at: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
Expand All @@ -150,6 +155,10 @@ def update(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
return self._put(
f"/api/projects/{project_id}/access_keys/{access_key_id}",
body=maybe_transform(
Expand All @@ -168,7 +177,7 @@ def update(

def list(
self,
project_id: int,
project_id: str,
*,
# 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.
Expand All @@ -189,6 +198,8 @@ def list(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
return self._get(
f"/api/projects/{project_id}/access_keys/",
options=make_request_options(
Expand All @@ -199,9 +210,9 @@ def list(

def delete(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
# 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,
Expand All @@ -221,6 +232,10 @@ def delete(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._delete(
f"/api/projects/{project_id}/access_keys/{access_key_id}",
Expand All @@ -239,21 +254,21 @@ def retrieve_project_id(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> AccessKeyRetrieveProjectIDResponse:
) -> str:
"""Get the project ID from an access key."""
return self._get(
"/api/projects/id_from_access_key",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=int,
cast_to=str,
)

def revoke(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
# 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,
Expand All @@ -273,6 +288,10 @@ def revoke(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return self._post(
f"/api/projects/{project_id}/access_keys/{access_key_id}/revoke",
Expand Down Expand Up @@ -305,7 +324,7 @@ def with_streaming_response(self) -> AsyncAccessKeysResourceWithStreamingRespons

async def create(
self,
project_id: int,
project_id: str,
*,
name: str,
description: Optional[str] | NotGiven = NOT_GIVEN,
Expand All @@ -329,6 +348,8 @@ async def create(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
return await self._post(
f"/api/projects/{project_id}/access_keys/",
body=await async_maybe_transform(
Expand All @@ -347,9 +368,9 @@ async def create(

async def retrieve(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
# 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,
Expand All @@ -369,6 +390,10 @@ async def retrieve(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
return await self._get(
f"/api/projects/{project_id}/access_keys/{access_key_id}",
options=make_request_options(
Expand All @@ -379,9 +404,9 @@ async def retrieve(

async def update(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
name: str,
description: Optional[str] | NotGiven = NOT_GIVEN,
expires_at: Union[str, datetime, None] | NotGiven = NOT_GIVEN,
Expand All @@ -404,6 +429,10 @@ async def update(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
return await self._put(
f"/api/projects/{project_id}/access_keys/{access_key_id}",
body=await async_maybe_transform(
Expand All @@ -422,7 +451,7 @@ async def update(

async def list(
self,
project_id: int,
project_id: str,
*,
# 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.
Expand All @@ -443,6 +472,8 @@ async def list(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
return await self._get(
f"/api/projects/{project_id}/access_keys/",
options=make_request_options(
Expand All @@ -453,9 +484,9 @@ async def list(

async def delete(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
# 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,
Expand All @@ -475,6 +506,10 @@ async def delete(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._delete(
f"/api/projects/{project_id}/access_keys/{access_key_id}",
Expand All @@ -493,21 +528,21 @@ async def retrieve_project_id(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> AccessKeyRetrieveProjectIDResponse:
) -> str:
"""Get the project ID from an access key."""
return await self._get(
"/api/projects/id_from_access_key",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=int,
cast_to=str,
)

async def revoke(
self,
access_key_id: int,
access_key_id: str,
*,
project_id: int,
project_id: str,
# 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,
Expand All @@ -527,6 +562,10 @@ async def revoke(

timeout: Override the client-level default timeout for this request, in seconds
"""
if not project_id:
raise ValueError(f"Expected a non-empty value for `project_id` but received {project_id!r}")
if not access_key_id:
raise ValueError(f"Expected a non-empty value for `access_key_id` but received {access_key_id!r}")
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
return await self._post(
f"/api/projects/{project_id}/access_keys/{access_key_id}/revoke",
Expand Down
Loading
Loading