跳转到主要内容

为其他插件提供低磁盘空间钩子的Datasette插件

项目描述

datasette-low-disk-space-hook

PyPI Changelog Tests License

为其他插件提供低磁盘空间钩子的Datasette插件

安装

在Datasette相同的环境中安装此插件。

datasette install datasette-low-disk-space-hook

尽管如此,您可能不需要直接安装此插件:它通常作为另一个插件的依赖项自动安装。

用法

此插件为Datasette添加了一个新的插件钩子,称为low_disk_space(datasette=datasette)

它还添加了一个新的实用函数space_is_running_low(datasette),可以调用以检查Datasette实例是否即将耗尽空间

from datasette_low_disk_space_hook import space_is_running_low

if await space_is_running_low(datasette):
    print("Disk space is running low")

这个想法是让类似datasette-upload-csvsdatasette-socrata的插件在将任何新数据写入Datasette之前调用此钩子,以检查它们是否应该继续。

然后其他插件可以实现对钩子的实现,以便在Datasette即将耗尽空间时发出警告。

共同工作,这将帮助插件避免将磁盘完全填满数据,这可能导致Datasette实例崩溃。

实现钩子

此钩子的实现(在另一个插件中)看起来像这样

from datasette import hookimpl
import shutil

@hookimpl
def low_disk_space(self, datasette):
    usage = shutil.disk_usage("/mnt")
    # Fail at 95% or more used
    if (usage.used / usage.total) > 0.95:
        return True

如果插件需要在执行过程中使用await,则可以返回一个async函数

from datasette import hookimpl
from somewhere import check_disk_usage_percentage_async

@hookimpl
def low_disk_space(self, datasette):
    async def inner():
        usage = await check_disk_usage_percentage_async("/mnt")
        if usage > 0.95:
            return True
    return inner

开发

要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-low-disk-space-hook
python3 -m venv venv
source venv/bin/activate

现在安装依赖项和测试依赖项

pip install -e '.[test]'

要运行测试

pytest

项目详情


下载文件

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

源分发

datasette-low-disk-space-hook-0.1.tar.gz (6.8 kB 查看哈希值)

上传时间

构建分发

datasette_low_disk_space_hook-0.1-py3-none-any.whl (7.7 kB 查看哈希值)

上传时间 Python 3

由以下机构支持