Lines Matching refs:self
428 def __init__(self, capacity: int) -> None:
429 self.capacity = capacity
430 self._mapping: t.Dict[t.Any, t.Any] = {}
431 self._queue: "te.Deque[t.Any]" = deque()
432 self._postinit()
434 def _postinit(self) -> None:
436 self._popleft = self._queue.popleft
437 self._pop = self._queue.pop
438 self._remove = self._queue.remove
439 self._wlock = Lock()
440 self._append = self._queue.append
442 def __getstate__(self) -> t.Mapping[str, t.Any]:
444 "capacity": self.capacity,
445 "_mapping": self._mapping,
446 "_queue": self._queue,
449 def __setstate__(self, d: t.Mapping[str, t.Any]) -> None:
450 self.__dict__.update(d)
451 self._postinit()
453 def __getnewargs__(self) -> t.Tuple:
454 return (self.capacity,)
456 def copy(self) -> "LRUCache":
458 rv = self.__class__(self.capacity)
459 rv._mapping.update(self._mapping)
460 rv._queue.extend(self._queue)
463 def get(self, key: t.Any, default: t.Any = None) -> t.Any:
466 return self[key]
470 def setdefault(self, key: t.Any, default: t.Any = None) -> t.Any:
475 return self[key]
477 self[key] = default
480 def clear(self) -> None:
482 with self._wlock:
483 self._mapping.clear()
484 self._queue.clear()
486 def __contains__(self, key: t.Any) -> bool:
488 return key in self._mapping
490 def __len__(self) -> int:
492 return len(self._mapping)
494 def __repr__(self) -> str:
495 return f"<{type(self).__name__} {self._mapping!r}>"
497 def __getitem__(self, key: t.Any) -> t.Any:
503 with self._wlock:
504 rv = self._mapping[key]
506 if self._queue[-1] != key:
508 self._remove(key)
515 self._append(key)
519 def __setitem__(self, key: t.Any, value: t.Any) -> None:
523 with self._wlock:
524 if key in self._mapping:
525 self._remove(key)
526 elif len(self._mapping) == self.capacity:
527 del self._mapping[self._popleft()]
529 self._append(key)
530 self._mapping[key] = value
532 def __delitem__(self, key: t.Any) -> None:
536 with self._wlock:
537 del self._mapping[key]
540 self._remove(key)
544 def items(self) -> t.Iterable[t.Tuple[t.Any, t.Any]]:
546 result = [(key, self._mapping[key]) for key in list(self._queue)]
550 def values(self) -> t.Iterable[t.Any]:
552 return [x[1] for x in self.items()]
554 def keys(self) -> t.Iterable[t.Any]:
556 return list(self)
558 def __iter__(self) -> t.Iterator[t.Any]:
559 return reversed(tuple(self._queue))
561 def __reversed__(self) -> t.Iterator[t.Any]:
565 return iter(tuple(self._queue))
692 def __init__(self, *items: t.Any) -> None:
695 self.items = items
696 self.pos = 0
698 def reset(self) -> None:
700 self.pos = 0
703 def current(self) -> t.Any:
707 return self.items[self.pos]
709 def next(self) -> t.Any:
713 rv = self.current
714 self.pos = (self.pos + 1) % len(self.items)
723 def __init__(self, sep: str = ", ") -> None:
724 self.sep = sep
725 self.used = False
727 def __call__(self) -> str:
728 if not self.used:
729 self.used = True
731 return self.sep
739 self, args = args[0], args[1:]
740 self.__attrs = dict(*args, **kwargs)
742 def __getattribute__(self, name: str) -> t.Any:
745 return object.__getattribute__(self, name)
747 return self.__attrs[name]
751 def __setitem__(self, name: str, value: t.Any) -> None:
752 self.__attrs[name] = value
754 def __repr__(self) -> str:
755 return f"<Namespace {self.__attrs!r}>"