pandas 3.1.0
- Source
- https://github.com/pandas-dev/pandas
- Artifact scanned
pandas-3.1.0.tar.gz- Compared with
pandas-3.0.6.tar.gz(52 signals introduced since)- Files
- 1856 scanned, 155 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 81 info
- Scan time
- 50.3 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 56 of 56 warn and critical signals; 56 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 10:44
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
= return Falsedismissed Frame lookup via sys._getframe to inspect the caller's scope.Reasoning
sys._getframe(2) is used to inspect the calling namespace in a helper and falls back on ValueError. This is ordinary introspection in a data library with no network, exec, or persistence behavior.
-
info
warn→ info by reviewframe-introspectionpandas/tests/config/test_config.py:555:18new in this release= . + 1 passdismissed Test reads the current line number via frame introspection to verify warning placement.Reasoning
The test reads the current line number through inspect.currentframe to assert warning locations. This is a legitimate test technique.
-
info
warn→ info by reviewframe-introspectionpandas/tests/config/test_config.py:570:18new in this release= . + 1dismissed Test reads the current line number via frame introspection to verify warning placement.Reasoning
Same line-number introspection in a config warning test. Benign test scaffolding.
-
info
warn→ info by reviewframe-introspectionpandas/tests/config/test_config.py:584:18new in this release= . + 2dismissed Test reads the current line number via frame introspection to verify warning placement.Reasoning
Same line-number introspection in a config warning test. Benign test scaffolding.
-
info
warn→ info by reviewframe-introspectionpandas/tests/config/test_config.py:602:18new in this release= . + 1 passdismissed Test reads the current line number via frame introspection to verify warning placement.Reasoning
Same line-number introspection in a config warning test. Benign test scaffolding.
-
info
warn→ info by reviewframe-introspectionpandas/tests/config/test_config.py:618:17new in this release= . + 1dismissed Reads the current line number inside a pandas test so a warning can be checked against it.Reasoning
inspect.currentframe().f_lineno is used in a pandas config test to record the line number for a warning assertion. It is a test-local idiom with no data exfiltration or evasion.
-
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/base_class/test_formats.py:15:15new in this release= =dismissed Round-trips a pandas Index through repr and eval to verify the repr.Reasoning
eval(repr(idx)) with pandas names as globals is a standard round-trip check that repr is valid Python. The input is an index built in the test itself.
-
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/multi/test_formats.py:18:9new in this releasedismissed Evaluates a MultiIndex repr inside a pandas formatting test.Reasoning
eval(repr(mi)) inside a pytest.raises block round-trips a MultiIndex repr. Test-only input with no external source.
-
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/numeric/test_numeric.py:35:31new in this release=dismissed Round-trips a numeric pandas Index through repr and eval.Reasoning
eval(repr(index), dict(vars(pd))) is a repr round-trip of a locally built numeric index, a common pandas test idiom.
-
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/ranges/test_range.py:61:18new in this release=dismissed Evaluates a RangeIndex repr string to check it reconstructs the index.Reasoning
eval of a RangeIndex repr string produced in the test, followed by an index equality assertion. Benign round-trip check.
-
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/ranges/test_range.py:69:18new in this release=dismissed Second RangeIndex repr round-trip eval in the same pandas test file.Reasoning
Same RangeIndex repr round-trip as the nearby finding, with an assertion on the result. Benign.
-
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/ranges/test_range.py:411:31new in this release=dismissed Round-trips a fixture index through repr and eval in a pandas range test.Reasoning
eval(repr(index)) on a fixture index, checking repr round-trip in a pandas test. Benign.
-
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/test_old_base.py:226:31new in this release=dismissed Round-trips a fixture index through repr and eval in a pandas base-index test.Reasoning
eval(repr(idx)) on a fixture index in a generic index test, a standard repr round-trip check.
-
= = -
== : return == : return -
== : return == : return -
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_constructors.py:1029:26new in this releaseassert == assert == # This should be 2013-11-01 05:00 in UTCdismissed Round-trips a pandas Timestamp through repr and eval.Reasoning
eval(repr(result), dict(vars(pd))) round-trips a Timestamp repr built in the test, checking that repr is valid. Benign.
-
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_constructors.py:1037:26new in this releaseassert == assert == # GH11708dismissed Second Timestamp repr round-trip eval in a pandas constructor test.Reasoning
Another Timestamp repr round-trip eval, in a GH11708 regression test. Benign.
-
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_constructors.py:1046:26new in this releaseassert == assert == # This should be 2015-11-18 10:00 in UTClikely benign Test evaluates repr of a pandas Timestamp to check round-tripping.Reasoning
Round-trip test evaluating repr of a Timestamp against pandas namespace; standard pandas test idiom on trusted, locally generated input.
-
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_constructors.py:1054:26new in this releaseassert == assert ==likely benign Test evaluates repr of a Timestamp to verify round-trip equality.Reasoning
Same repr round-trip eval in pandas test suite on self-generated repr output; not attacker-controlled.
-
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_formats.py:206:29new in this releaseassert not in assert == =likely benign Test uses eval on repr of a date-only Timestamp to check round-trip.Reasoning
Repr round-trip assertion over a locally created Timestamp in a test file; benign test idiom.
-
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_formats.py:212:27new in this releaseassert not in assert ==likely benign Test evaluates repr of a tz-aware Timestamp to check round-trip.Reasoning
Repr round-trip eval of a locally constructed timezone-aware Timestamp; benign.
-
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_formats.py:222:40new in this release= assert ==likely benign Test evals repr of a Timestamp with a UTC offset.Reasoning
Evaluates the repr of a locally constructed Timestamp with UTC offset in a test; benign.
-
info
warn→ info by reviewdynamic-executionpandas/tests/scalar/timestamp/test_formats.py:259:20new in this releaseassert ==likely benign Test evals repr of Timestamps across zones to check round-trip.Reasoning
Loop evaluating repr of locally generated timezone objects in a pandas test; benign round-trip check.
-
, -
, -
info
warn→ info by reviewdynamic-executionpandas/tests/util/test_find_stack_level.py:50:5new in this release= # noqa: S102likely benign Test execs a constant source string as a module to check find_stack_level.Reasoning
Compiles and executes a fixed module source string (_SRC) in a test to exercise warning stack levels; the code is a constant defined in the test, with a noqa acknowledging it.
-
info
warn→ info by reviewdynamic-executionpandas/tests/util/test_find_stack_level.py:50:10new in this release= # noqa: S102likely benign Test compiles a constant source string for stack-level testing.Reasoning
compile of the fixed _SRC constant with a test-controlled path; part of the same benign exec idiom.
-
if [ ; then else -
-
info
warn→ info by reviewdynamic-executionsubprojects/fast_float-8.2.10/fuzz/build.sh:3:1new in this releaselikely benign Fuzz build script invokes the compiler from an environment variable.Reasoning
Standard OSS-Fuzz build script where $CXX and $CFLAGS are provided by the fuzzing harness environment; variable compiler is expected here, not malicious.
-
info
warn→ info by reviewdynamic-executionsubprojects/fast_float-8.2.10/fuzz/build.sh:7:1new in this releaselikely benign Fuzz build script links using environment-provided compiler and engine.Reasoning
Same OSS-Fuzz pattern: link step uses environment-provided $CXX and $LIB_FUZZING_ENGINE; expected in fuzzing infrastructure.
-
0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044501 -
0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250 -
0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044501 -
0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250 -
info
warn→ info by reviewdynamic-executionsubprojects/xsimd-14.2.0/.github/workflows/android.yml:28:18new in this releaseNDK=""likely benign CI step that locates Android sdkmanager via ANDROID_HOME to find the NDK for a CMake build.Reasoning
The command path comes from the ANDROID_HOME environment variable in a CI workflow that installs the Android NDK and configures CMake. Using an env-var path as the command is a common, legitimate CI pattern, and the snippet shows no download-and-run or encoded payload.
-
info
warn→ info by reviewdynamic-executionsubprojects/xsimd-14.2.0/docs/source/conf.py:10:5new in this releaselikely benign Sphinx docs config that runs a hardcoded doxygen build command via shell when on Read the Docs.Reasoning
This is a standard Sphinx conf.py that runs a fixed, literal doxygen command under the Read the Docs branch. There is no interpolated input and no network activity.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/common/xsimd_common_math.hpp:2033:88new in this releaseXSIMD_INLINE batch<T, A>likely benign Parameter named 'to' in an xsimd nextafter overload, flagged for a confusable-identifier collision.Reasoning
The token pass flagged a confusable skeleton collision, but the snippet is an ordinary nextafter signature with parameters named from and to. Visual-skeleton collisions between ordinary short identifiers are a known false-positive pattern for this signal.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/common/xsimd_common_memory.hpp:790:24new in this releasereal_batch hi = , lo = ; return ; }likely benign Local hi/lo variables in a complex-number load helper, flagged for a confusable-identifier collision.Reasoning
The snippet uses hi and lo as ordinary local names for the high and low halves of a complex load. The collision is a false positive from the skeleton matching on short identifiers, not a homoglyph attack.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/xsimd_avx.hpp:895:119new in this releaseXSIMD_INLINE batch<std::complex<float>, A>likely benign AVX load_complex helper with hi/lo parameters, flagged for a confusable-identifier collision.Reasoning
The snippet uses hi and lo as ordinary parameter names in a standard AVX load_complex implementation. The confusable-skeleton hit is a false positive on short names.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/xsimd_avx512f.hpp:248:54new in this release// zero-extend 256 -> 512 (low) and place-into-high variants XSIMD_INLINE __m512i XSIMD_INLINE __m512likely benign AVX-512 zero_extend overloads with a lo parameter, flagged for a confusable-identifier collision.Reasoning
The snippet is ordinary AVX-512 zero_extend overloads with a lo parameter that wrap intrinsics. The token collision is a false positive on common short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/xsimd_sse2.hpp:1216:119new in this releaseXSIMD_INLINE batch<std::complex<float>, A>likely benign SSE2 load_complex helper with hi/lo parameters, flagged for a confusable-identifier collision.Reasoning
The snippet is a standard SSE2 load_complex implementation using hi and lo parameter names. The confusable-skeleton hit is a false positive.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/xsimd_vsx.hpp:442:119new in this releaseXSIMD_INLINE batch<std::complex<float>, A>likely benign VSX load_complex helper with hi/lo parameters, flagged for a confusable-identifier collision.Reasoning
The snippet is a standard VSX load_complex implementation with hi and lo parameters and a permute vector. The confusable-skeleton hit is a false positive on short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/xsimd_vxe.hpp:103:119new in this releaseXSIMD_INLINE batch<std::complex<float>, A>likely benign VXE load_complex helper with hi/lo parameters, flagged for a confusable-identifier collision.Reasoning
The snippet is a standard VXE load_complex implementation with hi and lo parameters. The confusable-skeleton hit is a false positive on short identifiers.
-
info
warn→ info by reviewidentifier-confusable-collisionsubprojects/xsimd-14.2.0/include/xsimd/arch/xsimd_wasm.hpp:910:119new in this releaseXSIMD_INLINE batch<std::complex<float>, A>likely benign WASM load_complex helper with hi/lo parameters, flagged for a confusable-identifier collision.Reasoning
The snippet is a standard WASM load_complex implementation with hi and lo parameters and shuffle intrinsics. The confusable-skeleton hit is a false positive on short identifiers.
-
info
long-linesubprojects/xsimd-14.2.0/include/xsimd/types/xsimd_traits.hpp:177:1new in this releasestatic constexpr bool value = || || std::is_same<T1, float>::value || std::is_same<T1, double>::value || std::is_same<T1, int8_t>::value || std::is_same<T1, uint8_t>::value || st -
; \ ; \ ; \ -
; \ ; \ -
info
critical→ info by reviewformat-string-writesubprojects/xsimd-14.2.0/test/test_batch_constant.cpp:159:85new in this releaseconstexpr auto n0 = xsimd::make_batch_constant<value_type, constant<0>, arch_type>; static_assert; constexpr auto n12_mod_c3 = n12 % c3;dismissed Unit test static_assert whose message string contains a literal '% n' with no printf call, flagged as a format-string write.Reasoning
The '% n' is inside a static_assert message string literal ('n12 % n3 == n0') and is plain text, not a printf format. The line is also a C++ modulo expression on batch constants, so there is no %n write. The critical severity is a false positive.
-
info
warn→ info by reviewdynamic-importsubprojects/xsimd-14.2.0/test/test_wasm/test_wasm.sh:21:5new in this releaseEMSCRIPTEN_DIR=likely benign A bash test script sources the Emscripten SDK environment file from a user-supplied directory path.Reasoning
This is a test script for the xsimd library's WebAssembly tests. It sources emsdk_env.sh from a directory supplied as a command-line argument ($1), which is the standard way to activate the Emscripten SDK. The dynamic path is a user-provided build parameter, not attacker-controlled remote content, and there is no download, decode, or network activity in the snippet.
-
-
-
# pragma: no coverdismissed Dynamic __import__ of a required dependency name during pandas package initialization.Reasoning
The __import__ call sits inside a try block in pandas' dependency check loop over required packages such as numpy and dateutil, and it re-raises a clear ImportError. This is a standard optional or required dependency import pattern, not obfuscation.
-
# https://stackoverflow.com/questions/17407119/python-inspect-stack-is-slow = = # type: ignore[union-attr]dismissed Call-stack walk via inspect.currentframe to attribute warnings to the correct caller.Reasoning
The code walks four frames up to find the caller for warning stacklevel. The comment cites a known StackOverflow discussion about inspect.stack being slow, which indicates a deliberate, legitimate use.
-
""" frame = sys._getframe(2) for v in frame.f_locals.values(): if v is obj:dismissed Iterates caller frame locals to test identity of an object.Reasoning
The code reads f_locals of a caller frame to check whether an object is bound in that scope. This is a local introspection helper consistent with pandas' eval machinery.
-
= =likely benign Invokes the expression-engine eval method on an internal operator node.Reasoning
The call is eval(self, ...) inside an operator class, where eval is an expression-evaluation method on pandas' own Term/Op objects, not an arbitrary string passed to builtin eval. Pandas' query engine is designed this way.
-
=dismissed Frame retrieval at a given level to resolve variable scope for eval.Reasoning
The code fetches the frame at self.level to capture variable scope for query evaluation. This is the documented purpose of the pandas eval scope mechanism.
-
# makes sure that we can capture variable scope =dismissed Captures the call stack to resolve variable scope for expression evaluation.Reasoning
inspect.stack captures the caller stack so that local and global variables can be resolved for query expressions. This is a standard scope-capture technique.
-
]: =likely benign Looks up local variables by name to forward keyword arguments to a Styler method.Reasoning
vars() is read by keyword name to pull styler keyword arguments from the enclosing function's locals. The access is confined to a fixed set of known names, so it is a readable parameter-forwarding idiom, not hidden behavior.
-
: =dismissed Byte-literal magic signature constant for parsing SAS file headers.Reasoning
This is the magic-number header for SAS binary file format, a fixed byte sequence that the reader compares against. Long \x escape bytes are the normal way to express such constants.
-
assert ==likely benign Test helper evaluating a test expression string to build an expected result.Reasoning
This is a test that evaluates a test-supplied expression string to compare against pandas eval output. Test code routinely uses eval for this, and the input is a fixed test string, not untrusted data.
-
= = assert ==likely benign Test computes an expected result by evaluating a fixed expression string.Reasoning
The test computes an expected value with eval on a fixed expression string and compares it to the engine result. This is standard test practice with no external input.
-
= = assert ==likely benign Test computes an expected result by evaluating a fixed expression string.Reasoning
Same pattern as the sibling test: eval of a hard-coded test expression to compare with the engine output. Nothing in the snippet is attacker-controlled.
-
= = =dismissed Evaluates a parametrized numpy random-state constructor name inside a pandas sampling test.Reasoning
func_str comes from a pytest parametrize list of numpy random-state constructors such as np.random.RandomState. The eval runs only trusted, test-defined strings, and it is used to compare sample() against com.random_state.
-
= =dismissed Second eval of the parametrized random-state constructor in the same pandas sampling test.Reasoning
Same parametrized func_str eval as the preceding line, used to build the expected result of a seeded sample. Test-only and benign.
-
, -
, -
info
warn→ info by reviewdynamic-executionpandas/tests/indexes/categorical/test_category.py:203:31# formattingdismissed Round-trips a CategoricalIndex through repr and eval in a formatting test.Reasoning
eval(repr(ci)) round-trips a CategoricalIndex built locally in the test, checking that its repr reconstructs an equal index.
-
= -
# see gh-15086. -
info
warn→ info by reviewframe-introspectionpandas/tests/io/parser/common/test_common_basic.py:801:5=likely benign Installs a no-op profiler hook around a CSV parse in a pandas parser test.Reasoning
sys.setprofile with a no-op lambda is a test of how the C parser behaves under a profiler, bracketed by setprofile(None). It has no network, file, or payload behaviour, though the profiler hook is unusual.
-
info
warn→ info by reviewframe-introspectionpandas/tests/io/parser/common/test_common_basic.py:803:5= =likely benign Clears the no-op profiler hook after a pandas parser test read.Reasoning
Resets the profiler hook installed in the preceding lines. It is the cleanup half of the same benign no-op profiling test.
-
# PR #25040 wide unicode wasn't copied correctly on PY3 on windows -
, , , , -
, , , , -
} = = = -
likely benign Long random-looking string literal used as hashing test input.
Reasoning
Long string literal in a hashing test vector; base64-like text here is test data for hash outputs, not an encoded payload executed anywhere.
-
likely benign Long random-looking string literal used as hashing test input.
Reasoning
Another random-looking string test vector in a hashing test; raw-pass encoding heuristic false positive.
-
# https://stackoverflow.com/questions/17407119/python-inspect-stack-is-slow : | None = = 0likely benign Uses inspect.currentframe to walk the stack for warning stack levels.Reasoning
Standard use of inspect.currentframe to find the caller's stack level for warnings in pandas utilities; a common legitimate pattern.
Reproduce This Scan
Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
|
&&