class_docstr: A PRecord is a PMap with a fixed set of specified fields. Records are declared as python classes inheriting
  from PRecord. Because it is a PMap it has full support for all Mapping methods such as iteration and element
  access using subscript notation.
  
  More documentation and examples of PRecord usage is available at https://github.com/tobgu/pyrsistent
code: def __new__(cls, **kwargs):
      # Hack total! If these two special attributes exist that means we can create
      # ourselves. Otherwise we need to go through the Evolver to create the structures
      # for us.
      if "_precord_size" in kwargs and "_precord_buckets" in kwargs:
          return super(PRecord, cls).__new__(
              cls, kwargs["_precord_size"], kwargs["_precord_buckets"]
          )
  
      factory_fields = kwargs.pop("_factory_fields", None)
      ignore_extra = kwargs.pop("_ignore_extra", False)
  
      initial_values = kwargs
      if cls._precord_initial_values:
          initial_values = dict(
              (k, v() if callable(v) else v)
              for k, v in cls._precord_initial_values.items()
          )
          initial_values.update(kwargs)
  
      e = _PRecordEvolver(
          cls,
          pmap(pre_size=len(cls._precord_fields)),
          _factory_fields=factory_fields,
          _ignore_extra=ignore_extra,
      )
      for k, v in initial_values.items():
          e[k] = v
  
      return e.persistent()
  
imports: from pyrsistent._checked_types import CheckedType, _restore_pickle, InvariantException, store_invariants
  from pyrsistent._field_common import set_fields, check_type, is_field_ignore_extra_complaint, PFIELD_NO_INITIAL, serialize, check_global_invariants
  from pyrsistent._pmap import PMap, pmap
label_desc: Use image node_id 1 for calling the PRecord obj's underlying member method code with example usage: obj.__new__(cls) and returns: e, super