From 3fb0e4872afdb38834bd596440dad10e3b052335 Mon Sep 17 00:00:00 2001 From: Tobias Herbold <73160695+kaahila@users.noreply.github.com> Date: Mon, 5 Jun 2023 01:52:52 +0200 Subject: [PATCH] sqlalchemy MovedIn20Warning declarative_base DEPRICATION fix (#5676) fix for the sqlalchemy deprecated declarative_base import : ``` MovedIn20Warning: The ``declarative_base()`` function is now available as sqlalchemy.orm.declarative_base(). (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) Base = declarative_base() # type: Any ``` Import is wrapped in an try catch Block to fallback to the old import if needed. --------- Co-authored-by: Dev 2049 --- langchain/memory/chat_message_histories/sql.py | 6 +++++- langchain/vectorstores/analyticdb.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/langchain/memory/chat_message_histories/sql.py b/langchain/memory/chat_message_histories/sql.py index 6151ad19..94b26c50 100644 --- a/langchain/memory/chat_message_histories/sql.py +++ b/langchain/memory/chat_message_histories/sql.py @@ -3,7 +3,11 @@ import logging from typing import List from sqlalchemy import Column, Integer, Text, create_engine -from sqlalchemy.ext.declarative import declarative_base + +try: + from sqlalchemy.orm import declarative_base +except ImportError: + from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from langchain.schema import ( diff --git a/langchain/vectorstores/analyticdb.py b/langchain/vectorstores/analyticdb.py index be45c1a5..47460ad2 100644 --- a/langchain/vectorstores/analyticdb.py +++ b/langchain/vectorstores/analyticdb.py @@ -8,7 +8,11 @@ from typing import Any, Dict, Iterable, List, Optional, Tuple import sqlalchemy from sqlalchemy import REAL, Index from sqlalchemy.dialects.postgresql import ARRAY, JSON, UUID -from sqlalchemy.ext.declarative import declarative_base + +try: + from sqlalchemy.orm import declarative_base +except ImportError: + from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import Session, relationship from sqlalchemy.sql.expression import func