[performance]: Use hard coded `langchain-core` version to avoid `importlib` import (#30744)
This PR aims to reduce import time of `langchain-core` tools by removing the `importlib.metadata` import previously used in `__init__.py`. This is the first in a sequence of PRs to reduce import time delays for `langchain-core` features and structures 🚀. Because we're now hard coding the version, we need to make sure `version.py` and `pyproject.toml` stay in sync, so I've added a new CI job that runs whenever either of those files are modified. [This run](https://github.com/langchain-ai/langchain/actions/runs/14358012706/job/40251952044?pr=30744) demonstrates the failure that occurs whenever the version gets out of sync (thus blocking a PR). Before, note the ~15% of time spent on the `importlib.metadata` /related imports <img width="1081" alt="Screenshot 2025-04-09 at 9 06 15 AM" src="https://github.com/user-attachments/assets/59f405ec-ee8d-4473-89ff-45dea5befa31" /> After (note, lack of `importlib.metadata` time sink): <img width="1245" alt="Screenshot 2025-04-09 at 9 01 23 AM" src="https://github.com/user-attachments/assets/9c32e77c-27ce-485e-9b88-e365193ed58d" />
S
Sydney Runkle committed
8f8fea2d7e16a78d3d5ebe31a5a280fa6acfe866
Parent: cd6a831
Committed by GitHub <[email protected]>
on 4/10/2025, 6:15:02 PM