endlessdreams/fao-toolkit

FAO工具包,用于管理FAO服务,例如SMTA api、DOI api以及WIEWS代码和组织数据抓取

安装: 30

依赖: 0

建议者: 0

安全: 0

类型:项目

3.1.0 2024-05-12 13:13 UTC

This package is auto-updated.

Last update: 2024-09-12 14:02:46 UTC


README

Fao-Toolkit控制台应用程序


Latest Stable Version Total Downloads License PHP Version Require

面向基因库的使用

FAO工具包的目的是成为一个面向基因库的终端客户端工具包,以便更方便地与FAO交换数据。目前实现的功能如下:

  • 获取注册机构信息,如FAO机构代码(又称WIEWS代码)及其地址。
  • 注册标准转移协议(SMTA)
  • 注册多作物护照数据(GLIS)以获取DOI,并保持其更新。

客户端是通用的,并可根据需要配置以与多个基因库信息系统协同工作。想法是在配置文件中将所使用信息系统的必要表列映射到。

开始使用

首先,您需要要求您的信息系统使用的必要数据库库。更多关于此的信息,请参阅安装部分

为了使SMTA发布/注册工作,您需要以下内容:

  1. FAO的Planttreaty站点上有账户。
  2. 两个包含SMTA和SMTA材料数据的数据库表或数据视图。
  3. 在此应用程序的配置文件中进行配置。
  4. 运行./yii(或bin/fao-toolkit)smta/register命令。该命令使用参数来限制您打算发布/注册哪些SMTA。

