JSON缓存加载器
项目描述
jsoncache
Python云存储模型缓存控制
此库公开了一个支持多线程的JSON对象加载器,支持Amazon S3和Google Cloud Storage。
为什么我在意?
因为从云中加载JSON文件比你想的更麻烦。
- 有时你会得到错误 - 记录这些错误。
- 有时你会得到压缩的JSON blob,因为Google Cloud Storage的上传超时不可管理(https://github.com/googleapis/python-storage/issues/74)
- 你希望你的应用程序表现得好像云中的读取错误不是问题,但你希望这些错误出现在日志中。
快速入门
- 导入ThreadedObjectCache类。
- 通过传入云类型、桶、路径和以秒为单位的有效时间来实例化它。
- 在ThreadedObjectCache实例上调用.get()。
您可以可选地传入自定义的 time
模块实现来覆盖 time.time()
的行为。
您可以选择传入自定义的可调用对象 transformer
,该对象将在返回数据之前应用 transformer
函数。典型的使用案例可能涉及初始化 sklearn 模型。
您可以选择将 block_until_cached
=True,以便构造函数将阻塞直到从网络中成功加载模型。
所有后台线程都被标记为守护线程,因此使用此代码不会导致您的应用程序等待线程死亡。
Python 3.7.8 | packaged by conda-forge | (default, Jul 31 2020, 02:37:09)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.17.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from jsoncache import *
In [2]: t = ThreadedObjectCache('s3', 'telemetry-parquet', 'taar/similarity/lr_curves.json', 10)
In [3]: 2020-08-05 16:07:14,369 - botocore.credentials - INFO - Found credentials in environment variables.
In [3]:
In [3]: t.get()
Out[3]:
[[0.0, [0.029045735469752962, 0.02468400347868071]],
[0.005000778819764661, [0.029530930135620918, 0.025088940785616222]],
...
项目详情
关闭
mozilla-jsoncache-0.1.7.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | f7ec7dfdb43ed0bb7312bed414199a8265ffdbc355ab7ee5248645a267931b98 |
|
MD5 | 48cd871ca635da67dba733edf7288dbf |
|
BLAKE2b-256 | 727a881640be10888832826c1ff08ce736742f6ac78d0aa3eaeb3b545f9f26f4 |