Skip to content

Commit ab6384e

Browse files
committed
move find_stack_level to _libs
1 parent 6e1a040 commit ab6384e

Some content is hidden

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

76 files changed

+104
-99
lines changed

pandas/_libs/exceptions.pyx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import inspect
2+
import os
3+
4+
5+
cpdef int find_stack_level():
6+
"""
7+
Find the first place in the stack that is not inside pandas
8+
(tests notwithstanding).
9+
"""
10+
cdef:
11+
int n
12+
str pkg_dir, test_dir, fname
13+
14+
import pandas as pd
15+
16+
17+
pkg_dir = os.path.dirname(pd.__file__)
18+
test_dir = os.path.join(pkg_dir, "tests")
19+
20+
# https://stackoverflow.com/questions/17407119/python-inspect-stack-is-slow
21+
frame = inspect.currentframe()
22+
n = 1
23+
while frame:
24+
fname = inspect.getfile(frame)
25+
if fname.startswith(pkg_dir) and not fname.startswith(test_dir):
26+
frame = frame.f_back
27+
n += 1
28+
else:
29+
break
30+
return n

pandas/_libs/interval.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ from cpython.datetime cimport (
99
import_datetime,
1010
)
1111

12-
from pandas.util._exceptions import find_stack_level
12+
from pandas._libs.exceptions import find_stack_level
1313

1414
import_datetime()
1515

pandas/_testing/asserters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88

99
import numpy as np
1010

11+
from pandas._libs.exceptions import find_stack_level
1112
from pandas._libs.lib import (
1213
NoDefault,
1314
no_default,
1415
)
1516
from pandas._libs.missing import is_matching_na
1617
from pandas._libs.sparse import SparseIndex
1718
import pandas._libs.testing as _testing
18-
from pandas.util._exceptions import find_stack_level
1919

2020
from pandas.core.dtypes.common import (
2121
is_bool,

pandas/core/accessor.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
import warnings
1010

11+
from pandas._libs.exceptions import find_stack_level
1112
from pandas.util._decorators import doc
12-
from pandas.util._exceptions import find_stack_level
1313

1414

1515
class DirNamesMixin:

pandas/core/algorithms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
iNaT,
2626
lib,
2727
)
28+
from pandas._libs.exceptions import find_stack_level
2829
from pandas._typing import (
2930
AnyArrayLike,
3031
ArrayLike,
@@ -34,7 +35,6 @@
3435
npt,
3536
)
3637
from pandas.util._decorators import doc
37-
from pandas.util._exceptions import find_stack_level
3838

