我能和鲁弗斯玩得好吗?

2024-07-08 09:59:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我对开发自我记录管道感兴趣。在

我能把Ruffus任务包装成Pweave块吗?在

Pweave and Ruffus
==============================================================

**Let's see if Pweave and ruffus can play nice**


<<load_imports>>=
import time
from ruffus import *
@

**Do this**
<<task1>>=
task1_param = [
                    [ None, 'job1.stage1'], # 1st job
                    [ None, 'job2.stage1'], # 2nd job
              ]
@files(task1_param)
def first_task(no_input_file, output_file):
    open(output_file, "w")
@

我感觉到鲁弗斯的装饰师们正在扔掉窗户:

^{pr2}$

也许有一个解决办法?在


Tags: andimportnoneoutput管道param记录job
2条回答

我是Ruffus的作者,刚刚签入Ruffus的更改,以允许它与pweave合作进入google源代码库。我将在下一个版本中。在

如果您不耐烦,可以使用以下命令行获取最新(固定)源代码:

hg clone https://bunbun68@code.google.com/p/ruffus/ 

利奥

具体情况如下:

Ruffus使用每个Ruffus task函数的完整限定名(带模块名)来唯一标识代码,以便可以通过名称引用管道任务。在

Pweave代码非常简单。不错!Pweave一次将代码块发送给python解释程序,以逐块进行exec-ed。当然,块不属于任何“模块”,任务函数的function.__module__值为None,而不是任何字符串。在

一个明智的str()None转换成{}似乎就解决了这个问题。在

利奥

记录在案,pweave与装饰师合作得很好。在

这与ruffus在使用function.__module__属性时如何识别该函数实际上必须属于模块文件的函数有关。我不确定我不能创建所有的标识符到函数中。在

如果编辑pweave附带的pweb.py脚本,使pweave()函数中的try:...except:语句更加冗长(最简单的方法是注释掉tryexcept部分)。你犯的错误是最深的恶作剧。在

我建议不要使用像ruffus这样的复杂库来进行教学,因为ruffus特别使用了一些黑客(语法糖,如果你愿意的话)来提供一个简单的用户界面。如果你执意要用它来达到这个目的,你可以试着联系一下对我的功能要求反应很快的作者。他可能对如何做这件事有些想法。在

相关问题 更多 >

    热门问题