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

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

375 statements  

1# Copyright (c) 2010-2024 openpyxl 

2 

3 

4from openpyxl.descriptors.serialisable import Serialisable 

5from openpyxl.descriptors import ( 

6 Alias, 

7 Typed, 

8 Set, 

9 NoneSet, 

10 Sequence, 

11 String, 

12 Bool, 

13 MinMax, 

14 Integer 

15) 

16from openpyxl.descriptors.excel import ( 

17 HexBinary, 

18 Coordinate, 

19 Relation, 

20) 

21from openpyxl.descriptors.nested import ( 

22 NestedInteger, 

23 NestedText, 

24 NestedValue, 

25 EmptyTag 

26) 

27from openpyxl.xml.constants import DRAWING_NS 

28 

29 

30from .colors import ColorChoiceDescriptor 

31from .effect import ( 

32 EffectList, 

33 EffectContainer, 

34) 

35from .fill import( 

36 GradientFillProperties, 

37 BlipFillProperties, 

38 PatternFillProperties, 

39 Blip 

40) 

41from .geometry import ( 

42 LineProperties, 

43 Color, 

44 Scene3D 

45) 

46 

47from openpyxl.descriptors.excel import ExtensionList as OfficeArtExtensionList 

48from openpyxl.descriptors.nested import NestedBool 

49 

50 

51class EmbeddedWAVAudioFile(Serialisable): 

52 

53 name = String(allow_none=True) 

54 

55 def __init__(self, 

56 name=None, 

57 ): 

58 self.name = name 

59 

60 

61class Hyperlink(Serialisable): 

62 

63 tagname = "hlinkClick" 

64 namespace = DRAWING_NS 

65 

66 invalidUrl = String(allow_none=True) 

67 action = String(allow_none=True) 

68 tgtFrame = String(allow_none=True) 

69 tooltip = String(allow_none=True) 

70 history = Bool(allow_none=True) 

71 highlightClick = Bool(allow_none=True) 

72 endSnd = Bool(allow_none=True) 

73 snd = Typed(expected_type=EmbeddedWAVAudioFile, allow_none=True) 

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

75 id = Relation(allow_none=True) 

76 

77 __elements__ = ('snd',) 

78 

79 def __init__(self, 

80 invalidUrl=None, 

81 action=None, 

82 tgtFrame=None, 

83 tooltip=None, 

84 history=None, 

85 highlightClick=None, 

86 endSnd=None, 

87 snd=None, 

88 extLst=None, 

89 id=None, 

90 ): 

91 self.invalidUrl = invalidUrl 

92 self.action = action 

93 self.tgtFrame = tgtFrame 

94 self.tooltip = tooltip 

95 self.history = history 

96 self.highlightClick = highlightClick 

97 self.endSnd = endSnd 

98 self.snd = snd 

99 self.id = id 

100 

101 

102class Font(Serialisable): 

103 

104 tagname = "latin" 

105 namespace = DRAWING_NS 

106 

107 typeface = String() 

108 panose = HexBinary(allow_none=True) 

109 pitchFamily = MinMax(min=0, max=52, allow_none=True) 

110 charset = Integer(allow_none=True) 

111 

112 def __init__(self, 

113 typeface=None, 

114 panose=None, 

115 pitchFamily=None, 

116 charset=None, 

117 ): 

118 self.typeface = typeface 

119 self.panose = panose 

120 self.pitchFamily = pitchFamily 

121 self.charset = charset 

122 

123 

124class CharacterProperties(Serialisable): 

125 

126 tagname = "defRPr" 

127 namespace = DRAWING_NS 

128 

129 kumimoji = Bool(allow_none=True) 

130 lang = String(allow_none=True) 

131 altLang = String(allow_none=True) 

132 sz = MinMax(allow_none=True, min=100, max=400000) # 100ths of a point 

133 b = Bool(allow_none=True) 

134 i = Bool(allow_none=True) 

135 u = NoneSet(values=(['words', 'sng', 'dbl', 'heavy', 'dotted', 

136 'dottedHeavy', 'dash', 'dashHeavy', 'dashLong', 'dashLongHeavy', 

137 'dotDash', 'dotDashHeavy', 'dotDotDash', 'dotDotDashHeavy', 'wavy', 

138 'wavyHeavy', 'wavyDbl'])) 

139 strike = NoneSet(values=(['noStrike', 'sngStrike', 'dblStrike'])) 

140 kern = Integer(allow_none=True) 

