class_docstr: Class used to keep the metadata associated to project options.
class_docstr_tok: ["Class","used","to","keep","the","metadata","associated","to","project","options","."]
docstr: Override __new__ to force all options except name to be specified as kwargs.
docstr_tok: ["Override","__new__","to","force","all","options","except","name","to","be","specified","as","kwargs","."]
code: def __new__(cls, name, **kw):
      """Override __new__ to force all options except name to be specified as kwargs."""
      assert "name" not in kw
      assert (
          "required" in kw or "optional" in kw
      ), "at least one of 'required' or 'optional' must be specified."
      assert "type" in kw, "'type' field must be specified."
  
      kw["name"] = name
      for param in ["choices", "default", "required", "optional"]:
          kw.setdefault(param, None)
  
      return super().__new__(cls, **kw)
  
imports: import abc
  import argparse
  import base64
  import collections
  import enum
  import io
  import json
  import logging
  import os
  import pathlib
  import re
  import select
  import sys
  import time
  import traceback
  import typing
label_desc: Use image node_id 1 for calling the ProjectOption obj's underlying member method code with example usage: obj.__new__(cls, name) and returns: super