还开着几个
按 Issue 模型,四个 Issue 状态是 open/done/review/done,open_count 交回几?
贯穿本节的 Issue 模型:状态流 FLOW=[open, in_progress, review, done]。next_state 往前推一格(到 done 就停)、open_count 数还没到 done 的、has_fields(issue, 必填) 必填字段齐没、closeable(子任务) 所有子任务 done 才可关。
FLOW = ["open", "in_progress", "review", "done"]
def next_state(state):
# 沿流程推进一格;到头(done)就停在 done
i = FLOW.index(state)
return FLOW[min(i + 1, len(FLOW) - 1)]
def open_count(issues):
# 还没到 done 的算「开着」
return sum(1 for s in issues if s != "done")
def has_fields(issue, required):
# 必填字段是否都非空
return all(issue.get(f) for f in required)
def closeable(subtasks):
# 所有子任务都 done 才能关
return all(s == "done" for s in subtasks)
print(open_count(["open", "done", "review", "done"]))
全部评论