A simple db using toml and pickle and dill.
Project description
TomlDB
TomlDB 是一个基于 TOML 文件的简单数据库库,它支持 JSON 和 pickle/dill 序列化,并可以选择将大型对象存储到文件系统中。该库提供了线程安全的读写操作,确保多个进程可以安全地访问同一个数据库文件。
安装
推荐使用uv在已经初始化的项目中
uv add t4wefan-tomldb
或者
pip install t4wefan-tomldb
功能描述
功能
- 存储和检索数据:使用
set方法存储键值对,使用get方法检索数据。 - 序列化支持:自动选择
JSON或pickle序列化方法存储数据。 - 文件系统存储:对于大型或无法 JSON 序列化的对象,可以选择使用文件系统存储。
- 线程安全:使用文件锁,确保多线程和多进程的安全访问。
- 基本数据库操作:支持
set、get、delete、exists和keys操作。
使用示例
from tomldb import TomlDB
# 创建一个数据库实例,选择是否将大型对象存储到文件系统
db = TomlDB() # 默认 use_pickle=False, store_to_fs=True,无法直接原生存进toml的对象会转为dill然后存入本地的文件,可以通过参数存为pickle
# 存储一个复杂的字典
db.set('user', {'name': 'Alice', 'age': 30, 'emails': ['alice@example.com', 'a.smith@example.com']})
# 检查键是否存在
if 'user' in db:
print('user key exists in the database.')
# 检索数据
user_data = db.get('user')
print(user_data) # 输出: {'name': 'Alice', 'age': 30, 'emails': ['alice@example.com', 'a.smith@example.com']}
# 删除数据
db.delete('user')
# 获取所有键
keys = db.keys()
print(keys) # 输出: 所有存在的键的列表
db.clear_database() # 清空数据库,这会删除toml文件和所有存储的文件
注意事项
- 如果选择将对象存储到文件系统中(
store_to_fs=True),则会自动创建一个隐藏目录,用于存储pickle/dill文件。 - 确保对数据库文件有读写权限。
- 在多进程环境中使用时,建议使用
FileLock提供的锁机制来确保线程安全。
许可证
本项目使用 MIT 许可证。有关更多信息,请参见 LICENSE 文件。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
t4wefan_tomldb-0.1.9.tar.gz
(5.2 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 t4wefan_tomldb-0.1.9.tar.gz.
File metadata
- Download URL: t4wefan_tomldb-0.1.9.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbb6e54a19d06c99b75cbbde83da9a5a15d9d15e2c23cd6f7115e58c8838ac24
|
|
| MD5 |
ef9b66fb193266657ca373eed7bd1651
|
|
| BLAKE2b-256 |
075e34690caa919dc73e769a9d465a1883a4dee40347dffa88d75b346c4ab36a
|
File details
Details for the file t4wefan_tomldb-0.1.9-py3-none-any.whl.
File metadata
- Download URL: t4wefan_tomldb-0.1.9-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c5fdd52a1db35c970b1b36ea6ae9f2804ea01a4b6cd5944a9cb1dff24bc5f16
|
|
| MD5 |
ce70e17f1c735b676a0266816d3a2a26
|
|
| BLAKE2b-256 |
da51340c2eb33d1bf8ef9e0c8d1e9793d39c4b1278388efccb2fcba84c9dd8c7
|