class_docstr: Set populated on first use.
class_docstr_tok: ["Set","populated","on","first","use","."]
code: def __new__(cls, fill_iter=None):
      if fill_iter is None:
          return set()
  
      class LazySet(set):
          pass
  
      fill_iter = [fill_iter]
  
      def lazy(name):
          def _lazy(self, *args, **kw):
              _fill_lock.acquire()
              try:
                  if len(fill_iter) > 0:
                      for i in fill_iter.pop():
                          set.add(self, i)
                      for method_name in cls._props:
                          delattr(LazySet, method_name)
              finally:
                  _fill_lock.release()
              return getattr(set, name)(self, *args, **kw)
  
          return _lazy
  
      for name in cls._props:
          setattr(LazySet, name, lazy(name))
  
      new_set = LazySet()
      return new_set
  
file_path: catboost/contrib/python/pytz/py3/pytz/lazy.py
imports: from threading import RLock
label_desc: Use image node_id 1 for calling the LazySet obj's underlying member method code with example usage: obj.__new__(cls, fill_iter) and returns: new_set, set, _lazy, getattr