141 cap = NoneSet(values=(['small', 'all'])) 

142 spc = Integer(allow_none=True) 

143 normalizeH = Bool(allow_none=True) 

144 baseline = Integer(allow_none=True) 

145 noProof = Bool(allow_none=True) 

146 dirty = Bool(allow_none=True) 

147 err = Bool(allow_none=True) 

148 smtClean = Bool(allow_none=True) 

149 smtId = Integer(allow_none=True) 

150 bmk = String(allow_none=True) 

151 ln = Typed(expected_type=LineProperties, allow_none=True) 

152 highlight = Typed(expected_type=Color, allow_none=True) 

153 latin = Typed(expected_type=Font, allow_none=True) 

154 ea = Typed(expected_type=Font, allow_none=True) 

155 cs = Typed(expected_type=Font, allow_none=True) 

156 sym = Typed(expected_type=Font, allow_none=True) 

157 hlinkClick = Typed(expected_type=Hyperlink, allow_none=True) 

158 hlinkMouseOver = Typed(expected_type=Hyperlink, allow_none=True) 

159 rtl = NestedBool(allow_none=True) 

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

161 # uses element group EG_FillProperties 

162 noFill = EmptyTag(namespace=DRAWING_NS) 

163 solidFill = ColorChoiceDescriptor() 

164 gradFill = Typed(expected_type=GradientFillProperties, allow_none=True) 

165 blipFill = Typed(expected_type=BlipFillProperties, allow_none=True) 

166 pattFill = Typed(expected_type=PatternFillProperties, allow_none=True) 

167 grpFill = EmptyTag(namespace=DRAWING_NS) 

168 # uses element group EG_EffectProperties 

169 effectLst = Typed(expected_type=EffectList, allow_none=True) 

170 effectDag = Typed(expected_type=EffectContainer, allow_none=True) 

171 # uses element group EG_TextUnderlineLine 

172 uLnTx = EmptyTag() 

173 uLn = Typed(expected_type=LineProperties, allow_none=True) 

174 # uses element group EG_TextUnderlineFill 

175 uFillTx = EmptyTag() 

176 uFill = EmptyTag() 

177 

178 __elements__ = ('ln', 'noFill', 'solidFill', 'gradFill', 'blipFill', 

179 'pattFill', 'grpFill', 'effectLst', 'effectDag', 'highlight','uLnTx', 

180 'uLn', 'uFillTx', 'uFill', 'latin', 'ea', 'cs', 'sym', 'hlinkClick', 

181 'hlinkMouseOver', 'rtl', ) 

182 

183 def __init__(self, 

184 kumimoji=None, 

185 lang=None, 

186 altLang=None, 

187 sz=None, 

188 b=None, 

189 i=None, 

190 u=None, 

191 strike=None, 

192 kern=None, 

193 cap=None, 

194 spc=None, 

195 normalizeH=None, 

196 baseline=None, 

197 noProof=None, 

198 dirty=None, 

199 err=None, 

200 smtClean=None, 

201 smtId=None, 

202 bmk=None, 

203 ln=None, 

204 highlight=None, 

205 latin=None, 

206 ea=None, 

207 cs=None, 

208 sym=None, 

209 hlinkClick=None, 

210 hlinkMouseOver=None, 

211 rtl=None, 

212 extLst=None, 

213 noFill=None, 

214 solidFill=None, 

215 gradFill=None, 

216 blipFill=None, 

217 pattFill=None, 

218 grpFill=None, 

219 effectLst=None, 

220 effectDag=None, 

221 uLnTx=None, 

222 uLn=None, 

223 uFillTx=None, 

224 uFill=None, 

225 ): 

226 self.kumimoji = kumimoji 

227 self.lang = lang 

228 self.altLang = altLang 

229 self.sz = sz 

230 self.b = b 

231 self.i = i 

232 self.u = u 

233 self.strike = strike 

234 self.kern = kern 

235 self.cap = cap 

236 self.spc = spc 

237 self.normalizeH = normalizeH 

238 self.baseline = baseline 

239 self.noProof = noProof 

240 self.dirty = dirty 

241 self.err = err 

242 self.smtClean = smtClean 

243 self.smtId = smtId 

244 self.bmk = bmk 

245 self.ln = ln 

246 self.highlight = highlight 

247 self.latin = latin 

248 self.ea = ea 

249 self.cs = cs 

250 self.sym = sym 

251 self.hlinkClick = hlinkClick 

