Skip to content

Commit f1fbc9c

Browse files
chore(internal): replace isort with ruff (#1042)
1 parent 2e9ecee commit f1fbc9c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+397
-383
lines changed

pyproject.toml

+9-7
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ dev-dependencies = [
5555
"pytest",
5656
"pytest-asyncio",
5757
"ruff",
58-
"isort",
5958
"time-machine",
6059
"nox",
6160
"dirty-equals>=0.6.0",
@@ -69,7 +68,6 @@ format = { chain = [
6968
"format:ruff",
7069
"format:docs",
7170
"fix:ruff",
72-
"format:isort",
7371
]}
7472
"format:black" = "black ."
7573
"format:docs" = "python bin/ruffen-docs.py README.md api.md"
@@ -130,16 +128,13 @@ reportImplicitOverride = true
130128
reportImportCycles = false
131129
reportPrivateUsage = false
132130

133-
[tool.isort]
134-
profile = "black"
135-
length_sort = true
136-
extra_standard_library = ["typing_extensions"]
137-
138131
[tool.ruff]
139132
line-length = 120
140133
output-format = "grouped"
141134
target-version = "py37"
142135
select = [
136+
# isort
137+
"I",
143138
# bugbear rules
144139
"B",
145140
# remove unused imports
@@ -166,6 +161,13 @@ ignore-init-module-imports = true
166161
[tool.ruff.format]
167162
docstring-code-format = true
168163

164+
[tool.ruff.lint.isort]
165+
length-sort = true
166+
length-sort-straight = true
167+
combine-as-imports = true
168+
extra-standard-library = ["typing_extensions"]
169+
known-first-party = ["openai", "tests"]
170+
169171
[tool.ruff.per-file-ignores]
170172
"bin/**.py" = ["T201", "T203"]
171173
"tests/**.py" = ["T201", "T203"]

requirements-dev.lock

+3-4
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,16 @@ httpx==0.25.2
2929
idna==3.4
3030
importlib-metadata==7.0.0
3131
iniconfig==2.0.0
32-
isort==5.10.1
3332
msal==1.26.0
3433
msal-extensions==1.1.0
3534
mypy==1.7.1
3635
mypy-extensions==1.0.0
3736
nodeenv==1.8.0
3837
nox==2023.4.22
39-
numpy==1.26.2
38+
numpy==1.26.3
4039
packaging==23.2
4140
pandas==2.1.4
42-
pandas-stubs==2.1.4.231218
41+
pandas-stubs==2.1.4.231227
4342
platformdirs==3.11.0
4443
pluggy==1.3.0
4544
portalocker==2.8.2
@@ -64,7 +63,7 @@ tqdm==4.66.1
6463
types-pytz==2023.3.1.1
6564
types-tqdm==4.66.0.2
6665
typing-extensions==4.8.0
67-
tzdata==2023.3
66+
tzdata==2023.4
6867
urllib3==2.1.0
6968
virtualenv==20.24.5
7069
zipp==3.17.0

src/openai/__init__.py

+16-25
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,7 @@
88
from . import types
99
from ._types import NoneType, Transport, ProxiesTypes
1010
from ._utils import file_from_path
11-
from ._client import (
12-
Client,
13-
OpenAI,
14-
Stream,
15-
Timeout,
16-
Transport,
17-
AsyncClient,
18-
AsyncOpenAI,
19-
AsyncStream,
20-
RequestOptions,
21-
)
11+
from ._client import Client, OpenAI, Stream, Timeout, Transport, AsyncClient, AsyncOpenAI, AsyncStream, RequestOptions
2212
from ._version import __title__, __version__
2313
from ._exceptions import (
2414
APIError,
@@ -72,8 +62,7 @@
7262

7363
from .lib import azure as _azure
7464
from .version import VERSION as VERSION
75-
from .lib.azure import AzureOpenAI as AzureOpenAI
76-
from .lib.azure import AsyncAzureOpenAI as AsyncAzureOpenAI
65+
from .lib.azure import AzureOpenAI as AzureOpenAI, AsyncAzureOpenAI as AsyncAzureOpenAI
7766
from .lib._old_api import *
7867

7968
_setup_logging()
@@ -323,15 +312,17 @@ def _reset_client() -> None: # type: ignore[reportUnusedFunction]
323312
_client = None
324313

325314

326-
from ._module_client import beta as beta
327-
from ._module_client import chat as chat
328-
from ._module_client import audio as audio
329-
from ._module_client import edits as edits
330-
from ._module_client import files as files
331-
from ._module_client import images as images
332-
from ._module_client import models as models
333-
from ._module_client import embeddings as embeddings
334-
from ._module_client import fine_tunes as fine_tunes
335-
from ._module_client import completions as completions
336-
from ._module_client import fine_tuning as fine_tuning
337-
from ._module_client import moderations as moderations
315+
from ._module_client import (
316+
beta as beta,
317+
chat as chat,
318+
audio as audio,
319+
edits as edits,
320+
files as files,
321+
images as images,
322+
models as models,
323+
embeddings as embeddings,
324+
fine_tunes as fine_tunes,
325+
completions as completions,
326+
fine_tuning as fine_tuning,
327+
moderations as moderations,
328+
)

src/openai/_client.py

+11-4
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,19 @@
1919
ProxiesTypes,
2020
RequestOptions,
2121
)
22-
from ._utils import is_given, is_mapping, get_async_library
22+
from ._utils import (
23+
is_given,
24+
is_mapping,
25+
get_async_library,
26+
)
2327
from ._version import __version__
24-
from ._streaming import Stream as Stream
25-
from ._streaming import AsyncStream as AsyncStream
28+
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
2629
from ._exceptions import OpenAIError, APIStatusError
27-
from ._base_client import DEFAULT_MAX_RETRIES, SyncAPIClient, AsyncAPIClient
30+
from ._base_client import (
31+
DEFAULT_MAX_RETRIES,
32+
SyncAPIClient,
33+
AsyncAPIClient,
34+
)
2835

2936
__all__ = [
3037
"Timeout",

src/openai/_compat.py

+16-14
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,23 @@ def is_typeddict(type_: type[Any]) -> bool: # noqa: ARG001
4343

4444
else:
4545
if PYDANTIC_V2:
46-
from pydantic.v1.typing import get_args as get_args
47-
from pydantic.v1.typing import is_union as is_union
48-
from pydantic.v1.typing import get_origin as get_origin
49-
from pydantic.v1.typing import is_typeddict as is_typeddict
50-
from pydantic.v1.typing import is_literal_type as is_literal_type
51-
from pydantic.v1.datetime_parse import parse_date as parse_date
52-
from pydantic.v1.datetime_parse import parse_datetime as parse_datetime
46+
from pydantic.v1.typing import (
47+
get_args as get_args,
48+
is_union as is_union,
49+
get_origin as get_origin,
50+
is_typeddict as is_typeddict,
51+
is_literal_type as is_literal_type,
52+
)
53+
from pydantic.v1.datetime_parse import parse_date as parse_date, parse_datetime as parse_datetime
5354
else:
54-
from pydantic.typing import get_args as get_args
55-
from pydantic.typing import is_union as is_union
56-
from pydantic.typing import get_origin as get_origin
57-
from pydantic.typing import is_typeddict as is_typeddict
58-
from pydantic.typing import is_literal_type as is_literal_type
59-
from pydantic.datetime_parse import parse_date as parse_date
60-
from pydantic.datetime_parse import parse_datetime as parse_datetime
55+
from pydantic.typing import (
56+
get_args as get_args,
57+
is_union as is_union,
58+
get_origin as get_origin,
59+
is_typeddict as is_typeddict,
60+
is_literal_type as is_literal_type,
61+
)
62+
from pydantic.datetime_parse import parse_date as parse_date, parse_datetime as parse_datetime
6163

6264

6365
# refactored config

src/openai/_extras/__init__.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
from .numpy_proxy import numpy as numpy
2-
from .numpy_proxy import has_numpy as has_numpy
1+
from .numpy_proxy import numpy as numpy, has_numpy as has_numpy
32
from .pandas_proxy import pandas as pandas

src/openai/_models.py

+4-10
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,11 @@
3030
AnyMapping,
3131
HttpxRequestFiles,
3232
)
33-
from ._utils import (
34-
is_list,
35-
is_given,
36-
is_mapping,
37-
parse_date,
38-
parse_datetime,
39-
strip_not_given,
40-
)
41-
from ._compat import PYDANTIC_V2, ConfigDict
42-
from ._compat import GenericModel as BaseGenericModel
33+
from ._utils import is_list, is_given, is_mapping, parse_date, parse_datetime, strip_not_given
4334
from ._compat import (
35+
PYDANTIC_V2,
36+
ConfigDict,
37+
GenericModel as BaseGenericModel,
4438
get_args,
4539
is_union,
4640
parse_obj,

src/openai/_types.py

+1-8
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,7 @@
1919
Sequence,
2020
AsyncIterator,
2121
)
22-
from typing_extensions import (
23-
Literal,
24-
Protocol,
25-
TypeAlias,
26-
TypedDict,
27-
override,
28-
runtime_checkable,
29-
)
22+
from typing_extensions import Literal, Protocol, TypeAlias, TypedDict, override, runtime_checkable
3023

3124
import httpx
3225
import pydantic

src/openai/_utils/__init__.py

+44-39
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,45 @@
11
from ._proxy import LazyProxy as LazyProxy
2-
from ._utils import flatten as flatten
3-
from ._utils import is_dict as is_dict
4-
from ._utils import is_list as is_list
5-
from ._utils import is_given as is_given
6-
from ._utils import is_tuple as is_tuple
7-
from ._utils import is_mapping as is_mapping
8-
from ._utils import is_tuple_t as is_tuple_t
9-
from ._utils import parse_date as parse_date
10-
from ._utils import is_sequence as is_sequence
11-
from ._utils import coerce_float as coerce_float
12-
from ._utils import is_mapping_t as is_mapping_t
13-
from ._utils import removeprefix as removeprefix
14-
from ._utils import removesuffix as removesuffix
15-
from ._utils import extract_files as extract_files
16-
from ._utils import is_sequence_t as is_sequence_t
17-
from ._utils import required_args as required_args
18-
from ._utils import coerce_boolean as coerce_boolean
19-
from ._utils import coerce_integer as coerce_integer
20-
from ._utils import file_from_path as file_from_path
21-
from ._utils import parse_datetime as parse_datetime
22-
from ._utils import strip_not_given as strip_not_given
23-
from ._utils import deepcopy_minimal as deepcopy_minimal
24-
from ._utils import get_async_library as get_async_library
25-
from ._utils import maybe_coerce_float as maybe_coerce_float
26-
from ._utils import get_required_header as get_required_header
27-
from ._utils import maybe_coerce_boolean as maybe_coerce_boolean
28-
from ._utils import maybe_coerce_integer as maybe_coerce_integer
29-
from ._typing import is_list_type as is_list_type
30-
from ._typing import is_union_type as is_union_type
31-
from ._typing import extract_type_arg as extract_type_arg
32-
from ._typing import is_required_type as is_required_type
33-
from ._typing import is_annotated_type as is_annotated_type
34-
from ._typing import strip_annotated_type as strip_annotated_type
35-
from ._typing import extract_type_var_from_base as extract_type_var_from_base
36-
from ._streams import consume_sync_iterator as consume_sync_iterator
37-
from ._streams import consume_async_iterator as consume_async_iterator
38-
from ._transform import PropertyInfo as PropertyInfo
39-
from ._transform import transform as transform
40-
from ._transform import maybe_transform as maybe_transform
2+
from ._utils import (
3+
flatten as flatten,
4+
is_dict as is_dict,
5+
is_list as is_list,
6+
is_given as is_given,
7+
is_tuple as is_tuple,
8+
is_mapping as is_mapping,
9+
is_tuple_t as is_tuple_t,
10+
parse_date as parse_date,
11+
is_sequence as is_sequence,
12+
coerce_float as coerce_float,
13+
is_mapping_t as is_mapping_t,
14+
removeprefix as removeprefix,
15+
removesuffix as removesuffix,
16+
extract_files as extract_files,
17+
is_sequence_t as is_sequence_t,
18+
required_args as required_args,
19+
coerce_boolean as coerce_boolean,
20+
coerce_integer as coerce_integer,
21+
file_from_path as file_from_path,
22+
parse_datetime as parse_datetime,
23+
strip_not_given as strip_not_given,
24+
deepcopy_minimal as deepcopy_minimal,
25+
get_async_library as get_async_library,
26+
maybe_coerce_float as maybe_coerce_float,
27+
get_required_header as get_required_header,
28+
maybe_coerce_boolean as maybe_coerce_boolean,
29+
maybe_coerce_integer as maybe_coerce_integer,
30+
)
31+
from ._typing import (
32+
is_list_type as is_list_type,
33+
is_union_type as is_union_type,
34+
extract_type_arg as extract_type_arg,
35+
is_required_type as is_required_type,
36+
is_annotated_type as is_annotated_type,
37+
strip_annotated_type as strip_annotated_type,
38+
extract_type_var_from_base as extract_type_var_from_base,
39+
)
40+
from ._streams import consume_sync_iterator as consume_sync_iterator, consume_async_iterator as consume_async_iterator
41+
from ._transform import (
42+
PropertyInfo as PropertyInfo,
43+
transform as transform,
44+
maybe_transform as maybe_transform,
45+
)

src/openai/_utils/_transform.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66

77
import pydantic
88

9-
from ._utils import is_list, is_mapping
9+
from ._utils import (
10+
is_list,
11+
is_mapping,
12+
)
1013
from ._typing import (
1114
is_list_type,
1215
is_union_type,

src/openai/_utils/_utils.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
import sniffio
2222

2323
from .._types import Headers, NotGiven, FileTypes, NotGivenOr, HeadersLike
24-
from .._compat import parse_date as parse_date
25-
from .._compat import parse_datetime as parse_datetime
24+
from .._compat import parse_date as parse_date, parse_datetime as parse_datetime
2625

2726
_T = TypeVar("_T")
2827
_TupleT = TypeVar("_TupleT", bound=Tuple[object, ...])

0 commit comments

Comments
 (0)