要注册和/或更新DOI,您需要以下内容:

  1. FAO的Planttreaty站点上有账户(它实际上与上面的账户相同。如果您有Easysmta账户,您还将有一个注册DOI的账户。无论如何,如果您代表国家基因库或类似机构,请联系国际植物遗传资源食物和农业条约办公室。)
  2. 两个或更多包含GLIS数据的数据库表或数据视图(https://www.fao.org/3/bt113e/bt113e.pdf)。有关更多信息,请参阅fao-params-dist.php
  3. 在此应用程序的配置文件中进行配置。
  4. 运行./yii(或bin/fao-toolkit)glis:register命令。该命令使用参数来限制您打算发布/注册哪些GLIS。

安装

要使用Composer安装此项目,请在控制台中运行以下命令

composer create-project endlessdreams/fao-toolkit=^3.0 fao-toolkit

或手动将包添加到您的composer.json文件的require部分

"endlessdreams/fao-toolkit": "^3.0"

或全局安装

composer global create-project endlessdreams/fao-toolkit=^3.0 fao-toolkit

这将把fao-toolkit安装到~/.composer/vendor/目录中,最重要的是,fao-toolkit CLI工具也被安装到~/.composer/vendor/bin/。

只需将此目录添加到您的~/.bash_profile(或~/.bashrc)中,如下所示

export PATH=~/.composer/vendor/bin:$PATH

现在,fao-toolkit就在您的命令行中可用。

要确保您的工具保持最新,请这样做

composer global update
composer global install

要删除包,请编辑~/.composer/composer.json,然后运行composer global update。

数据库

为了能够使用SQLite之外的其他数据库,您还需要安装这些包和驱动程序。Foa-Toolkit在SQLite之外还测试了以下数据库类型; MySql、Postgres和SQL server。

要设置此命令以使用其他数据库,请按照链接进行操作。

配置

主要的配置文件名为fao-params-dist.php,位于fao-toolkit应用程序配置文件夹的子文件夹中。子文件夹可以是以下之一:

  • prod:用于生产。这是您通常使用的。
  • dev:用于开发到假服务器。
  • test:用于codeception测试。

请勿更改fao-params-dist.php文件。而是创建一个名为fao-params-local.php的副本。

fao-params-dist.php文件中,您将看到以下结构:


return [
    'options' => [
        'version' => '3',
    ],
    'databases' => [
        '@defaultModule' => 'smta',
        'database' => [
            0 => [
                '@module' => 'smta',
                'driver' => $_ENV['FT_DB_DRIVER'] ?: 'sqlite',
                'host' => $_ENV['FT_DB_HOST'] ?: 'localhost',
                'database_name' => $_ENV['FT_DB_DATABASE'] ?: '@resources/database/smta-prod.sq3',
                'port' => $_ENV['FT_DB_PORT'] ?: null,
                'options' => $_ENV['FT_DB_OPTIONS'] ?: [],
                'username' => $_ENV['FT_DB_USERNAME'] ?: 'dbuser',
                'password' => $_ENV['FT_DB_PASSWORD'] ?: 'dbpassword',
            ],
        ],
    ],
    ...


要设置数据库和FAO HTTPS API凭证,您可以在以下位置进行操作:

  • 在配置文件中
  • 在.env文件中设置环境变量
  • 或者,在/etc/environment中导出环境变量,并确保它们不会被.env文件覆盖。

有关如何配置命令的更多信息,请参阅配置文件。

用法

示例编写的方式是假设您的工作目录是bin或应用程序已全局安装。更多用法示例可以在用法文件中找到。

最重要的命令是列出您的选项。

fao-toolkit help

第二重要的命令是列出可用的命令。

fao-toolkit list

现在我们已经完成了基础知识,下面是一些实际的示例

获取WIEWS研究所注册组织的详细信息

fao-toolkit wiews:fetch NOR051

获取WINGS研究所代码注册组织的详细信息,并选择输出格式如JSON。

fao-toolkit wiews:fetch --format=json -- NOR051

测试生成GLIS(MCPD扩展标准)到终端。如您所注意到的,我们使用了一个“测试选项开关”。保留它以避免意外向FAO生产API发送请求。如果您已正确配置了具有正确URL和凭证的配置。

fao-toolkit glis:register --test --dry-run --limit=1 -vv

测试生成从2020-01-01开始的所有glis xml。(不需要https凭证,只需您的数据库)

fao-toolkit glis:register --test --dry-run --from=2023-01-01 --limit=1000 --skip-invalid

您可能会注意到打印出了概要统计信息,甚至一些验证错误。对于每个G lis或Smta命令调用,将创建一个Excel文件,其中包含任务统计信息。临时文件夹是此文件的默认文件夹。

要选择另一个输出路径,例如“./stats_file.xlsx”。此文件在存在一些验证错误时可能很有帮助。然后我们将列出它们,并注明哪个验证失败。

fao-toolkit glis:register --test --dry-run --from=2023-01-01 --limit=1000 --skip-invalid --output-path=./stats_file.xlsx

测试生成xml到终端。

fao-toolkit smta:register --test --dry-run -vv

测试生成所有smta xml到2018-01-01。(不需要https凭证,只需您的数据库)。类似于glis:register。请注意,如果没有明确指定order_by选项,smta的默认排序列是日期(smta的日期)。

fao-toolkit smta:register --test --dry-run --to=2018-01-01

测试发布所有截至2018-01-01的SMTA。

fao-toolkit smta:register --to=2018-01-01 --test

测试从2017-01-01发布到2018-01-01的所有SMTA。

fao-toolkit smta:register --from=2017-01-01 --to=2018-01-01 --test

实际发布所有截至2018-01-01的SMTA。(无测试)

fao-toolkit smta:register --to=2018-01-01

如果几个基因库托管在同一个服务器上,您必须明确指出您将注册哪个基因库/研究所的SMTA。然后您使用具有WINGS代码的run-as参数。

fao-toolkit smta:register --to=2018-01-01 --run-as=SWE054

如果run-as研究所使用不同前缀的访问号,并且只需注册一组。注意:这是针对MS SQL服务器,否则将使用正则表达式。

fao-toolkit smta:register --to=2018-01-01 --run-as=SWE054 --filter="NGB %"

测试

单元测试

模板附带现成的Codeception配置。为了执行测试,请运行

vendor/bin/codecept run

静态分析

代码使用Psalm进行静态分析。要运行静态分析

./vendor/bin/psalm

致谢

荷兰遗传资源中心ir. R (Roel) Hoekstra和dr.ir. TJL (Theo) van Hintum允许我查看他们的dos cmd工具包。

联合国粮农组织气候、生物多样性、土地和水部门马克罗·马尔塞拉先生,感谢您的大力支持。

许可证

此命令行程序在AGPL许可证下授权。

有关更多信息,请参阅许可证

Official website