Skip to main content

ExpiringDictx

codecov Build Status PyPI version Python version License


简介 | 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


Release files for expiringdictx 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for expiringdictx 1.1.0
File Size Uploaded
expiringdictx-1.1.0.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for expiringdictx 1.1.0
File Interpreter ABI Platform
expiringdictx-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.2 kB

Release files / expiringdictx-1.1.0.tar.gz

Download URL expiringdictx-1.1.0.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f590a4bd656a5317c51e696c2f48fee97e1d3feb6de87e00cebeaad9035824fa
BLAKE2b-256 checksum
How to use checksums
49f97b23c9da981e10d33b25180e6a73b89cceb41d58887486f5a4dd843d9f40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.0 CPython/3.12.4

Release files / expiringdictx-1.1.0-py3-none-any.whl

Download URL expiringdictx-1.1.0-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5d38ae23b46a8f97da27ce0dd74e669430d43b2efe98232a4a81f10b43cde25
BLAKE2b-256 checksum
How to use checksums
b7cdff116c050330c4b8c8ebc657f40501460c3e38905fb15993ef21f7d24208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page