Skip to content

Commit ce750c5

Browse files
jbrockmendelquintusdias
authored andcommitted
REF: implement module for shared constructor functions (pandas-dev#27551)
1 parent 2534066 commit ce750c5

14 files changed

+289
-275
lines changed

pandas/core/algorithms.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
from pandas.core.dtypes.missing import isna, na_value_for_dtype
5151

5252
from pandas.core import common as com
53+
from pandas.core.construction import array
5354
from pandas.core.indexers import validate_indices
5455

5556
_shared_docs = {} # type: Dict[str, str]
@@ -1855,8 +1856,6 @@ def searchsorted(arr, value, side="left", sorter=None):
18551856
and is_integer_dtype(arr)
18561857
and (is_integer(value) or is_integer_dtype(value))
18571858
):
1858-
from .arrays.array_ import array
1859-
18601859
# if `arr` and `value` have different dtypes, `arr` would be
18611860
# recast by numpy, causing a slow search.
18621861
# Before searching below, we therefore try to give `value` the

pandas/core/api.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
IntervalDtype,
2121
DatetimeTZDtype,
2222
)
23-
from pandas.core.arrays import Categorical, array
23+
from pandas.core.arrays import Categorical
24+
from pandas.core.construction import array
2425
from pandas.core.groupby import Grouper, NamedAgg
2526
from pandas.io.formats.format import set_eng_float_format
2627
from pandas.core.index import (

pandas/core/arrays/__init__.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from .array_ import array # noqa: F401
21
from .base import ( # noqa: F401
32
ExtensionArray,
43
ExtensionOpsMixin,

pandas/core/arrays/categorical.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
)
5656
from pandas.core.base import NoNewAttributesMixin, PandasObject, _shared_docs
5757
import pandas.core.common as com
58+
from pandas.core.construction import extract_array, sanitize_array
5859
from pandas.core.missing import interpolate_2d
5960
from pandas.core.sorting import nargsort
6061

@@ -356,7 +357,6 @@ def __init__(
356357
values = maybe_infer_to_datetimelike(values, convert_dates=True)
357358
if not isinstance(values, np.ndarray):
358359
values = _convert_to_list_like(values)
359-
from pandas.core.internals.construction import sanitize_array
360360

361361
# By convention, empty lists result in object dtype:
362362
if len(values) == 0:
@@ -2127,8 +2127,6 @@ def __setitem__(self, key, value):
21272127
If (one or more) Value is not in categories or if a assigned
21282128
`Categorical` does not have the same categories
21292129
"""
2130-
from pandas.core.internals.arrays import extract_array
2131-
21322130
value = extract_array(value, extract_numpy=True)
21332131

21342132
# require identical categories set
@@ -2491,8 +2489,6 @@ def isin(self, values):
24912489
>>> s.isin(['lama'])
24922490
array([ True, False, True, False, True, False])
24932491
"""
2494-
from pandas.core.internals.construction import sanitize_array
2495-
24962492
if not is_list_like(values):
24972493
raise TypeError(
24982494
"only list-like objects are allowed to be passed"

pandas/core/arrays/numpy_.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from pandas import compat
1717
from pandas.core import nanops
1818
from pandas.core.algorithms import searchsorted, take, unique
19+
from pandas.core.construction import extract_array
1920
from pandas.core.missing import backfill_1d, pad_1d
2021

2122
from .base import ExtensionArray, ExtensionOpsMixin
@@ -222,8 +223,6 @@ def __getitem__(self, item):
222223
return result
223224

224225
def __setitem__(self, key, value):
225-
from pandas.core.internals.arrays import extract_array
226-
227226
value = extract_array(value, extract_numpy=True)
228227

229228
if not lib.is_scalar(key) and is_list_like(key):

pandas/core/arrays/sparse.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
from pandas.core.arrays import ExtensionArray, ExtensionOpsMixin
5353
from pandas.core.base import PandasObject
5454
import pandas.core.common as com
55+
from pandas.core.construction import sanitize_array
5556
from pandas.core.missing import interpolate_2d
5657
import pandas.core.ops as ops
5758

@@ -660,7 +661,6 @@ def __init__(
660661
if not is_array_like(data):
661662
try:
662663
# probably shared code in sanitize_series
663-
from pandas.core.internals.construction import sanitize_array
664664

665665
data = sanitize_array(data, index=None)
666666
except ValueError:

0 commit comments

Comments
 (0)