cli[patch]: Ignore imports that change the name of the class (#21026)

Not currently handeled by migration script
pull/21033/head
Eugene Yurtsev 1 month ago committed by GitHub
parent ce89b34fc0
commit aab78a37f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -2123,4 +2123,4 @@
"langchain.vectorstores.singlestoredb.SingleStoreDBRetriever",
"langchain_core.vectorstores.VectorStoreRetriever"
]
]
]

@ -29,7 +29,17 @@ def _load_migrations_by_file(path: str):
migrations_path = os.path.join(HERE, "migrations", path)
with open(migrations_path, "r", encoding="utf-8") as f:
data = json.load(f)
return data
# new migrations
new_migrations = []
for migration in data:
old = migration[0].split(".")[-1]
new = migration[1].split(".")[-1]
if old == new:
new_migrations.append(migration)
return new_migrations
T = TypeVar("T")

@ -0,0 +1,31 @@
"""Verify that the code migrations do not involve alias changes.
Migration script only updates imports not the rest of the code that uses the
import.
"""
from langchain_cli.namespaces.migrate.codemods.replace_imports import (
RULE_TO_PATHS,
_load_migrations_from_fixtures,
)
def test_migration_files() -> None:
"""Generate a codemod to replace imports."""
errors = []
for paths in list(RULE_TO_PATHS.values()):
for path in paths:
migrations = _load_migrations_from_fixtures([path])
for migration in migrations:
old = migration[0].split(".")[-1]
new = migration[1].split(".")[-1]
if old != new:
errors.append((path, migration))
if errors:
raise ValueError(
f"Migration involves an alias change: {errors}. The "
f"migration script does not currently support "
f"corresponding code changes."
)
Loading…
Cancel
Save