From d564237a958a6bafc60d6a2f634a7d12e96b5028 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Tue, 14 Jan 2025 21:12:10 +0000
Subject: [PATCH] feat(api): api update
---
.stats.yml | 4 +-
api.md | 12 +-
src/codex/resources/projects/__init__.py | 14 -
src/codex/resources/projects/knowledge.py | 740 ------------------
src/codex/resources/projects/projects.py | 32 -
src/codex/types/projects/__init__.py | 7 -
src/codex/types/projects/entry.py | 20 -
.../projects/knowledge_add_question_params.py | 11 -
.../types/projects/knowledge_create_params.py | 14 -
.../types/projects/knowledge_list_params.py | 21 -
.../types/projects/knowledge_query_params.py | 11 -
.../types/projects/knowledge_update_params.py | 16 -
.../types/projects/list_knowledge_response.py | 14 -
.../api_resources/projects/test_knowledge.py | 661 ----------------
14 files changed, 3 insertions(+), 1574 deletions(-)
delete mode 100644 src/codex/resources/projects/knowledge.py
delete mode 100644 src/codex/types/projects/entry.py
delete mode 100644 src/codex/types/projects/knowledge_add_question_params.py
delete mode 100644 src/codex/types/projects/knowledge_create_params.py
delete mode 100644 src/codex/types/projects/knowledge_list_params.py
delete mode 100644 src/codex/types/projects/knowledge_query_params.py
delete mode 100644 src/codex/types/projects/knowledge_update_params.py
delete mode 100644 src/codex/types/projects/list_knowledge_response.py
delete mode 100644 tests/api_resources/projects/test_knowledge.py
diff --git a/.stats.yml b/.stats.yml
index a156c04..f56fed6 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
-configured_endpoints: 29
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cleanlab%2Fcodex-5691cf2ac1617d7acc6532acfb2c08e151b48e6b045cdaf1715ff3843f611eb0.yml
+configured_endpoints: 22
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/cleanlab%2Fcodex-b706b59cb40e75ffd920fc42483227383f9ef24ecb1cb1eb5f9424b388997444.yml
diff --git a/api.md b/api.md
index 672aeeb..ff5b8fd 100644
--- a/api.md
+++ b/api.md
@@ -116,15 +116,5 @@ Methods:
Types:
```python
-from codex.types.projects import Entry, ListKnowledgeResponse
+from codex.types.projects import Entry
```
-
-Methods:
-
-- client.projects.knowledge.create(project_id, \*\*params) -> Entry
-- client.projects.knowledge.retrieve(entry_id, \*, project_id) -> Entry
-- client.projects.knowledge.update(entry_id, \*, project_id, \*\*params) -> Entry
-- client.projects.knowledge.list(project_id, \*\*params) -> ListKnowledgeResponse
-- client.projects.knowledge.delete(entry_id, \*, project_id) -> None
-- client.projects.knowledge.add_question(project_id, \*\*params) -> Entry
-- client.projects.knowledge.query(project_id, \*\*params) -> Optional[Entry]
diff --git a/src/codex/resources/projects/__init__.py b/src/codex/resources/projects/__init__.py
index 5250b0b..9c31620 100644
--- a/src/codex/resources/projects/__init__.py
+++ b/src/codex/resources/projects/__init__.py
@@ -8,14 +8,6 @@
ProjectsResourceWithStreamingResponse,
AsyncProjectsResourceWithStreamingResponse,
)
-from .knowledge import (
- KnowledgeResource,
- AsyncKnowledgeResource,
- KnowledgeResourceWithRawResponse,
- AsyncKnowledgeResourceWithRawResponse,
- KnowledgeResourceWithStreamingResponse,
- AsyncKnowledgeResourceWithStreamingResponse,
-)
from .access_keys import (
AccessKeysResource,
AsyncAccessKeysResource,
@@ -32,12 +24,6 @@
"AsyncAccessKeysResourceWithRawResponse",
"AccessKeysResourceWithStreamingResponse",
"AsyncAccessKeysResourceWithStreamingResponse",
- "KnowledgeResource",
- "AsyncKnowledgeResource",
- "KnowledgeResourceWithRawResponse",
- "AsyncKnowledgeResourceWithRawResponse",
- "KnowledgeResourceWithStreamingResponse",
- "AsyncKnowledgeResourceWithStreamingResponse",
"ProjectsResource",
"AsyncProjectsResource",
"ProjectsResourceWithRawResponse",
diff --git a/src/codex/resources/projects/knowledge.py b/src/codex/resources/projects/knowledge.py
deleted file mode 100644
index 9c43c66..0000000
--- a/src/codex/resources/projects/knowledge.py
+++ /dev/null
@@ -1,740 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing import Optional
-from typing_extensions import Literal
-
-import httpx
-
-from ..._types import NOT_GIVEN, Body, Query, Headers, NoneType, 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 ..._base_client import make_request_options
-from ...types.projects import (
- knowledge_list_params,
- knowledge_query_params,
- knowledge_create_params,
- knowledge_update_params,
- knowledge_add_question_params,
-)
-from ...types.projects.entry import Entry
-from ...types.projects.list_knowledge_response import ListKnowledgeResponse
-
-__all__ = ["KnowledgeResource", "AsyncKnowledgeResource"]
-
-
-class KnowledgeResource(SyncAPIResource):
- @cached_property
- def with_raw_response(self) -> KnowledgeResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return the
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/cleanlab/codex-python#accessing-raw-response-data-eg-headers
- """
- return KnowledgeResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> KnowledgeResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/cleanlab/codex-python#with_streaming_response
- """
- return KnowledgeResourceWithStreamingResponse(self)
-
- def create(
- self,
- project_id: int,
- *,
- question: str,
- answer: Optional[str] | NotGiven = NOT_GIVEN,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Create a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._post(
- f"/api/projects/{project_id}/knowledge/",
- body=maybe_transform(
- {
- "question": question,
- "answer": answer,
- },
- knowledge_create_params.KnowledgeCreateParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- def retrieve(
- self,
- entry_id: str,
- *,
- project_id: int,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Get a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not entry_id:
- raise ValueError(f"Expected a non-empty value for `entry_id` but received {entry_id!r}")
- return self._get(
- f"/api/projects/{project_id}/knowledge/{entry_id}",
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- def update(
- self,
- entry_id: str,
- *,
- project_id: int,
- answer: Optional[str] | NotGiven = NOT_GIVEN,
- question: Optional[str] | NotGiven = NOT_GIVEN,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Update a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not entry_id:
- raise ValueError(f"Expected a non-empty value for `entry_id` but received {entry_id!r}")
- return self._put(
- f"/api/projects/{project_id}/knowledge/{entry_id}",
- body=maybe_transform(
- {
- "answer": answer,
- "question": question,
- },
- knowledge_update_params.KnowledgeUpdateParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- def list(
- self,
- project_id: int,
- *,
- answered_only: bool | NotGiven = NOT_GIVEN,
- limit: int | NotGiven = NOT_GIVEN,
- offset: int | NotGiven = NOT_GIVEN,
- order: Literal["asc", "desc"] | NotGiven = NOT_GIVEN,
- sort: Literal["created_at", "answered_at"] | NotGiven = NOT_GIVEN,
- unanswered_only: bool | NotGiven = NOT_GIVEN,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListKnowledgeResponse:
- """
- List knowledge entries for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._get(
- f"/api/projects/{project_id}/knowledge/",
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=maybe_transform(
- {
- "answered_only": answered_only,
- "limit": limit,
- "offset": offset,
- "order": order,
- "sort": sort,
- "unanswered_only": unanswered_only,
- },
- knowledge_list_params.KnowledgeListParams,
- ),
- ),
- cast_to=ListKnowledgeResponse,
- )
-
- def delete(
- self,
- entry_id: str,
- *,
- project_id: int,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
- """
- Delete a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not entry_id:
- raise ValueError(f"Expected a non-empty value for `entry_id` but received {entry_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
- return self._delete(
- f"/api/projects/{project_id}/knowledge/{entry_id}",
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=NoneType,
- )
-
- def add_question(
- self,
- project_id: int,
- *,
- question: 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Add a question to a project.
-
- Returns: 201 Created if a new question was added 200 OK if the question already
- existed
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._post(
- f"/api/projects/{project_id}/knowledge/add_question",
- body=maybe_transform({"question": question}, knowledge_add_question_params.KnowledgeAddQuestionParams),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- def query(
- self,
- project_id: int,
- *,
- question: 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Optional[Entry]:
- """
- Query knowledge for a project.
-
- Returns the matching entry if found and answered, otherwise returns None. This
- allows the client to distinguish between: (1) no matching question found
- (returns None), and (2) matching question found but not yet answered (returns
- Entry with answer=None).
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._post(
- f"/api/projects/{project_id}/knowledge/query",
- body=maybe_transform({"question": question}, knowledge_query_params.KnowledgeQueryParams),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
-
-class AsyncKnowledgeResource(AsyncAPIResource):
- @cached_property
- def with_raw_response(self) -> AsyncKnowledgeResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return the
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/cleanlab/codex-python#accessing-raw-response-data-eg-headers
- """
- return AsyncKnowledgeResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> AsyncKnowledgeResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/cleanlab/codex-python#with_streaming_response
- """
- return AsyncKnowledgeResourceWithStreamingResponse(self)
-
- async def create(
- self,
- project_id: int,
- *,
- question: str,
- answer: Optional[str] | NotGiven = NOT_GIVEN,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Create a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return await self._post(
- f"/api/projects/{project_id}/knowledge/",
- body=await async_maybe_transform(
- {
- "question": question,
- "answer": answer,
- },
- knowledge_create_params.KnowledgeCreateParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- async def retrieve(
- self,
- entry_id: str,
- *,
- project_id: int,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Get a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not entry_id:
- raise ValueError(f"Expected a non-empty value for `entry_id` but received {entry_id!r}")
- return await self._get(
- f"/api/projects/{project_id}/knowledge/{entry_id}",
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- async def update(
- self,
- entry_id: str,
- *,
- project_id: int,
- answer: Optional[str] | NotGiven = NOT_GIVEN,
- question: Optional[str] | NotGiven = NOT_GIVEN,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Update a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not entry_id:
- raise ValueError(f"Expected a non-empty value for `entry_id` but received {entry_id!r}")
- return await self._put(
- f"/api/projects/{project_id}/knowledge/{entry_id}",
- body=await async_maybe_transform(
- {
- "answer": answer,
- "question": question,
- },
- knowledge_update_params.KnowledgeUpdateParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- async def list(
- self,
- project_id: int,
- *,
- answered_only: bool | NotGiven = NOT_GIVEN,
- limit: int | NotGiven = NOT_GIVEN,
- offset: int | NotGiven = NOT_GIVEN,
- order: Literal["asc", "desc"] | NotGiven = NOT_GIVEN,
- sort: Literal["created_at", "answered_at"] | NotGiven = NOT_GIVEN,
- unanswered_only: bool | NotGiven = NOT_GIVEN,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> ListKnowledgeResponse:
- """
- List knowledge entries for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return await self._get(
- f"/api/projects/{project_id}/knowledge/",
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=await async_maybe_transform(
- {
- "answered_only": answered_only,
- "limit": limit,
- "offset": offset,
- "order": order,
- "sort": sort,
- "unanswered_only": unanswered_only,
- },
- knowledge_list_params.KnowledgeListParams,
- ),
- ),
- cast_to=ListKnowledgeResponse,
- )
-
- async def delete(
- self,
- entry_id: str,
- *,
- project_id: int,
- # 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> None:
- """
- Delete a knowledge entry for a project.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not entry_id:
- raise ValueError(f"Expected a non-empty value for `entry_id` but received {entry_id!r}")
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
- return await self._delete(
- f"/api/projects/{project_id}/knowledge/{entry_id}",
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=NoneType,
- )
-
- async def add_question(
- self,
- project_id: int,
- *,
- question: 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Entry:
- """
- Add a question to a project.
-
- Returns: 201 Created if a new question was added 200 OK if the question already
- existed
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return await self._post(
- f"/api/projects/{project_id}/knowledge/add_question",
- body=await async_maybe_transform(
- {"question": question}, knowledge_add_question_params.KnowledgeAddQuestionParams
- ),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
- async def query(
- self,
- project_id: int,
- *,
- question: 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,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Optional[Entry]:
- """
- Query knowledge for a project.
-
- Returns the matching entry if found and answered, otherwise returns None. This
- allows the client to distinguish between: (1) no matching question found
- (returns None), and (2) matching question found but not yet answered (returns
- Entry with answer=None).
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return await self._post(
- f"/api/projects/{project_id}/knowledge/query",
- body=await async_maybe_transform({"question": question}, knowledge_query_params.KnowledgeQueryParams),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=Entry,
- )
-
-
-class KnowledgeResourceWithRawResponse:
- def __init__(self, knowledge: KnowledgeResource) -> None:
- self._knowledge = knowledge
-
- self.create = to_raw_response_wrapper(
- knowledge.create,
- )
- self.retrieve = to_raw_response_wrapper(
- knowledge.retrieve,
- )
- self.update = to_raw_response_wrapper(
- knowledge.update,
- )
- self.list = to_raw_response_wrapper(
- knowledge.list,
- )
- self.delete = to_raw_response_wrapper(
- knowledge.delete,
- )
- self.add_question = to_raw_response_wrapper(
- knowledge.add_question,
- )
- self.query = to_raw_response_wrapper(
- knowledge.query,
- )
-
-
-class AsyncKnowledgeResourceWithRawResponse:
- def __init__(self, knowledge: AsyncKnowledgeResource) -> None:
- self._knowledge = knowledge
-
- self.create = async_to_raw_response_wrapper(
- knowledge.create,
- )
- self.retrieve = async_to_raw_response_wrapper(
- knowledge.retrieve,
- )
- self.update = async_to_raw_response_wrapper(
- knowledge.update,
- )
- self.list = async_to_raw_response_wrapper(
- knowledge.list,
- )
- self.delete = async_to_raw_response_wrapper(
- knowledge.delete,
- )
- self.add_question = async_to_raw_response_wrapper(
- knowledge.add_question,
- )
- self.query = async_to_raw_response_wrapper(
- knowledge.query,
- )
-
-
-class KnowledgeResourceWithStreamingResponse:
- def __init__(self, knowledge: KnowledgeResource) -> None:
- self._knowledge = knowledge
-
- self.create = to_streamed_response_wrapper(
- knowledge.create,
- )
- self.retrieve = to_streamed_response_wrapper(
- knowledge.retrieve,
- )
- self.update = to_streamed_response_wrapper(
- knowledge.update,
- )
- self.list = to_streamed_response_wrapper(
- knowledge.list,
- )
- self.delete = to_streamed_response_wrapper(
- knowledge.delete,
- )
- self.add_question = to_streamed_response_wrapper(
- knowledge.add_question,
- )
- self.query = to_streamed_response_wrapper(
- knowledge.query,
- )
-
-
-class AsyncKnowledgeResourceWithStreamingResponse:
- def __init__(self, knowledge: AsyncKnowledgeResource) -> None:
- self._knowledge = knowledge
-
- self.create = async_to_streamed_response_wrapper(
- knowledge.create,
- )
- self.retrieve = async_to_streamed_response_wrapper(
- knowledge.retrieve,
- )
- self.update = async_to_streamed_response_wrapper(
- knowledge.update,
- )
- self.list = async_to_streamed_response_wrapper(
- knowledge.list,
- )
- self.delete = async_to_streamed_response_wrapper(
- knowledge.delete,
- )
- self.add_question = async_to_streamed_response_wrapper(
- knowledge.add_question,
- )
- self.query = async_to_streamed_response_wrapper(
- knowledge.query,
- )
diff --git a/src/codex/resources/projects/projects.py b/src/codex/resources/projects/projects.py
index 845669a..a7bea41 100644
--- a/src/codex/resources/projects/projects.py
+++ b/src/codex/resources/projects/projects.py
@@ -13,14 +13,6 @@
async_maybe_transform,
)
from ..._compat import cached_property
-from .knowledge import (
- KnowledgeResource,
- AsyncKnowledgeResource,
- KnowledgeResourceWithRawResponse,
- AsyncKnowledgeResourceWithRawResponse,
- KnowledgeResourceWithStreamingResponse,
- AsyncKnowledgeResourceWithStreamingResponse,
-)
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import (
to_raw_response_wrapper,
@@ -48,10 +40,6 @@ class ProjectsResource(SyncAPIResource):
def access_keys(self) -> AccessKeysResource:
return AccessKeysResource(self._client)
- @cached_property
- def knowledge(self) -> KnowledgeResource:
- return KnowledgeResource(self._client)
-
@cached_property
def with_raw_response(self) -> ProjectsResourceWithRawResponse:
"""
@@ -291,10 +279,6 @@ class AsyncProjectsResource(AsyncAPIResource):
def access_keys(self) -> AsyncAccessKeysResource:
return AsyncAccessKeysResource(self._client)
- @cached_property
- def knowledge(self) -> AsyncKnowledgeResource:
- return AsyncKnowledgeResource(self._client)
-
@cached_property
def with_raw_response(self) -> AsyncProjectsResourceWithRawResponse:
"""
@@ -558,10 +542,6 @@ def __init__(self, projects: ProjectsResource) -> None:
def access_keys(self) -> AccessKeysResourceWithRawResponse:
return AccessKeysResourceWithRawResponse(self._projects.access_keys)
- @cached_property
- def knowledge(self) -> KnowledgeResourceWithRawResponse:
- return KnowledgeResourceWithRawResponse(self._projects.knowledge)
-
class AsyncProjectsResourceWithRawResponse:
def __init__(self, projects: AsyncProjectsResource) -> None:
@@ -590,10 +570,6 @@ def __init__(self, projects: AsyncProjectsResource) -> None:
def access_keys(self) -> AsyncAccessKeysResourceWithRawResponse:
return AsyncAccessKeysResourceWithRawResponse(self._projects.access_keys)
- @cached_property
- def knowledge(self) -> AsyncKnowledgeResourceWithRawResponse:
- return AsyncKnowledgeResourceWithRawResponse(self._projects.knowledge)
-
class ProjectsResourceWithStreamingResponse:
def __init__(self, projects: ProjectsResource) -> None:
@@ -622,10 +598,6 @@ def __init__(self, projects: ProjectsResource) -> None:
def access_keys(self) -> AccessKeysResourceWithStreamingResponse:
return AccessKeysResourceWithStreamingResponse(self._projects.access_keys)
- @cached_property
- def knowledge(self) -> KnowledgeResourceWithStreamingResponse:
- return KnowledgeResourceWithStreamingResponse(self._projects.knowledge)
-
class AsyncProjectsResourceWithStreamingResponse:
def __init__(self, projects: AsyncProjectsResource) -> None:
@@ -653,7 +625,3 @@ def __init__(self, projects: AsyncProjectsResource) -> None:
@cached_property
def access_keys(self) -> AsyncAccessKeysResourceWithStreamingResponse:
return AsyncAccessKeysResourceWithStreamingResponse(self._projects.access_keys)
-
- @cached_property
- def knowledge(self) -> AsyncKnowledgeResourceWithStreamingResponse:
- return AsyncKnowledgeResourceWithStreamingResponse(self._projects.knowledge)
diff --git a/src/codex/types/projects/__init__.py b/src/codex/types/projects/__init__.py
index 9813f78..7aadc5f 100644
--- a/src/codex/types/projects/__init__.py
+++ b/src/codex/types/projects/__init__.py
@@ -2,17 +2,10 @@
from __future__ import annotations
-from .entry import Entry as Entry
from .access_key_schema import AccessKeySchema as AccessKeySchema
-from .knowledge_list_params import KnowledgeListParams as KnowledgeListParams
-from .knowledge_query_params import KnowledgeQueryParams as KnowledgeQueryParams
-from .knowledge_create_params import KnowledgeCreateParams as KnowledgeCreateParams
-from .knowledge_update_params import KnowledgeUpdateParams as KnowledgeUpdateParams
-from .list_knowledge_response import ListKnowledgeResponse as ListKnowledgeResponse
from .access_key_create_params import AccessKeyCreateParams as AccessKeyCreateParams
from .access_key_list_response import AccessKeyListResponse as AccessKeyListResponse
from .access_key_update_params import AccessKeyUpdateParams as AccessKeyUpdateParams
-from .knowledge_add_question_params import KnowledgeAddQuestionParams as KnowledgeAddQuestionParams
from .access_key_retrieve_project_id_response import (
AccessKeyRetrieveProjectIDResponse as AccessKeyRetrieveProjectIDResponse,
)
diff --git a/src/codex/types/projects/entry.py b/src/codex/types/projects/entry.py
deleted file mode 100644
index bfa7d27..0000000
--- a/src/codex/types/projects/entry.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from typing import Optional
-from datetime import datetime
-
-from ..._models import BaseModel
-
-__all__ = ["Entry"]
-
-
-class Entry(BaseModel):
- id: str
-
- created_at: datetime
-
- question: str
-
- answer: Optional[str] = None
-
- answered_at: Optional[datetime] = None
diff --git a/src/codex/types/projects/knowledge_add_question_params.py b/src/codex/types/projects/knowledge_add_question_params.py
deleted file mode 100644
index 9711555..0000000
--- a/src/codex/types/projects/knowledge_add_question_params.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing_extensions import Required, TypedDict
-
-__all__ = ["KnowledgeAddQuestionParams"]
-
-
-class KnowledgeAddQuestionParams(TypedDict, total=False):
- question: Required[str]
diff --git a/src/codex/types/projects/knowledge_create_params.py b/src/codex/types/projects/knowledge_create_params.py
deleted file mode 100644
index 9c544e6..0000000
--- a/src/codex/types/projects/knowledge_create_params.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing import Optional
-from typing_extensions import Required, TypedDict
-
-__all__ = ["KnowledgeCreateParams"]
-
-
-class KnowledgeCreateParams(TypedDict, total=False):
- question: Required[str]
-
- answer: Optional[str]
diff --git a/src/codex/types/projects/knowledge_list_params.py b/src/codex/types/projects/knowledge_list_params.py
deleted file mode 100644
index 45aee13..0000000
--- a/src/codex/types/projects/knowledge_list_params.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing_extensions import Literal, TypedDict
-
-__all__ = ["KnowledgeListParams"]
-
-
-class KnowledgeListParams(TypedDict, total=False):
- answered_only: bool
-
- limit: int
-
- offset: int
-
- order: Literal["asc", "desc"]
-
- sort: Literal["created_at", "answered_at"]
-
- unanswered_only: bool
diff --git a/src/codex/types/projects/knowledge_query_params.py b/src/codex/types/projects/knowledge_query_params.py
deleted file mode 100644
index 2c8097a..0000000
--- a/src/codex/types/projects/knowledge_query_params.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing_extensions import Required, TypedDict
-
-__all__ = ["KnowledgeQueryParams"]
-
-
-class KnowledgeQueryParams(TypedDict, total=False):
- question: Required[str]
diff --git a/src/codex/types/projects/knowledge_update_params.py b/src/codex/types/projects/knowledge_update_params.py
deleted file mode 100644
index b5e2226..0000000
--- a/src/codex/types/projects/knowledge_update_params.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing import Optional
-from typing_extensions import Required, TypedDict
-
-__all__ = ["KnowledgeUpdateParams"]
-
-
-class KnowledgeUpdateParams(TypedDict, total=False):
- project_id: Required[int]
-
- answer: Optional[str]
-
- question: Optional[str]
diff --git a/src/codex/types/projects/list_knowledge_response.py b/src/codex/types/projects/list_knowledge_response.py
deleted file mode 100644
index d32f4e3..0000000
--- a/src/codex/types/projects/list_knowledge_response.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from typing import List
-
-from .entry import Entry
-from ..._models import BaseModel
-
-__all__ = ["ListKnowledgeResponse"]
-
-
-class ListKnowledgeResponse(BaseModel):
- entries: List[Entry]
-
- total_count: int
diff --git a/tests/api_resources/projects/test_knowledge.py b/tests/api_resources/projects/test_knowledge.py
deleted file mode 100644
index ac53874..0000000
--- a/tests/api_resources/projects/test_knowledge.py
+++ /dev/null
@@ -1,661 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import os
-from typing import Any, Optional, cast
-
-import pytest
-
-from codex import Codex, AsyncCodex
-from tests.utils import assert_matches_type
-from codex.types.projects import (
- Entry,
- ListKnowledgeResponse,
-)
-
-base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
-
-
-class TestKnowledge:
- parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
-
- @pytest.mark.skip()
- @parametrize
- def test_method_create(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.create(
- project_id=0,
- question="question",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_method_create_with_all_params(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.create(
- project_id=0,
- question="question",
- answer="answer",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_raw_response_create(self, client: Codex) -> None:
- response = client.projects.knowledge.with_raw_response.create(
- project_id=0,
- question="question",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_streaming_response_create(self, client: Codex) -> None:
- with client.projects.knowledge.with_streaming_response.create(
- project_id=0,
- question="question",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- def test_method_retrieve(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.retrieve(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_raw_response_retrieve(self, client: Codex) -> None:
- response = client.projects.knowledge.with_raw_response.retrieve(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_streaming_response_retrieve(self, client: Codex) -> None:
- with client.projects.knowledge.with_streaming_response.retrieve(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- def test_path_params_retrieve(self, client: Codex) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `entry_id` but received ''"):
- client.projects.knowledge.with_raw_response.retrieve(
- entry_id="",
- project_id=0,
- )
-
- @pytest.mark.skip()
- @parametrize
- def test_method_update(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_method_update_with_all_params(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- answer="answer",
- question="question",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_raw_response_update(self, client: Codex) -> None:
- response = client.projects.knowledge.with_raw_response.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_streaming_response_update(self, client: Codex) -> None:
- with client.projects.knowledge.with_streaming_response.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- def test_path_params_update(self, client: Codex) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `entry_id` but received ''"):
- client.projects.knowledge.with_raw_response.update(
- entry_id="",
- project_id=0,
- )
-
- @pytest.mark.skip()
- @parametrize
- def test_method_list(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.list(
- project_id=0,
- )
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_method_list_with_all_params(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.list(
- project_id=0,
- answered_only=True,
- limit=1,
- offset=0,
- order="asc",
- sort="created_at",
- unanswered_only=True,
- )
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_raw_response_list(self, client: Codex) -> None:
- response = client.projects.knowledge.with_raw_response.list(
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = response.parse()
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_streaming_response_list(self, client: Codex) -> None:
- with client.projects.knowledge.with_streaming_response.list(
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = response.parse()
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- def test_method_delete(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.delete(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
- assert knowledge is None
-
- @pytest.mark.skip()
- @parametrize
- def test_raw_response_delete(self, client: Codex) -> None:
- response = client.projects.knowledge.with_raw_response.delete(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = response.parse()
- assert knowledge is None
-
- @pytest.mark.skip()
- @parametrize
- def test_streaming_response_delete(self, client: Codex) -> None:
- with client.projects.knowledge.with_streaming_response.delete(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = response.parse()
- assert knowledge is None
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- def test_path_params_delete(self, client: Codex) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `entry_id` but received ''"):
- client.projects.knowledge.with_raw_response.delete(
- entry_id="",
- project_id=0,
- )
-
- @pytest.mark.skip()
- @parametrize
- def test_method_add_question(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.add_question(
- project_id=0,
- question="question",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_raw_response_add_question(self, client: Codex) -> None:
- response = client.projects.knowledge.with_raw_response.add_question(
- project_id=0,
- question="question",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_streaming_response_add_question(self, client: Codex) -> None:
- with client.projects.knowledge.with_streaming_response.add_question(
- project_id=0,
- question="question",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- def test_method_query(self, client: Codex) -> None:
- knowledge = client.projects.knowledge.query(
- project_id=0,
- question="question",
- )
- assert_matches_type(Optional[Entry], knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_raw_response_query(self, client: Codex) -> None:
- response = client.projects.knowledge.with_raw_response.query(
- project_id=0,
- question="question",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = response.parse()
- assert_matches_type(Optional[Entry], knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- def test_streaming_response_query(self, client: Codex) -> None:
- with client.projects.knowledge.with_streaming_response.query(
- project_id=0,
- question="question",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = response.parse()
- assert_matches_type(Optional[Entry], knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
-
-class TestAsyncKnowledge:
- parametrize = pytest.mark.parametrize("async_client", [False, True], indirect=True, ids=["loose", "strict"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_create(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.create(
- project_id=0,
- question="question",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_create_with_all_params(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.create(
- project_id=0,
- question="question",
- answer="answer",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_raw_response_create(self, async_client: AsyncCodex) -> None:
- response = await async_client.projects.knowledge.with_raw_response.create(
- project_id=0,
- question="question",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_streaming_response_create(self, async_client: AsyncCodex) -> None:
- async with async_client.projects.knowledge.with_streaming_response.create(
- project_id=0,
- question="question",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_retrieve(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.retrieve(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_raw_response_retrieve(self, async_client: AsyncCodex) -> None:
- response = await async_client.projects.knowledge.with_raw_response.retrieve(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_streaming_response_retrieve(self, async_client: AsyncCodex) -> None:
- async with async_client.projects.knowledge.with_streaming_response.retrieve(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- async def test_path_params_retrieve(self, async_client: AsyncCodex) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `entry_id` but received ''"):
- await async_client.projects.knowledge.with_raw_response.retrieve(
- entry_id="",
- project_id=0,
- )
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_update(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_update_with_all_params(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- answer="answer",
- question="question",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_raw_response_update(self, async_client: AsyncCodex) -> None:
- response = await async_client.projects.knowledge.with_raw_response.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_streaming_response_update(self, async_client: AsyncCodex) -> None:
- async with async_client.projects.knowledge.with_streaming_response.update(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- async def test_path_params_update(self, async_client: AsyncCodex) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `entry_id` but received ''"):
- await async_client.projects.knowledge.with_raw_response.update(
- entry_id="",
- project_id=0,
- )
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_list(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.list(
- project_id=0,
- )
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_list_with_all_params(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.list(
- project_id=0,
- answered_only=True,
- limit=1,
- offset=0,
- order="asc",
- sort="created_at",
- unanswered_only=True,
- )
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_raw_response_list(self, async_client: AsyncCodex) -> None:
- response = await async_client.projects.knowledge.with_raw_response.list(
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = await response.parse()
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_streaming_response_list(self, async_client: AsyncCodex) -> None:
- async with async_client.projects.knowledge.with_streaming_response.list(
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = await response.parse()
- assert_matches_type(ListKnowledgeResponse, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_delete(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.delete(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
- assert knowledge is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_raw_response_delete(self, async_client: AsyncCodex) -> None:
- response = await async_client.projects.knowledge.with_raw_response.delete(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = await response.parse()
- assert knowledge is None
-
- @pytest.mark.skip()
- @parametrize
- async def test_streaming_response_delete(self, async_client: AsyncCodex) -> None:
- async with async_client.projects.knowledge.with_streaming_response.delete(
- entry_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
- project_id=0,
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = await response.parse()
- assert knowledge is None
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- async def test_path_params_delete(self, async_client: AsyncCodex) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `entry_id` but received ''"):
- await async_client.projects.knowledge.with_raw_response.delete(
- entry_id="",
- project_id=0,
- )
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_add_question(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.add_question(
- project_id=0,
- question="question",
- )
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_raw_response_add_question(self, async_client: AsyncCodex) -> None:
- response = await async_client.projects.knowledge.with_raw_response.add_question(
- project_id=0,
- question="question",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_streaming_response_add_question(self, async_client: AsyncCodex) -> None:
- async with async_client.projects.knowledge.with_streaming_response.add_question(
- project_id=0,
- question="question",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = await response.parse()
- assert_matches_type(Entry, knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip()
- @parametrize
- async def test_method_query(self, async_client: AsyncCodex) -> None:
- knowledge = await async_client.projects.knowledge.query(
- project_id=0,
- question="question",
- )
- assert_matches_type(Optional[Entry], knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_raw_response_query(self, async_client: AsyncCodex) -> None:
- response = await async_client.projects.knowledge.with_raw_response.query(
- project_id=0,
- question="question",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- knowledge = await response.parse()
- assert_matches_type(Optional[Entry], knowledge, path=["response"])
-
- @pytest.mark.skip()
- @parametrize
- async def test_streaming_response_query(self, async_client: AsyncCodex) -> None:
- async with async_client.projects.knowledge.with_streaming_response.query(
- project_id=0,
- question="question",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- knowledge = await response.parse()
- assert_matches_type(Optional[Entry], knowledge, path=["response"])
-
- assert cast(Any, response.is_closed) is True