MCPcopy Index your code
hub / github.com/python/mypy / split_import_group_to_python_and_native

Function split_import_group_to_python_and_native

mypyc/irbuild/statement.py:371–395  ·  view source on GitHub ↗

Split imports into consecutive runs of native same-group and non-native imports.

(
    builder: IRBuilder, group: list[Import]
)

Source from the content-addressed store, hash-verified

369
370
371def split_import_group_to_python_and_native(
372 builder: IRBuilder, group: list[Import]
373) -> list[tuple[list[tuple[str, str | None, int]], bool]]:
374 """Split imports into consecutive runs of native same-group and non-native imports."""
375 flat_list = []
376 for imp in group:
377 for mod_id, as_name in imp.ids:
378 flat_list.append(
379 (
380 mod_id,
381 as_name,
382 imp.line,
383 builder.is_native_module(mod_id) and builder.is_same_group_module(mod_id),
384 )
385 )
386 result = []
387 i = 0
388 while i < len(flat_list):
389 i0 = i
390 is_native = flat_list[i][3]
391 i += 1
392 while i < len(flat_list) and flat_list[i][3] == is_native:
393 i += 1
394 result.append(([t[:3] for t in flat_list[i0:i]], is_native))
395 return result
396
397
398def transform_imports_without_grouping(

Calls 4

lenFunction · 0.85
appendMethod · 0.80
is_same_group_moduleMethod · 0.80
is_native_moduleMethod · 0.45

Used in the wild real call sites across dependent graphs

searching dependent graphs…