Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/openpyxl/worksheet/hyperlink.py: 60%

34 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1from openpyxl.descriptors.serialisable import Serialisable 

2from openpyxl.descriptors import ( 

3 String, 

4 Sequence, 

5) 

6from openpyxl.descriptors.excel import Relation 

7 

8 

9class Hyperlink(Serialisable): 

10 

11 tagname = "hyperlink" 

12 

13 ref = String() 

14 location = String(allow_none=True) 

15 tooltip = String(allow_none=True) 

16 display = String(allow_none=True) 

17 id = Relation() 

18 target = String(allow_none=True) 

19 

20 __attrs__ = ("ref", "location", "tooltip", "display", "id") 

21 

22 def __init__(self, 

23 ref=None, 

24 location=None, 

25 tooltip=None, 

26 display=None, 

27 id=None, 

28 target=None, 

29 ): 

30 self.ref = ref 

31 self.location = location 

32 self.tooltip = tooltip 

33 self.display = display 

34 self.id = id 

35 self.target = target 

36 

37 

38class HyperlinkList(Serialisable): 

39 

40 tagname = "hyperlinks" 

41 

42 hyperlink = Sequence(expected_type=Hyperlink) 

43 

44 def __init__(self, hyperlink=()): 

45 self.hyperlink = hyperlink 

46 

47 

48 def __bool__(self): 

49 return bool(self.hyperlink) 

50 

51 

52 def __len__(self): 

53 return len(self.hyperlink) 

54 

55 

56 def append(self, value): 

57 values = self.hyperlink[:] 

58 values.append(value) 

59 if not value.id: 

60 value.id = "rId{0}".format(len(values)) 

61 self.hyperlink = values