252 self.hlinkMouseOver = hlinkMouseOver 

253 self.rtl = rtl 

254 self.noFill = noFill 

255 self.solidFill = solidFill 

256 self.gradFill = gradFill 

257 self.blipFill = blipFill 

258 self.pattFill = pattFill 

259 self.grpFill = grpFill 

260 self.effectLst = effectLst 

261 self.effectDag = effectDag 

262 self.uLnTx = uLnTx 

263 self.uLn = uLn 

264 self.uFillTx = uFillTx 

265 self.uFill = uFill 

266 

267 

268class TabStop(Serialisable): 

269 

270 pos = Typed(expected_type=Coordinate, allow_none=True) 

271 algn = Typed(expected_type=Set(values=(['l', 'ctr', 'r', 'dec']))) 

272 

273 def __init__(self, 

274 pos=None, 

275 algn=None, 

276 ): 

277 self.pos = pos 

278 self.algn = algn 

279 

280 

281class TabStopList(Serialisable): 

282 

283 tab = Typed(expected_type=TabStop, allow_none=True) 

284 

285 def __init__(self, 

286 tab=None, 

287 ): 

288 self.tab = tab 

289 

290 

291class Spacing(Serialisable): 

292 

293 spcPct = NestedInteger(allow_none=True) 

294 spcPts = NestedInteger(allow_none=True) 

295 

296 __elements__ = ('spcPct', 'spcPts') 

297 

298 def __init__(self, 

299 spcPct=None, 

300 spcPts=None, 

301 ): 

302 self.spcPct = spcPct 

303 self.spcPts = spcPts 

304 

305 

306class AutonumberBullet(Serialisable): 

307 

308 type = Set(values=(['alphaLcParenBoth', 'alphaUcParenBoth', 

309 'alphaLcParenR', 'alphaUcParenR', 'alphaLcPeriod', 'alphaUcPeriod', 

310 'arabicParenBoth', 'arabicParenR', 'arabicPeriod', 'arabicPlain', 

311 'romanLcParenBoth', 'romanUcParenBoth', 'romanLcParenR', 'romanUcParenR', 

312 'romanLcPeriod', 'romanUcPeriod', 'circleNumDbPlain', 

313 'circleNumWdBlackPlain', 'circleNumWdWhitePlain', 'arabicDbPeriod', 

314 'arabicDbPlain', 'ea1ChsPeriod', 'ea1ChsPlain', 'ea1ChtPeriod', 

315 'ea1ChtPlain', 'ea1JpnChsDbPeriod', 'ea1JpnKorPlain', 'ea1JpnKorPeriod', 

316 'arabic1Minus', 'arabic2Minus', 'hebrew2Minus', 'thaiAlphaPeriod', 

317 'thaiAlphaParenR', 'thaiAlphaParenBoth', 'thaiNumPeriod', 

318 'thaiNumParenR', 'thaiNumParenBoth', 'hindiAlphaPeriod', 

319 'hindiNumPeriod', 'hindiNumParenR', 'hindiAlpha1Period'])) 

320 startAt = Integer() 

321 

322 def __init__(self, 

323 type=None, 

324 startAt=None, 

325 ): 

326 self.type = type 

327 self.startAt = startAt 

328 

329 

330class ParagraphProperties(Serialisable): 

331 

332 tagname = "pPr" 

333 namespace = DRAWING_NS 

334 

335 marL = Integer(allow_none=True) 

336 marR = Integer(allow_none=True) 

337 lvl = Integer(allow_none=True) 

338 indent = Integer(allow_none=True) 

339 algn = NoneSet(values=(['l', 'ctr', 'r', 'just', 'justLow', 'dist', 'thaiDist'])) 

340 defTabSz = Integer(allow_none=True) 

341 rtl = Bool(allow_none=True) 

342 eaLnBrk = Bool(allow_none=True) 

343 fontAlgn = NoneSet(values=(['auto', 't', 'ctr', 'base', 'b'])) 

344 latinLnBrk = Bool(allow_none=True) 

345 hangingPunct = Bool(allow_none=True) 

346 

347 # uses element group EG_TextBulletColor 

348 # uses element group EG_TextBulletSize 

349 # uses element group EG_TextBulletTypeface 

350 # uses element group EG_TextBullet 

351 lnSpc = Typed(expected_type=Spacing, allow_none=True) 

352 spcBef = Typed(expected_type=Spacing, allow_none=True) 

