Python 如何添加适当的';meta.yaml';创建conda forge软件包分发版的配方文件?特别是配方文件中的“测试”部分?
我正在尝试让conda forge托管我创建的python包,该包已经在PyPI上: 我已经阅读了关于贡献包的conda forge文档和关于通过Python 如何添加适当的';meta.yaml';创建conda forge软件包分发版的配方文件?特别是配方文件中的“测试”部分?,python,package,anaconda,software-distribution,conda-forge,Python,Package,Anaconda,Software Distribution,Conda Forge,我正在尝试让conda forge托管我创建的python包,该包已经在PyPI上: 我已经阅读了关于贡献包的conda forge文档和关于通过meta.yamlrecipe文件定义元数据的conda文档 我向conda forge/staged recipesrepo提交的拉取请求为。我的meta.yaml文件可以在该pull请求中找到,但我也将在这里以文本形式发布它: {% set name = "ludoSim-jaib1" %} {% set version = "0.0.1" %}
meta.yaml
recipe文件定义元数据的conda文档
我向conda forge/staged recipes
repo提交的拉取请求为。我的meta.yaml
文件可以在该pull请求中找到,但我也将在这里以文本形式发布它:
{% set name = "ludoSim-jaib1" %}
{% set version = "0.0.1" %}
package:
name: {{ name|lower }}
version: {{ version }}
source:
url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
sha256: 3342abcd52a6a18e1d4b0e2e626c051f24133187647c6618c0f81d7add28d543
build:
number: 0
script: python -m pip install . --no-deps -vv
skip: true # [py<30]
requirements:
host:
- python
- pip
run:
- python
test:
source_files:
tests/test_ludo.py
tests/runTest.py
imports:
- ludoSim
- pytest
about:
home: http://github.com/jaib1/ludoSim
license: GPL-3.0
license_family: GPL
license_file: LICENSE.md
summary: A simple ludo simulator
description: See the package README.md for more information.
extra:
recipe-maintainers:
- jaib1
{%set name=“ludoSim-jaib1”%}
{%set version=“0.0.1”%}
包裹:
名称:{{name | lower}}
版本:{{version}
资料来源:
网址:https://pypi.io/packages/source/{{name[0]}/{{name}/{{name}-{{version}}.tar.gz
sha256:3342abcd52a6a18e1d4b0e2e626c051f24133187647c6618c0f81d7add28d543
建造:
编号:0
脚本:python-mpip安装--无deps-vv
skip:true#[py以下文档是我在下面重复的所有内容的规范参考:
创建conda配方时,有(AFAIK)三种方法来定义将执行的测试:
- 在配方目录中创建
run\u test.[py,pl,sh,bat]
(这由conda build自动发现
- 包括
test/imports
以测试是否可以导入python模块
- 包括
test/commands
以运行任意shell命令
这些可以通过源文件
,要求
,以及其他一些键来补充,以正确设置测试环境的格式。我认为,根据您的问题描述:
对于我的包,我希望运行一个测试脚本,该脚本存在于我的包中,依赖于pytest包,并且需要在包所在位置的父目录中运行
你可能想要这样的东西:
test:
imports:
- ludoSim
source_files:
- tests/test_ludo.py
- tests/runTest.py
requires:
- pytest
commands:
- pytest tests/
这应该将给定的源文件
从源文件夹复制到测试目录中,然后安装pytest
,然后运行pytest/
。我不确定是否正确解释了您的目录要求,但您的test/命令
可以包含对pushd
或类似命令的任意数量的调用o移动到你需要的地方