跳转到主要内容

用于检查和验证napari hub插件的命令行工具

项目描述

napari-hub-cli

本包不再使用最新版本的napari hub元数据进行更新或维护。要查看您的插件列表的预览,我们建议使用napari hub预览页面服务

命令行工具用于检查和验证napari hub插件。

安装

在您的控制台,您可以通过pip安装napari hub CLI

$ pip install napari-hub-cli

使用(未维护

元数据

本包提供了两个工具,用于预览和验证我们将从您的插件中检查并显示在napari hub上的元数据。

预览元数据

$ napari-hub-cli preview-metadata /tmp/example-plugin

# display one field at a time and wait for input
$ napari-hub-cli preview-metadata /tmp/example-plugin -i

此实用程序将检查指定路径下的插件元数据,并将其以预览方式显示。

每个元数据字段都伴随着找到它的文件和属性。当字段缺失时,将伴随建议的来源。当一个字段来源于 setup.py 时,它总是 setup 方法的参数。

版本 - 根据您管理软件包版本的方式,我们可能无法解析其最新版本。在 napari hub 上显示的您的软件包版本将始终是 PyPI 上发布的最新版本。

项目网站 - 如果您的 urlProject Site 元数据是 GitHub url,它将作为源代码字段显示。

示例输出

--------------------------------------------------------------------------------
Authors
--------------------------------------------------------------------------------
Draga Doncila Pop
        ------
        Source
        ------
        /setup.cfg: metadata, author

--------------------------------------------------------------------------------
Description
--------------------------------------------------------------------------------
This is my napari-hub specific description. It is detailed, and comprehensive.
        ------
        Source
        ------
        /.napari/DESCRIPTION.md

--------------------------------------------------------------------------------
Source Code
--------------------------------------------------------------------------------
https://github.com/DragaDoncila/example-plugin
        ------
        Source
        ------
        /.napari/config.yml: project_urls, Source Code

--------------------------------------------------------------------------------
Summary
--------------------------------------------------------------------------------
~~Not Found~~
        ------
        Suggested Source
        ------
        /setup.cfg: metadata, summary

--------------------------------------------------------------------------------
User Support
--------------------------------------------------------------------------------
https://github.com/DragaDoncila/example-plugin/issues
        ------
        Source
        ------
        /.napari/config.yml: project_urls, User Support

您可以使用 check-missing 获取仅显示缺失元数据的显示。有关如何将此元数据添加到项目的详细指南,请参阅 自定义您的插件列表

检查缺失元数据

$ napari-hub-cli check-missing /tmp/example-plugin

# display one field at a time and wait for input
$ napari-hub-cli check-missing /tmp/example-plugin -i

此实用程序将仅显示您插件中缺失的元数据,并建议您添加它的位置。此处列出的所有元数据都将显示在您的插件 napari hub 页面上。当此元数据也可能用于排序、筛选或搜索插件时,此信息也会显示。

示例输出

--------------------------------------------------------------------------------
MISSING: Twitter
--------------------------------------------------------------------------------
        SUGGESTED SOURCE:       /.napari/config.yml: project_urls, Twitter

--------------------------------------------------------------------------------
MISSING: Summary
--------------------------------------------------------------------------------
        SUGGESTED SOURCE:       /setup.cfg: metadata, summary
        ------
        Used For
        ------
        Searching

有关如何将元数据添加到您的软件包以及我们如何在 napari hub 上使用它的更多信息,请参阅 自定义您的插件列表

开发信息

元数据加载的主要逻辑从 load_meta 函数 开始,每种文件类型都有自己的解析函数。此外,我们使用一个 parse_complex_metadata 函数 来处理可能存在于 setup.pysetup.cfg 中的某些字段的边缘情况解析。

我们在哪里查找元数据?

读取元数据并建议其来源位置的真实来源可在 metadata_sources.csv 中找到。

元数据可以在以下文件中找到,路径从根目录给出,并且按此顺序优先搜索这些文件

  • .napari/config.yml - 作者信息、项目 URL
  • .napari/DESCRIPTION.md - 长描述
  • setup.cfg - 所有包装元数据和可能的长描述(也可能是指向 README.md 的指针)
  • setup.py - 所有包装元数据和可能的长描述。仅在 setup.cfg 不存在或内容不完整时使用。

除了这些文件之外,我们还可以搜索模块 __init__.py 文件和我们找到的任何 _version.py 文件以查找版本号。

为什么这么复杂?

加载此元数据的主要复杂性来源是要求

  • 元数据需要在软件包发布前解析,因此我们无法依赖 PyPI
  • 我们更喜欢不将软件包安装到活动环境中以读取元数据
  • 我们希望显示用户元数据是从哪里读取的,以及他们可以去哪里更改它

这些要求意味着我们不能只是构建一个 wheel/检查软件包的分发中的元数据,因为其源文件将无法检索。因此,我们依赖于检查文件的独立内容,并独立解析 config.ymlsetup.pysetup.cfg

行为准则

此项目遵守贡献者公约 行为准则。通过参与,您应遵守此准则。如有不适当的行为,请向 opensource@chanzuckerberg.com 报告。

支持者