PyPI / langchain-core / 1.7.0
langchain-core 1.7.0
- Source
- https://github.com/langchain-ai/langchain
- Artifact scanned
langchain_core-1.7.0-py3-none-any.whl- Compared with
langchain_core-1.6.13-py3-none-any.whl(0 signals introduced since)- Files
- 182 scanned, 5 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 19 info
- Scan time
- 13.0 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 19 of 19 warn and critical signals; 19 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 12:27
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
= = returnlikely benign Lazy attribute loader in the langchain_core API package that imports a named attribute and caches it in module globals.Reasoning
The snippet is the standard PEP 562-style lazy-loading __getattr__ pattern: it resolves a public attribute name to a module-relative import via import_attr and caches it in globals. It does not execute decoded or remote content and reads only the module's own names, so it is a legitimate pattern.
-
= return Falselikely benign Call-stack frame inspection used to determine whether a caller is internal to the library.Reasoning
inspect.currentframe() is used to check whether the calling code belongs to langchain_core, for internal-use warnings. Frame introspection in this way is a common, benign API-deprecation technique. The AttributeError guard handles interpreters without frame support.
-
= = returnlikely benign Lazy attribute loader in the callbacks package that imports and caches public names.Reasoning
Standard lazy-import __getattr__ pattern that resolves a public name to a submodule attribute and caches it in globals. Nothing in the snippet is decoded, executed or sent over the network.
-
= = returnlikely benign Lazy attribute loader in the document_loaders package.Reasoning
Same standard lazy-loading __getattr__ pattern used across langchain_core packages. It only resolves module-relative names and caches them.
-
= = returnlikely benign Lazy attribute loader in the documents package.Reasoning
Standard lazy-import __getattr__ pattern that imports a named attribute from a sibling module and caches it. No dynamic execution or suspicious data flow is present.
-
= = returnlikely benign Lazy attribute loader in the embeddings package.Reasoning
Standard lazy-loading __getattr__ pattern. The code resolves an attribute by name from the package's own submodules and stores it in globals, which is an ordinary way to defer imports.
-
= = returnlikely benign Lazy attribute loader in the example_selectors package.Reasoning
Standard lazy-import __getattr__ pattern. It only maps public names to package submodules and caches the result.
-
= = returnlikely benign Lazy attribute loader in the indexing package.Reasoning
Standard lazy-loading __getattr__ pattern with module-relative import resolution and caching. No malicious behaviour is visible.
-
= = returnlikely benign Lazy attribute loader in the language_models package.Reasoning
Standard lazy-import __getattr__ pattern that resolves a named attribute and caches it in globals. This is a common, legitimate way to reduce import cost.
-
= = returnlikely benign Lazy attribute loader in the load package.Reasoning
Standard lazy-loading __getattr__ pattern. The snippet only resolves names within the package and performs no decoding, execution or network access.
-
= = returnlikely benign Lazy attribute loader in the messages package.Reasoning
Standard lazy-import __getattr__ pattern used across the library. It resolves a public message class name from a submodule and caches it.
-
= = returnlikely benign Lazy attribute loader in the output_parsers package.Reasoning
Standard lazy-loading __getattr__ pattern that resolves names from the package's own submodules and caches them. Benign.
-
= = returnlikely benign Lazy attribute loader in the outputs package.Reasoning
Standard lazy-import __getattr__ pattern with module-relative resolution and caching. No suspicious behaviour.
-
= = returnlikely benign Lazy attribute loader in the prompts package.Reasoning
Standard lazy-loading __getattr__ pattern. It maps public names to submodule attributes and caches the result, which is an ordinary deferred-import design.
-
= = returnlikely benign Lazy attribute loader in the runnables package.Reasoning
Standard lazy-import __getattr__ pattern. The snippet performs only module-relative attribute resolution and caching.
-
= = returnlikely benign Lazy attribute loader in the tools package.Reasoning
Standard lazy-loading __getattr__ pattern used across the library. It resolves names from sibling modules and caches them, with no execution of decoded data.
-
= = returnlikely benign Lazy attribute loader in the tracers package.Reasoning
Standard lazy-import __getattr__ pattern that resolves a public name from a submodule and caches it in globals. It is legitimate package plumbing.
-
= = returnlikely benign Module-level __getattr__ that lazily imports a named attribute and caches it in globals().Reasoning
This is the standard lazy-import idiom in __getattr__: it resolves a public attribute name to a submodule symbol via import_attr and caches it in globals(). It does not decode data, spawn processes, or reach the network, and the pattern is widely used in legitimate packages.
-
= = returnlikely benign Module-level __getattr__ performing lazy attribute import and caching via globals() in langchain_core vectorstores.Reasoning
Same lazy-loading __getattr__ pattern as the utils package: a name-to-import mapping resolved through import_attr and cached in globals(). The snippet shows no decoding, execution of arbitrary strings, or network or process activity, so it reads as ordinary lazy import machinery.
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.
|