跳转到主要内容

发布数据集、模型和其他Python对象,使其易于在项目之间以及与同事之间共享。

项目描述

pins

PyPI - Version PyPI - Python Version

pins软件包发布数据、模型和其他Python对象,使其易于在项目之间以及与同事之间共享。您可以将对象固定到各种固定板,包括文件夹(用于在网络驱动器或像DropBox这样的服务上共享)、Posit Connect、Amazon S3和Google Cloud Storage。固定可以自动进行版本控制,从而可以轻松跟踪更改、在历史数据上重新运行分析以及撤销错误。

有关入门信息,请参阅文档

您可以使用R和Python中的pins。例如,您可以使用一种语言读取另一种语言创建的固定。有关R的pins的更多信息。

安装

您可以从PyPI安装pins的发布版本。

python -m pip install pins

您还可以从GitHub获取开发版本。

python -m pip install git+https://github.com/rstudio/pins-python

使用方法

要使用pins包,您必须首先创建一个引脚板。一个不错的选择是使用board_folder(),它将引脚存储在您指定的目录中。在这里,我将使用一个名为board_temp()的特殊版本的board_folder(),它创建一个临时板,在您的Python脚本或笔记本会话结束时自动删除。这对于示例来说很棒,但显然您不应该将其用于实际工作!

import pins
from pins.data import mtcars

board = pins.board_temp()

您可以使用.pin_write()方法将数据“固定”(保存)到板上。它需要三个参数:一个对象、一个名称和引脚类型。

board.pin_write(mtcars.head(), "mtcars", type="csv")
Writing pin:
Name: 'mtcars'
Version: 20230523T115348Z-120a5

Meta(title='mtcars: a pinned 5 x 11 DataFrame', description=None, created='20230523T115348Z', pin_hash='120a54f7e0818041', file='mtcars.csv', file_size=249, type='csv', api_version=1, version=Version(created=datetime.datetime(2023, 5, 23, 11, 53, 48, 555797), hash='120a54f7e0818041'), tags=None, name='mtcars', user={}, local={})

如上所示,我们将数据保存为CSV,但根据您要保存的内容以及您希望谁读取它,您可以使用type参数将其保存为joblibparquetjson文件。

您可以使用.pin_read()稍后检索固定数据。

board.pin_read("mtcars")
    mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  carb
0  21.0    6  160.0  110  3.90  2.620  16.46   0   1     4     4
1  21.0    6  160.0  110  3.90  2.875  17.02   0   1     4     4
2  22.8    4  108.0   93  3.85  2.320  18.61   1   1     4     1
3  21.4    6  258.0  110  3.08  3.215  19.44   1   0     3     1
4  18.7    8  360.0  175  3.15  3.440  17.02   0   0     3     2

您的计算机上的板是一个好的起点,但pins的真正力量在于您使用一个与多个人共享的板。要开始,您可以使用共享驱动器或DropBox上的目录与board_folder()一起使用,或者如果您使用Posit Connect,则可以使用board_connect()

# Note that this uses one approach to connecting,
# the environment variables CONNECT_SERVER and CONNECT_API_KEY

board = pins.board_connect()
board.pin_write(tidy_sales_data, "hadley/sales-summary", type="csv")

然后,其他人(或自动报告)可以读取并使用您的引脚。

board = board_connect()
board.pin_read("hadley/sales-summary")

您可以使用Posit Connect权限面板轻松控制谁可以访问数据。

pins包还包括允许您在Amazon的S3(board_s3())、Google Cloud Storage(board_gcs())和Azure Blob Storage(board_azure())等服务上共享数据的板。

贡献

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

pins-0.8.6.tar.gz (111.9 KB 查看哈希

上传时间

构建分发

pins-0.8.6-py2.py3-none-any.whl (114.2 KB 查看哈希

上传时间 Python 2 Python 3

由以下组织支持