Lines Matching refs:self
313 def __init__(self, capacity):
314 self.capacity = capacity
315 self._mapping = {}
316 self._queue = deque()
317 self._postinit()
319 def _postinit(self):
321 self._popleft = self._queue.popleft
322 self._pop = self._queue.pop
323 self._remove = self._queue.remove
324 self._wlock = Lock()
325 self._append = self._queue.append
327 def __getstate__(self):
329 'capacity': self.capacity,
330 '_mapping': self._mapping,
331 '_queue': self._queue
334 def __setstate__(self, d):
335 self.__dict__.update(d)
336 self._postinit()
338 def __getnewargs__(self):
339 return (self.capacity,)
341 def copy(self):
343 rv = self.__class__(self.capacity)
344 rv._mapping.update(self._mapping)
345 rv._queue = deque(self._queue)
348 def get(self, key, default=None):
351 return self[key]
355 def setdefault(self, key, default=None):
359 self._wlock.acquire()
362 return self[key]
364 self[key] = default
367 self._wlock.release()
369 def clear(self):
371 self._wlock.acquire()
373 self._mapping.clear()
374 self._queue.clear()
376 self._wlock.release()
378 def __contains__(self, key):
380 return key in self._mapping
382 def __len__(self):
384 return len(self._mapping)
386 def __repr__(self):
388 self.__class__.__name__,
389 self._mapping
392 def __getitem__(self, key):
398 self._wlock.acquire()
400 rv = self._mapping[key]
401 if self._queue[-1] != key:
403 self._remove(key)
409 self._append(key)
412 self._wlock.release()
414 def __setitem__(self, key, value):
418 self._wlock.acquire()
420 if key in self._mapping:
421 self._remove(key)
422 elif len(self._mapping) == self.capacity:
423 del self._mapping[self._popleft()]
424 self._append(key)
425 self._mapping[key] = value
427 self._wlock.release()
429 def __delitem__(self, key):
433 self._wlock.acquire()
435 del self._mapping[key]
437 self._remove(key)
442 self._wlock.release()
444 def items(self):
446 result = [(key, self._mapping[key]) for key in list(self._queue)]
450 def iteritems(self):
452 return iter(self.items())
454 def values(self):
456 return [x[1] for x in self.items()]
458 def itervalue(self):
460 return iter(self.values())
462 def keys(self):
464 return list(self)
466 def iterkeys(self):
470 return reversed(tuple(self._queue))
474 def __reversed__(self):
478 return iter(tuple(self._queue))
577 def __init__(self, *items):
580 self.items = items
581 self.reset()
583 def reset(self):
585 self.pos = 0
588 def current(self):
590 return self.items[self.pos]
592 def next(self):
594 rv = self.current
595 self.pos = (self.pos + 1) % len(self.items)
604 def __init__(self, sep=u', '):
605 self.sep = sep
606 self.used = False
608 def __call__(self):
609 if not self.used:
610 self.used = True
612 return self.sep
620 self, args = args[0], args[1:]
621 self.__attrs = dict(*args, **kwargs)
623 def __getattribute__(self, name):
625 return object.__getattribute__(self, name)
627 return self.__attrs[name]
631 def __setitem__(self, name, value):
632 self.__attrs[name] = value
634 def __repr__(self):
635 return '<Namespace %r>' % self.__attrs