소스 검색

fix: time type bug

master
zhayujie 1 년 전
부모
커밋
e071b6c1b4
1개의 변경된 파일8개의 추가작업 그리고 9개의 파일을 삭제
  1. +8
    -9
      common/expired_dict.py

+ 8
- 9
common/expired_dict.py 파일 보기

@@ -1,6 +1,6 @@
import time
from datetime import datetime, timedelta


class ExpiredDict(dict):
def __init__(self, expires_in_seconds):
super().__init__()
@@ -8,8 +8,7 @@ class ExpiredDict(dict):

def __getitem__(self, key):
value, expiry_time = super().__getitem__(key)
# 如果元素已过期,则从字典中删除该元素并抛出 KeyError 异常
if time.monotonic() > expiry_time:
if datetime.now() > expiry_time:
del self[key]
raise KeyError("expired {}".format(key))
self.__setitem__(key, value)
@@ -24,20 +23,20 @@ class ExpiredDict(dict):
return self[key]
except KeyError:
return default
def __contains__(self, key):
try:
self[key]
return True
except KeyError:
return False
def keys(self):
keys=list(super().keys())
keys = list(super().keys())
return [key for key in keys if key in self]
def items(self):
return [(key, self[key]) for key in self.keys()]
def __iter__(self):
return self.keys().__iter__()
return self.keys().__iter__()

Loading…
취소
저장