docs: def parse(args):
      """\
      Parses the arguments and returns the result.
      """
      parser = make_parser()
      if not len(args):
          parser.print_help()
          sys.exit(1)
      parsed_args = parser.parse_args(args)
      if parsed_args.error == '-':
          parsed_args.error = None
      # 'micro' is False by default. If version is set to a Micro QR Code version,
      # encoder.encode raises a VersionError.
      # Small problem: --version=M4 --no-micro is allowed
      version = parsed_args.version
      if version is not None:
          version = str(version).upper()
      if not parsed_args.micro and version in ('M1', 'M2', 'M3', 'M4'):
          parsed_args.micro = None
      return _AttrDict(vars(parsed_args))