gpt4 book ai didi

python - 带有两个以上术语的查询的 Rally pyral sdk 错误。 (解析表达式时出错——预期为 ")",但看到的却是 "AND"。)

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:48 24 4
gpt4 key购买 nike

我正在使用 pyral, the Rally python SDK ,我用一个元组格式化我的查询字符串,但似乎任何时候我有两个以上的术语都会失败。这是我的测试代码:

import pyral

rally = pyral.Rally('rally1.rallydev.com', 'user@example.com', 'password')

user = rally.getUserInfo(name='User Name').pop(0)
wksp = rally.getWorkspace()
proj = rally.getProject()

print user.FirstName, user.LastName
print wksp.Name
print proj.Name

queryStrings = (
('State != "Closed"', 'Owner = ' + user.ref),
('State != "Fixed"', 'Owner = ' + user.ref),
('State != "Closed"', 'State != "Fixed"'),
('State != "Closed"', 'State != "Fixed"', 'Owner = ' + user.ref),
('State != Closed', 'State != Fixed', 'State != Submitted'),
('State != Fixed', 'ScheduleState != Tested'),
('State != Fixed', 'Owner = ' + user.ref, 'ScheduleState != Tested'),
)

for query in queryStrings:
print "++++++++++++++++++++++++++++++++++++++++++"
print "Query:",query
defects = rally.get("Defect", True, query=query)
print "Number of results:",defects.resultCount
print "Errors:", defects.errors
print

这是结果输出

User Name
A Workspace
Web Project
++++++++++++++++++++++++++++++++++++++++++
Query: ('State != "Closed"', u'Owner = user/1234567890')
QUERYJUNK: ((State != "Closed") AND (Owner = user/1234567890))
Number of results: 25
Errors: []

++++++++++++++++++++++++++++++++++++++++++
Query: ('State != "Fixed"', u'Owner = user/1234567890')
QUERYJUNK: ((State != "Fixed") AND (Owner = user/1234567890))
Number of results: 89
Errors: []

++++++++++++++++++++++++++++++++++++++++++
Query: ('State != "Closed"', 'State != "Fixed"')
QUERYJUNK: ((State != "Closed") AND (State != "Fixed"))
Number of results: 149
Errors: []

++++++++++++++++++++++++++++++++++++++++++
Query: ('State != "Closed"', 'State != "Fixed"', u'Owner = user/1234567890')
QUERYJUNK: ((State != "Closed") AND (State != "Fixed") AND (Owner = user/1234567890))
Number of results: 0
Errors: [u'Could not parse: Error parsing expression -- expected ")" but saw "AND" instead.']

++++++++++++++++++++++++++++++++++++++++++
Query: ('State != Closed', 'State != Fixed', 'State != Submitted')
QUERYJUNK: ((State != Closed) AND (State != Fixed) AND (State != Submitted))
Number of results: 0
Errors: [u'Could not parse: Error parsing expression -- expected ")" but saw "AND" instead.']

++++++++++++++++++++++++++++++++++++++++++
Query: ('State != Fixed', 'ScheduleState != Tested')
QUERYJUNK: ((State != Fixed) AND (ScheduleState != Tested))
Number of results: 247
Errors: []

++++++++++++++++++++++++++++++++++++++++++
Query: ('State != Fixed', u'Owner = user/1234567890', 'ScheduleState != Tested')
QUERYJUNK: ((State != Fixed) AND (Owner = user/1234567890) AND (ScheduleState != Tested))
Number of results: 0
Errors: [u'Could not parse: Error parsing expression -- expected ")" but saw "AND" instead.']

QUERYJUNK 是 Rally SDK 在将其发送到 rally 服务之前构建的查询字符串的输出。

编辑:

由于根据 Kyle 的回答,这是 SDK 本身的错误,因此我在我的脚本中创建了一个解决方法,直到 SDK 可以被修复。

def buildQueryString(querySequence):
if type(query) in [types.ListType, types.TupleType]:
seq = ["(%s)" % (s,) for s in querySequence]
qs = "%s" % seq.pop(0)
for qt in seq:
qs = "(%s AND %s)" % (qs, qt)
print "QS:",qs
return qs

return querySequence

然后我将这个生成的字符串传递给 API,现在一切似乎都正常了。看起来 API 也支持查询参数的字典,但由于它没有记录,而且我不需要它,所以我没有为这种情况创建解决方法。

最佳答案

这似乎是 pyral 生成包含 2 个以上子句的查询字符串的错误。

目前是:

((State != Closed) AND (State != Fixed) AND (State != Submitted))

应该是:

(((State != Closed) AND (State != Fixed)) AND (State != Submitted))

我们将努力尽快修复此问题并在 github 上开源,以便社区可以更好地解决此类问题。

关于python - 带有两个以上术语的查询的 Rally pyral sdk 错误。 (解析表达式时出错——预期为 ")",但看到的却是 "AND"。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14675004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com