Skip to main content

提供一个带有过期时间的字典数据结构,适用于缓存和临时存储。

Project description

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


Project details


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.1.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

expiringdictx-1.1.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file expiringdictx-1.1.0.tar.gz.

File metadata

  • Download URL: expiringdictx-1.1.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for expiringdictx-1.1.0.tar.gz
Algorithm Hash digest
SHA256 f590a4bd656a5317c51e696c2f48fee97e1d3feb6de87e00cebeaad9035824fa
MD5 092070f612d48c4e0bbb03eb0edb7eb4
BLAKE2b-256 49f97b23c9da981e10d33b25180e6a73b89cceb41d58887486f5a4dd843d9f40

See more details on using hashes here.

File details

Details for the file expiringdictx-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for expiringdictx-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5d38ae23b46a8f97da27ce0dd74e669430d43b2efe98232a4a81f10b43cde25
MD5 6ee5b6086332ce67710b1806c5243fed
BLAKE2b-256 b7cdff116c050330c4b8c8ebc657f40501460c3e38905fb15993ef21f7d24208

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page