Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/openpyxl/drawing/picture.py: 61%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

80 statements  

1# Copyright (c) 2010-2024 openpyxl 

2 

3from openpyxl.xml.constants import DRAWING_NS 

4 

5from openpyxl.descriptors.serialisable import Serialisable 

6from openpyxl.descriptors import ( 

7 Typed, 

8 Bool, 

9 String, 

10 Alias, 

11) 

12from openpyxl.descriptors.excel import ExtensionList as OfficeArtExtensionList 

13 

14from openpyxl.chart.shapes import GraphicalProperties 

15 

16from .fill import BlipFillProperties 

17from .properties import NonVisualDrawingProps 

18from .geometry import ShapeStyle 

19 

20 

21class PictureLocking(Serialisable): 

22 

23 tagname = "picLocks" 

24 namespace = DRAWING_NS 

25 

26 # Using attribute group AG_Locking 

27 noCrop = Bool(allow_none=True) 

28 noGrp = Bool(allow_none=True) 

29 noSelect = Bool(allow_none=True) 

30 noRot = Bool(allow_none=True) 

31 noChangeAspect = Bool(allow_none=True) 

32 noMove = Bool(allow_none=True) 

33 noResize = Bool(allow_none=True) 

34 noEditPoints = Bool(allow_none=True) 

35 noAdjustHandles = Bool(allow_none=True) 

36 noChangeArrowheads = Bool(allow_none=True) 

37 noChangeShapeType = Bool(allow_none=True) 

38 extLst = Typed(expected_type=OfficeArtExtensionList, allow_none=True) 

39 

40 __elements__ = () 

41 

42 def __init__(self, 

43 noCrop=None, 

44 noGrp=None, 

45 noSelect=None, 

46 noRot=None, 

47 noChangeAspect=None, 

48 noMove=None, 

49 noResize=None, 

50 noEditPoints=None, 

51 noAdjustHandles=None, 

52 noChangeArrowheads=None, 

53 noChangeShapeType=None, 

54 extLst=None, 

55 ): 

56 self.noCrop = noCrop 

57 self.noGrp = noGrp 

58 self.noSelect = noSelect 

59 self.noRot = noRot 

60 self.noChangeAspect = noChangeAspect 

61 self.noMove = noMove 

62 self.noResize = noResize 

63 self.noEditPoints = noEditPoints 

64 self.noAdjustHandles = noAdjustHandles 

65 self.noChangeArrowheads = noChangeArrowheads 

66 self.noChangeShapeType = noChangeShapeType 

67 

68 

69class NonVisualPictureProperties(Serialisable): 

70 

71 tagname = "cNvPicPr" 

72 

73 preferRelativeResize = Bool(allow_none=True) 

74 picLocks = Typed(expected_type=PictureLocking, allow_none=True) 

75 extLst = Typed(expected_type=OfficeArtExtensionList, allow_none=True) 

76 

77 __elements__ = ("picLocks",) 

78 

79 def __init__(self, 

80 preferRelativeResize=None, 

81 picLocks=None, 

82 extLst=None, 

83 ): 

84 self.preferRelativeResize = preferRelativeResize 

85 self.picLocks = picLocks 

86 

87 

88class PictureNonVisual(Serialisable): 

89 

90 tagname = "nvPicPr" 

91 

92 cNvPr = Typed(expected_type=NonVisualDrawingProps, ) 

93 cNvPicPr = Typed(expected_type=NonVisualPictureProperties, ) 

94 

95 __elements__ = ("cNvPr", "cNvPicPr") 

96 

97 def __init__(self, 

98 cNvPr=None, 

99 cNvPicPr=None, 

100 ): 

101 if cNvPr is None: 

102 cNvPr = NonVisualDrawingProps(id=0, name="Image 1", descr="Name of file") 

103 self.cNvPr = cNvPr 

104 if cNvPicPr is None: 

105 cNvPicPr = NonVisualPictureProperties() 

106 self.cNvPicPr = cNvPicPr 

107 

108 

109 

110 

111class PictureFrame(Serialisable): 

112 

113 tagname = "pic" 

114 

115 macro = String(allow_none=True) 

116 fPublished = Bool(allow_none=True) 

117 nvPicPr = Typed(expected_type=PictureNonVisual, ) 

118 blipFill = Typed(expected_type=BlipFillProperties, ) 

119 spPr = Typed(expected_type=GraphicalProperties, ) 

120 graphicalProperties = Alias('spPr') 

121 style = Typed(expected_type=ShapeStyle, allow_none=True) 

122 

123 __elements__ = ("nvPicPr", "blipFill", "spPr", "style") 

124 

125 def __init__(self, 

126 macro=None, 

127 fPublished=None, 

128 nvPicPr=None, 

129 blipFill=None, 

130 spPr=None, 

131 style=None, 

132 ): 

133 self.macro = macro 

134 self.fPublished = fPublished 

135 if nvPicPr is None: 

136 nvPicPr = PictureNonVisual() 

137 self.nvPicPr = nvPicPr 

138 if blipFill is None: 

139 blipFill = BlipFillProperties() 

140 self.blipFill = blipFill 

141 if spPr is None: 

142 spPr = GraphicalProperties() 

143 self.spPr = spPr 

144 self.style = style