一个高效的库,用于从新的和旧的格式 .conda 和 .tar.bz2 conda 包中读取。
项目描述
conda-package-streaming
一个高效的库,用于从新的和旧的格式 .conda 和 .tar.bz2 conda 包中读取。
从不需要传输整个文件的包中下载conda元数据。从本地 .tar.bz2
包中获取元数据,无需读取整个文件。
使用增强的pip lazy_wheel
从.conda
文件中获取文件,最多3次范围请求,但通常2次。
使用tar = tarfile.open(fileobj=...)
流式传输远程.tar.bz2
。一旦看到所需的文件,就关闭HTTP请求。
快速入门
基本API从conda文件中生成(tarfile, member)元组,因为tarfile是提取成员所必需的。请注意,.tar.bz2
格式从stream_conda_info
/ stream_conda_component
生成所有成员,而不仅仅是info/
,而.conda
格式生成请求内部存档的成员——允许调用者决定何时停止读取。
从URL,
from conda_package_streaming.url import stream_conda_info
# url = (ends with .conda or .tar.bz2)
for tar, member in stream_conda_info(url):
if member.name == "info/index.json":
index_json = json.load(tar.extractfile(member))
break
从s3,
client = boto3.client("s3")
from conda_package_streaming.s3 import stream_conda_info
# key = (ends with .conda or .tar.bz2)
for tar, member in stream_conda_info(client, bucket, key):
if member.name == "info/index.json":
index_json = json.load(tar.extractfile(member))
break
从文件名,
from conda_package_streaming import package_streaming
# filename = (ends with .conda or .tar.bz2)
for tar, member in package_streaming.stream_conda_info(filename):
if member.name == "info/index.json":
index_json = json.load(tar.extractfile(member))
break
从文件-like对象,
from contextlib import closing
from conda_package_streaming.url import conda_reader_for_url
from conda_package_streaming.package_streaming import stream_conda_component
filename, conda = conda_reader_for_url(url)
# file object must be seekable for `.conda` format, but merely readable for `.tar.bz2`
with closing(conda):
for tar, member in stream_conda_component(filename, conda, component="info"):
if member.name == "info/index.json":
index_json = json.load(tar.extractfile(member))
break
如果您需要整个包,请先下载,然后使用基于文件的API。如果您只需要访问包元数据,基于URL的API更有效。
包目标
-
提取conda包(两种格式)
-
易于从pypi或conda安装
-
尽可能少地进行I/O操作(无临时文件,传输部分包)
-
从网络/标准HTTP/s3打开文件
-
继续使用conda-package-handling创建.conda包
生成文档
使用markdown,furo主题。需要较新的mdit-py-plugins。
pip安装conda-package-streaming[docs]
单次执行:sphinx-apidoc -o docs .
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
conda_package_streaming-0.10.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a0c2c1abc20fcc0096d57177c820dfea54c8d63c159b8453ce0679864aa9af2a |
|
MD5 | 01675dd65f5bb670f8a7bdbcc6af6962 |
|
BLAKE2b-256 | 67c7199ca72ede92930c768082f8fa6528a8d11a3990582382d4d98157564263 |
conda_package_streaming-0.10.0-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ab1c0ce4b0515568efe72082cf2930530e7329957159fce1cb916668b27f3c9a |
|
MD5 | 61f8d8262c414fa0276620f1952a4496 |
|
BLAKE2b-256 | b7fe05f871acf75c168bf12de1c4b75db1e9a5b2fb2d68020b025aab0b8c13a1 |