code: def alloc(self):
          
          if not self._free:
              self._expand()
          id = self._free.pop()
          self._used.add(id)
          return id
docs: Allocate an ID value and return it.
  
          Raises:
              ValueError: Out of capacity in ID pool.