353 spcAft = Typed(expected_type=Spacing, allow_none=True) 

354 tabLst = Typed(expected_type=TabStopList, allow_none=True) 

355 defRPr = Typed(expected_type=CharacterProperties, allow_none=True) 

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

357 buClrTx = EmptyTag() 

358 buClr = Typed(expected_type=Color, allow_none=True) 

359 buSzTx = EmptyTag() 

360 buSzPct = NestedInteger(allow_none=True) 

361 buSzPts = NestedInteger(allow_none=True) 

362 buFontTx = EmptyTag() 

363 buFont = Typed(expected_type=Font, allow_none=True) 

364 buNone = EmptyTag() 

365 buAutoNum = EmptyTag() 

366 buChar = NestedValue(expected_type=str, attribute="char", allow_none=True) 

367 buBlip = NestedValue(expected_type=Blip, attribute="blip", allow_none=True) 

368 

369 __elements__ = ('lnSpc', 'spcBef', 'spcAft', 'tabLst', 'defRPr', 

370 'buClrTx', 'buClr', 'buSzTx', 'buSzPct', 'buSzPts', 'buFontTx', 'buFont', 

371 'buNone', 'buAutoNum', 'buChar', 'buBlip') 

372 

373 def __init__(self, 

374 marL=None, 

375 marR=None, 

376 lvl=None, 

377 indent=None, 

378 algn=None, 

379 defTabSz=None, 

380 rtl=None, 

381 eaLnBrk=None, 

382 fontAlgn=None, 

383 latinLnBrk=None, 

384 hangingPunct=None, 

385 lnSpc=None, 

386 spcBef=None, 

387 spcAft=None, 

388 tabLst=None, 

389 defRPr=None, 

390 extLst=None, 

391 buClrTx=None, 

392 buClr=None, 

393 buSzTx=None, 

394 buSzPct=None, 

395 buSzPts=None, 

396 buFontTx=None, 

397 buFont=None, 

398 buNone=None, 

399 buAutoNum=None, 

400 buChar=None, 

401 buBlip=None, 

402 ): 

403 self.marL = marL 

404 self.marR = marR 

405 self.lvl = lvl 

406 self.indent = indent 

407 self.algn = algn 

408 self.defTabSz = defTabSz 

409 self.rtl = rtl 

410 self.eaLnBrk = eaLnBrk 

411 self.fontAlgn = fontAlgn 

412 self.latinLnBrk = latinLnBrk 

413 self.hangingPunct = hangingPunct 

414 self.lnSpc = lnSpc 

415 self.spcBef = spcBef 

416 self.spcAft = spcAft 

417 self.tabLst = tabLst 

418 self.defRPr = defRPr 

419 self.buClrTx = buClrTx 

420 self.buClr = buClr 

421 self.buSzTx = buSzTx 

422 self.buSzPct = buSzPct 

423 self.buSzPts = buSzPts 

424 self.buFontTx = buFontTx 

425 self.buFont = buFont 

426 self.buNone = buNone 

427 self.buAutoNum = buAutoNum 

428 self.buChar = buChar 

429 self.buBlip = buBlip 

430 self.defRPr = defRPr 

431 

432 

433class ListStyle(Serialisable): 

434 

435 tagname = "lstStyle" 

436 namespace = DRAWING_NS 

437 

438 defPPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

439 lvl1pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

440 lvl2pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

441 lvl3pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

442 lvl4pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

443 lvl5pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

444 lvl6pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

445 lvl7pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

446 lvl8pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

447 lvl9pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

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

449 

450 __elements__ = ("defPPr", "lvl1pPr", "lvl2pPr", "lvl3pPr", "lvl4pPr", 

451 "lvl5pPr", "lvl6pPr", "lvl7pPr", "lvl8pPr", "lvl9pPr") 

452 

453 def __init__(self, 

454 defPPr=None, 

455 lvl1pPr=None, 

456 lvl2pPr=None, 

457 lvl3pPr=None, 

458 lvl4pPr=None, 

459 lvl5pPr=None, 

460 lvl6pPr=None, 

461 lvl7pPr=None, 

462 lvl8pPr=None, 

463 lvl9pPr=None, 

464 extLst=None, 

465 ): 

466 self.defPPr = defPPr 

467 self.lvl1pPr = lvl1pPr 

468 self.lvl2pPr = lvl2pPr 

469 self.lvl3pPr = lvl3pPr 

470 self.lvl4pPr = lvl4pPr 

