轻松选择存储Python包数据的位置。
项目描述
PyStow
👜 轻松选择存储Python代码数据的位置。
🚀 入门
为您的应用程序获取一个目录。
import pystow
# Get a directory (as a pathlib.Path) for ~/.data/pykeen
pykeen_directory = pystow.join('pykeen')
# Get a subdirectory (as a pathlib.Path) for ~/.data/pykeen/experiments
pykeen_experiments_directory = pystow.join('pykeen', 'experiments')
# You can go as deep as you want
pykeen_deep_directory = pystow.join('pykeen', 'experiments', 'a', 'b', 'c')
如果您经常重复使用相同的目录结构,可以将它们保存在一个模块中
import pystow
pykeen_module = pystow.module("pykeen")
# Access the module's directory with .base
assert pystow.join("pykeen") == pystow.module("pykeen").base
# Get a subdirectory (as a pathlib.Path) for ~/.data/pykeen/experiments
pykeen_experiments_directory = pykeen_module.join('experiments')
# You can go as deep as you want past the original "pykeen" module
pykeen_deep_directory = pykeen_module.join('experiments', 'a', 'b', 'c')
通过添加name
关键字参数获取应用程序的文件路径。这样PyStow就知道了要自动创建哪些父目录。这适用于pystow
或您使用pystow.module
创建的任何模块。
import pystow
# Get a directory (as a pathlib.Path) for ~/.data/indra/database.tsv
indra_database_path = pystow.join('indra', 'database', name='database.tsv')
确保互联网上的文件在您的应用程序目录中可用
import pystow
url = 'https://raw.githubusercontent.com/pykeen/pykeen/master/src/pykeen/datasets/nations/test.txt'
path = pystow.ensure('pykeen', 'datasets', 'nations', url=url)
确保互联网上的表格数据文件可用,并加载它以供使用(需要pip install pandas
)
import pystow
import pandas as pd
url = 'https://raw.githubusercontent.com/pykeen/pykeen/master/src/pykeen/datasets/nations/test.txt'
df: pd.DataFrame = pystow.ensure_csv('pykeen', 'datasets', 'nations', url=url)
确保互联网上的逗号分隔表格数据文件可用,并加载它以供使用(需要pip install pandas
)
import pystow
import pandas as pd
url = 'https://raw.githubusercontent.com/cthoyt/pystow/main/tests/resources/test_1.csv'
df: pd.DataFrame = pystow.ensure_csv('pykeen', 'datasets', 'nations', url=url, read_csv_kwargs=dict(sep=","))
确保互联网上的RDF文件可用,并加载它以供使用(需要pip install rdflib
)
import pystow
import rdflib
url = 'https://ftp.expasy.org/databases/rhea/rdf/rhea.rdf.gz'
rdf_graph: rdflib.Graph = pystow.ensure_rdf('rhea', url=url)
另请参阅pystow.ensure_excel()
、pystow.ensure_rdf()
、pystow.ensure_zip_df()
和pystow.ensure_tar_df()
。
如果您的数据与大量不同的文件一起存储在存档中,您可以确保存档已下载并从中获取特定文件
import numpy as np
import pystow
url = "https://cloud.enterprise.informatik.uni-leipzig.de/index.php/s/LHPbMCre7SLqajB/download/MultiKE_D_Y_15K_V1.zip"
# the path inside the archive to the file you want
inner_path = "MultiKE/D_Y_15K_V1/721_5fold/1/20210219183115/ent_embeds.npy"
with pystow.ensure_open_zip("kiez", url=url, inner_path=inner_path) as file:
emb = np.load(file)
请参阅 pystow.module.ensure_open_lzma()
、pystow.module.ensure_open_tarfile()
和 pystow.module.ensure_open_gz()
。
⚙️️ 配置
默认情况下,数据存储在 $HOME/.data
目录中。默认情况下,<app>
应用程序将创建 $HOME/.data/<app>
文件夹。
如果您想在家目录中使用不同的文件夹名来替换 .data
,可以设置 PYSTOW_NAME
环境变量。例如,如果您设置 PYSTOW_NAME=mydata
,那么为 pykeen
应用程序编写的以下代码将创建 $HOME/mydata/pykeen/
目录
import os
import pystow
# Only for demonstration purposes. You should set environment
# variables either with your .bashrc or in the command line REPL.
os.environ['PYSTOW_NAME'] = 'mydata'
# Get a directory (as a pathlib.Path) for ~/mydata/pykeen
pykeen_directory = pystow.join('pykeen')
如果您想指定一个完全自定义的目录,该目录不相对于您的家目录,可以设置 PYSTOW_HOME
环境变量。例如,如果您设置 PYSTOW_HOME=/usr/local/
,那么为 pykeen
应用程序编写的以下代码将创建 /usr/local/pykeen/
目录
import os
import pystow
# Only for demonstration purposes. You should set environment
# variables either with your .bashrc or in the command line REPL.
os.environ['PYSTOW_HOME'] = '/usr/local/'
# Get a directory (as a pathlib.Path) for /usr/local/pykeen
pykeen_directory = pystow.join('pykeen')
注意:如果您设置了 PYSTOW_HOME
,则 PYSTOW_NAME
将被忽略。
X Desktop Group (XDG) 兼容性
虽然 PyStow 的主要目标是使应用程序数据更加透明和可见,但一些用户可能希望使用 XDG 规范 来存储他们的应用程序数据。
如果您将环境变量 PYSTOW_USE_APPDIRS
设置为 true
或 True
,则将使用 appdirs
包根据 用户数据目录
选项选择基本目录。这仍然可以通过 PYSTOW_HOME
覆盖。
🚀 安装
最新版本可以从 PyPI 安装
$ pip install pystow
注意:自 v0.3.0 版本起,Python 3.6 不再官方支持(其生命周期已于 2021 年 12 月结束)。目前,pystow
在 py36 上可能仍然可以工作,但这只是巧合。
最新代码和数据可以直接从 GitHub 安装
$ pip install git+https://github.com/cthoyt/pystow.git
要开发模式安装,请使用以下
$ git clone git+https://github.com/cthoyt/pystow.git
$ cd pystow
$ pip install -e .
⚖️ 许可证
本包中的代码根据 MIT 许可证授权。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。
源分布
构建分发版
pystow-0.5.6.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db567e82a5b7aea34cdcf4ae00ba822cd64a51ae2f465b1995599676e4cdbff2 |
|
MD5 | e4f24fbae6a861174e61c347e153af77 |
|
BLAKE2b-256 | 2af807cd9abc4103bba1f68cb688d9b867243b25224cf210b954de73fd5aa6ab |
pystow-0.5.6-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a44349dccc1260238e8f4c8f2dec5d72e2952a126fb897df663e94e6a910c86 |
|
MD5 | 6223c7dbf5aa55a905e250d596a1e215 |
|
BLAKE2b-256 | 608a41303009edd44b7786da70e89c1e62caadcee4823cc92f0a7dca0c982228 |