Commit e4a9553e
Changed files (46)
src
openai
resources
beta
threads
vector_stores
chat
fine_tuning
tests
api_resources
beta
fine_tuning
src/openai/resources/audio/transcriptions.py
@@ -18,10 +18,11 @@ from ..._utils import (
from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
-from ...types.audio import Transcription, transcription_create_params
+from ...types.audio import transcription_create_params
from ..._base_client import (
make_request_options,
)
+from ...types.audio.transcription import Transcription
__all__ = ["Transcriptions", "AsyncTranscriptions"]
src/openai/resources/audio/translations.py
@@ -18,10 +18,11 @@ from ..._utils import (
from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
-from ...types.audio import Translation, translation_create_params
+from ...types.audio import translation_create_params
from ..._base_client import (
make_request_options,
)
+from ...types.audio.translation import Translation
__all__ = ["Translations", "AsyncTranslations"]
src/openai/resources/beta/threads/runs/runs.py
@@ -31,12 +31,6 @@ from ....._resource import SyncAPIResource, AsyncAPIResource
from ....._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
from ....._streaming import Stream, AsyncStream
from .....pagination import SyncCursorPage, AsyncCursorPage
-from .....types.beta import (
- AssistantToolParam,
- AssistantStreamEvent,
- AssistantToolChoiceOptionParam,
- AssistantResponseFormatOptionParam,
-)
from ....._base_client import (
AsyncPaginator,
make_request_options,
@@ -50,12 +44,16 @@ from .....lib.streaming import (
AsyncAssistantStreamManager,
)
from .....types.beta.threads import (
- Run,
run_list_params,
run_create_params,
run_update_params,
run_submit_tool_outputs_params,
)
+from .....types.beta.threads.run import Run
+from .....types.beta.assistant_tool_param import AssistantToolParam
+from .....types.beta.assistant_stream_event import AssistantStreamEvent
+from .....types.beta.assistant_tool_choice_option_param import AssistantToolChoiceOptionParam
+from .....types.beta.assistant_response_format_option_param import AssistantResponseFormatOptionParam
__all__ = ["Runs", "AsyncRuns"]
src/openai/resources/beta/threads/runs/steps.py
@@ -17,7 +17,8 @@ from ....._base_client import (
AsyncPaginator,
make_request_options,
)
-from .....types.beta.threads.runs import RunStep, step_list_params
+from .....types.beta.threads.runs import step_list_params
+from .....types.beta.threads.runs.run_step import RunStep
__all__ = ["Steps", "AsyncSteps"]
src/openai/resources/beta/threads/messages.py
@@ -21,7 +21,8 @@ from ...._base_client import (
AsyncPaginator,
make_request_options,
)
-from ....types.beta.threads import Message, message_list_params, message_create_params, message_update_params
+from ....types.beta.threads import message_list_params, message_create_params, message_update_params
+from ....types.beta.threads.message import Message
__all__ = ["Messages", "AsyncMessages"]
src/openai/resources/beta/threads/threads.py
@@ -37,11 +37,6 @@ from ...._resource import SyncAPIResource, AsyncAPIResource
from ...._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
from ...._streaming import Stream, AsyncStream
from ....types.beta import (
- Thread,
- ThreadDeleted,
- AssistantStreamEvent,
- AssistantToolChoiceOptionParam,
- AssistantResponseFormatOptionParam,
thread_create_params,
thread_update_params,
thread_create_and_run_params,
@@ -57,7 +52,12 @@ from ....lib.streaming import (
AsyncAssistantEventHandlerT,
AsyncAssistantStreamManager,
)
-from ....types.beta.threads import Run
+from ....types.beta.thread import Thread
+from ....types.beta.threads.run import Run
+from ....types.beta.thread_deleted import ThreadDeleted
+from ....types.beta.assistant_stream_event import AssistantStreamEvent
+from ....types.beta.assistant_tool_choice_option_param import AssistantToolChoiceOptionParam
+from ....types.beta.assistant_response_format_option_param import AssistantResponseFormatOptionParam
__all__ = ["Threads", "AsyncThreads"]
src/openai/resources/beta/vector_stores/file_batches.py
@@ -26,12 +26,9 @@ from ...._base_client import (
AsyncPaginator,
make_request_options,
)
-from ....types.beta.vector_stores import (
- VectorStoreFile,
- VectorStoreFileBatch,
- file_batch_create_params,
- file_batch_list_files_params,
-)
+from ....types.beta.vector_stores import file_batch_create_params, file_batch_list_files_params
+from ....types.beta.vector_stores.vector_store_file import VectorStoreFile
+from ....types.beta.vector_stores.vector_store_file_batch import VectorStoreFileBatch
__all__ = ["FileBatches", "AsyncFileBatches"]
src/openai/resources/beta/vector_stores/files.py
@@ -22,7 +22,9 @@ from ...._base_client import (
AsyncPaginator,
make_request_options,
)
-from ....types.beta.vector_stores import VectorStoreFile, VectorStoreFileDeleted, file_list_params, file_create_params
+from ....types.beta.vector_stores import file_list_params, file_create_params
+from ....types.beta.vector_stores.vector_store_file import VectorStoreFile
+from ....types.beta.vector_stores.vector_store_file_deleted import VectorStoreFileDeleted
__all__ = ["Files", "AsyncFiles"]
src/openai/resources/beta/vector_stores/vector_stores.py
@@ -33,17 +33,13 @@ from .file_batches import (
AsyncFileBatchesWithStreamingResponse,
)
from ....pagination import SyncCursorPage, AsyncCursorPage
-from ....types.beta import (
- VectorStore,
- VectorStoreDeleted,
- vector_store_list_params,
- vector_store_create_params,
- vector_store_update_params,
-)
+from ....types.beta import vector_store_list_params, vector_store_create_params, vector_store_update_params
from ...._base_client import (
AsyncPaginator,
make_request_options,
)
+from ....types.beta.vector_store import VectorStore
+from ....types.beta.vector_store_deleted import VectorStoreDeleted
__all__ = ["VectorStores", "AsyncVectorStores"]
src/openai/resources/beta/assistants.py
@@ -18,10 +18,6 @@ from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
from ...pagination import SyncCursorPage, AsyncCursorPage
from ...types.beta import (
- Assistant,
- AssistantDeleted,
- AssistantToolParam,
- AssistantResponseFormatOptionParam,
assistant_list_params,
assistant_create_params,
assistant_update_params,
@@ -30,6 +26,10 @@ from ..._base_client import (
AsyncPaginator,
make_request_options,
)
+from ...types.beta.assistant import Assistant
+from ...types.beta.assistant_deleted import AssistantDeleted
+from ...types.beta.assistant_tool_param import AssistantToolParam
+from ...types.beta.assistant_response_format_option_param import AssistantResponseFormatOptionParam
__all__ = ["Assistants", "AsyncAssistants"]
src/openai/resources/chat/completions.py
@@ -8,7 +8,6 @@ from typing_extensions import Literal
import httpx
from ... import _legacy_response
-from ...types import ChatModel
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from ..._utils import (
required_args,
@@ -19,17 +18,16 @@ from ..._compat import cached_property
from ..._resource import SyncAPIResource, AsyncAPIResource
from ..._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
from ..._streaming import Stream, AsyncStream
-from ...types.chat import (
- ChatCompletion,
- ChatCompletionChunk,
- ChatCompletionToolParam,
- ChatCompletionMessageParam,
- ChatCompletionToolChoiceOptionParam,
- completion_create_params,
-)
+from ...types.chat import completion_create_params
from ..._base_client import (
make_request_options,
)
+from ...types.chat_model import ChatModel
+from ...types.chat.chat_completion import ChatCompletion
+from ...types.chat.chat_completion_chunk import ChatCompletionChunk
+from ...types.chat.chat_completion_tool_param import ChatCompletionToolParam
+from ...types.chat.chat_completion_message_param import ChatCompletionMessageParam
+from ...types.chat.chat_completion_tool_choice_option_param import ChatCompletionToolChoiceOptionParam
__all__ = ["Completions", "AsyncCompletions"]
src/openai/resources/fine_tuning/jobs/checkpoints.py
@@ -15,7 +15,8 @@ from ...._base_client import (
AsyncPaginator,
make_request_options,
)
-from ....types.fine_tuning.jobs import FineTuningJobCheckpoint, checkpoint_list_params
+from ....types.fine_tuning.jobs import checkpoint_list_params
+from ....types.fine_tuning.jobs.fine_tuning_job_checkpoint import FineTuningJobCheckpoint
__all__ = ["Checkpoints", "AsyncCheckpoints"]
src/openai/resources/fine_tuning/jobs/jobs.py
@@ -29,13 +29,9 @@ from ...._base_client import (
AsyncPaginator,
make_request_options,
)
-from ....types.fine_tuning import (
- FineTuningJob,
- FineTuningJobEvent,
- job_list_params,
- job_create_params,
- job_list_events_params,
-)
+from ....types.fine_tuning import job_list_params, job_create_params, job_list_events_params
+from ....types.fine_tuning.fine_tuning_job import FineTuningJob
+from ....types.fine_tuning.fine_tuning_job_event import FineTuningJobEvent
__all__ = ["Jobs", "AsyncJobs"]
src/openai/resources/batches.py
@@ -8,7 +8,7 @@ from typing_extensions import Literal
import httpx
from .. import _legacy_response
-from ..types import Batch, batch_list_params, batch_create_params
+from ..types import batch_list_params, batch_create_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._utils import (
maybe_transform,
@@ -18,6 +18,7 @@ from .._compat import cached_property
from .._resource import SyncAPIResource, AsyncAPIResource
from .._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
from ..pagination import SyncCursorPage, AsyncCursorPage
+from ..types.batch import Batch
from .._base_client import (
AsyncPaginator,
make_request_options,
src/openai/resources/completions.py
@@ -8,7 +8,7 @@ from typing_extensions import Literal
import httpx
from .. import _legacy_response
-from ..types import Completion, completion_create_params
+from ..types import completion_create_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._utils import (
required_args,
@@ -22,6 +22,7 @@ from .._streaming import Stream, AsyncStream
from .._base_client import (
make_request_options,
)
+from ..types.completion import Completion
__all__ = ["Completions", "AsyncCompletions"]
src/openai/resources/embeddings.py
@@ -9,7 +9,7 @@ from typing_extensions import Literal
import httpx
from .. import _legacy_response
-from ..types import CreateEmbeddingResponse, embedding_create_params
+from ..types import embedding_create_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._utils import is_given, maybe_transform
from .._compat import cached_property
@@ -19,6 +19,7 @@ from .._response import to_streamed_response_wrapper, async_to_streamed_response
from .._base_client import (
make_request_options,
)
+from ..types.create_embedding_response import CreateEmbeddingResponse
__all__ = ["Embeddings", "AsyncEmbeddings"]
src/openai/resources/files.py
@@ -10,7 +10,7 @@ from typing_extensions import Literal
import httpx
from .. import _legacy_response
-from ..types import FileObject, FileDeleted, file_list_params, file_create_params
+from ..types import file_list_params, file_create_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
from .._utils import (
extract_files,
@@ -33,6 +33,8 @@ from .._base_client import (
AsyncPaginator,
make_request_options,
)
+from ..types.file_object import FileObject
+from ..types.file_deleted import FileDeleted
__all__ = ["Files", "AsyncFiles"]
src/openai/resources/images.py
@@ -8,12 +8,7 @@ from typing_extensions import Literal
import httpx
from .. import _legacy_response
-from ..types import (
- ImagesResponse,
- image_edit_params,
- image_generate_params,
- image_create_variation_params,
-)
+from ..types import image_edit_params, image_generate_params, image_create_variation_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
from .._utils import (
extract_files,
@@ -27,6 +22,7 @@ from .._response import to_streamed_response_wrapper, async_to_streamed_response
from .._base_client import (
make_request_options,
)
+from ..types.images_response import ImagesResponse
__all__ = ["Images", "AsyncImages"]
src/openai/resources/models.py
@@ -5,16 +5,17 @@ from __future__ import annotations
import httpx
from .. import _legacy_response
-from ..types import Model, ModelDeleted
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._compat import cached_property
from .._resource import SyncAPIResource, AsyncAPIResource
from .._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
from ..pagination import SyncPage, AsyncPage
+from ..types.model import Model
from .._base_client import (
AsyncPaginator,
make_request_options,
)
+from ..types.model_deleted import ModelDeleted
__all__ = ["Models", "AsyncModels"]
src/openai/resources/moderations.py
@@ -8,7 +8,7 @@ from typing_extensions import Literal
import httpx
from .. import _legacy_response
-from ..types import ModerationCreateResponse, moderation_create_params
+from ..types import moderation_create_params
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
from .._utils import (
maybe_transform,
@@ -20,6 +20,7 @@ from .._response import to_streamed_response_wrapper, async_to_streamed_response
from .._base_client import (
make_request_options,
)
+from ..types.moderation_create_response import ModerationCreateResponse
__all__ = ["Moderations", "AsyncModerations"]
src/openai/types/beta/assistant_stream_event.py
@@ -4,11 +4,14 @@ from typing import Union
from typing_extensions import Literal, Annotated
from .thread import Thread
-from ..shared import ErrorObject
-from .threads import Run, Message, MessageDeltaEvent
from ..._utils import PropertyInfo
from ..._models import BaseModel
-from .threads.runs import RunStep, RunStepDeltaEvent
+from .threads.run import Run
+from .threads.message import Message
+from ..shared.error_object import ErrorObject
+from .threads.runs.run_step import RunStep
+from .threads.message_delta_event import MessageDeltaEvent
+from .threads.runs.run_step_delta_event import RunStepDeltaEvent
__all__ = [
"AssistantStreamEvent",
src/openai/types/beta/function_tool.py
@@ -2,8 +2,8 @@
from typing_extensions import Literal
-from ..shared import FunctionDefinition
from ..._models import BaseModel
+from ..shared.function_definition import FunctionDefinition
__all__ = ["FunctionTool"]
src/openai/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
__title__ = "openai"
-__version__ = "1.23.2" # x-release-please-version
+__version__ = "1.23.3" # x-release-please-version
tests/api_resources/audio/test_transcriptions.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types.audio import Transcription
+from openai.types.audio.transcription import Transcription
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/audio/test_translations.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types.audio import Translation
+from openai.types.audio.translation import Translation
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/beta/threads/runs/test_steps.py
@@ -10,7 +10,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.beta.threads.runs import RunStep
+from openai.types.beta.threads.runs.run_step import RunStep
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/beta/threads/test_messages.py
@@ -10,7 +10,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.beta.threads import Message
+from openai.types.beta.threads.message import Message
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/beta/threads/test_runs.py
@@ -10,9 +10,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.beta.threads import (
- Run,
-)
+from openai.types.beta.threads.run import Run
# pyright: reportDeprecated=false
tests/api_resources/beta/vector_stores/test_file_batches.py
@@ -10,10 +10,8 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.beta.vector_stores import (
- VectorStoreFile,
- VectorStoreFileBatch,
-)
+from openai.types.beta.vector_stores.vector_store_file import VectorStoreFile
+from openai.types.beta.vector_stores.vector_store_file_batch import VectorStoreFileBatch
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/beta/vector_stores/test_files.py
@@ -10,10 +10,8 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.beta.vector_stores import (
- VectorStoreFile,
- VectorStoreFileDeleted,
-)
+from openai.types.beta.vector_stores.vector_store_file import VectorStoreFile
+from openai.types.beta.vector_stores.vector_store_file_deleted import VectorStoreFileDeleted
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/beta/test_assistants.py
@@ -10,10 +10,8 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.beta import (
- Assistant,
- AssistantDeleted,
-)
+from openai.types.beta.assistant import Assistant
+from openai.types.beta.assistant_deleted import AssistantDeleted
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/beta/test_threads.py
@@ -9,11 +9,9 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types.beta import (
- Thread,
- ThreadDeleted,
-)
-from openai.types.beta.threads import Run
+from openai.types.beta.thread import Thread
+from openai.types.beta.threads.run import Run
+from openai.types.beta.thread_deleted import ThreadDeleted
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/beta/test_vector_stores.py
@@ -10,10 +10,8 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.beta import (
- VectorStore,
- VectorStoreDeleted,
-)
+from openai.types.beta.vector_store import VectorStore
+from openai.types.beta.vector_store_deleted import VectorStoreDeleted
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/chat/test_completions.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types.chat import ChatCompletion
+from openai.types.chat.chat_completion import ChatCompletion
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/fine_tuning/jobs/test_checkpoints.py
@@ -10,7 +10,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.fine_tuning.jobs import FineTuningJobCheckpoint
+from openai.types.fine_tuning.jobs.fine_tuning_job_checkpoint import FineTuningJobCheckpoint
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/fine_tuning/test_jobs.py
@@ -10,10 +10,8 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
from openai.pagination import SyncCursorPage, AsyncCursorPage
-from openai.types.fine_tuning import (
- FineTuningJob,
- FineTuningJobEvent,
-)
+from openai.types.fine_tuning.fine_tuning_job import FineTuningJob
+from openai.types.fine_tuning.fine_tuning_job_event import FineTuningJobEvent
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/test_batches.py
@@ -9,8 +9,8 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types import Batch
from openai.pagination import SyncCursorPage, AsyncCursorPage
+from openai.types.batch import Batch
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/test_completions.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types import Completion
+from openai.types.completion import Completion
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/test_embeddings.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types import CreateEmbeddingResponse
+from openai.types.create_embedding_response import CreateEmbeddingResponse
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/test_files.py
@@ -12,8 +12,9 @@ from respx import MockRouter
import openai._legacy_response as _legacy_response
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types import FileObject, FileDeleted
from openai.pagination import SyncPage, AsyncPage
+from openai.types.file_object import FileObject
+from openai.types.file_deleted import FileDeleted
# pyright: reportDeprecated=false
tests/api_resources/test_images.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types import ImagesResponse
+from openai.types.images_response import ImagesResponse
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/test_models.py
@@ -9,8 +9,9 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types import Model, ModelDeleted
from openai.pagination import SyncPage, AsyncPage
+from openai.types.model import Model
+from openai.types.model_deleted import ModelDeleted
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
tests/api_resources/test_moderations.py
@@ -9,7 +9,7 @@ import pytest
from openai import OpenAI, AsyncOpenAI
from tests.utils import assert_matches_type
-from openai.types import ModerationCreateResponse
+from openai.types.moderation_create_response import ModerationCreateResponse
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "1.23.2"
+ ".": "1.23.3"
}
\ No newline at end of file
CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 1.23.3 (2024-04-23)
+
+Full Changelog: [v1.23.2...v1.23.3](https://github.com/openai/openai-python/compare/v1.23.2...v1.23.3)
+
+### Chores
+
+* **internal:** restructure imports ([#1359](https://github.com/openai/openai-python/issues/1359)) ([4e5eb37](https://github.com/openai/openai-python/commit/4e5eb374ea0545a6117db657bb05f6417bc62d18))
+
## 1.23.2 (2024-04-19)
Full Changelog: [v1.23.1...v1.23.2](https://github.com/openai/openai-python/compare/v1.23.1...v1.23.2)
pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "openai"
-version = "1.23.2"
+version = "1.23.3"
description = "The official Python library for the openai API"
dynamic = ["readme"]
license = "Apache-2.0"