community[patch]: restore compatibility with SQLAlchemy 1.x (#22546)

- **Description:** Restores compatibility with SQLAlchemy 1.4.x that was
broken since #18992 and adds a test run for this version on CI (only for
Python 3.11)
- **Issue:** fixes #19681
- **Dependencies:** None
- **Twitter handle:** `@krassowski_m`

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
This commit is contained in:
Michał Krassowski
2024-06-19 18:58:57 +01:00
committed by GitHub
parent 48d6ea427f
commit 710197e18c
6 changed files with 48 additions and 19 deletions

View File

@@ -1,6 +1,7 @@
from typing import Any, Callable, Dict, Iterator, List, Optional, Sequence, Union
import sqlalchemy as sa
from sqlalchemy.engine import RowMapping
from sqlalchemy.sql.expression import Select
from langchain_community.docstore.document import Document
from langchain_community.document_loaders.base import BaseLoader
@@ -19,7 +20,7 @@ class SQLDatabaseLoader(BaseLoader):
def __init__(
self,
query: Union[str, sa.Select],
query: Union[str, Select],
db: SQLDatabase,
*,
parameters: Optional[Dict[str, Any]] = None,
@@ -106,7 +107,7 @@ class SQLDatabaseLoader(BaseLoader):
@staticmethod
def page_content_default_mapper(
row: sa.RowMapping, column_names: Optional[List[str]] = None
row: RowMapping, column_names: Optional[List[str]] = None
) -> str:
"""
A reasonable default function to convert a record into a "page content" string.
@@ -121,7 +122,7 @@ class SQLDatabaseLoader(BaseLoader):
@staticmethod
def metadata_default_mapper(
row: sa.RowMapping, column_names: Optional[List[str]] = None
row: RowMapping, column_names: Optional[List[str]] = None
) -> Dict[str, Any]:
"""
A reasonable default function to convert a record into a "metadata" dictionary.