code: def _basicsize(t, base=0, heap=False, obj=None):
      '''Get non-zero basicsize of type,
         including the header sizes.
      '''
      s = max(getattr(t, '__basicsize__', 0), base)
       # include gc header size
      if t != _Type_type:
         h = getattr(t,   '__flags__', 0) & _Py_TPFLAGS_HAVE_GC
      elif heap:  # type, allocated on heap
         h = True
      else:  # None has no __flags__ attr
         h = getattr(obj, '__flags__', 0) & _Py_TPFLAGS_HEAPTYPE
      if h:
         s += _sizeof_CPyGC_Head
       # include reference counters
      return s + _sizeof_Crefcountf _basicsize(t, base=0, heap=False, obj=None):
      '''Get non-zero basicsize of type,
         including the header sizes.
      '''
      s = max(getattr(t, '__basicsize__', 0), base)
       # include gc header size
      if t != _Type_type:
         h = getattr(t,   '__flags__', 0) & _Py_TPFLAGS_HAVE_GC
      elif heap:  # type, allocated on heap
         h = True
      else:  # None has no __flags__ attr
         h = getattr(obj, '__flags__', 0) & _Py_TPFLAGS_HEAPTYPE
      if h:
         s += _sizeof_CPyGC_Head
       # include reference counters
      return s + _sizeof_Crefcounts
docs: Get non-zero basicsize of type,
         including the header sizes.