ExpiringDictx
简介 | Introduction
这是一个带有过期时间的字典数据结构,适用于缓存和临时存储。
This is a dictionary data structure with an expiration time, suitable for caching and temporary storage.
安装 | Install
使用 pip 安装 | Install with pip
pip install expiringdictx
使用 poetry 安装 | Install with poetry
poetry add expiringdictx
使用 pdm 安装 | Install with pdm
pdm add expiringdictx
使用 | Usage
ExpiringDict
from datetime import timedelta
from expiringdictx import ExpiringDict
# 创建一个 ExpiringDict 实例 | Create an ExpiringDict instance
cache = ExpiringDict[str, str](capacity=100, default_age=60)
# 添加一个元素,过期时间为默认值 | Add an item with the default expiration time
cache["key0"] = "value0"
# 添加一个元素,过期时间为 30 秒 | Add an item with an expiration time of 30 seconds
cache["key1", 30] = "value1"
# 添加一个元素,过期时间为 2 分钟 | Add an item with an expiration time of 2 minutes
cache["key2", timedelta(minutes=2)] = "value2"
# 或者使用 set 方法 | Or use the set method
cache.set("key3", "value3", 60)
# 获取一个元素 | Get an item
value0 = cache["key0"]
value1 = cache.get('key1')
# 获取时附带过期时间 | Get with expiration time
value2, deadtime2 = cache.get_with_deadtime('key2')
# 获取并删除一个元素 | pop an item
value3 = cache.pop('key3')
value4 = cache.popitem(least_recently=True)
# 获取元素ttl(剩余存活时间) | Get the ttl(time to live) of an item
ttl = cache.ttl('key0')
# 获取元素ddl(过期时间) | Get the ddl(deadline) of an item
ddl = cache.ddl('key0')
# 按照给定keys创建一个新的ExpiringDict | Create a new ExpiringDict with the given keys
new_cache = cache.fromkeys(['key0', 'key1', 'key2'], "default_value", 60)
# 按照给定可映射对象创建一个新的ExpiringDict | Create a new ExpiringDict with the given mapping
new_cache = cache.frommapping({'key0': 'value0', 'key1': ('value1', 1), 'key2': ('value2', timedelta(hours=2))}, 60)
# 从另一个ExpiringDict创建一个新的ExpiringDict | Create a new ExpiringDict from another ExpiringDict
new_cache = cache.fromexpiringdict(cache, 60)
测试 | Tests
运行单元测试: | Run the unit tests:
pytest tests/
致谢 | Thanks
lru-dict: ExpiringDict 的内部存储实现
expiringdict: 本项目的灵感来源,在此基础上添加类型注解和其他功能
许可 | License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
expiringdictx-1.0.1.tar.gz
(6.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file expiringdictx-1.0.1.tar.gz.
File metadata
- Download URL: expiringdictx-1.0.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c077cb69774594f85bd181bfec66398971c5df50c737abb2f6c9524b7ac519f
|
|
| MD5 |
103ccd99d145f114b0a357e63a6b1a10
|
|
| BLAKE2b-256 |
0b0fd0f6b3d8d550d307eb794e63187059f159abd750fe1d2969fe732c665130
|
File details
Details for the file expiringdictx-1.0.1-py3-none-any.whl.
File metadata
- Download URL: expiringdictx-1.0.1-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b8c66f7781a066bafa842fc1af49594207d5c78dbfd09c7991c03208a37ae49
|
|
| MD5 |
e12787f0d7ea63eaf0a2cda20ac0f19b
|
|
| BLAKE2b-256 |
f5608ed2da89b8f09687e1b2a5ae7be16051e2f4cfef8a7e6ffae0ed78ac7e68
|