usort/cli.py
def list_imports(multiples: bool, debug: bool, filenames: List[str]) -> int:
    """
    Troubleshoot sorting behavior and show import blocks
    """
    # This is used to debug the sort keys on the various lines, and understand
    # where the barriers are that produce different blocks.

    for f in filenames:
        path = Path(f)
        config = Config.find(path)
        mod = try_parse(path)
        try:
            sorter = ImportSorter(module=mod, path=path, config=config)
            blocks = sorter.sortable_blocks(mod.body)
        except Exception as e:
            print("Exception", f, e)
            continue

        if multiples and len(blocks) < 2:
            continue

        click.secho(f"{f} {len(blocks)} blocks:", fg="yellow")
        for b in blocks:
            print(f"  body[{b.start_idx}:{b.end_idx}]")
            sorted_imports = sorted(b.imports)
            if debug:
                for imp in b.imports:
                    print(
                        f"    {sorted_imports.index(imp)} {imp} "
                        f"({imp.config.category(imp.stem or '')})"
                    )
            else:
                print("Formatted:")
                print("[[[")
                for imp in sorted_imports:
                    assert imp.node is not None
                    print(render_node(imp.node), end="")
                print("]]]")

    return 0

    Troubleshoot sorting behavior and show import blocks
    
Troubleshoot sorting behavior and show import blocks
Troubleshoot sorting behavior and show import blocks
def list_imports(multiples: bool, debug: bool, filenames: List[str]) -> int:
    for f in filenames:
        path = Path(f)
        config = Config.find(path)
        mod = try_parse(path)
        try:
            sorter = ImportSorter(module=mod, path=path, config=config)
            blocks = sorter.sortable_blocks(mod.body)
        except Exception as e:
            print("Exception", f, e)
            continue
        if multiples and len(blocks) < 2:
            continue
        click.secho(f"{f} {len(blocks)} blocks:", fg="yellow")
        for b in blocks:
            print(f"  body[{b.start_idx}:{b.end_idx}]")
            sorted_imports = sorted(b.imports)
            if debug:
                for imp in b.imports:
                    print(
                        f"    {sorted_imports.index(imp)} {imp} "
                        f"({imp.config.category(imp.stem or '')})"
                    )
            else:
                print("Formatted:")
                print("[[[")
                for imp in sorted_imports:
                    assert imp.node is not None
                    print(render_node(imp.node), end="")
                print("]]]")
    return 0
def list_imports ( multiples : bool , debug : bool , filenames : List [ str ] ) -> int : for f in filenames : path = Path ( f ) config = Config . find ( path ) mod = try_parse ( path ) try : sorter = ImportSorter ( module = mod , path = path , config = config ) blocks = sorter . sortable_blocks ( mod . body ) except Exception as e : print ( "Exception" , f , e ) continue if multiples and len ( blocks ) < 2 : continue click . secho ( f"{f} {len(blocks)} blocks:" , fg = "yellow" ) for b in blocks : print ( f"  body[{b.start_idx}:{b.end_idx}]" ) sorted_imports = sorted ( b . imports ) if debug : for imp in b . imports : print ( f"    {sorted_imports.index(imp)} {imp} " f"({imp.config.category(imp.stem or '')})" ) else : print ( "Formatted:" ) print ( "[[[" ) for imp in sorted_imports : assert imp . node is not None print ( render_node ( imp . node ) , end = "" ) print ( "]]]" ) return 0
Troubleshoot sorting behavior and show import blocks
Troubleshoot sorting behavior and show import blocks
"""
    Troubleshoot sorting behavior and show import blocks
    """ # This is used to debug the sort keys on the various lines, and understand # where the barriers are that produce different blocks.
multiples
bool
debug
bool
filenames
List[str]