Cachetools timer with datetime.now
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 5.1k
- Fork
- 2.1k
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 82
Mô tả
A followup to the issue presented in #6953, I'm running into mypy errors when implementing a cache using the mechanism as defined in the cachetools documentation.
Cachetools documentation for TRLUCache with example that matches the implementation below.
My implementation
def expires_in_ttu(_key, value, now):
expires_in = value[1]
return now + timedelta(seconds=expires_in)
cache = TLRUCache(maxsize=10, ttu=expires_in_ttu, timer=datetime.now)
The mypy error:
Argument "timer" to "TLRUCache" has incompatible type "Callable[[Optional[tzinfo]], datetime]"; expected "Callable[[], float]"
Workaround:
We can use time.monotonic instead of datetime.now, but:
- the example in the docs use datetime.now
- datetime.now is arguably more familiar to most developers
Versions
- cachetools: 5.2.0
- types-cachetools: 5.2.1
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách so sánh kiểu của TLRUCache trong types-cachetools với ví dụ datetime.now được ghi trong tài liệu và hành vi được mô tả trong issue #6953. Tái hiện lỗi mypy đã báo bằng các phiên bản được liệt kê, sau đó xác minh rằng cách sử dụng timer được ghi trong tài liệu được chấp nhận hoặc rằng tài liệu và kiểu tương thích với nhau.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- tooling
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100