<s> '''<STR_LIT>''' <EOL> from __future__ import absolute_import , division , print_function , unicode_literals <EOL> import argparse <EOL> import glob <EOL> import os <EOL> import sys <EOL> import setuptools <EOL> from isort import SortImports , __version__ <EOL> from isort . settings import DEFAULT_SECTIONS , default , from_path , should_skip <EOL> from . pie_slice import * <EOL> INTRO = """<STR_LIT>""" . format ( __version__ ) <EOL> def iter_source_code ( paths , config , skipped ) : <EOL> """<STR_LIT>""" <EOL> for path in paths : <EOL> if os . path . isdir ( path ) : <EOL> if should_skip ( path , config , os . getcwd ( ) ) : <EOL> skipped . append ( path ) <EOL> continue <EOL> for dirpath , dirnames , filenames in os . walk ( path , topdown = True ) : <EOL> for dirname in list ( dirnames ) : <EOL> if should_skip ( dirname , config , dirpath ) : <EOL> skipped . append ( dirname ) <EOL> dirnames . remove ( dirname ) <EOL> for filename in filenames : <EOL> if filename . endswith ( '<STR_LIT>' ) : <EOL> if should_skip ( filename , config , dirpath ) : <EOL> skipped . append ( filename ) <EOL> else : <EOL> yield os . path . join ( dirpath , filename ) <EOL> else : <EOL> yield path <EOL> class ISortCommand ( setuptools . Command ) : <EOL> """<STR_LIT>""" <EOL> description = "<STR_LIT>" <EOL> user_options = [ ] <EOL> def initialize_options ( self ) : <EOL> default_settings = default . copy ( ) <EOL> for ( key , value ) in itemsview ( default_settings ) : <EOL> setattr ( self , key , value ) <EOL> def finalize_options ( self ) : <EOL> "<STR_LIT>" <EOL> self . arguments = { } <EOL> computed_settings = from_path ( os . getcwd ( ) ) <EOL> for ( key , value ) in itemsview ( computed_settings ) : <EOL> self . arguments [ key ] = value <EOL> def distribution_files ( self ) : <EOL> """<STR_LIT>""" <EOL> if self . distribution . packages : <EOL> package_dirs = self . distribution . package_dir or { } <EOL> for package in self . distribution . packages : <EOL> pkg_dir = package <EOL> if package in package_dirs : <EOL> pkg_dir = package_dirs [ package ] <EOL> elif '<STR_LIT>' in package_dirs : <EOL> pkg_dir = package_dirs [ '<STR_LIT>' ] + os . path . sep + pkg_dir <EOL> yield pkg_dir . replace ( '<STR_LIT:.>' , os . path . sep ) <EOL> if self . distribution . py_modules : <EOL> for filename in self . distribution . py_modules : <EOL> yield "<STR_LIT>" % filename <EOL> yield "<STR_LIT>" <EOL> def run ( self ) : <EOL> arguments = self . arguments <EOL> wrong_sorted_files = False <EOL> arguments [ '<STR_LIT>' ] = True <EOL> for path in self . distribution_files ( ) : <EOL> for python_file in glob . iglob ( os . path . join ( path , '<STR_LIT>' ) ) : <EOL> try : <EOL> incorrectly_sorted = SortImports ( python_file , ** arguments ) . incorrectly_sorted <EOL> if incorrectly_sorted : <EOL> wrong_sorted_files = True <EOL> except IOError as e : <EOL> print ( "<STR_LIT>" . format ( file_name , e ) ) <EOL> if wrong_sorted_files : <EOL> exit ( <NUM_LIT:1> ) <EOL> def create_parser ( ) : <EOL> parser = argparse . ArgumentParser ( description = '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , nargs = '<STR_LIT:*>' , help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' <EOL> '<STR_LIT>' , <EOL> dest = '<STR_LIT>' , type = int ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , <EOL> dest = '<STR_LIT>' , type = int ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' <EOL> '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , <EOL> dest = '<STR_LIT>' , action = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , dest = '<STR_LIT>' , <EOL> action = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , <EOL> dest = '<STR_LIT>' , action = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , type = int , choices = [ <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> ] , <EOL> help = '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , <EOL> dest = '<STR_LIT>' , type = str ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT>' , <EOL> help = '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , <EOL> dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , default = False ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , <EOL> dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' ) <EOL> parser . add_argument ( '<STR_LIT:-c>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , default = False , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , default = False , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = argparse . SUPPRESS ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , help = '<STR_LIT>' , dest = '<STR_LIT>' , <EOL> action = '<STR_LIT:store_true>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , <EOL> help = '<STR_LIT>' + <EOL> str ( DEFAULT_SECTIONS ) ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , default = False , action = '<STR_LIT:store_true>' , <EOL> help = "<STR_LIT>" <EOL> "<STR_LIT>" ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , <EOL> action = '<STR_LIT:store_true>' , help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , <EOL> action = '<STR_LIT:store_true>' , help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = "<STR_LIT>" ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = "<STR_LIT>" ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = "<STR_LIT>" ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , dest = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , <EOL> help = "<STR_LIT>" ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , <EOL> help = "<STR_LIT>" ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , <EOL> dest = "<STR_LIT>" , help = '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , action = '<STR_LIT:store_true>' , dest = "<STR_LIT>" , <EOL> help = '<STR_LIT>' ) <EOL> parser . add_argument ( '<STR_LIT>' , '<STR_LIT>' , dest = '<STR_LIT>' , type = int ) <EOL> arguments = dict ( ( key , value ) for ( key , value ) in itemsview ( vars ( parser . parse_args ( ) ) ) if value ) <EOL> if '<STR_LIT>' in arguments : <EOL> arguments [ '<STR_LIT>' ] = False <EOL> return arguments <EOL> def main ( ) : <EOL> arguments = create_parser ( ) <EOL> if arguments . get ( '<STR_LIT>' ) : <EOL> print ( INTRO ) <EOL> return <EOL> if '<STR_LIT>' in arguments : <EOL> sp = arguments [ '<STR_LIT>' ] <EOL> arguments [ '<STR_LIT>' ] = os . path . abspath ( sp ) if os . path . isdir ( sp ) else os . path . dirname ( os . path . abspath ( sp ) ) <EOL> file_names = arguments . pop ( '<STR_LIT>' , [ ] ) <EOL> if file_names == [ '<STR_LIT:->' ] : <EOL> SortImports ( file_contents = sys . stdin . read ( ) , write_to_stdout = True , ** arguments ) <EOL> else : <EOL> if not file_names : <EOL> file_names = [ '<STR_LIT:.>' ] <EOL> arguments [ '<STR_LIT>' ] = True <EOL> if not arguments . get ( '<STR_LIT>' , False ) : <EOL> arguments [ '<STR_LIT>' ] = True <EOL> config = from_path ( os . path . abspath ( file_names [ <NUM_LIT:0> ] ) or os . getcwd ( ) ) . copy ( ) <EOL> config . update ( arguments ) <EOL> wrong_sorted_files = False <EOL> skipped = [ ] <EOL> if arguments . get ( '<STR_LIT>' , False ) : <EOL> file_names = iter_source_code ( file_names , config , skipped ) <EOL> num_skipped = <NUM_LIT:0> <EOL> if config . get ( '<STR_LIT>' , False ) or config . get ( '<STR_LIT>' , False ) : <EOL> print ( INTRO ) <EOL> for file_name in file_names : <EOL> try : <EOL> sort_attempt = SortImports ( file_name , ** arguments ) <EOL> incorrectly_sorted = sort_attempt . incorrectly_sorted <EOL> if arguments . get ( '<STR_LIT>' , False ) and incorrectly_sorted : <EOL> wrong_sorted_files = True <EOL> if sort_attempt . skipped : <EOL> num_skipped += <NUM_LIT:1> <EOL> except IOError as e : <EOL> print ( "<STR_LIT>" . format ( file_name , e ) ) <EOL> if wrong_sorted_files : <EOL> exit ( <NUM_LIT:1> ) <EOL> num_skipped += len ( skipped ) <EOL> if num_skipped and not arguments . get ( '<STR_LIT>' , False ) : <EOL> if config [ '<STR_LIT>' ] : <EOL> for was_skipped in skipped : <EOL> print ( "<STR_LIT>" <EOL> "<STR_LIT>" . format ( was_skipped ) ) <EOL> print ( "<STR_LIT>" . format ( num_skipped ) ) <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> main ( ) </s>
