跳转到主要内容

Quera技术挑战的构建系统

项目描述

qbuild 是Quera技术挑战的构建系统。

PyPI Black

安装

要安装qbuild,请运行以下命令

$ sudo pip install qbuild 

挑战结构

challenge-name (git repo)
├── src
│   ├── [ ... source and test files ... ]
│   ├── .gitignore (optional)
│   ├── .qignore (optional)
│   ├── .qsolution (optional)
│   ├── .qtest (optional, BUT USUALLY NEEDED)
│   └── .qrun.py (optional)
├── statement
│   ├── attachments
│   │   └── [ ... image files ... ]
│   └── statement.md
├── .gitignore
├── README.md  (generated from statement/statement.md, DO NOT EDIT)
├── tester_config.json
└── valid_files

CLI用法

qbuild:构建挑战

首先,使用cd命令进入挑战git仓库的根目录。然后运行qbuild命令。就这样!

$ cd GIT-REPO
$ qbuild

对于需要生成非Quera初始的jupyter问题

$ qbuild --jupyter

将生成dist文件夹和README.md文件。它为其内部工作创建.qbuild文件夹。不要推送它。将dist.qbuild添加到gitignore中。

qbuild diff

$ cd GIT-REPO
$ qbuild diff

此命令生成initialmodel_solution导出之间的diff。

这对于检查设置是否正确非常有用。

qbuild tree

$ qbuild tree path/to/some/directory

使用qbuild tree打印目录的树结构。不要使用tree命令或其他任何命令。

qbuild --version

打印当前安装的版本。

功能

问题声明

statement
├── attachments
│   ├── image1.png
│   └── image2.png
└── statement.md

statement.md 是一个Jinja2模板,必须继承statement_base.md。您可以使用变量 has_initialinitial_structuresolution_structure

{% extends "statement_base.md" %}

{% block name %}Problem Name{% endblock %}

{% block readme %}
... extra info about problem ...
{% endblock readme %}

{% block intro %}
... intro ...
![Image 1](attachments/image1.png)
{% endblock intro %}

{% block details %}
... details ...
{% endblock details %}

{% block notes %}
... notes ...
```
{{ solution_structure }}
```
{% endblock notes %}

忽略文件: .qignore.qsolution.qtest.qsampletest

这些文件必须位于src文件夹的根目录。它们的语法类似于gitignore。您可以在.qtest中指定测试文件。您可以在.qsampletest中指定样本测试文件。这些文件仅在model_solution导出中隐藏,并在.qsolution中指定解决方案文件。由.qignore忽略的文件将在所有导出中删除。

警告.qhide已弃用,并由.qsolution替换。

替换规则:注释指令

// _q_solution_begin
  ... Part of Solution ...
// _q_end

// _q_test_begin
  ... Part of Test ...
// _q_end

它们也可以有replace

// _q_solution_begin
  ... Part of Solution ...
// _q_replace
//  ... This will be uncommented & replaced ...
// _q_end

/* _q_test_begin */
  ... Part of Test ...
/* _q_replace */
/*  ... This will be uncommented & replaced ... */
/* _q_end */

支持任何单行注释语法。

每个块中的注释应遵循相同的语法。例如,您不能混合使用// .../* ... */

警告:这些指令已被弃用

  • _q_hide_from_users_begin:已被_q_solution_begin替换
  • _q_hide_from_users_end:已被_q_end替换

替换规则:.nosolution.notest

当注释指令无法帮助时...

src/path/to/some/file.js
src/path/to/some/file.nosolution.js  (`file.js` without solution)

src/path/to/some/file.js
src/path/to/some/file.notest.js  (`file.js` without test)

警告.initial已被弃用,并由.nosolution替换。

构建钩子:.qrun.py

.qrun.py必须位于src的根目录。每次导出时,qbuild都会运行.qrun.py

传递给.qrun.py的参数

  • --hide-solution:如果传递,当前导出不应包含解决方案。
  • --hide-test:如果传递,当前导出不应包含测试。

只有当其他功能不足时才使用.qrun.py

项目详情


下载文件

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

源分发

qbuild-0.3.7.tar.gz (22.6 kB 查看哈希值)

上传时间:

由以下组织支持