3939
from pandas.core.dtypes.cast import (
4040
construct_1d_object_array_from_listlike,

pandas/core/apply.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from pandas._config import option_context
2626

2727
from pandas._libs import lib
28+
from pandas._libs.exceptions import find_stack_level
2829
from pandas._typing import (
2930
AggFuncType,
3031
AggFuncTypeBase,
@@ -39,7 +40,6 @@
3940
SpecificationError,
4041
)
4142
from pandas.util._decorators import cache_readonly
42-
from pandas.util._exceptions import find_stack_level
4343

4444
from pandas.core.dtypes.cast import is_nested_object
4545
from pandas.core.dtypes.common import (

pandas/core/arraylike.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
import numpy as np
1414

1515
from pandas._libs import lib
16+
from pandas._libs.exceptions import find_stack_level
1617
from pandas._libs.ops_dispatch import maybe_dispatch_ufunc_to_dunder_op
17-
from pandas.util._exceptions import find_stack_level
1818

1919
from pandas.core.dtypes.generic import ABCNDFrame
2020

pandas/core/arrays/arrow/_arrow_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
import numpy as np
77
import pyarrow
88

9+
from pandas._libs.exceptions import find_stack_level
910
from pandas._typing import IntervalInclusiveType
1011
from pandas.errors import PerformanceWarning
1112
from pandas.util._decorators import deprecate_kwarg
12-
from pandas.util._exceptions import find_stack_level
1313

1414
from pandas.core.arrays.interval import VALID_INCLUSIVE
1515

pandas/core/arrays/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import numpy as np
2828

2929
from pandas._libs import lib
30+
from pandas._libs.exceptions import find_stack_level
3031
from pandas._typing import (
3132
ArrayLike,
3233
AstypeArg,
@@ -48,7 +49,6 @@
4849
cache_readonly,
4950
deprecate_nonkeyword_arguments,
5051
)
51-
from pandas.util._exceptions import find_stack_level
5252
from pandas.util._validators import (
5353
validate_bool_kwarg,
5454
validate_fillna_kwargs,

pandas/core/arrays/categorical.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
lib,
3131
)
3232
from pandas._libs.arrays import NDArrayBacked
33+
from pandas._libs.exceptions import find_stack_level
3334
from pandas._libs.lib import (
3435
NoDefault,
3536
no_default,
@@ -49,7 +50,6 @@
4950
deprecate_kwarg,
5051
deprecate_nonkeyword_arguments,
5152
)
52-
from pandas.util._exceptions import find_stack_level
5353
from pandas.util._validators import validate_bool_kwarg
5454

5555
from pandas.core.dtypes.cast import coerce_indexer_dtype

pandas/core/arrays/datetimelike.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
lib,
2727
)
2828
from pandas._libs.arrays import NDArrayBacked
29+
from pandas._libs.exceptions import find_stack_level
2930
from pandas._libs.tslibs import (
3031
BaseOffset,
3132
IncompatibleFrequency,
@@ -71,7 +72,6 @@
7172
Substitution,
7273
cache_readonly,
7374
)
74-
from pandas.util._exceptions import find_stack_level
7575

7676
from pandas.core.dtypes.common import (
7777
is_all_strings,

pandas/core/arrays/datetimes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
lib,
2020
tslib,
2121
)
22+
from pandas._libs.exceptions import find_stack_level
2223
from pandas._libs.tslibs import (
2324
BaseOffset,
2425
NaT,
@@ -44,7 +45,6 @@
4445
OutOfBoundsDatetime,
4546
PerformanceWarning,
4647
)
47-
from pandas.util._exceptions import find_stack_level
4848
from pandas.util._validators import validate_inclusive
4949

5050
from pandas.core.dtypes.astype import astype_dt64_to_dt64tz

pandas/core/arrays/interval.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from pandas._config import get_option
2323

2424
from pandas._libs import lib
25+
from pandas._libs.exceptions import find_stack_level
2526
from pandas._libs.interval import (
2627
VALID_INCLUSIVE,
2728
Interval,
@@ -46,7 +47,6 @@
4647
deprecate_kwarg,
4748
deprecate_nonkeyword_arguments,
4849
)
49-
from pandas.util._exceptions import find_stack_level
5050

5151
from pandas.core.dtypes.cast import LossySetitemError
5252
from pandas.core.dtypes.common import (

pandas/core/arrays/sparse/array.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import numpy as np
2222

2323
from pandas._libs import lib
24+
from pandas._libs.exceptions import find_stack_level
2425
import pandas._libs.sparse as splib
2526
from pandas._libs.sparse import (
2627
BlockIndex,
@@ -41,7 +42,6 @@
4142
)
4243
from pandas.compat.numpy import function as nv
4344
from pandas.errors import PerformanceWarning
44-
from pandas.util._exceptions import find_stack_level
4545
from pandas.util._validators import (
4646
validate_bool_kwarg,
4747
validate_insert_loc,

pandas/core/arrays/sparse/dtype.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111
import numpy as np
1212

13+
from pandas._libs.exceptions import find_stack_level
1314
from pandas._typing import (
1415
Dtype,
1516
DtypeObj,
1617
type_t,
1718
)
1819
from pandas.errors import PerformanceWarning
19-
from pandas.util._exceptions import find_stack_level
2020

2121
from pandas.core.dtypes.astype import astype_nansafe
2222
from pandas.core.dtypes.base import (

pandas/core/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import numpy as np
2222

23+
from pandas._libs.exceptions import find_stack_level
2324
import pandas._libs.lib as lib
2425
from pandas._typing import (
2526
ArrayLike,
@@ -36,7 +37,6 @@
3637
cache_readonly,
3738
doc,
3839
)
39-
from pandas.util._exceptions import find_stack_level
4040

4141
from pandas.core.dtypes.common import (
4242
is_categorical_dtype,

pandas/core/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@
3030
import numpy as np
3131

3232
from pandas._libs import lib
33+
from pandas._libs.exceptions import find_stack_level
3334
from pandas._typing import (
3435
AnyArrayLike,
3536
ArrayLike,
3637
NpDtype,
3738
RandomState,
3839
T,
3940
)
40-
from pandas.util._exceptions import find_stack_level
4141

4242
from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike
4343
from pandas.core.dtypes.common import (

pandas/core/computation/align.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616

1717
import numpy as np
1818

19+
from pandas._libs.exceptions import find_stack_level
1920
from pandas.errors import PerformanceWarning
20-
from pandas.util._exceptions import find_stack_level
2121

2222
from pandas.core.dtypes.generic import (
2323
ABCDataFrame,

pandas/core/computation/eval.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import tokenize
77
import warnings
88

9+
from pandas._libs.exceptions import find_stack_level
910
from pandas._libs.lib import no_default
10-
from pandas.util._exceptions import find_stack_level
1111
from pandas.util._validators import validate_bool_kwarg
1212

1313
from pandas.core.computation.engines import ENGINES

pandas/core/config_init.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
is_text,
2828
)
2929

30-
from pandas.util._exceptions import find_stack_level
30+
from pandas._libs.exceptions import find_stack_level
3131

3232
# compute
3333

pandas/core/construction.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import numpy.ma as ma
2222

2323
from pandas._libs import lib
24+
from pandas._libs.exceptions import find_stack_level
2425
from pandas._libs.tslibs.period import Period
2526
from pandas._typing import (
2627
AnyArrayLike,
@@ -30,7 +31,6 @@
3031
T,
3132
)
3233
from pandas.errors import IntCastingNaNError
33-
from pandas.util._exceptions import find_stack_level
3434

3535
from pandas.core.dtypes.base import (
3636
ExtensionDtype,

pandas/core/describe.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121

2222
import numpy as np
2323

24+
from pandas._libs.exceptions import find_stack_level
2425
from pandas._libs.tslibs import Timestamp
2526
from pandas._typing import (
2627
NDFrameT,
2728
npt,
2829
)
29-
from pandas.util._exceptions import find_stack_level
3030
from pandas.util._validators import validate_percentile
3131

3232
from pandas.core.dtypes.common import (

pandas/core/dtypes/astype.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import numpy as np
1616

1717
from pandas._libs import lib
18+
from pandas._libs.exceptions import find_stack_level
1819
from pandas._libs.tslibs import is_unitless
1920
from pandas._libs.tslibs.timedeltas import array_to_timedelta64
2021
from pandas._typing import (
@@ -23,7 +24,6 @@
2324
IgnoreRaise,
2425
)
2526
from pandas.errors import IntCastingNaNError
26-
from pandas.util._exceptions import find_stack_level
2727

2828
from pandas.core.dtypes.common import (
2929
is_datetime64_dtype,

pandas/core/dtypes/cast.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import numpy as np
2525

2626
from pandas._libs import lib
27+
from pandas._libs.exceptions import find_stack_level
2728
from pandas._libs.tslibs import (
2829
NaT,
2930
OutOfBoundsDatetime,
@@ -40,7 +41,6 @@
4041
Scalar,
4142
)
4243
from pandas.errors import IntCastingNaNError
43-
from pandas.util._exceptions import find_stack_level
4444
from pandas.util._validators import validate_bool_kwarg
4545

4646
from pandas.core.dtypes.astype import astype_nansafe

pandas/core/dtypes/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
algos,
1818
lib,
1919
)
20+
from pandas._libs.exceptions import find_stack_level
2021
from pandas._libs.tslibs import conversion
2122
from pandas._typing import (
2223
ArrayLike,
2324
DtypeObj,
2425
)
25-
from pandas.util._exceptions import find_stack_level
2626

2727
from pandas.core.dtypes.base import _registry as registry
2828
from pandas.core.dtypes.dtypes import (

pandas/core/dtypes/concat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111

1212
import numpy as np
1313

14+
from pandas._libs.exceptions import find_stack_level
1415
from pandas._typing import (
1516
ArrayLike,
1617
DtypeObj,
1718
)
18-
from pandas.util._exceptions import find_stack_level
1919

2020
from pandas.core.dtypes.astype import astype_array
2121
from pandas.core.dtypes.cast import (

pandas/core/dtypes/dtypes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
lib,
2020
missing as libmissing,
2121
)
22+
from pandas._libs.exceptions import find_stack_level
2223
from pandas._libs.interval import (
2324
Interval,
2425
_warning_interval,
@@ -43,7 +44,6 @@
4344
npt,
4445
type_t,
4546
)
46-
from pandas.util._exceptions import find_stack_level
4747

4848
from pandas.core.dtypes.base import (
4949
ExtensionDtype,

0 commit comments

Comments
 (0)