code: def parse_args(arguments=None, root=None, apply_config=False):
      
      if arguments is None:
          arguments = []
  
      parser = create_parser()
      args = parser.parse_args(arguments)
      if apply_config:
          parser = apply_config_defaults(parser, args, root=root)
          args = parser.parse_args(arguments)
  
      # sanity check args (from autopep8)
      if args.max_line_length <= 0:  # pragma: no cover
          parser.error('--max-line-length must be greater than 0')
  
      if args.select:
          args.select = _split_comma_separated(args.select)
  
      if args.ignore:
          args.ignore = _split_comma_separated(args.ignore)
      elif not args.select and args.aggressive:
          # Enable everything by default if aggressive.
          args.select = ['E', 'W']
      else:
          args.ignore = _split_comma_separated(DEFAULT_IGNORE)
  
      if args.exclude:
          args.exclude = _split_comma_separated(args.exclude)
      else:
          args.exclude = []
  
      return args
docs: Parse the arguments from the CLI.
  
      If apply_config then we first look up and apply configs using
      apply_config_defaults.