Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/openpyxl/styles/alignment.py: 90%

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

42 statements  

1# Copyright (c) 2010-2024 openpyxl 

2 

3from openpyxl.compat import safe_string 

4 

5from openpyxl.descriptors import Bool, MinMax, Min, Alias, NoneSet 

6from openpyxl.descriptors.serialisable import Serialisable 

7 

8 

9horizontal_alignments = ( 

10 "general", "left", "center", "right", "fill", "justify", "centerContinuous", 

11 "distributed", ) 

12vertical_aligments = ( 

13 "top", "center", "bottom", "justify", "distributed", 

14) 

15 

16class Alignment(Serialisable): 

17 """Alignment options for use in styles.""" 

18 

19 tagname = "alignment" 

20 

21 horizontal = NoneSet(values=horizontal_alignments) 

22 vertical = NoneSet(values=vertical_aligments) 

23 textRotation = NoneSet(values=range(181)) 

24 textRotation.values.add(255) 

25 text_rotation = Alias('textRotation') 

26 wrapText = Bool(allow_none=True) 

27 wrap_text = Alias('wrapText') 

28 shrinkToFit = Bool(allow_none=True) 

29 shrink_to_fit = Alias('shrinkToFit') 

30 indent = MinMax(min=0, max=255) 

31 relativeIndent = MinMax(min=-255, max=255) 

32 justifyLastLine = Bool(allow_none=True) 

33 readingOrder = Min(min=0) 

34 

35 def __init__(self, horizontal=None, vertical=None, 

36 textRotation=0, wrapText=None, shrinkToFit=None, indent=0, relativeIndent=0, 

37 justifyLastLine=None, readingOrder=0, text_rotation=None, 

38 wrap_text=None, shrink_to_fit=None, mergeCell=None): 

39 self.horizontal = horizontal 

40 self.vertical = vertical 

41 self.indent = indent 

42 self.relativeIndent = relativeIndent 

43 self.justifyLastLine = justifyLastLine 

44 self.readingOrder = readingOrder 

45 if text_rotation is not None: 

46 textRotation = text_rotation 

47 if textRotation is not None: 

48 self.textRotation = int(textRotation) 

49 if wrap_text is not None: 

50 wrapText = wrap_text 

51 self.wrapText = wrapText 

52 if shrink_to_fit is not None: 

53 shrinkToFit = shrink_to_fit 

54 self.shrinkToFit = shrinkToFit 

55 # mergeCell is vestigial 

56 

57 

58 def __iter__(self): 

59 for attr in self.__attrs__: 

60 value = getattr(self, attr) 

61 if value is not None and value != 0: 

62 yield attr, safe_string(value)