Make langchain compatible with SQLAlchemy<1.4.0 #11390
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Currently SQLAlchemy >=1.4.0 is a hard requirement. We are unable to run
from langchain.vectorstores import FAISS
with SQLAlchemy <1.4.0 due to top-level imports, even if we aren't even using parts of the library that use SQLAlchemy. See Testing section for repro. Let's make it so that langchain is still compatible with SQLAlchemy <1.4.0, especially if we aren't using parts of langchain that require it.The main conflict is that SQLAlchemy removed
declarative_base
fromsqlalchemy.ext.declarative
in 1.4.0 and moved it tosqlalchemy.orm
. We can fix this by try-catching the import. This is the same fix as applied in #883.(I see that there seems to be some refactoring going on about isolating dependencies, e.g. c87e9fb, so if this issue will be eventually fixed by isolating imports in langchain.vectorstores that also works).
Issue
I can't find a matching issue.
Dependencies
No additional dependencies
Maintainer
@hwchase17 since you reviewed #883
Testing
I didn't add a test, but I manually tested this.