@@ -51,17 +51,19 @@ def add(self, node: DoubleLinkedListNode[T, U]) -> None:
5151 prev = self .rear .prev
5252 if not prev :
5353 raise ValueError ("Invalid list state" )
54-
54+
5555 prev .next = node
5656 node .prev = prev
5757 self .rear .prev = node
5858 node .next = self .rear
5959
60- def remove (self , node : DoubleLinkedListNode [T , U ]) -> DoubleLinkedListNode [T , U ] | None :
60+ def remove (
61+ self , node : DoubleLinkedListNode [T , U ]
62+ ) -> DoubleLinkedListNode [T , U ] | None :
6163 """Remove node from list"""
6264 if not node .prev or not node .next :
6365 return None
64-
66+
6567 node .prev .next = node .next
6668 node .next .prev = node .prev
6769 node .prev = node .next = None
@@ -122,6 +124,7 @@ def put(self, key: T, value: U) -> None:
122124 @classmethod
123125 def decorator (cls , size : int = 128 ) -> Callable [[Callable [P , R ]], Callable [P , R ]]:
124126 """LRU Cache decorator"""
127+
125128 def decorator_func (func : Callable [P , R ]) -> Callable [P , R ]:
126129 cache = cls [Any , R ](size ) # type: ignore[type-var]
127130
@@ -136,10 +139,11 @@ def wrapper(*args: P.args, **kwargs: P.kwargs) -> R:
136139 # Add cache_info attribute
137140 wrapper .cache_info = lambda : cache # type: ignore[attr-defined]
138141 return wrapper
139-
142+
140143 return decorator_func
141144
142145
143146if __name__ == "__main__" :
144147 import doctest
148+
145149 doctest .testmod ()
0 commit comments