Skip to content

Commit 0212e01

Browse files
remove unused imports in one go
1 parent b4e9ab7 commit 0212e01

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

codeflash/code_utils/code_extractor.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -325,31 +325,36 @@ def add_needed_imports_from_module(
325325
)
326326
)
327327
cst.parse_module(src_module_code).visit(gatherer)
328+
scheduled_unused_imports = []
328329
try:
329330
for mod in gatherer.module_imports:
330331
AddImportsVisitor.add_needed_import(dst_context, mod)
331-
RemoveImportsVisitor.remove_unused_import(dst_context, mod)
332+
scheduled_unused_imports.append((mod, "", ""))
332333
for mod, obj_seq in gatherer.object_mapping.items():
334+
logger.debug(f"dst_context.full_module_name: {dst_context.full_module_name}")
335+
logger.debug(f"mod: {mod}")
336+
logger.debug(f"obj_seq: {obj_seq}")
337+
logger.debug(f"helper_functions_fqn: {helper_functions_fqn}")
333338
for obj in obj_seq:
334339
if (
335340
f"{mod}.{obj}" in helper_functions_fqn
336-
or dst_context.full_module_name is mod # avoid circular imports
341+
or dst_context.full_module_name == mod # avoid circular imports
337342
):
338343
continue # Skip adding imports for helper functions already in the context
339344
AddImportsVisitor.add_needed_import(dst_context, mod, obj)
340-
RemoveImportsVisitor.remove_unused_import(dst_context, mod, obj)
345+
scheduled_unused_imports.append((mod, obj, ""))
341346
except Exception as e:
342347
logger.exception(f"Error adding imports to destination module code: {e}")
343348
return dst_module_code
344349
for mod, asname in gatherer.module_aliases.items():
345350
AddImportsVisitor.add_needed_import(dst_context, mod, asname=asname)
346-
RemoveImportsVisitor.remove_unused_import(dst_context, mod, asname=asname)
351+
scheduled_unused_imports.append((mod, "", asname))
347352
for mod, alias_pairs in gatherer.alias_mapping.items():
348353
for alias_pair in alias_pairs:
349354
if f"{mod}.{alias_pair[0]}" in helper_functions_fqn:
350355
continue
351356
AddImportsVisitor.add_needed_import(dst_context, mod, alias_pair[0], asname=alias_pair[1])
352-
RemoveImportsVisitor.remove_unused_import(dst_context, mod, alias_pair[0], asname=alias_pair[1])
357+
scheduled_unused_imports.append((mod, alias_pair[0], alias_pair[1]))
353358

354359
try:
355360
parsed_module = cst.parse_module(dst_module_code)
@@ -358,6 +363,9 @@ def add_needed_imports_from_module(
358363
return dst_module_code # Return the original code if there's a syntax error
359364
try:
360365
transformed_module = AddImportsVisitor(dst_context).transform_module(parsed_module)
366+
for _import in scheduled_unused_imports:
367+
(_module, _obj, _alias) = _import
368+
RemoveImportsVisitor.remove_unused_import(dst_context, module=_module, obj=_obj, asname=_alias)
361369
transformed_module = RemoveImportsVisitor(dst_context).transform_module(transformed_module)
362370
return transformed_module.code.lstrip("\n")
363371
except Exception as e:

0 commit comments

Comments
 (0)