Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/openpyxl/chart/series_factory.py: 11%

29 statements  

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

1# Copyright (c) 2010-2022 openpyxl 

2 

3from .data_source import NumDataSource, NumRef, AxDataSource 

4from .reference import Reference 

5from .series import Series, XYSeries, SeriesLabel, StrRef 

6from openpyxl.utils import rows_from_range, quote_sheetname 

7 

8 

9def SeriesFactory(values, xvalues=None, zvalues=None, title=None, title_from_data=False): 

10 """ 

11 Convenience Factory for creating chart data series. 

12 """ 

13 

14 if not isinstance(values, Reference): 

15 values = Reference(range_string=values) 

16 

17 if title_from_data: 

18 cell = values.pop() 

19 title = u"{0}!{1}".format(values.sheetname, cell) 

20 title = SeriesLabel(strRef=StrRef(title)) 

21 elif title is not None: 

22 title = SeriesLabel(v=title) 

23 

24 source = NumDataSource(numRef=NumRef(f=values)) 

25 if xvalues is not None: 

26 if not isinstance(xvalues, Reference): 

27 xvalues = Reference(range_string=xvalues) 

28 series = XYSeries() 

29 series.yVal = source 

30 series.xVal = AxDataSource(numRef=NumRef(f=xvalues)) 

31 if zvalues is not None: 

32 if not isinstance(zvalues, Reference): 

33 zvalues = Reference(range_string=zvalues) 

34 series.zVal = NumDataSource(NumRef(f=zvalues)) 

35 else: 

36 series = Series() 

37 series.val = source 

38 

39 if title is not None: 

40 series.title = title 

41 return series