471 self.lvl5pPr = lvl5pPr 

472 self.lvl6pPr = lvl6pPr 

473 self.lvl7pPr = lvl7pPr 

474 self.lvl8pPr = lvl8pPr 

475 self.lvl9pPr = lvl9pPr 

476 

477 

478class RegularTextRun(Serialisable): 

479 

480 tagname = "r" 

481 namespace = DRAWING_NS 

482 

483 rPr = Typed(expected_type=CharacterProperties, allow_none=True) 

484 properties = Alias("rPr") 

485 t = NestedText(expected_type=str) 

486 value = Alias("t") 

487 

488 __elements__ = ('rPr', 't') 

489 

490 def __init__(self, 

491 rPr=None, 

492 t="", 

493 ): 

494 self.rPr = rPr 

495 self.t = t 

496 

497 

498class LineBreak(Serialisable): 

499 

500 tagname = "br" 

501 namespace = DRAWING_NS 

502 

503 rPr = Typed(expected_type=CharacterProperties, allow_none=True) 

504 

505 __elements__ = ('rPr',) 

506 

507 def __init__(self, 

508 rPr=None, 

509 ): 

510 self.rPr = rPr 

511 

512 

513class TextField(Serialisable): 

514 

515 id = String() 

516 type = String(allow_none=True) 

517 rPr = Typed(expected_type=CharacterProperties, allow_none=True) 

518 pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

519 t = String(allow_none=True) 

520 

521 __elements__ = ('rPr', 'pPr') 

522 

523 def __init__(self, 

524 id=None, 

525 type=None, 

526 rPr=None, 

527 pPr=None, 

528 t=None, 

529 ): 

530 self.id = id 

531 self.type = type 

532 self.rPr = rPr 

533 self.pPr = pPr 

534 self.t = t 

535 

536 

537class Paragraph(Serialisable): 

538 

539 tagname = "p" 

540 namespace = DRAWING_NS 

541 

542 # uses element group EG_TextRun 

543 pPr = Typed(expected_type=ParagraphProperties, allow_none=True) 

544 properties = Alias("pPr") 

545 endParaRPr = Typed(expected_type=CharacterProperties, allow_none=True) 

546 r = Sequence(expected_type=RegularTextRun) 

547 text = Alias('r') 

548 br = Typed(expected_type=LineBreak, allow_none=True) 

549 fld = Typed(expected_type=TextField, allow_none=True) 

550 

551 __elements__ = ('pPr', 'r', 'br', 'fld', 'endParaRPr') 

552 

553 def __init__(self, 

554 pPr=None, 

555 endParaRPr=None, 

556 r=None, 

557 br=None, 

558 fld=None, 

559 ): 

560 self.pPr = pPr 

561 self.endParaRPr = endParaRPr 

562 if r is None: 

563 r = [RegularTextRun()] 

564 self.r = r 

565 self.br = br 

566 self.fld = fld 

567 

568 

569class GeomGuide(Serialisable): 

570 

571 name = String(()) 

572 fmla = String(()) 

573 

574 def __init__(self, 

575 name=None, 

576 fmla=None, 

577 ): 

578 self.name = name 

579 self.fmla = fmla 

580 

581 

582class GeomGuideList(Serialisable): 

583 

584 gd = Sequence(expected_type=GeomGuide, allow_none=True) 

585 

586 def __init__(self, 

587 gd=None, 

588 ): 

589 self.gd = gd 

590 

591 

592class PresetTextShape(Serialisable): 

593 

594 prst = Typed(expected_type=Set(values=( 

595 ['textNoShape', 'textPlain','textStop', 'textTriangle', 'textTriangleInverted', 'textChevron', 

596 'textChevronInverted', 'textRingInside', 'textRingOutside', 'textArchUp', 

597 'textArchDown', 'textCircle', 'textButton', 'textArchUpPour', 

598 'textArchDownPour', 'textCirclePour', 'textButtonPour', 'textCurveUp', 

599 'textCurveDown', 'textCanUp', 'textCanDown', 'textWave1', 'textWave2', 

600 'textDoubleWave1', 'textWave4', 'textInflate', 'textDeflate', 

601 'textInflateBottom', 'textDeflateBottom', 'textInflateTop', 

602 'textDeflateTop', 'textDeflateInflate', 'textDeflateInflateDeflate', 

603 'textFadeRight', 'textFadeLeft', 'textFadeUp', 'textFadeDown', 

604 'textSlantUp', 'textSlantDown', 'textCascadeUp', 'textCascadeDown' 

605 ] 

606 ))) 

