python的workfront桥项目库
workfront-bridge的Python项目详细描述
#workfront bridge是一个库,它可以轻松地在workfront中创建桥项目。
这些自定义表单具有
多个参数,这些参数在创建项目时为fullfill(其他一些
参数在开发项目时为fullfill,而任务则为excepted)。
因此,为了实现这一目标,提供了两个主要的抽象:
*项目容器
*块
\它们的参数以及它们之间的依赖关系,以便它可以实例化和配置它们,而不会遇到困难。
任务位于Workfront模板项目中这一事实只是存储它们的一种方便方式(Workfront不允许定义一组
模板模板项目中的任务)。
通过
向其中添加不同类型的块来键入。
因此,基本上,通过创建一个项目
容器来构建工作区项目,根据
项目所需的行为设置相应的参数并将块附加到
项目容器。在此过程中,还将设置不同块的参数。
需要向wfblock构造函数提供workfront
服务和模板id。
模板ID只能包含属于此块的任务。
还可以将字段标记为可选字段,并要求在使用此块构造新项目时自动验证该字段。
:它有两个参数;name(必需)和age(可选)
"我的块模板")
超级(wfmailtestseedblock,self)。模板id)
self.\u set_required_fields(["name"])
self.\u set_optional_fields(["age"])
````
(可以是
整数,表示模板项目中的任务数,或者使用字符串
作为任务的名称)。
属性可以用于干净的设计:
`` python
@property
def name(self):
return self.\u name
@name.setter
def name(self,value):
self.name=value
self.set\task参数值("我的任务","name",值)
``
块知道如何配置由该块表示的任务组中的值。
但是,当从wfblock继承时,可以使用**u set_starter_task(task_identifier)**方法来更改这一点。
当缩进任务只组织任务时,这非常方便。因此,对于
示例,如果块中有以下任务:
*grouping task
*task 1
*task 2
例如,当任务1是自动的时,这是必需的。workfront proxy
仅当自动任务是已完成任务的直接前置任务时才启动。
因此,在本例中,当分组任务的前置任务完成时(并且
起始任务是分组任务)。任务1不会启动(因为分组任务
前置任务是任务1的间接前置任务)。因此,为了避免这种情况,任务1必须设置为起始任务。
这可以在如下块的构造函数中实现:
``python
def初始(…)
它的名字是
self._set_starter_task("task 1")
````
应提供Workfront模板项目的模板ID、所需的
和可选参数。这可以通过调用父
构造函数和方法**u set_required_fields**和
**u set_optional_fields**(您可以使用**template_id_from_name**
函数来获取模板id):
``python
class mywfprojectcontainer(wfprojectcontainer)
def来完成_初始化(self,wf,prj_name):
tid=template_id_from_name(wf,"我的wf template")
super(mywfprojectcontainer,self)。\uu初始化(wf,tid,prj_name)
self._set_required_fields(["workfront_param_value_req"])
self._set_optional_fields(["workfront_param_value_optional"])
````
然后您可以设置变量来填充调用**set_param_value**方法的
项目的参数值。例如:
`` python
@property
def my_param_value(self):
返回self。
@email_subject.setter
def my_param_value(self,v):
self。self.set_param_value("workfront_param_value_req",v)
```
您可以查看Workfront懔bridge.projects.email
中的**wfprojectemailcontainer**以获取完整示例。
项目容器可以
具有一个或多个相同类型的块。
将块添加到项目容器时,块将附加到项目中,使此新块依赖于上次添加的块。因此,例如,如果
block1、block2、block3按该顺序附加到同一个项目块,则将创建工作区项目,以便只有当block1中的最后一个任务完成时,block2中的起始任务才会被排除。同样的情况也发生在
block3上;创建的属于block3的启动任务只有在
block2的最后一个任务完成后才会启动。
用户有责任按照一定的逻辑顺序添加块
。
我们建议使用项目生成器,以便让那些希望使用此库创建工作区项目的人过上更轻松的生活。这允许用户
重用用于创建特定工作区项目的代码逻辑。
项目建设者提供了一个简单的接口,通过setter来创建不同的项目结构。要创建一个包含2个测试列表和1个seed
列表的简单电子邮件项目,您将执行类似的操作:
``python
from workfront.workfront import workfront
from workfront\u bridge.projects.email\u builder import emailprojectbuilder(使用workfront sdk)创建一个workfront服务对象
wf=workfront("email@wf.bridgemarketing.com","pass**)"
wf.login()
"项目测试名称")
在这种情况下,您将使用这个:
b.set_html_zip("s3://some/s3/path/creative.zip")
添加两个测试列表和一个实时种子列表
builder.add_test_list("s3://some/s3/test_list1.csv")
.add_test_list("s3://some/s3/test_list2.csv")
.set_seed_list("s3://some/s3/live_seed_list.csv")
生成并获取workfront项目
wf_project=b.build()
这些自定义表单具有
多个参数,这些参数在创建项目时为fullfill(其他一些
参数在开发项目时为fullfill,而任务则为excepted)。
因此,为了实现这一目标,提供了两个主要的抽象:
*项目容器
*块
\它们的参数以及它们之间的依赖关系,以便它可以实例化和配置它们,而不会遇到困难。
任务位于Workfront模板项目中这一事实只是存储它们的一种方便方式(Workfront不允许定义一组
模板模板项目中的任务)。
通过
向其中添加不同类型的块来键入。
因此,基本上,通过创建一个项目
容器来构建工作区项目,根据
项目所需的行为设置相应的参数并将块附加到
项目容器。在此过程中,还将设置不同块的参数。
需要向wfblock构造函数提供workfront
服务和模板id。
模板ID只能包含属于此块的任务。
还可以将字段标记为可选字段,并要求在使用此块构造新项目时自动验证该字段。
:它有两个参数;name(必需)和age(可选)
"我的块模板")
超级(wfmailtestseedblock,self)。模板id)
self.\u set_required_fields(["name"])
self.\u set_optional_fields(["age"])
````
(可以是
整数,表示模板项目中的任务数,或者使用字符串
作为任务的名称)。
属性可以用于干净的设计:
`` python
@property
def name(self):
return self.\u name
@name.setter
def name(self,value):
self.name=value
self.set\task参数值("我的任务","name",值)
``
块知道如何配置由该块表示的任务组中的值。
但是,当从wfblock继承时,可以使用**u set_starter_task(task_identifier)**方法来更改这一点。
当缩进任务只组织任务时,这非常方便。因此,对于
示例,如果块中有以下任务:
*grouping task
*task 1
*task 2
例如,当任务1是自动的时,这是必需的。workfront proxy
仅当自动任务是已完成任务的直接前置任务时才启动。
因此,在本例中,当分组任务的前置任务完成时(并且
起始任务是分组任务)。任务1不会启动(因为分组任务
前置任务是任务1的间接前置任务)。因此,为了避免这种情况,任务1必须设置为起始任务。
这可以在如下块的构造函数中实现:
``python
def初始(…)
它的名字是
self._set_starter_task("task 1")
````
应提供Workfront模板项目的模板ID、所需的
和可选参数。这可以通过调用父
构造函数和方法**u set_required_fields**和
**u set_optional_fields**(您可以使用**template_id_from_name**
函数来获取模板id):
``python
class mywfprojectcontainer(wfprojectcontainer)
def来完成_初始化(self,wf,prj_name):
tid=template_id_from_name(wf,"我的wf template")
super(mywfprojectcontainer,self)。\uu初始化(wf,tid,prj_name)
self._set_required_fields(["workfront_param_value_req"])
self._set_optional_fields(["workfront_param_value_optional"])
````
然后您可以设置变量来填充调用**set_param_value**方法的
项目的参数值。例如:
`` python
@property
def my_param_value(self):
返回self。
@email_subject.setter
def my_param_value(self,v):
self。self.set_param_value("workfront_param_value_req",v)
```
您可以查看Workfront懔bridge.projects.email
中的**wfprojectemailcontainer**以获取完整示例。
项目容器可以
具有一个或多个相同类型的块。
将块添加到项目容器时,块将附加到项目中,使此新块依赖于上次添加的块。因此,例如,如果
block1、block2、block3按该顺序附加到同一个项目块,则将创建工作区项目,以便只有当block1中的最后一个任务完成时,block2中的起始任务才会被排除。同样的情况也发生在
block3上;创建的属于block3的启动任务只有在
block2的最后一个任务完成后才会启动。
用户有责任按照一定的逻辑顺序添加块
。
我们建议使用项目生成器,以便让那些希望使用此库创建工作区项目的人过上更轻松的生活。这允许用户
重用用于创建特定工作区项目的代码逻辑。
项目建设者提供了一个简单的接口,通过setter来创建不同的项目结构。要创建一个包含2个测试列表和1个seed
列表的简单电子邮件项目,您将执行类似的操作:
``python
from workfront.workfront import workfront
from workfront\u bridge.projects.email\u builder import emailprojectbuilder(使用workfront sdk)创建一个workfront服务对象
wf=workfront("email@wf.bridgemarketing.com","pass**)"
wf.login()
"项目测试名称")
在这种情况下,您将使用这个:
b.set_html_zip("s3://some/s3/path/creative.zip")
添加两个测试列表和一个实时种子列表
builder.add_test_list("s3://some/s3/test_list1.csv")
.add_test_list("s3://some/s3/test_list2.csv")
.set_seed_list("s3://some/s3/live_seed_list.csv")
生成并获取workfront项目
wf_project=b.build()