-
Notifications
You must be signed in to change notification settings - Fork 0
/
milestone.py
42 lines (32 loc) · 1.06 KB
/
milestone.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from dataclasses import dataclass, field
from datetime import datetime
from typing import Set, Optional
__all__ = ["Milestone"]
@dataclass
class Milestone(object):
# These should come from Excel/PMCS
# Sound a warning if we override locally
code: str
name: str
wbs: str
level: Optional[int]
due: datetime
completed: Optional[datetime] = None
predecessors: Set[str] = field(default_factory=set)
successors: Set[str] = field(default_factory=set)
# These may be set locally without triggering a warning
aka: Set[str] = field(default_factory=set)
description: Optional[str] = None
comment: Optional[str] = None
_short_name: Optional[str] = None
test_spec: Optional[str] = None
jira: Optional[str] = None
jira_testplan: Optional[str] = None
@property
def short_name(self):
return self._short_name if self._short_name else self.name
@short_name.setter
def short_name(self, value):
self._short_name = value
def __repr__(self):
return "<Milestone: " + self.code + ">"