1 from bugzilla
.bug
import Bug
2 from bugzilla
import Bugzilla
3 from typing
import Set
, Dict
, Iterable
, Optional
4 from budget_sync
.util
import all_bugs
5 from budget_sync
.money
import Money
9 parent
: Optional
["Node"]
10 parent_id
: Optional
[int]
11 budget_excluding_subtasks
: Money
12 budget_including_subtasks
: Money
13 nlnet_milestone
: Optional
[str]
15 def __init__(self
, bug
: Bug
, bug_set
: Set
[Bug
] = None):
19 self
.bug_set
= bug_set
21 self
.parent_id
= getattr(bug
, "cf_budget_parent", None)
22 self
.budget_excluding_subtasks
= Money
.from_str(bug
.cf_budget
)
23 self
.budget_including_subtasks
= Money
.from_str(bug
.cf_total_budget
)
24 self
.nlnet_milestone
= bug
.cf_nlnet_milestone
25 if self
.nlnet_milestone
== "---":
26 self
.nlnet_milestone
= None
30 nodes
: Dict
[int, Node
]
32 def __init__(self
, bugs
: Iterable
[Bug
]):
35 self
.nodes
[bug
.id] = Node(bug
)
36 for bug_id
, node
in self
.nodes
.items():