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