fogbugz api对象关系映射器(orm)
fogbugz-orm的Python项目详细描述
**fogbugz orm-fogbugz orm包装fogbugz xml api**
这是一个python接口,指向"fogbugz xml api"问题跟踪程序(http://www.fogcreek.com/fogbugz/)。它包装了
`fogbugzpy`\python接口,该接口通过
`beautifulsoup`\u提供非类型的python绑定。除了类型转换之外,这个orm接口还使用"jsontree"模块提供fogbugz数据的直接json序列化。警告::
强烈建议您使用到FogBugz
服务器的SSL连接进行安全身份验证。
项目链接:
*`documentation<;http://pythonhosted.org/fogBugz orm/>;``u
*`pypi<;https://pypi.python.org/pypi/fogBugz orm>;`
*`github<;https://github.com/doug/foggbugz-orm>;````goggbugz`````foggbugz-xml-api````foggbugz``外部链接:
>
*`foggbugzpy```foggbugzpy````foggbugzpypi=>*`foggbugzpypi``foggbugzpypi=`foggbugzpypi=`foggbugzpypi=`foggbugzpypi=`foggbugbugzpypi`````````foggbugbugbugbugzpypi=>>>*`foggbugbug
…_ fogbugz:http://www.fogcreek.com/fogbugz/
。_ fogbugz xml api:http://fogbugz.stackexchange.com/fogbugzxmlapi
。_ fogbugzpy:https://developers.fogbugz.com/default.asp?W199<BR/>_美化组:http://www.crummy.com/software/beautifulsoup/bs3/documentation.html
。_ jsontree:http://pythonhosted.org/jsontree/
quick start
==
**比较fogbugzpy和fogbugz orm**
代码::python
resp=fb.search(cols="ixbug,stitle")
resp.case中的case.findall('case'):
打印%s:%s"%(case.ixbug.string,
case.stitle.string.encode('utf-8'))
等效的fogbugz orm代码:
。代码::python
case s=fb.search(cols="ixbug,stitle")
case-in-case:
打印%d:%s"%(case.ixbug,case.stitle)
*您可以直接作为列表访问case数组。
*列名在它们的正确的混合大小写与API匹配,因为它们必须用于COLS参数;``IXBUG``,``Stitle`.
*数据被提取并正确转换;``IXBUG``是一个整数,
``Stitle``是一个UTF-8转换字符串。
**从'To Be Closed'筛选器获取所有大小写,然后关上它们。代码::python
import fborm
\fborm登录表单1
fbo=fborm.fogbugzorm('https://hostname/',secret_u token)
查找"要关闭"筛选器
filters=fbo.listfilters()
对于筛选器中的筛选器:
如果filter.sname=="要关闭":
将其设置为当前筛选器
fbo.setcurrentfilter(filter)
###获取该筛选器中的所有案例
cases=fbo.search()
fbo.close(ixbug=case.ixbug)
**创建一个新的case**
…代码::python
import fborm
import jsontree
\fborm登录表单2
fbo=fborm.fogbugzorm('https://hostname/',username=u,密码=p)
bug=jsontree.jsontree()
bug.scategory='错误'
bug.sproject='我的项目'
bug.sarea='某个区域'
bug.stitle='错误的标题'
bug.tags=['tag1','tag2',"tag3"]
bug.sevent="
对正在进行的更改给出一些很长的注释
""
**列出一些数据**
……代码::python
\fbo.logon(username=u,password=p)
projects=fbo.listprojects()
areas=fbo.listprojects(ixproject=projects[0.ixproject)
=fbo.listcustomfieldnames()
**customfields插件数据**
customfields插件允许您将自己的元素添加到
`fogbugz`中的案例中。这些元素被添加到"fogbugz xml api"中,前缀为
,后缀为唯一的magic string。此外,任何标点符号都会被转换,
因此您需要使用
:py:meth:`fform.fogbugzorm.listcustomfieldnames`查找自定义字段。一旦您知道了这一点,
您可以通过为返回的数据设置"namemap"来简化代码。
这意味着如果您有多个具有相同customfields的服务器,
它们在api中将具有不同的名称。每台服务器都有一个"namemap"
,这大大简化了代码。代码::python
import form
fogbugz xml api中的代码名映射。
custom_field_map=dict(
sbranch='plugin_customfields_at_fogcreek_com_branchg83'
fogbugz xml之间的form类型映射python类型的api元素
)
namemap=custom庘field庘map)
庘bug.stitle
如果sbranch='功能'x':
bug.sbranch='功能'xy'
bug.sevent='功能'x'分支合并到'feature'xy'
del bug['dtopened'];只有管理员可以设置。
fbo.edit(错误,fbBugType)
这是一个python接口,指向"fogbugz xml api"问题跟踪程序(http://www.fogcreek.com/fogbugz/)。它包装了
`fogbugzpy`\python接口,该接口通过
`beautifulsoup`\u提供非类型的python绑定。除了类型转换之外,这个orm接口还使用"jsontree"模块提供fogbugz数据的直接json序列化。警告::
强烈建议您使用到FogBugz
服务器的SSL连接进行安全身份验证。
项目链接:
*`documentation<;http://pythonhosted.org/fogBugz orm/>;``u
*`pypi<;https://pypi.python.org/pypi/fogBugz orm>;`
*`github<;https://github.com/doug/foggbugz-orm>;````goggbugz`````foggbugz-xml-api````foggbugz``外部链接:
>
*`foggbugzpy```foggbugzpy````foggbugzpypi=>*`foggbugzpypi``foggbugzpypi=`foggbugzpypi=`foggbugzpypi=`foggbugzpypi=`foggbugbugzpypi`````````foggbugbugbugbugzpypi=>>>*`foggbugbug
…_ fogbugz:http://www.fogcreek.com/fogbugz/
。_ fogbugz xml api:http://fogbugz.stackexchange.com/fogbugzxmlapi
。_ fogbugzpy:https://developers.fogbugz.com/default.asp?W199<BR/>_美化组:http://www.crummy.com/software/beautifulsoup/bs3/documentation.html
。_ jsontree:http://pythonhosted.org/jsontree/
quick start
==
**比较fogbugzpy和fogbugz orm**
代码::python
resp=fb.search(cols="ixbug,stitle")
resp.case中的case.findall('case'):
打印%s:%s"%(case.ixbug.string,
case.stitle.string.encode('utf-8'))
等效的fogbugz orm代码:
。代码::python
case s=fb.search(cols="ixbug,stitle")
case-in-case:
打印%d:%s"%(case.ixbug,case.stitle)
*您可以直接作为列表访问case数组。
*列名在它们的正确的混合大小写与API匹配,因为它们必须用于COLS参数;``IXBUG``,``Stitle`.
*数据被提取并正确转换;``IXBUG``是一个整数,
``Stitle``是一个UTF-8转换字符串。
**从'To Be Closed'筛选器获取所有大小写,然后关上它们。代码::python
import fborm
\fborm登录表单1
fbo=fborm.fogbugzorm('https://hostname/',secret_u token)
查找"要关闭"筛选器
filters=fbo.listfilters()
对于筛选器中的筛选器:
如果filter.sname=="要关闭":
将其设置为当前筛选器
fbo.setcurrentfilter(filter)
###获取该筛选器中的所有案例
cases=fbo.search()
fbo.close(ixbug=case.ixbug)
**创建一个新的case**
…代码::python
import fborm
import jsontree
\fborm登录表单2
fbo=fborm.fogbugzorm('https://hostname/',username=u,密码=p)
bug=jsontree.jsontree()
bug.scategory='错误'
bug.sproject='我的项目'
bug.sarea='某个区域'
bug.stitle='错误的标题'
bug.tags=['tag1','tag2',"tag3"]
bug.sevent="
对正在进行的更改给出一些很长的注释
""
**列出一些数据**
……代码::python
areas=fbo.listprojects(ixproject=projects[0.ixproject)
=fbo.listcustomfieldnames()
**customfields插件数据**
customfields插件允许您将自己的元素添加到
`fogbugz`中的案例中。这些元素被添加到"fogbugz xml api"中,前缀为
,后缀为唯一的magic string。此外,任何标点符号都会被转换,
因此您需要使用
:py:meth:`fform.fogbugzorm.listcustomfieldnames`查找自定义字段。一旦您知道了这一点,
您可以通过为返回的数据设置"namemap"来简化代码。
这意味着如果您有多个具有相同customfields的服务器,
它们在api中将具有不同的名称。每台服务器都有一个"namemap"
,这大大简化了代码。代码::python
import form
fogbugz xml api中的代码名映射。
custom_field_map=dict(
sbranch='plugin_customfields_at_fogcreek_com_branchg83'
fogbugz xml之间的form类型映射python类型的api元素
)
namemap=custom庘field庘map)
庘bug.stitle
如果sbranch='功能'x':
bug.sbranch='功能'xy'
bug.sevent='功能'x'分支合并到'feature'xy'
del bug['dtopened'];只有管理员可以设置。
fbo.edit(错误,fbBugType)