'Initializes the spiller.
@param max: the number of paths that are *not* spilled
@param src_stash: the stash from which to spill paths (default: active)
@param staging_stash: the stash *to* which to spill paths (default: "spill_stage")
@param staging_max: the number of paths that can be in the staging stash before things get spilled to ANA (default: None. If staging_stash is set, then this means unlimited, and ANA will not be used).
@param priority_key: a function that takes a path and returns its numberical priority (MAX_INT is lowest priority). By default, self.path_priority will be used, which prioritizes by object ID.'

def __init__(self, src_stash='active', min=5, max=10, staging_stash='spill_stage', staging_min=10, staging_max=20, pickle_callback=None, unpickle_callback=None, priority_key=None):

    super(Spiller, self).__init__()
    self.max = max
    self.min = min
    self.src_stash = src_stash
    self.staging_stash = staging_stash
    self.staging_max = staging_max
    self.staging_min = staging_min
    self.priority_key = priority_key
    self.unpickle_callback = unpickle_callback
    self.pickle_callback = pickle_callback
    self._pickled_paths = []
    self._ever_pickled = 0
    self._ever_unpickled = 0
