docs: def parse_arguments(args, config):
      """
      Parse specified arguments via config
  
      Parameters
      ----------
      args : list
          Command line arguments
      config : object
          ConfigParser instance which values are used as default values of
          options
  
      Returns
      -------
      list : arguments, options
          options indicate the return value of ArgumentParser and arguments
          indicate the execution command/arguments
      """
      import notify
      from conf import config_to_options
      opts = config_to_options(config)
  
      usage = ("%(prog)s "
               "[-h] [-t TO_ADDR] [-f FROM_ADDR] [-e ENCODING] [-s SUBJECT]\n"
               "              "
               "[-o HOST] [-p PORT] [--username USERNAME] [--password PASSWORD]\n"
               "              "
               "[--setup] [--check] COMMAND ARGUMENTS") % {'prog': "notify"}
      description = """
      Call COMMAND with ARGUMENTS and send notification email to TO_ADDR
      """
      parser = optparse.OptionParser(
              usage=usage,
              description=description,
              version=notify.__version__)
      parser.add_option('-t', '--to-addr',
                        default=opts.to_addr,
                        help=('Destination of the email.'))
      parser.add_option('-f', '--from-addr',
                        default=opts.from_addr,
                        help=('Source of the email.'))
      parser.add_option('-s', '--subject',
                        default=opts.subject,
                        help=('Subject of the email'))
      parser.add_option('-e', '--encoding',
                        default=opts.encoding,
                        help=('Encoding of the email'))
      parser.add_option('-o', '--host',
                        default=opts.host,
                        help=('Host address of MUA'))
      parser.add_option('-p', '--port', type='int',
                        default=opts.port,
                        help=('Port number of MUA'))
      parser.add_option('--username',
                        default=opts.username,
                        help=('Username for authentication'))
      parser.add_option('--password',
                        help=('Password for authentication'))
      parser.add_option('--setup', default=False,
                        action='store_true',
                        help=('Setup %(prog)s configuration'))
      parser.add_option('--check', default=False,
                        action='store_true',
                        help=('Send %(prog)s configuration via email for '
                              'checking. Only for Unix system.'))
  
      # display help and exit
      if len(args) == 1:
          parser.print_help()
          sys.exit(0)
      else:
          # translate all specified arguments to unicode
          if sys.version_info < (3,):
              encoding = sys.stdout.encoding
              args = map(lambda x: unicode(x, encoding), args)
  
          # split argv to two array
          lhs, rhs = split_arguments(args)
  
          # parse options
          opts = parser.parse_args(args=lhs[1:])[0]
          return rhs, opts