_sql_record_manager.py — langchain Source File
Architecture documentation for _sql_record_manager.py, a python file in the langchain codebase. 12 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 8bffe3e4_4cad_6b21_a587_b60824b34a04["_sql_record_manager.py"] be45a0bb_0276_f8f1_f985_55cddb92c224["contextlib"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> be45a0bb_0276_f8f1_f985_55cddb92c224 3758d9e7_689d_2230_c1f6_9b1cae9079f1["decimal"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> 3758d9e7_689d_2230_c1f6_9b1cae9079f1 02f66451_d2a9_e7c3_9765_c3a7594721ad["uuid"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> 02f66451_d2a9_e7c3_9765_c3a7594721ad 2bf6d401_816d_d011_3b05_a6114f55ff58["collections.abc"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> 2bf6d401_816d_d011_3b05_a6114f55ff58 feec1ec4_6917_867b_d228_b134d0ff8099["typing"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> feec1ec4_6917_867b_d228_b134d0ff8099 c87d84ce_5de8_c4e0_0401_9d833b75d4b7["langchain_core.indexing"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> c87d84ce_5de8_c4e0_0401_9d833b75d4b7 f2cae492_a0a2_8b08_1f22_922412f7713a["sqlalchemy"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> f2cae492_a0a2_8b08_1f22_922412f7713a 1ae470fa_226e_c331_31d5_71c07bd0d0c8["sqlalchemy.engine"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> 1ae470fa_226e_c331_31d5_71c07bd0d0c8 9bbb7dee_019d_9a3b_93b3_50aeaa0e4c05["sqlalchemy.ext.asyncio"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> 9bbb7dee_019d_9a3b_93b3_50aeaa0e4c05 b724a7e0_e92d_451a_6902_21824d58f1c5["sqlalchemy.orm"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> b724a7e0_e92d_451a_6902_21824d58f1c5 06d94bb8_d95e_f9e3_5323_f0d124025a9b["sqlalchemy.dialects.sqlite"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> 06d94bb8_d95e_f9e3_5323_f0d124025a9b d746a325_d015_2634_4244_11ca718faf25["sqlalchemy.dialects.postgresql"] 8bffe3e4_4cad_6b21_a587_b60824b34a04 --> d746a325_d015_2634_4244_11ca718faf25 style 8bffe3e4_4cad_6b21_a587_b60824b34a04 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Implementation of a record management layer in SQLAlchemy.
The management layer uses SQLAlchemy to track upserted records.
Currently, this layer only works with SQLite; hopwever, should be adaptable
to other SQL implementations with minimal effort.
Currently, includes an implementation that uses SQLAlchemy which should
allow it to work with a variety of SQL as a backend.
* Each key is associated with an updated_at field.
* This filed is updated whenever the key is updated.
* Keys can be listed based on the updated at field.
* Keys can be deleted.
"""
import contextlib
import decimal
import uuid
from collections.abc import AsyncGenerator, Generator, Sequence
from typing import Any
from langchain_core.indexing import RecordManager
from sqlalchemy import (
Column,
Float,
Index,
String,
UniqueConstraint,
and_,
create_engine,
delete,
select,
text,
)
from sqlalchemy.engine import URL, Engine
from sqlalchemy.ext.asyncio import (
AsyncEngine,
AsyncSession,
create_async_engine,
)
from sqlalchemy.orm import Query, Session, declarative_base, sessionmaker
try:
from sqlalchemy.ext.asyncio import async_sessionmaker
except ImportError:
# dummy for sqlalchemy < 2
async_sessionmaker = type("async_sessionmaker", (type,), {}) # type: ignore[assignment,misc]
Base = declarative_base()
class UpsertionRecord(Base): # type: ignore[valid-type,misc]
"""Table used to keep track of when a key was last updated."""
# ATTENTION:
# Prior to modifying this table, please determine whether
# we should create migrations for this table to make sure
# users do not experience data loss.
__tablename__ = "upsertion_record"
// ... (473 more lines)
Domain
Subdomains
Functions
Classes
Dependencies
- collections.abc
- contextlib
- decimal
- langchain_core.indexing
- sqlalchemy
- sqlalchemy.dialects.postgresql
- sqlalchemy.dialects.sqlite
- sqlalchemy.engine
- sqlalchemy.ext.asyncio
- sqlalchemy.orm
- typing
- uuid
Source
Frequently Asked Questions
What does _sql_record_manager.py do?
_sql_record_manager.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, ApiManagement subdomain.
What functions are defined in _sql_record_manager.py?
_sql_record_manager.py defines 2 function(s): async_sessionmaker, sqlalchemy.
What does _sql_record_manager.py depend on?
_sql_record_manager.py imports 12 module(s): collections.abc, contextlib, decimal, langchain_core.indexing, sqlalchemy, sqlalchemy.dialects.postgresql, sqlalchemy.dialects.sqlite, sqlalchemy.engine, and 4 more.
Where is _sql_record_manager.py in the architecture?
_sql_record_manager.py is located at libs/langchain/langchain_classic/indexes/_sql_record_manager.py (domain: LangChainCore, subdomain: ApiManagement, directory: libs/langchain/langchain_classic/indexes).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free