parameters: (self, size, safe=False)
return_statement: return MemInfo(mi)
docstring: Allocate a new memory of `size` bytes and returns a MemInfo object
          that tracks the allocation.  When there is no more reference to the
          MemInfo object, the underlying memory will be deallocated.
  
          If `safe` flag is True, the memory is allocated using the `safe` scheme.
          This is used for debugging and testing purposes.
          See `NRT_MemInfo_alloc_safe()` in "nrt.h" for details.
docstring_summary: Allocate a new memory of `size` bytes and returns a MemInfo object
          that tracks the allocation.  When there is no more reference to the
          MemInfo object, the underlying memory will be deallocated.
docstring_tokens: Allocate a new memory of size bytes and returns a MemInfo object that tracks the allocation . When there is no more reference to the MemInfo object the underlying memory will be deallocated .
function: def meminfo_alloc(self, size, safe=False):
          """
          Allocate a new memory of `size` bytes and returns a MemInfo object
          that tracks the allocation.  When there is no more reference to the
          MemInfo object, the underlying memory will be deallocated.
  
          If `safe` flag is True, the memory is allocated using the `safe` scheme.
          This is used for debugging and testing purposes.
          See `NRT_MemInfo_alloc_safe()` in "nrt.h" for details.
          """
          self._init_guard()
          if safe:
              mi = _nrt.meminfo_alloc_safe(size)
          else:
              mi = _nrt.meminfo_alloc(size)
          return MemInfo(mi)
function_tokens: def meminfo_alloc ( self , size , safe = False ) : self . _init_guard ( ) if safe : mi = _nrt . meminfo_alloc_safe ( size ) else : mi = _nrt . meminfo_alloc ( size ) return MemInfo ( mi )