跳转到主要内容

JSON缓存加载器

项目描述

jsoncache

Python云存储模型缓存控制

此库公开了一个支持多线程的JSON对象加载器,支持Amazon S3和Google Cloud Storage。

为什么我在意?

因为从云中加载JSON文件比你想的更麻烦。

  • 有时你会得到错误 - 记录这些错误。
  • 有时你会得到压缩的JSON blob,因为Google Cloud Storage的上传超时不可管理(https://github.com/googleapis/python-storage/issues/74
  • 你希望你的应用程序表现得好像云中的读取错误不是问题,但你希望这些错误出现在日志中。

快速入门

  1. 导入ThreadedObjectCache类。
  2. 通过传入云类型、桶、路径和以秒为单位的有效时间来实例化它。
  3. 在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 (7.9 kB 查看散列值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面