607 avLst = Typed(expected_type=GeomGuideList, allow_none=True) 

608 

609 def __init__(self, 

610 prst=None, 

611 avLst=None, 

612 ): 

613 self.prst = prst 

614 self.avLst = avLst 

615 

616 

617class TextNormalAutofit(Serialisable): 

618 

619 fontScale = Integer() 

620 lnSpcReduction = Integer() 

621 

622 def __init__(self, 

623 fontScale=None, 

624 lnSpcReduction=None, 

625 ): 

626 self.fontScale = fontScale 

627 self.lnSpcReduction = lnSpcReduction 

628 

629 

630class RichTextProperties(Serialisable): 

631 

632 tagname = "bodyPr" 

633 namespace = DRAWING_NS 

634 

635 rot = Integer(allow_none=True) 

636 spcFirstLastPara = Bool(allow_none=True) 

637 vertOverflow = NoneSet(values=(['overflow', 'ellipsis', 'clip'])) 

638 horzOverflow = NoneSet(values=(['overflow', 'clip'])) 

639 vert = NoneSet(values=(['horz', 'vert', 'vert270', 'wordArtVert', 

640 'eaVert', 'mongolianVert', 'wordArtVertRtl'])) 

641 wrap = NoneSet(values=(['none', 'square'])) 

642 lIns = Integer(allow_none=True) 

643 tIns = Integer(allow_none=True) 

644 rIns = Integer(allow_none=True) 

645 bIns = Integer(allow_none=True) 

646 numCol = Integer(allow_none=True) 

647 spcCol = Integer(allow_none=True) 

648 rtlCol = Bool(allow_none=True) 

649 fromWordArt = Bool(allow_none=True) 

650 anchor = NoneSet(values=(['t', 'ctr', 'b', 'just', 'dist'])) 

651 anchorCtr = Bool(allow_none=True) 

652 forceAA = Bool(allow_none=True) 

653 upright = Bool(allow_none=True) 

654 compatLnSpc = Bool(allow_none=True) 

655 prstTxWarp = Typed(expected_type=PresetTextShape, allow_none=True) 

656 scene3d = Typed(expected_type=Scene3D, allow_none=True) 

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

658 noAutofit = EmptyTag() 

659 normAutofit = EmptyTag() 

660 spAutoFit = EmptyTag() 

661 flatTx = NestedInteger(attribute="z", allow_none=True) 

662 

663 __elements__ = ('prstTxWarp', 'scene3d', 'noAutofit', 'normAutofit', 'spAutoFit') 

664 

665 def __init__(self, 

666 rot=None, 

667 spcFirstLastPara=None, 

668 vertOverflow=None, 

669 horzOverflow=None, 

670 vert=None, 

671 wrap=None, 

672 lIns=None, 

673 tIns=None, 

674 rIns=None, 

675 bIns=None, 

676 numCol=None, 

677 spcCol=None, 

678 rtlCol=None, 

679 fromWordArt=None, 

680 anchor=None, 

681 anchorCtr=None, 

682 forceAA=None, 

683 upright=None, 

684 compatLnSpc=None, 

685 prstTxWarp=None, 

686 scene3d=None, 

687 extLst=None, 

688 noAutofit=None, 

689 normAutofit=None, 

690 spAutoFit=None, 

691 flatTx=None, 

692 ): 

693 self.rot = rot 

694 self.spcFirstLastPara = spcFirstLastPara 

695 self.vertOverflow = vertOverflow 

696 self.horzOverflow = horzOverflow 

697 self.vert = vert 

698 self.wrap = wrap 

699 self.lIns = lIns 

700 self.tIns = tIns 

701 self.rIns = rIns 

702 self.bIns = bIns 

703 self.numCol = numCol 

704 self.spcCol = spcCol 

705 self.rtlCol = rtlCol 

706 self.fromWordArt = fromWordArt 

707 self.anchor = anchor 

708 self.anchorCtr = anchorCtr 

709 self.forceAA = forceAA 

710 self.upright = upright 

711 self.compatLnSpc = compatLnSpc 

712 self.prstTxWarp = prstTxWarp 

713 self.scene3d = scene3d 

714 self.noAutofit = noAutofit 

715 self.normAutofit = normAutofit 

716 self.spAutoFit = spAutoFit 

717 self.flatTx = flatTx