From e3713583f65ef3b463e640329a2f744e69caec1c Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 10 Jan 2023 05:33:48 -0500 Subject: [PATCH 01/51] Bring openpyxl stubs at least up to par with microsoft/python-type-stubs --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 550 +++++++++++++++++- stubs/openpyxl/METADATA.toml | 4 + stubs/openpyxl/openpyxl/__init__.pyi | 6 + stubs/openpyxl/openpyxl/cell/_writer.pyi | 4 +- stubs/openpyxl/openpyxl/cell/cell.pyi | 99 ++-- stubs/openpyxl/openpyxl/cell/text.pyi | 117 ++-- stubs/openpyxl/openpyxl/chart/axis.pyi | 407 +++++++------ stubs/openpyxl/openpyxl/chart/label.pyi | 128 ++-- .../openpyxl/chartsheet/properties.pyi | 16 +- stubs/openpyxl/openpyxl/compat/numbers.pyi | 78 ++- .../openpyxl/descriptors/__init__.pyi | 13 +- .../openpyxl/descriptors/sequence.pyi | 24 +- stubs/openpyxl/openpyxl/drawing/image.pyi | 11 +- stubs/openpyxl/openpyxl/reader/drawings.pyi | 4 +- stubs/openpyxl/openpyxl/reader/excel.pyi | 41 +- stubs/openpyxl/openpyxl/reader/strings.pyi | 11 +- stubs/openpyxl/openpyxl/reader/workbook.pyi | 29 +- stubs/openpyxl/openpyxl/styles/alignment.pyi | 67 ++- stubs/openpyxl/openpyxl/styles/borders.pyi | 115 ++-- stubs/openpyxl/openpyxl/styles/colors.pyi | 145 +++-- .../openpyxl/openpyxl/styles/differential.pyi | 53 +- stubs/openpyxl/openpyxl/styles/fills.pyi | 170 ++++-- stubs/openpyxl/openpyxl/styles/fonts.pyi | 94 +-- .../openpyxl/openpyxl/styles/named_styles.pyi | 115 ++-- stubs/openpyxl/openpyxl/styles/numbers.pyi | 85 +-- stubs/openpyxl/openpyxl/styles/protection.pyi | 6 +- stubs/openpyxl/openpyxl/styles/styleable.pyi | 44 +- stubs/openpyxl/openpyxl/utils/cell.pyi | 19 +- stubs/openpyxl/openpyxl/utils/escape.pyi | 4 +- stubs/openpyxl/openpyxl/utils/formulas.pyi | 359 +++++++++++- stubs/openpyxl/openpyxl/workbook/child.pyi | 25 +- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 97 +-- stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 159 ++--- stubs/openpyxl/openpyxl/worksheet/_writer.pyi | 24 +- .../openpyxl/worksheet/cell_range.pyi | 49 +- stubs/openpyxl/openpyxl/worksheet/copier.pyi | 8 +- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 119 ++-- stubs/openpyxl/openpyxl/writer/excel.pyi | 11 +- stubs/openpyxl/openpyxl/xml/__init__.pyi | 14 +- stubs/openpyxl/openpyxl/xml/_functions.pyi | 60 ++ stubs/openpyxl/openpyxl/xml/functions.pyi | 72 ++- 41 files changed, 2476 insertions(+), 980 deletions(-) create mode 100644 stubs/openpyxl/openpyxl/xml/_functions.pyi diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index e72809b440af..4f19b161a310 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -1,2 +1,550 @@ # "cls" argument has wrong name in implementation. -openpyxl.descriptors.slots.AutoSlotProperties.__new__ +openpyxl.descriptors.slots.AutoSlotProperties.__new__ + +# The actual runtime definition depends on what else is installed +# (lxml, defusedxml, et_xmlfile, numpy, ...) +openpyxl.compat.NUMERIC_TYPES +openpyxl.xml._functions +openpyxl.xml.functions.xmlfile +openpyxl.xml.functions.tostring +openpyxl.xml.functions.Element.__iter__ + +# Inconsistent __init__ because +# - using the default value results in an error because of the runtime type-guards +# - or, keyword arguments are explicitely specified +openpyxl.cell.text.PhoneticProperties.__init__ +openpyxl.cell.text.PhoneticText.__init__ +openpyxl.chart.axis.DateAxis.__init__ +openpyxl.chart.axis.NumericAxis.__init__ +openpyxl.chart.axis.SeriesAxis.__init__ +openpyxl.chart.axis.TextAxis.__init__ +openpyxl.chart.axis._BaseAxis.__init__ +openpyxl.styles.colors.RgbColor.__init__ +openpyxl.styles.named_styles._NamedCellStyle.__init__ +openpyxl.styles.numbers.NumberFormat.__init__ + +# Leaked into the global space +openpyxl.utils.cell.col +openpyxl.utils.cell.i + +# Unintended re-exports +openpyxl.cell._writer.LXML +openpyxl.cell._writer.REL_NS +openpyxl.cell._writer.XML_NS +openpyxl.cell.cell.NUMERIC_TYPES +openpyxl.cell.read_only.BUILTIN_FORMATS +openpyxl.cell.read_only.BUILTIN_FORMATS_MAX_SIZE +openpyxl.chart._chart.attribute_mapping +openpyxl.chart.axis.CHART_NS +openpyxl.chart.chartspace.CHART_NS +openpyxl.chart.marker.DRAWING_NS +openpyxl.chart.marker.PRESET_COLORS +openpyxl.chart.shapes.DRAWING_NS +openpyxl.chart.shapes.PRESET_COLORS +openpyxl.chartsheet.chartsheet.REL_NS +openpyxl.chartsheet.chartsheet.SHEET_MAIN_NS +openpyxl.comments.comment_sheet.SHEET_MAIN_NS +openpyxl.comments.comment_sheet.tostring +openpyxl.comments.shape_writer.tostring +openpyxl.compat.numbers.NUMERIC_TYPES +openpyxl.compat.strings.NUMERIC_TYPES +openpyxl.descriptors.excel.REL_NS +openpyxl.descriptors.serialisable.kwlist +openpyxl.drawing.colors.DRAWING_NS +openpyxl.drawing.drawing.BLACK +openpyxl.drawing.drawing.WHITE +openpyxl.drawing.fill.DRAWING_NS +openpyxl.drawing.fill.PRESET_COLORS +openpyxl.drawing.geometry.DRAWING_NS +openpyxl.drawing.graphic.CHART_NS +openpyxl.drawing.graphic.DRAWING_NS +openpyxl.drawing.graphic.NS_REGEX +openpyxl.drawing.graphic.REL_NS +openpyxl.drawing.line.DRAWING_NS +openpyxl.drawing.picture.DRAWING_NS +openpyxl.drawing.properties.DRAWING_NS +openpyxl.drawing.relation.CHART_NS +openpyxl.drawing.spreadsheet_drawing.SHEET_DRAWING_NS +openpyxl.drawing.text.DRAWING_NS +openpyxl.drawing.text.PRESET_COLORS +openpyxl.formatting.rule.COORD_RE +openpyxl.packaging.core.COREPROPS_NS +openpyxl.packaging.core.DCORE_NS +openpyxl.packaging.core.DCTERMS_NS +openpyxl.packaging.core.DCTERMS_PREFIX +openpyxl.packaging.core.XSI_NS +openpyxl.packaging.core.tostring +openpyxl.packaging.extended.XPROPS_NS +openpyxl.packaging.manifest.ACTIVEX +openpyxl.packaging.manifest.ARC_APP +openpyxl.packaging.manifest.ARC_CONTENT_TYPES +openpyxl.packaging.manifest.ARC_CORE +openpyxl.packaging.manifest.ARC_SHARED_STRINGS +openpyxl.packaging.manifest.ARC_STYLE +openpyxl.packaging.manifest.ARC_THEME +openpyxl.packaging.manifest.ARC_WORKBOOK +openpyxl.packaging.manifest.CHARTSHAPE_TYPE +openpyxl.packaging.manifest.CHARTSHEET_TYPE +openpyxl.packaging.manifest.CHART_TYPE +openpyxl.packaging.manifest.COMMENTS_TYPE +openpyxl.packaging.manifest.CONTYPES_NS +openpyxl.packaging.manifest.CTRL +openpyxl.packaging.manifest.DRAWING_TYPE +openpyxl.packaging.manifest.EXTERNAL_LINK +openpyxl.packaging.manifest.SHARED_STRINGS +openpyxl.packaging.manifest.STYLES_TYPE +openpyxl.packaging.manifest.THEME_TYPE +openpyxl.packaging.manifest.VBA +openpyxl.packaging.manifest.WORKSHEET_TYPE +openpyxl.packaging.manifest.XLSM +openpyxl.packaging.manifest.XLSX +openpyxl.packaging.manifest.XLTM +openpyxl.packaging.manifest.XLTX +openpyxl.packaging.manifest.tostring +openpyxl.packaging.relationship.PKG_REL_NS +openpyxl.packaging.relationship.REL_NS +openpyxl.packaging.relationship.tostring +openpyxl.packaging.workbook.SHEET_MAIN_NS +openpyxl.pivot.cache.SHEET_MAIN_NS +openpyxl.pivot.cache.tostring +openpyxl.pivot.record.SHEET_MAIN_NS +openpyxl.pivot.record.tostring +openpyxl.pivot.table.SHEET_MAIN_NS +openpyxl.pivot.table.tostring +openpyxl.reader.drawings.IMAGE_NS +openpyxl.reader.drawings.PILImage +openpyxl.reader.excel.ARC_CONTENT_TYPES +openpyxl.reader.excel.ARC_CORE +openpyxl.reader.excel.ARC_SHARED_STRINGS +openpyxl.reader.excel.ARC_THEME +openpyxl.reader.excel.ARC_WORKBOOK +openpyxl.reader.excel.COMMENTS_NS +openpyxl.reader.excel.EXTERNAL_LINK +openpyxl.reader.excel.KEEP_VBA +openpyxl.reader.excel.SHARED_STRINGS +openpyxl.reader.excel.XLSM +openpyxl.reader.excel.XLSX +openpyxl.reader.excel.XLTM +openpyxl.reader.excel.XLTX +openpyxl.reader.excel.ZIP_DEFLATED +openpyxl.reader.strings.SHEET_MAIN_NS +openpyxl.reader.workbook.CALENDAR_MAC_1904 +openpyxl.styles.fills.SHEET_MAIN_NS +openpyxl.styles.fonts.BLACK +openpyxl.styles.fonts.SHEET_MAIN_NS +openpyxl.styles.named_styles.BUILTIN_FORMATS_MAX_SIZE +openpyxl.styles.named_styles.BUILTIN_FORMATS_REVERSE +openpyxl.styles.styleable.BUILTIN_FORMATS +openpyxl.styles.styleable.BUILTIN_FORMATS_MAX_SIZE +openpyxl.styles.styleable.BUILTIN_FORMATS_REVERSE +openpyxl.styles.styleable.styles +openpyxl.styles.stylesheet.ARC_STYLE +openpyxl.styles.stylesheet.BUILTIN_FORMATS +openpyxl.styles.stylesheet.BUILTIN_FORMATS_MAX_SIZE +openpyxl.styles.stylesheet.BUILTIN_FORMATS_REVERSE +openpyxl.styles.stylesheet.COLOR_INDEX +openpyxl.styles.stylesheet.SHEET_MAIN_NS +openpyxl.styles.stylesheet.styles +openpyxl.utils.cell.digits +openpyxl.workbook._writer.ARC_APP +openpyxl.workbook._writer.ARC_CORE +openpyxl.workbook._writer.ARC_ROOT_RELS +openpyxl.workbook._writer.ARC_WORKBOOK +openpyxl.workbook._writer.CALENDAR_MAC_1904 +openpyxl.workbook._writer.CUSTOMUI_NS +openpyxl.workbook._writer.PKG_REL_NS +openpyxl.workbook._writer.tostring +openpyxl.workbook.defined_name.SHEETRANGE_RE +openpyxl.workbook.defined_name.SHEET_TITLE +openpyxl.workbook.external_link.external.SHEET_MAIN_NS +openpyxl.workbook.workbook.COLOR_INDEX +openpyxl.workbook.workbook.MAC_EPOCH +openpyxl.workbook.workbook.WINDOWS_EPOCH +openpyxl.workbook.workbook.XLSM +openpyxl.workbook.workbook.XLSX +openpyxl.workbook.workbook.XLTM +openpyxl.workbook.workbook.XLTX +openpyxl.worksheet._reader.EXT_TYPES +openpyxl.worksheet._reader.SHEET_MAIN_NS +openpyxl.worksheet._reader.WINDOWS_EPOCH +openpyxl.worksheet._writer.SHEET_MAIN_NS +openpyxl.worksheet.dimensions.DEFAULT_COLUMN_WIDTH +openpyxl.worksheet.ole.SHEET_DRAWING_NS +openpyxl.worksheet.table.REL_NS +openpyxl.worksheet.table.SHEET_MAIN_NS +openpyxl.worksheet.table.tostring +openpyxl.worksheet.worksheet.COL_RANGE_RE +openpyxl.worksheet.worksheet.ROW_RANGE_RE +openpyxl.writer.excel.ARC_APP +openpyxl.writer.excel.ARC_CONTENT_TYPES +openpyxl.writer.excel.ARC_CORE +openpyxl.writer.excel.ARC_ROOT_RELS +openpyxl.writer.excel.ARC_SHARED_STRINGS +openpyxl.writer.excel.ARC_STYLE +openpyxl.writer.excel.ARC_THEME +openpyxl.writer.excel.ARC_WORKBOOK +openpyxl.writer.excel.ARC_WORKBOOK_RELS +openpyxl.writer.excel.PACKAGE_CHARTS +openpyxl.writer.excel.PACKAGE_CHARTSHEETS +openpyxl.writer.excel.PACKAGE_DRAWINGS +openpyxl.writer.excel.PACKAGE_IMAGES +openpyxl.writer.excel.PACKAGE_WORKSHEETS +openpyxl.writer.excel.PACKAGE_XL +openpyxl.writer.excel.ZIP_DEFLATED +openpyxl.writer.excel.theme_xml +openpyxl.writer.excel.tostring +openpyxl.xml.functions.CHART_DRAWING_NS +openpyxl.xml.functions.CHART_NS +openpyxl.xml.functions.COREPROPS_NS +openpyxl.xml.functions.DCTERMS_NS +openpyxl.xml.functions.DCTERMS_PREFIX +openpyxl.xml.functions.DEFUSEDXML +openpyxl.xml.functions.DRAWING_NS +openpyxl.xml.functions.LXML +openpyxl.xml.functions.REL_NS +openpyxl.xml.functions.SHEET_DRAWING_NS +openpyxl.xml.functions.SHEET_MAIN_NS +openpyxl.xml.functions.VTYPES_NS +openpyxl.xml.functions.XML_NS + +# Variable differs from runtime type because attributes are actually descriptors +# and the value is obtained through a dynamic getter +openpyxl.cell.text.InlineFont.b +openpyxl.cell.text.InlineFont.charset +openpyxl.cell.text.InlineFont.color +openpyxl.cell.text.InlineFont.condense +openpyxl.cell.text.InlineFont.extend +openpyxl.cell.text.InlineFont.family +openpyxl.cell.text.InlineFont.i +openpyxl.cell.text.InlineFont.outline +openpyxl.cell.text.InlineFont.rFont +openpyxl.cell.text.InlineFont.scheme +openpyxl.cell.text.InlineFont.shadow +openpyxl.cell.text.InlineFont.strike +openpyxl.cell.text.InlineFont.sz +openpyxl.cell.text.InlineFont.u +openpyxl.cell.text.InlineFont.vertAlign +openpyxl.cell.text.PhoneticProperties.alignment +openpyxl.cell.text.PhoneticProperties.fontId +openpyxl.cell.text.PhoneticProperties.type +openpyxl.cell.text.PhoneticText.eb +openpyxl.cell.text.PhoneticText.sb +openpyxl.cell.text.PhoneticText.t +openpyxl.cell.text.PhoneticText.text +openpyxl.cell.text.RichText.font +openpyxl.cell.text.RichText.rPr +openpyxl.cell.text.RichText.t +openpyxl.cell.text.RichText.text +openpyxl.cell.text.Text.PhoneticProperties +openpyxl.cell.text.Text.formatted +openpyxl.cell.text.Text.phonetic +openpyxl.cell.text.Text.phoneticPr +openpyxl.cell.text.Text.plain +openpyxl.cell.text.Text.r +openpyxl.cell.text.Text.rPh +openpyxl.cell.text.Text.t +openpyxl.chart.axis.ChartLines.graphicalProperties +openpyxl.chart.axis.ChartLines.spPr +openpyxl.chart.axis.DateAxis.auto +openpyxl.chart.axis.DateAxis.axId +openpyxl.chart.axis.DateAxis.axPos +openpyxl.chart.axis.DateAxis.baseTimeUnit +openpyxl.chart.axis.DateAxis.crossAx +openpyxl.chart.axis.DateAxis.crosses +openpyxl.chart.axis.DateAxis.crossesAt +openpyxl.chart.axis.DateAxis.delete +openpyxl.chart.axis.DateAxis.extLst +openpyxl.chart.axis.DateAxis.lblOffset +openpyxl.chart.axis.DateAxis.majorGridlines +openpyxl.chart.axis.DateAxis.majorTickMark +openpyxl.chart.axis.DateAxis.majorTimeUnit +openpyxl.chart.axis.DateAxis.majorUnit +openpyxl.chart.axis.DateAxis.minorGridlines +openpyxl.chart.axis.DateAxis.minorTickMark +openpyxl.chart.axis.DateAxis.minorTimeUnit +openpyxl.chart.axis.DateAxis.minorUnit +openpyxl.chart.axis.DateAxis.numFmt +openpyxl.chart.axis.DateAxis.scaling +openpyxl.chart.axis.DateAxis.spPr +openpyxl.chart.axis.DateAxis.tickLblPos +openpyxl.chart.axis.DateAxis.title +openpyxl.chart.axis.DateAxis.txPr +openpyxl.chart.axis.DisplayUnitsLabel.graphicalProperties +openpyxl.chart.axis.DisplayUnitsLabel.layout +openpyxl.chart.axis.DisplayUnitsLabel.spPr +openpyxl.chart.axis.DisplayUnitsLabel.text +openpyxl.chart.axis.DisplayUnitsLabel.textPropertes +openpyxl.chart.axis.DisplayUnitsLabel.tx +openpyxl.chart.axis.DisplayUnitsLabel.txPr +openpyxl.chart.axis.DisplayUnitsLabelList.builtInUnit +openpyxl.chart.axis.DisplayUnitsLabelList.custUnit +openpyxl.chart.axis.DisplayUnitsLabelList.dispUnitsLbl +openpyxl.chart.axis.DisplayUnitsLabelList.extLst +openpyxl.chart.axis.NumericAxis.axId +openpyxl.chart.axis.NumericAxis.axPos +openpyxl.chart.axis.NumericAxis.crossAx +openpyxl.chart.axis.NumericAxis.crossBetween +openpyxl.chart.axis.NumericAxis.crosses +openpyxl.chart.axis.NumericAxis.crossesAt +openpyxl.chart.axis.NumericAxis.delete +openpyxl.chart.axis.NumericAxis.dispUnits +openpyxl.chart.axis.NumericAxis.extLst +openpyxl.chart.axis.NumericAxis.majorGridlines +openpyxl.chart.axis.NumericAxis.majorTickMark +openpyxl.chart.axis.NumericAxis.majorUnit +openpyxl.chart.axis.NumericAxis.minorGridlines +openpyxl.chart.axis.NumericAxis.minorTickMark +openpyxl.chart.axis.NumericAxis.minorUnit +openpyxl.chart.axis.NumericAxis.numFmt +openpyxl.chart.axis.NumericAxis.scaling +openpyxl.chart.axis.NumericAxis.spPr +openpyxl.chart.axis.NumericAxis.tickLblPos +openpyxl.chart.axis.NumericAxis.title +openpyxl.chart.axis.NumericAxis.txPr +openpyxl.chart.axis.Scaling.extLst +openpyxl.chart.axis.Scaling.logBase +openpyxl.chart.axis.Scaling.max +openpyxl.chart.axis.Scaling.min +openpyxl.chart.axis.Scaling.orientation +openpyxl.chart.axis.SeriesAxis.axId +openpyxl.chart.axis.SeriesAxis.axPos +openpyxl.chart.axis.SeriesAxis.crossAx +openpyxl.chart.axis.SeriesAxis.crosses +openpyxl.chart.axis.SeriesAxis.crossesAt +openpyxl.chart.axis.SeriesAxis.delete +openpyxl.chart.axis.SeriesAxis.extLst +openpyxl.chart.axis.SeriesAxis.majorGridlines +openpyxl.chart.axis.SeriesAxis.majorTickMark +openpyxl.chart.axis.SeriesAxis.minorGridlines +openpyxl.chart.axis.SeriesAxis.minorTickMark +openpyxl.chart.axis.SeriesAxis.numFmt +openpyxl.chart.axis.SeriesAxis.scaling +openpyxl.chart.axis.SeriesAxis.spPr +openpyxl.chart.axis.SeriesAxis.tickLblPos +openpyxl.chart.axis.SeriesAxis.tickLblSkip +openpyxl.chart.axis.SeriesAxis.tickMarkSkip +openpyxl.chart.axis.SeriesAxis.title +openpyxl.chart.axis.SeriesAxis.txPr +openpyxl.chart.axis.TextAxis.auto +openpyxl.chart.axis.TextAxis.axId +openpyxl.chart.axis.TextAxis.axPos +openpyxl.chart.axis.TextAxis.crossAx +openpyxl.chart.axis.TextAxis.crosses +openpyxl.chart.axis.TextAxis.crossesAt +openpyxl.chart.axis.TextAxis.delete +openpyxl.chart.axis.TextAxis.extLst +openpyxl.chart.axis.TextAxis.lblAlgn +openpyxl.chart.axis.TextAxis.lblOffset +openpyxl.chart.axis.TextAxis.majorGridlines +openpyxl.chart.axis.TextAxis.majorTickMark +openpyxl.chart.axis.TextAxis.minorGridlines +openpyxl.chart.axis.TextAxis.minorTickMark +openpyxl.chart.axis.TextAxis.noMultiLvlLbl +openpyxl.chart.axis.TextAxis.numFmt +openpyxl.chart.axis.TextAxis.scaling +openpyxl.chart.axis.TextAxis.spPr +openpyxl.chart.axis.TextAxis.tickLblPos +openpyxl.chart.axis.TextAxis.tickLblSkip +openpyxl.chart.axis.TextAxis.tickMarkSkip +openpyxl.chart.axis.TextAxis.title +openpyxl.chart.axis.TextAxis.txPr +openpyxl.chart.axis._BaseAxis.axId +openpyxl.chart.axis._BaseAxis.axPos +openpyxl.chart.axis._BaseAxis.crossAx +openpyxl.chart.axis._BaseAxis.crosses +openpyxl.chart.axis._BaseAxis.crossesAt +openpyxl.chart.axis._BaseAxis.delete +openpyxl.chart.axis._BaseAxis.graphicalProperties +openpyxl.chart.axis._BaseAxis.majorGridlines +openpyxl.chart.axis._BaseAxis.majorTickMark +openpyxl.chart.axis._BaseAxis.minorGridlines +openpyxl.chart.axis._BaseAxis.minorTickMark +openpyxl.chart.axis._BaseAxis.numFmt +openpyxl.chart.axis._BaseAxis.number_format +openpyxl.chart.axis._BaseAxis.scaling +openpyxl.chart.axis._BaseAxis.spPr +openpyxl.chart.axis._BaseAxis.textProperties +openpyxl.chart.axis._BaseAxis.tickLblPos +openpyxl.chart.axis._BaseAxis.title +openpyxl.chart.axis._BaseAxis.txPr +openpyxl.styles.Alignment.horizontal +openpyxl.styles.Alignment.indent +openpyxl.styles.Alignment.justifyLastLine +openpyxl.styles.Alignment.readingOrder +openpyxl.styles.Alignment.relativeIndent +openpyxl.styles.Alignment.shrinkToFit +openpyxl.styles.Alignment.shrink_to_fit +openpyxl.styles.Alignment.textRotation +openpyxl.styles.Alignment.text_rotation +openpyxl.styles.Alignment.vertical +openpyxl.styles.Alignment.wrapText +openpyxl.styles.Alignment.wrap_text +openpyxl.styles.Border.bottom +openpyxl.styles.Border.diagonal +openpyxl.styles.Border.diagonalDown +openpyxl.styles.Border.diagonalUp +openpyxl.styles.Border.end +openpyxl.styles.Border.horizontal +openpyxl.styles.Border.left +openpyxl.styles.Border.outline +openpyxl.styles.Border.right +openpyxl.styles.Border.start +openpyxl.styles.Border.top +openpyxl.styles.Border.vertical +openpyxl.styles.Color.auto +openpyxl.styles.Color.indexed +openpyxl.styles.Color.rgb +openpyxl.styles.Color.theme +openpyxl.styles.Color.tint +openpyxl.styles.Color.type +openpyxl.styles.Font.b +openpyxl.styles.Font.bold +openpyxl.styles.Font.charset +openpyxl.styles.Font.color +openpyxl.styles.Font.condense +openpyxl.styles.Font.extend +openpyxl.styles.Font.family +openpyxl.styles.Font.i +openpyxl.styles.Font.italic +openpyxl.styles.Font.name +openpyxl.styles.Font.outline +openpyxl.styles.Font.scheme +openpyxl.styles.Font.shadow +openpyxl.styles.Font.size +openpyxl.styles.Font.strike +openpyxl.styles.Font.strikethrough +openpyxl.styles.Font.sz +openpyxl.styles.Font.u +openpyxl.styles.Font.underline +openpyxl.styles.Font.vertAlign +openpyxl.styles.GradientFill.bottom +openpyxl.styles.GradientFill.degree +openpyxl.styles.GradientFill.fill_type +openpyxl.styles.GradientFill.left +openpyxl.styles.GradientFill.right +openpyxl.styles.GradientFill.stop +openpyxl.styles.GradientFill.top +openpyxl.styles.GradientFill.type +openpyxl.styles.NamedStyle.alignment +openpyxl.styles.NamedStyle.border +openpyxl.styles.NamedStyle.builtinId +openpyxl.styles.NamedStyle.fill +openpyxl.styles.NamedStyle.font +openpyxl.styles.NamedStyle.hidden +openpyxl.styles.NamedStyle.name +openpyxl.styles.NamedStyle.number_format +openpyxl.styles.NamedStyle.protection +openpyxl.styles.PatternFill.bgColor +openpyxl.styles.PatternFill.end_color +openpyxl.styles.PatternFill.fgColor +openpyxl.styles.PatternFill.fill_type +openpyxl.styles.PatternFill.patternType +openpyxl.styles.PatternFill.start_color +openpyxl.styles.Protection.hidden +openpyxl.styles.Protection.locked +openpyxl.styles.Side.border_style +openpyxl.styles.Side.color +openpyxl.styles.Side.style +openpyxl.styles.alignment.Alignment.horizontal +openpyxl.styles.alignment.Alignment.indent +openpyxl.styles.alignment.Alignment.justifyLastLine +openpyxl.styles.alignment.Alignment.readingOrder +openpyxl.styles.alignment.Alignment.relativeIndent +openpyxl.styles.alignment.Alignment.shrinkToFit +openpyxl.styles.alignment.Alignment.shrink_to_fit +openpyxl.styles.alignment.Alignment.textRotation +openpyxl.styles.alignment.Alignment.text_rotation +openpyxl.styles.alignment.Alignment.vertical +openpyxl.styles.alignment.Alignment.wrapText +openpyxl.styles.alignment.Alignment.wrap_text +openpyxl.styles.borders.Border.bottom +openpyxl.styles.borders.Border.diagonal +openpyxl.styles.borders.Border.diagonalDown +openpyxl.styles.borders.Border.diagonalUp +openpyxl.styles.borders.Border.end +openpyxl.styles.borders.Border.horizontal +openpyxl.styles.borders.Border.left +openpyxl.styles.borders.Border.outline +openpyxl.styles.borders.Border.right +openpyxl.styles.borders.Border.start +openpyxl.styles.borders.Border.top +openpyxl.styles.borders.Border.vertical +openpyxl.styles.borders.Side.border_style +openpyxl.styles.borders.Side.color +openpyxl.styles.borders.Side.style +openpyxl.styles.colors.Color.auto +openpyxl.styles.colors.Color.indexed +openpyxl.styles.colors.Color.rgb +openpyxl.styles.colors.Color.theme +openpyxl.styles.colors.Color.tint +openpyxl.styles.colors.Color.type +openpyxl.styles.colors.ColorDescriptor.expected_type +openpyxl.styles.colors.ColorList.indexedColors +openpyxl.styles.colors.ColorList.mruColors +openpyxl.styles.colors.RgbColor.rgb +openpyxl.styles.differential.DifferentialStyle.alignment +openpyxl.styles.differential.DifferentialStyle.border +openpyxl.styles.differential.DifferentialStyle.fill +openpyxl.styles.differential.DifferentialStyle.font +openpyxl.styles.differential.DifferentialStyle.numFmt +openpyxl.styles.differential.DifferentialStyle.protection +openpyxl.styles.differential.DifferentialStyleList.dxf +openpyxl.styles.fills.GradientFill.bottom +openpyxl.styles.fills.GradientFill.degree +openpyxl.styles.fills.GradientFill.fill_type +openpyxl.styles.fills.GradientFill.left +openpyxl.styles.fills.GradientFill.right +openpyxl.styles.fills.GradientFill.stop +openpyxl.styles.fills.GradientFill.top +openpyxl.styles.fills.GradientFill.type +openpyxl.styles.fills.PatternFill.bgColor +openpyxl.styles.fills.PatternFill.end_color +openpyxl.styles.fills.PatternFill.fgColor +openpyxl.styles.fills.PatternFill.fill_type +openpyxl.styles.fills.PatternFill.patternType +openpyxl.styles.fills.PatternFill.start_color +openpyxl.styles.fills.StopList.expected_type +openpyxl.styles.fills.Stop.color +openpyxl.styles.fills.Stop.position +openpyxl.styles.fonts.Font.b +openpyxl.styles.fonts.Font.bold +openpyxl.styles.fonts.Font.charset +openpyxl.styles.fonts.Font.color +openpyxl.styles.fonts.Font.condense +openpyxl.styles.fonts.Font.extend +openpyxl.styles.fonts.Font.family +openpyxl.styles.fonts.Font.i +openpyxl.styles.fonts.Font.italic +openpyxl.styles.fonts.Font.name +openpyxl.styles.fonts.Font.outline +openpyxl.styles.fonts.Font.scheme +openpyxl.styles.fonts.Font.shadow +openpyxl.styles.fonts.Font.size +openpyxl.styles.fonts.Font.strike +openpyxl.styles.fonts.Font.strikethrough +openpyxl.styles.fonts.Font.sz +openpyxl.styles.fonts.Font.u +openpyxl.styles.fonts.Font.underline +openpyxl.styles.fonts.Font.vertAlign +openpyxl.styles.named_styles.NamedStyle.alignment +openpyxl.styles.named_styles.NamedStyle.border +openpyxl.styles.named_styles.NamedStyle.builtinId +openpyxl.styles.named_styles.NamedStyle.fill +openpyxl.styles.named_styles.NamedStyle.font +openpyxl.styles.named_styles.NamedStyle.hidden +openpyxl.styles.named_styles.NamedStyle.name +openpyxl.styles.named_styles.NamedStyle.number_format +openpyxl.styles.named_styles.NamedStyle.protection +openpyxl.styles.named_styles._NamedCellStyle.builtinId +openpyxl.styles.named_styles._NamedCellStyle.customBuiltin +openpyxl.styles.named_styles._NamedCellStyle.extLst +openpyxl.styles.named_styles._NamedCellStyle.hidden +openpyxl.styles.named_styles._NamedCellStyle.iLevel +openpyxl.styles.named_styles._NamedCellStyle.name +openpyxl.styles.named_styles._NamedCellStyle.xfId +openpyxl.styles.named_styles._NamedCellStyleList.cellStyle +openpyxl.styles.numbers.NumberFormat.formatCode +openpyxl.styles.numbers.NumberFormat.numFmtId +openpyxl.styles.numbers.NumberFormatList.numFmt +openpyxl.styles.protection.Protection.hidden +openpyxl.styles.protection.Protection.locked diff --git a/stubs/openpyxl/METADATA.toml b/stubs/openpyxl/METADATA.toml index 4a8e90c0c89d..b51d12137a1c 100644 --- a/stubs/openpyxl/METADATA.toml +++ b/stubs/openpyxl/METADATA.toml @@ -1 +1,5 @@ version = "3.0.*" +requires = ["lxml-stubs", "types-pillow"] + +[tool.stubtest] +ignore_missing_stub = false diff --git a/stubs/openpyxl/openpyxl/__init__.pyi b/stubs/openpyxl/openpyxl/__init__.pyi index c252e6d9c018..62143fb1cb72 100644 --- a/stubs/openpyxl/openpyxl/__init__.pyi +++ b/stubs/openpyxl/openpyxl/__init__.pyi @@ -1,3 +1,5 @@ +from typing import Protocol + from openpyxl.compat.numbers import NUMPY as NUMPY from openpyxl.reader.excel import load_workbook as load_workbook from openpyxl.workbook import Workbook as Workbook @@ -13,3 +15,7 @@ from ._constants import ( ) open = load_workbook + +# Utility type reused elsewhere +class _Decodable(Protocol): # noqa: Y046 # Utility type reused elsewhere + def decode(self, __encoding: str) -> str: ... diff --git a/stubs/openpyxl/openpyxl/cell/_writer.pyi b/stubs/openpyxl/openpyxl/cell/_writer.pyi index ef2dc335c217..ab9092eb2958 100644 --- a/stubs/openpyxl/openpyxl/cell/_writer.pyi +++ b/stubs/openpyxl/openpyxl/cell/_writer.pyi @@ -1,6 +1,6 @@ -from typing import Any +from _typeshed import Incomplete -def etree_write_cell(xf, worksheet, cell, styled: Any | None = ...) -> None: ... +def etree_write_cell(xf, worksheet, cell, styled: Incomplete | None = ...) -> None: ... def lxml_write_cell(xf, worksheet, cell, styled: bool = ...) -> None: ... write_cell = lxml_write_cell diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index b8a89507bd80..bb1a76254dd4 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -1,73 +1,90 @@ -from typing import Any +import datetime +from re import Pattern +from typing_extensions import Final, Literal, TypeAlias +from openpyxl.comments.comments import Comment +from openpyxl.compat.numbers import NUMERIC_TYPES as NUMERIC_TYPES, _NumericTypes +from openpyxl.styles.cell_style import StyleArray from openpyxl.styles.styleable import StyleableObject +from openpyxl.workbook.child import _WorkbookChild +from openpyxl.worksheet.hyperlink import Hyperlink __docformat__: str -TIME_TYPES: Any -TIME_FORMATS: Any -STRING_TYPES: Any -KNOWN_TYPES: Any -ILLEGAL_CHARACTERS_RE: Any -ERROR_CODES: Any -TYPE_STRING: str -TYPE_FORMULA: str -TYPE_NUMERIC: str -TYPE_BOOL: str -TYPE_NULL: str -TYPE_INLINE: str -TYPE_ERROR: str -TYPE_FORMULA_CACHE_STRING: str -VALID_TYPES: Any +TIME_TYPES: tuple[type[datetime.datetime], type[datetime.date], type[datetime.time], type[datetime.timedelta]] +_TimeTypes: TypeAlias = datetime.datetime | datetime.date | datetime.time | datetime.timedelta +TIME_FORMATS: dict[_TimeTypes, str] +STRING_TYPES: tuple[type[str], type[bytes]] +_StringTypes: TypeAlias = str | bytes +# mypy will simplify the type. Pyright fully expands it. +KNOWN_TYPES = NUMERIC_TYPES + TIME_TYPES + STRING_TYPES + (bool, type(None)) # noqa: F821,Y026 +_KnownTypes: TypeAlias = _NumericTypes | _TimeTypes | _StringTypes | bool | None +ILLEGAL_CHARACTERS_RE: Pattern[str] +ERROR_CODES: Final = ("#NULL!", "#DIV/0!", "#VALUE!", "#REF!", "#NAME?", "#NUM!", "#N/A") +TYPE_STRING: Final = "s" +TYPE_FORMULA: Final = "f" +TYPE_NUMERIC: Final = "n" +TYPE_BOOL: Final = "b" +TYPE_NULL: Final = "n" +TYPE_INLINE: Final = "inlineStr" +TYPE_ERROR: Final = "e" +TYPE_FORMULA_CACHE_STRING: Final = "str" -def get_type(t, value): ... -def get_time_format(t): ... +VALID_TYPES = (TYPE_STRING, TYPE_FORMULA, TYPE_NUMERIC, TYPE_BOOL, TYPE_NULL, TYPE_INLINE, TYPE_ERROR, TYPE_FORMULA_CACHE_STRING) + +def get_type(t, value) -> Literal["n", "s", "d", None]: ... +def get_time_format(t) -> str: ... class Cell(StyleableObject): - row: Any - column: Any + row: int | None + column: int | None data_type: str def __init__( - self, worksheet, row: Any | None = ..., column: Any | None = ..., value: Any | None = ..., style_array: Any | None = ... + self, + worksheet: _WorkbookChild, + row: int | None = ..., + column: int | None = ..., + value: _KnownTypes = ..., + style_array: StyleArray | None = ..., ) -> None: ... @property - def coordinate(self): ... + def coordinate(self) -> str: ... @property - def col_idx(self): ... + def col_idx(self) -> int: ... @property - def column_letter(self): ... + def column_letter(self) -> str: ... @property - def encoding(self): ... + def encoding(self) -> str: ... @property def base_date(self): ... - def check_string(self, value): ... + def check_string(self, value: str | bytes): ... def check_error(self, value): ... @property - def value(self): ... + def value(self) -> _KnownTypes: ... @value.setter - def value(self, value) -> None: ... + def value(self, value: _KnownTypes) -> None: ... @property def internal_value(self): ... @property - def hyperlink(self): ... + def hyperlink(self) -> Hyperlink | None: ... @hyperlink.setter - def hyperlink(self, val) -> None: ... + def hyperlink(self, val: Hyperlink | str | None) -> None: ... @property - def is_date(self): ... + def is_date(self) -> bool: ... def offset(self, row: int = ..., column: int = ...): ... @property - def comment(self): ... + def comment(self) -> Comment | None: ... @comment.setter - def comment(self, value) -> None: ... + def comment(self, value: Comment | None) -> None: ... class MergedCell(StyleableObject): data_type: str - comment: Any - hyperlink: Any - row: Any - column: Any - def __init__(self, worksheet, row: Any | None = ..., column: Any | None = ...) -> None: ... + comment: Comment | None + hyperlink: Hyperlink | None + row: int | None + column: int | None + def __init__(self, worksheet: _WorkbookChild, row: int | None = ..., column: int | None = ...) -> None: ... @property - def coordinate(self): ... - value: Any + def coordinate(self) -> str: ... + value: _KnownTypes -def WriteOnlyCell(ws: Any | None = ..., value: Any | None = ...): ... +def WriteOnlyCell(ws: _WorkbookChild | None = ..., value: _KnownTypes = ...) -> Cell: ... diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index aa65e8029523..40e45ebe3502 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -1,80 +1,81 @@ -from typing import Any +from typing_extensions import Literal, TypeAlias +from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.styles.colors import Color from openpyxl.styles.fonts import Font class PhoneticProperties(Serialisable): tagname: str - fontId: Any - type: Any - alignment: Any - def __init__(self, fontId: Any | None = ..., type: Any | None = ..., alignment: Any | None = ...) -> None: ... + fontId: int + type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] + alignment: Literal["noControl", "left", "center", "distributed", None] + def __init__( + self, + fontId: int, + type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] = ..., + alignment: Literal["noControl", "left", "center", "distributed", None] = ..., + ) -> None: ... class PhoneticText(Serialisable): tagname: str - sb: Any - eb: Any - t: Any - text: Any - def __init__(self, sb: Any | None = ..., eb: Any | None = ..., t: Any | None = ...) -> None: ... + sb: int + eb: int + t: str = ... + text = t + def __init__(self, sb: int, eb: int, t: str) -> None: ... class InlineFont(Font): tagname: str - rFont: Any - charset: Any - family: Any - b: Any - i: Any - strike: Any - outline: Any - shadow: Any - condense: Any - extend: Any - color: Any - sz: Any - u: Any - vertAlign: Any - scheme: Any - __elements__: Any + rFont: str | None + __elements__: tuple[str, ...] def __init__( self, - rFont: Any | None = ..., - charset: Any | None = ..., - family: Any | None = ..., - b: Any | None = ..., - i: Any | None = ..., - strike: Any | None = ..., - outline: Any | None = ..., - shadow: Any | None = ..., - condense: Any | None = ..., - extend: Any | None = ..., - color: Any | None = ..., - sz: Any | None = ..., - u: Any | None = ..., - vertAlign: Any | None = ..., - scheme: Any | None = ..., + rFont: str | None = ..., + charset: int | None = ..., + family: float | None = ..., + b: bool | None = ..., + i: bool | None = ..., + strike: bool | None = ..., + outline: bool | None = ..., + shadow: bool | None = ..., + condense: bool | None = ..., + extend: bool | None = ..., + color: Color | None = ..., + sz: float | None = ..., + u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., + vertAlign: Literal["superscript", "subscript", "baseline", None] = ..., + scheme: Literal["major", "minor", None] = ..., ) -> None: ... class RichText(Serialisable): tagname: str - rPr: Any - font: Any - t: Any - text: Any - __elements__: Any - def __init__(self, rPr: Any | None = ..., t: Any | None = ...) -> None: ... + rPr: InlineFont | None = ... + font = rPr + t: str | None = ... + text = t + __elements__: tuple[str, ...] + def __init__(self, rPr: InlineFont | None = ..., t: str | None = ...) -> None: ... + +_PhoneticProperties: TypeAlias = PhoneticProperties class Text(Serialisable): tagname: str - t: Any - plain: Any - r: Any - formatted: Any - rPh: Any - phonetic: Any - phoneticPr: Any - PhoneticProperties: Any - __elements__: Any - def __init__(self, t: Any | None = ..., r=..., rPh=..., phoneticPr: Any | None = ...) -> None: ... + t: str | None = ... + plain = t + r: _Sequence[RichText] | None = ... + formatted = r + rPh: _Sequence[PhoneticText] | None = ... + phonetic = rPh + phoneticPr: _PhoneticProperties | None = ... + PhoneticProperties = phoneticPr + __elements__: tuple[str, ...] + def __init__( + self, + t: str | None = ..., + r: _Sequence[RichText] | None = ..., + rPh: _Sequence[RichText] | None = ..., + phoneticPr: _PhoneticProperties | None = ..., + ) -> None: ... @property - def content(self): ... + def content(self) -> str: ... diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index ffdbc6a39020..c643173db9e0 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -1,70 +1,81 @@ +from _typeshed import Incomplete, Self from abc import abstractmethod -from typing import Any +from typing_extensions import Literal, TypeAlias +from openpyxl.chart.data_source import NumFmt +from openpyxl.chart.title import Title +from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.xml.functions import _Element + +from .layout import Layout +from .shapes import GraphicalProperties +from .text import RichText, Text + +_Unused: TypeAlias = object class ChartLines(Serialisable): tagname: str - spPr: Any - graphicalProperties: Any - def __init__(self, spPr: Any | None = ...) -> None: ... + spPr: GraphicalProperties | None = ... + graphicalProperties = spPr + def __init__(self, spPr: GraphicalProperties | None = ...) -> None: ... class Scaling(Serialisable): tagname: str - logBase: Any - orientation: Any - max: Any - min: Any - extLst: Any - __elements__: Any + logBase: float | None + orientation: Literal["maxMin", "minMax"] + max: float | None + min: float | None + extLst: ExtensionList | None + __elements__: tuple[str, ...] def __init__( self, - logBase: Any | None = ..., - orientation: str = ..., - max: Any | None = ..., - min: Any | None = ..., - extLst: Any | None = ..., + logBase: float | None = ..., + orientation: Literal["maxMin", "minMax"] = ..., + max: float | None = ..., + min: float | None = ..., + extLst: _Unused = ..., ) -> None: ... class _BaseAxis(Serialisable): - axId: Any - scaling: Any - delete: Any - axPos: Any - majorGridlines: Any - minorGridlines: Any - title: Any - numFmt: Any - number_format: Any - majorTickMark: Any - minorTickMark: Any - tickLblPos: Any - spPr: Any - graphicalProperties: Any - txPr: Any - textProperties: Any - crossAx: Any - crosses: Any - crossesAt: Any - __elements__: Any + axId: int + scaling: Scaling + delete: bool | None + axPos: Literal["b", "l", "r", "t"] + majorGridlines: ChartLines | None + minorGridlines: ChartLines | None + title: Title | None + numFmt: NumFmt | None = ... + number_format = numFmt + majorTickMark: Literal["cross", "in", "out", None] + minorTickMark: Literal["cross", "in", "out", None] + tickLblPos: Literal["high", "low", "nextTo", None] + spPr: GraphicalProperties | None = ... + graphicalProperties = spPr + txPr: RichText | None = ... + textProperties = txPr + crossAx: int + crosses: Literal["autoZero", "max", "min", None] + crossesAt: float | None + __elements__: tuple[str, ...] def __init__( self, - axId: Any | None = ..., - scaling: Any | None = ..., - delete: Any | None = ..., - axPos: str = ..., - majorGridlines: Any | None = ..., - minorGridlines: Any | None = ..., - title: Any | None = ..., - numFmt: Any | None = ..., - majorTickMark: Any | None = ..., - minorTickMark: Any | None = ..., - tickLblPos: Any | None = ..., - spPr: Any | None = ..., - txPr: Any | None = ..., - crossAx: Any | None = ..., - crosses: Any | None = ..., - crossesAt: Any | None = ..., + axId: int, + scaling: Scaling | None, + delete: bool | None, + axPos: str, + majorGridlines: ChartLines | None, + minorGridlines: ChartLines | None, + title: Title | None, + numFmt: Incomplete | None, + majorTickMark: Literal["cross", "in", "out", None], + minorTickMark: Literal["cross", "in", "out", None], + tickLblPos: Literal["high", "low", "nextTo", None], + spPr: GraphicalProperties | None, + txPr: RichText | None, + crossAx: int, + crosses: Literal["autoZero", "max", "min", None] = ..., + crossesAt: float | None = ..., ) -> None: ... @property @abstractmethod @@ -72,163 +83,195 @@ class _BaseAxis(Serialisable): class DisplayUnitsLabel(Serialisable): tagname: str - layout: Any - tx: Any - text: Any - spPr: Any - graphicalProperties: Any - txPr: Any - textPropertes: Any - __elements__: Any + layout: Layout | None + tx: Text | None = ... + text = tx + spPr: GraphicalProperties | None = ... + graphicalProperties = spPr + txPr: RichText | None = ... + textPropertes = txPr + __elements__: tuple[str, ...] def __init__( - self, layout: Any | None = ..., tx: Any | None = ..., spPr: Any | None = ..., txPr: Any | None = ... + self, + layout: Layout | None = ..., + tx: Text | None = ..., + spPr: GraphicalProperties | None = ..., + txPr: RichText | None = ..., ) -> None: ... class DisplayUnitsLabelList(Serialisable): tagname: str - custUnit: Any - builtInUnit: Any - dispUnitsLbl: Any - extLst: Any - __elements__: Any + custUnit: float | None + builtInUnit: Literal[ + "hundreds", + "thousands", + "tenThousands", + "hundredThousands", + "millions", + "tenMillions", + "hundredMillions", + "billions", + "trillions", + None, + ] + dispUnitsLbl: DisplayUnitsLabel | None + extLst: ExtensionList | None + __elements__: tuple[str, ...] def __init__( - self, custUnit: Any | None = ..., builtInUnit: Any | None = ..., dispUnitsLbl: Any | None = ..., extLst: Any | None = ... + self, + custUnit: float | None = ..., + builtInUnit: Literal[ + "hundreds", + "thousands", + "tenThousands", + "hundredThousands", + "millions", + "tenMillions", + "hundredMillions", + "billions", + "trillions", + None, + ] = ..., + dispUnitsLbl: DisplayUnitsLabel | None = ..., + extLst: _Unused = ..., ) -> None: ... class NumericAxis(_BaseAxis): tagname: str - axId: Any - scaling: Any - delete: Any - axPos: Any - majorGridlines: Any - minorGridlines: Any - title: Any - numFmt: Any - majorTickMark: Any - minorTickMark: Any - tickLblPos: Any - spPr: Any - txPr: Any - crossAx: Any - crosses: Any - crossesAt: Any - crossBetween: Any - majorUnit: Any - minorUnit: Any - dispUnits: Any - extLst: Any - __elements__: Any + crossBetween: Literal["between", "midCat", None] + majorUnit: float | None + minorUnit: float | None + dispUnits: DisplayUnitsLabelList | None + extLst: ExtensionList | None + __elements__: tuple[str, ...] def __init__( self, - crossBetween: Any | None = ..., - majorUnit: Any | None = ..., - minorUnit: Any | None = ..., - dispUnits: Any | None = ..., - extLst: Any | None = ..., - **kw, + crossBetween: Incomplete | None = ..., + majorUnit: Incomplete | None = ..., + minorUnit: Incomplete | None = ..., + dispUnits: Incomplete | None = ..., + extLst: Incomplete | None = ..., + axId: int = ..., + scaling: Scaling | None = ..., + delete: bool | None = ..., + axPos: str = ..., + majorGridlines: ChartLines | None = ..., + minorGridlines: ChartLines | None = ..., + title: Title | None = ..., + numFmt: Incomplete | None = ..., + majorTickMark: Literal["cross", "in", "out", None] = ..., + minorTickMark: Literal["cross", "in", "out", None] = ..., + tickLblPos: Literal["high", "low", "nextTo", None] = ..., + spPr: GraphicalProperties | None = ..., + txPr: RichText | None = ..., + crossAx: int = ..., + crosses: Literal["autoZero", "max", "min", None] = ..., + crossesAt: float | None = ..., ) -> None: ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls: Self, node: _Element) -> Self: ... class TextAxis(_BaseAxis): tagname: str - axId: Any - scaling: Any - delete: Any - axPos: Any - majorGridlines: Any - minorGridlines: Any - title: Any - numFmt: Any - majorTickMark: Any - minorTickMark: Any - tickLblPos: Any - spPr: Any - txPr: Any - crossAx: Any - crosses: Any - crossesAt: Any - auto: Any - lblAlgn: Any - lblOffset: Any - tickLblSkip: Any - tickMarkSkip: Any - noMultiLvlLbl: Any - extLst: Any - __elements__: Any + auto: bool | None + lblAlgn: Literal["ctr", "l", "r", None] + lblOffset: float + tickLblSkip: int | None + tickMarkSkip: int | None + noMultiLvlLbl: bool | None + extLst: ExtensionList | None + __elements__: tuple[str, ...] def __init__( self, - auto: Any | None = ..., - lblAlgn: Any | None = ..., - lblOffset: int = ..., - tickLblSkip: Any | None = ..., - tickMarkSkip: Any | None = ..., - noMultiLvlLbl: Any | None = ..., - extLst: Any | None = ..., - **kw, + auto: bool | None = ..., + lblAlgn: Literal["ctr", "l", "r", None] = ..., + lblOffset: float = ..., + tickLblSkip: int | None = ..., + tickMarkSkip: int | None = ..., + noMultiLvlLbl: bool | None = ..., + extLst: _Unused = ..., + axId: int = ..., + scaling: Scaling | None = ..., + delete: bool | None = ..., + axPos: str = ..., + majorGridlines: ChartLines | None = ..., + minorGridlines: ChartLines | None = ..., + title: Title | None = ..., + numFmt: Incomplete | None = ..., + majorTickMark: Literal["cross", "in", "out", None] = ..., + minorTickMark: Literal["cross", "in", "out", None] = ..., + tickLblPos: Literal["high", "low", "nextTo", None] = ..., + spPr: GraphicalProperties | None = ..., + txPr: RichText | None = ..., + crossAx: int = ..., + crosses: Literal["autoZero", "max", "min", None] = ..., + crossesAt: float | None = ..., ) -> None: ... class DateAxis(TextAxis): tagname: str - axId: Any - scaling: Any - delete: Any - axPos: Any - majorGridlines: Any - minorGridlines: Any - title: Any - numFmt: Any - majorTickMark: Any - minorTickMark: Any - tickLblPos: Any - spPr: Any - txPr: Any - crossAx: Any - crosses: Any - crossesAt: Any - auto: Any - lblOffset: Any - baseTimeUnit: Any - majorUnit: Any - majorTimeUnit: Any - minorUnit: Any - minorTimeUnit: Any - extLst: Any - __elements__: Any + auto: bool | None + lblOffset: int | None # type: ignore[assignment] + baseTimeUnit: Literal["days", "months", "years", None] + majorUnit: float | None + majorTimeUnit: Literal["days", "months", "years", None] + minorUnit: float | None + minorTimeUnit: Literal["days", "months", "years", None] + extLst: ExtensionList | None + __elements__: tuple[str, ...] def __init__( self, - auto: Any | None = ..., - lblOffset: Any | None = ..., - baseTimeUnit: Any | None = ..., - majorUnit: Any | None = ..., - majorTimeUnit: Any | None = ..., - minorUnit: Any | None = ..., - minorTimeUnit: Any | None = ..., - extLst: Any | None = ..., - **kw, + auto: bool | None = ..., + lblOffset: int | None = ..., + baseTimeUnit: Literal["days", "months", "years", None] = ..., + majorUnit: float | None = ..., + majorTimeUnit: Literal["days", "months", "years", None] = ..., + minorUnit: float | None = ..., + minorTimeUnit: Literal["days", "months", "years", None] = ..., + extLst: ExtensionList | None = ..., + axId: int = ..., + scaling: Scaling | None = ..., + delete: bool | None = ..., + axPos: str = ..., + majorGridlines: ChartLines | None = ..., + minorGridlines: ChartLines | None = ..., + title: Title | None = ..., + numFmt: Incomplete | None = ..., + majorTickMark: Literal["cross", "in", "out", None] = ..., + minorTickMark: Literal["cross", "in", "out", None] = ..., + tickLblPos: Literal["high", "low", "nextTo", None] = ..., + spPr: GraphicalProperties | None = ..., + txPr: RichText | None = ..., + crossAx: int = ..., + crosses: Literal["autoZero", "max", "min", None] = ..., + crossesAt: float | None = ..., ) -> None: ... class SeriesAxis(_BaseAxis): tagname: str - axId: Any - scaling: Any - delete: Any - axPos: Any - majorGridlines: Any - minorGridlines: Any - title: Any - numFmt: Any - majorTickMark: Any - minorTickMark: Any - tickLblPos: Any - spPr: Any - txPr: Any - crossAx: Any - crosses: Any - crossesAt: Any - tickLblSkip: Any - tickMarkSkip: Any - extLst: Any - __elements__: Any - def __init__(self, tickLblSkip: Any | None = ..., tickMarkSkip: Any | None = ..., extLst: Any | None = ..., **kw) -> None: ... + tickLblSkip: int | None + tickMarkSkip: int | None + extLst: ExtensionList | None + __elements__: tuple[str, ...] + def __init__( + self, + tickLblSkip: int | None = ..., + tickMarkSkip: int | None = ..., + extLst: _Unused = ..., + axId: int = ..., + scaling: Scaling | None = ..., + delete: bool | None = ..., + axPos: str = ..., + majorGridlines: ChartLines | None = ..., + minorGridlines: ChartLines | None = ..., + title: Title | None = ..., + numFmt: Incomplete | None = ..., + majorTickMark: Literal["cross", "in", "out", None] = ..., + minorTickMark: Literal["cross", "in", "out", None] = ..., + tickLblPos: Literal["high", "low", "nextTo", None] = ..., + spPr: GraphicalProperties | None = ..., + txPr: RichText | None = ..., + crossAx: int = ..., + crosses: Literal["autoZero", "max", "min", None] = ..., + crossesAt: float | None = ..., + ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/label.pyi b/stubs/openpyxl/openpyxl/chart/label.pyi index e6e58b6a6145..97d9e56eb2ad 100644 --- a/stubs/openpyxl/openpyxl/chart/label.pyi +++ b/stubs/openpyxl/openpyxl/chart/label.pyi @@ -1,41 +1,41 @@ +from _typeshed import Incomplete from abc import abstractmethod -from typing import Any -from openpyxl.descriptors.serialisable import Serialisable as Serialisable +from openpyxl.descriptors.serialisable import Serialisable class _DataLabelBase(Serialisable): - numFmt: Any - spPr: Any - graphicalProperties: Any - txPr: Any - textProperties: Any - dLblPos: Any - position: Any - showLegendKey: Any - showVal: Any - showCatName: Any - showSerName: Any - showPercent: Any - showBubbleSize: Any - showLeaderLines: Any - separator: Any - extLst: Any - __elements__: Any + numFmt: Incomplete + spPr: Incomplete + graphicalProperties: Incomplete + txPr: Incomplete + textProperties: Incomplete + dLblPos: Incomplete + position: Incomplete + showLegendKey: Incomplete + showVal: Incomplete + showCatName: Incomplete + showSerName: Incomplete + showPercent: Incomplete + showBubbleSize: Incomplete + showLeaderLines: Incomplete + separator: Incomplete + extLst: Incomplete + __elements__: tuple[str, ...] def __init__( self, - numFmt: Any | None = ..., - spPr: Any | None = ..., - txPr: Any | None = ..., - dLblPos: Any | None = ..., - showLegendKey: Any | None = ..., - showVal: Any | None = ..., - showCatName: Any | None = ..., - showSerName: Any | None = ..., - showPercent: Any | None = ..., - showBubbleSize: Any | None = ..., - showLeaderLines: Any | None = ..., - separator: Any | None = ..., - extLst: Any | None = ..., + numFmt: Incomplete | None = ..., + spPr: Incomplete | None = ..., + txPr: Incomplete | None = ..., + dLblPos: Incomplete | None = ..., + showLegendKey: Incomplete | None = ..., + showVal: Incomplete | None = ..., + showCatName: Incomplete | None = ..., + showSerName: Incomplete | None = ..., + showPercent: Incomplete | None = ..., + showBubbleSize: Incomplete | None = ..., + showLeaderLines: Incomplete | None = ..., + separator: Incomplete | None = ..., + extLst: Incomplete | None = ..., ) -> None: ... @property @abstractmethod @@ -43,39 +43,39 @@ class _DataLabelBase(Serialisable): class DataLabel(_DataLabelBase): tagname: str - idx: Any - numFmt: Any - spPr: Any - txPr: Any - dLblPos: Any - showLegendKey: Any - showVal: Any - showCatName: Any - showSerName: Any - showPercent: Any - showBubbleSize: Any - showLeaderLines: Any - separator: Any - extLst: Any - __elements__: Any + idx: Incomplete + numFmt: Incomplete + spPr: Incomplete + txPr: Incomplete + dLblPos: Incomplete + showLegendKey: Incomplete + showVal: Incomplete + showCatName: Incomplete + showSerName: Incomplete + showPercent: Incomplete + showBubbleSize: Incomplete + showLeaderLines: Incomplete + separator: Incomplete + extLst: Incomplete + __elements__: tuple[str, ...] def __init__(self, idx: int = ..., **kw) -> None: ... class DataLabelList(_DataLabelBase): tagname: str - dLbl: Any - delete: Any - numFmt: Any - spPr: Any - txPr: Any - dLblPos: Any - showLegendKey: Any - showVal: Any - showCatName: Any - showSerName: Any - showPercent: Any - showBubbleSize: Any - showLeaderLines: Any - separator: Any - extLst: Any - __elements__: Any - def __init__(self, dLbl=..., delete: Any | None = ..., **kw) -> None: ... + dLbl: Incomplete + delete: Incomplete + numFmt: Incomplete + spPr: Incomplete + txPr: Incomplete + dLblPos: Incomplete + showLegendKey: Incomplete + showVal: Incomplete + showCatName: Incomplete + showSerName: Incomplete + showPercent: Incomplete + showBubbleSize: Incomplete + showLeaderLines: Incomplete + separator: Incomplete + extLst: Incomplete + __elements__: tuple[str, ...] + def __init__(self, dLbl=..., delete: Incomplete | None = ..., **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/properties.pyi b/stubs/openpyxl/openpyxl/chartsheet/properties.pyi index bc93525967f3..07bcffc0b230 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/properties.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/properties.pyi @@ -1,11 +1,13 @@ -from typing import Any +from _typeshed import Incomplete -from openpyxl.descriptors.serialisable import Serialisable as Serialisable +from openpyxl.descriptors.serialisable import Serialisable class ChartsheetProperties(Serialisable): tagname: str - published: Any - codeName: Any - tabColor: Any - __elements__: Any - def __init__(self, published: Any | None = ..., codeName: Any | None = ..., tabColor: Any | None = ...) -> None: ... + published: Incomplete + codeName: Incomplete + tabColor: Incomplete + __elements__: tuple[str, ...] + def __init__( + self, published: Incomplete | None = ..., codeName: Incomplete | None = ..., tabColor: Incomplete | None = ... + ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index e0bf07024507..d123871492d3 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -1,4 +1,78 @@ -from typing import Any +from _typeshed import Incomplete +from decimal import Decimal +from typing_extensions import TypeAlias -NUMERIC_TYPES: Any +# #5768 +# import numpy + +NUMERIC_TYPES: ( + tuple[type[int], type[float], Decimal] + | tuple[ + type[int], + type[float], + Decimal, + Incomplete, # numpy.short, + Incomplete, # numpy.ushort, + Incomplete, # numpy.intc, + Incomplete, # numpy.uintc, + Incomplete, # numpy.int_, + Incomplete, # numpy.uint, + Incomplete, # numpy.longlong, + Incomplete, # numpy.ulonglong, + Incomplete, # numpy.half, + Incomplete, # numpy.float16, + Incomplete, # numpy.single, + Incomplete, # numpy.double, + Incomplete, # numpy.longdouble, + Incomplete, # numpy.int8, + Incomplete, # numpy.int16, + Incomplete, # numpy.int32, + Incomplete, # numpy.int64, + Incomplete, # numpy.uint8, + Incomplete, # numpy.uint16, + Incomplete, # numpy.uint32, + Incomplete, # numpy.uint64, + Incomplete, # numpy.intp, + Incomplete, # numpy.uintp, + Incomplete, # numpy.float32, + Incomplete, # numpy.float64, + Incomplete, # type[numpy.bool_], + Incomplete, # type[numpy.floating], + Incomplete, # type[numpy.integer], + ] +) +# Referenced outside this module +_NumericTypes: TypeAlias = ( # noqa: Y047 + int + | float + | Decimal + # | numpy.short + # | numpy.ushort + # | numpy.intc + # | numpy.uintc + # | numpy.int_ + # | numpy.uint + # | numpy.longlong + # | numpy.ulonglong + # | numpy.half + # | numpy.float16 + # | numpy.single + # | numpy.double + # | numpy.longdouble + # | numpy.int8 + # | numpy.int16 + # | numpy.int32 + # | numpy.int64 + # | numpy.uint8 + # | numpy.uint16 + # | numpy.uint32 + # | numpy.uint64 + # | numpy.intp + # | numpy.uintp + # | numpy.float32 + # | numpy.float64 + # | type[numpy.bool_] + # | type[numpy.floating] + # | type[numpy.integer] +) NUMPY: bool diff --git a/stubs/openpyxl/openpyxl/descriptors/__init__.pyi b/stubs/openpyxl/openpyxl/descriptors/__init__.pyi index bf8523313595..98c2447e9900 100644 --- a/stubs/openpyxl/openpyxl/descriptors/__init__.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/__init__.pyi @@ -1,11 +1,18 @@ +from _typeshed import Self + from .base import * from .sequence import Sequence as Sequence class MetaStrict(type): - def __new__(cls, clsname, bases, methods): ... + def __new__(cls: type[Self], clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... class MetaSerialisable(type): - def __new__(cls, clsname, bases, methods): ... + def __new__(cls: type[Self], clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... class Strict(metaclass=MetaStrict): ... -class _Serialiasable(metaclass=MetaSerialisable): ... + +class _Serialiasable(metaclass=MetaSerialisable): + __attrs__: tuple[str, ...] + __namespaced__: tuple[tuple[str, str], ...] + __nested__: tuple[str, ...] + __elements__: tuple[str, ...] diff --git a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi index 730fb206385f..cadae9028343 100644 --- a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi @@ -1,33 +1,39 @@ +from _typeshed import Incomplete from collections.abc import Generator -from typing import Any +from typing import TypeVar +from typing_extensions import TypeAlias from .base import Alias, Descriptor +_T = TypeVar("_T") +# Acceptable types for openpyxl.descriptors.Sequence +_Sequence: TypeAlias = tuple[_T, ...] | list[_T] # noqa: Y047 + class Sequence(Descriptor): - expected_type: Any - seq_types: Any + expected_type: Incomplete + seq_types: Incomplete idx_base: int unique: bool def __set__(self, instance, seq) -> None: ... - def to_tree(self, tagname, obj, namespace: Any | None = ...) -> Generator[Any, None, None]: ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ... class ValueSequence(Sequence): attribute: str - def to_tree(self, tagname, obj, namespace: Any | None = ...) -> Generator[Any, None, None]: ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ... def from_tree(self, node): ... class NestedSequence(Sequence): count: bool - def to_tree(self, tagname, obj, namespace: Any | None = ...): ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = ...): ... def from_tree(self, node): ... class MultiSequence(Sequence): def __set__(self, instance, seq) -> None: ... - def to_tree(self, tagname, obj, namespace: Any | None = ...) -> Generator[Any, None, None]: ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ... class MultiSequencePart(Alias): - expected_type: Any - store: Any + expected_type: Incomplete + store: Incomplete def __init__(self, expected_type, store) -> None: ... def __set__(self, instance, value) -> None: ... def __get__(self, instance, cls): ... diff --git a/stubs/openpyxl/openpyxl/drawing/image.pyi b/stubs/openpyxl/openpyxl/drawing/image.pyi index c1d8009f2d6c..b0035d77895c 100644 --- a/stubs/openpyxl/openpyxl/drawing/image.pyi +++ b/stubs/openpyxl/openpyxl/drawing/image.pyi @@ -1,9 +1,14 @@ -from typing import Any +from typing_extensions import Literal + +from PIL import Image as ImageModule + +# Using "object" because modules can't by used as type +PILImage: object | Literal[False] class Image: anchor: str - ref: Any - format: Any + ref: ImageModule.Image | str + format: str def __init__(self, img) -> None: ... @property def path(self): ... diff --git a/stubs/openpyxl/openpyxl/reader/drawings.pyi b/stubs/openpyxl/openpyxl/reader/drawings.pyi index 4334877fc2b0..04bc949b24f5 100644 --- a/stubs/openpyxl/openpyxl/reader/drawings.pyi +++ b/stubs/openpyxl/openpyxl/reader/drawings.pyi @@ -1 +1,3 @@ -def find_images(archive, path): ... +from zipfile import ZipFile + +def find_images(archive: ZipFile, path: str): ... diff --git a/stubs/openpyxl/openpyxl/reader/excel.pyi b/stubs/openpyxl/openpyxl/reader/excel.pyi index c70d2e8e472c..33f945cc7d87 100644 --- a/stubs/openpyxl/openpyxl/reader/excel.pyi +++ b/stubs/openpyxl/openpyxl/reader/excel.pyi @@ -1,26 +1,37 @@ -from typing import Any +from _typeshed import Incomplete, StrPath +from typing import IO +from typing_extensions import Final +from zipfile import ZipFile -SUPPORTED_FORMATS: Any +from openpyxl.packaging.relationship import Relationship +from openpyxl.packaging.workbook import ChildSheet +from openpyxl.workbook.workbook import Workbook + +SUPPORTED_FORMATS: Final = (".xlsx", ".xlsm", ".xltx", ".xltm") class ExcelReader: - archive: Any - valid_files: Any - read_only: Any - keep_vba: Any - data_only: Any - keep_links: Any - shared_strings: Any - def __init__(self, fn, read_only: bool = ..., keep_vba=..., data_only: bool = ..., keep_links: bool = ...) -> None: ... - package: Any + archive: ZipFile + valid_files: list[str] + read_only: bool + keep_vba: bool + data_only: bool + keep_links: bool + shared_strings: list[str] + def __init__( + self, fn: StrPath | IO[bytes], read_only: bool = ..., keep_vba: bool = ..., data_only: bool = ..., keep_links: bool = ... + ) -> None: ... + package: Incomplete def read_manifest(self) -> None: ... def read_strings(self) -> None: ... - parser: Any - wb: Any + parser: Incomplete + wb: Incomplete def read_workbook(self) -> None: ... def read_properties(self) -> None: ... def read_theme(self) -> None: ... - def read_chartsheet(self, sheet, rel) -> None: ... + def read_chartsheet(self, sheet: ChildSheet, rel: Relationship) -> None: ... def read_worksheets(self) -> None: ... def read(self) -> None: ... -def load_workbook(filename, read_only: bool = ..., keep_vba=..., data_only: bool = ..., keep_links: bool = ...): ... +def load_workbook( + filename: StrPath | IO[bytes], read_only: bool = ..., keep_vba=..., data_only: bool = ..., keep_links: bool = ... +) -> Workbook: ... diff --git a/stubs/openpyxl/openpyxl/reader/strings.pyi b/stubs/openpyxl/openpyxl/reader/strings.pyi index 932a8b6f34e8..e239033a8125 100644 --- a/stubs/openpyxl/openpyxl/reader/strings.pyi +++ b/stubs/openpyxl/openpyxl/reader/strings.pyi @@ -1 +1,10 @@ -def read_string_table(xml_source): ... +from _typeshed import ReadableBuffer, StrOrBytesPath, SupportsRead +from typing import Any, TypeVar + +_T = TypeVar("_T") + +class _Readable(SupportsRead[_T]): + def close(self) -> Any: ... + +# SupportsRead type parameter is the same as pyexpat.XMLParserType.Parse's first argument +def read_string_table(xml_source: StrOrBytesPath | int | _Readable[str | ReadableBuffer]) -> list[str]: ... diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index 4b1bde6f750e..f3271e12de2c 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -1,18 +1,23 @@ -from collections.abc import Generator -from typing import Any +from collections.abc import Generator, Iterable +from zipfile import ZipFile + +from openpyxl.packaging.relationship import Relationship, RelationshipList +from openpyxl.packaging.workbook import ChildSheet, PivotCache +from openpyxl.pivot.cache import CacheDefinition +from openpyxl.workbook.workbook import Workbook class WorkbookParser: - archive: Any - workbook_part_name: Any - wb: Any - keep_links: Any - sheets: Any - def __init__(self, archive, workbook_part_name, keep_links: bool = ...) -> None: ... + archive: ZipFile + workbook_part_name: str + wb: Workbook + keep_links: bool + sheets: list[ChildSheet] + def __init__(self, archive: ZipFile, workbook_part_name: str, keep_links: bool = ...) -> None: ... @property - def rels(self): ... - caches: Any + def rels(self) -> RelationshipList: ... + caches: Iterable[PivotCache] def parse(self) -> None: ... - def find_sheets(self) -> Generator[Any, None, None]: ... + def find_sheets(self) -> Generator[tuple[ChildSheet, Relationship], None, None]: ... def assign_names(self) -> None: ... @property - def pivot_caches(self): ... + def pivot_caches(self) -> dict[int, CacheDefinition]: ... diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index adcc6aeef810..33c26426ed94 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -1,39 +1,46 @@ -from typing import Any +from collections.abc import Generator +from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors.serialisable import Serialisable -horizontal_alignments: Any -vertical_aligments: Any +_Unused: TypeAlias = object + +horizontal_alignments: Final = ("general", "left", "center", "right", "fill", "justify", "centerContinuous", "distributed") +_HorizontalAlignementsType: TypeAlias = Literal[ + "general", "left", "center", "right", "fill", "justify", "centerContinuous", "distributed" +] +vertical_aligments: Final = ("top", "center", "bottom", "justify", "distributed") +_VerticalAlignementsType: TypeAlias = Literal["top", "center", "bottom", "justify", "distributed"] class Alignment(Serialisable): tagname: str - __fields__: Any - horizontal: Any - vertical: Any - textRotation: Any - text_rotation: Any - wrapText: Any - wrap_text: Any - shrinkToFit: Any - shrink_to_fit: Any - indent: Any - relativeIndent: Any - justifyLastLine: Any - readingOrder: Any + __fields__: tuple[str, ...] + horizontal: _HorizontalAlignementsType | None + vertical: _VerticalAlignementsType | None + textRotation: int | None = ... + text_rotation = textRotation + wrapText: bool | None = ... + wrap_text = wrapText + shrinkToFit: bool | None = ... + shrink_to_fit = shrinkToFit + indent: float + relativeIndent: float + justifyLastLine: bool | None + readingOrder: float def __init__( self, - horizontal: Any | None = ..., - vertical: Any | None = ..., - textRotation: int = ..., - wrapText: Any | None = ..., - shrinkToFit: Any | None = ..., - indent: int = ..., - relativeIndent: int = ..., - justifyLastLine: Any | None = ..., - readingOrder: int = ..., - text_rotation: Any | None = ..., - wrap_text: Any | None = ..., - shrink_to_fit: Any | None = ..., - mergeCell: Any | None = ..., + horizontal: _HorizontalAlignementsType | None = ..., + vertical: _VerticalAlignementsType | None = ..., + textRotation: float | None = ..., + wrapText: bool | None = ..., + shrinkToFit: bool | None = ..., + indent: float = ..., + relativeIndent: float = ..., + justifyLastLine: bool | None = ..., + readingOrder: float = ..., + text_rotation: bool | None = ..., + wrap_text: bool | None = ..., + shrink_to_fit: bool | None = ..., + mergeCell: _Unused = ..., ) -> None: ... - def __iter__(self): ... + def __iter__(self) -> Generator[tuple[str, str], None, None]: ... diff --git a/stubs/openpyxl/openpyxl/styles/borders.pyi b/stubs/openpyxl/openpyxl/styles/borders.pyi index d5d36e30c7d9..d7b25dc26580 100644 --- a/stubs/openpyxl/openpyxl/styles/borders.pyi +++ b/stubs/openpyxl/openpyxl/styles/borders.pyi @@ -1,62 +1,83 @@ -from typing import Any +from _typeshed import Incomplete +from collections.abc import Generator +from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors.serialisable import Serialisable -BORDER_NONE: Any -BORDER_DASHDOT: str -BORDER_DASHDOTDOT: str -BORDER_DASHED: str -BORDER_DOTTED: str -BORDER_DOUBLE: str -BORDER_HAIR: str -BORDER_MEDIUM: str -BORDER_MEDIUMDASHDOT: str -BORDER_MEDIUMDASHDOTDOT: str -BORDER_MEDIUMDASHED: str -BORDER_SLANTDASHDOT: str -BORDER_THICK: str -BORDER_THIN: str +from .colors import Color + +BORDER_NONE: None +BORDER_DASHDOT: Final = "dashDot" +BORDER_DASHDOTDOT: Final = "dashDotDot" +BORDER_DASHED: Final = "dashed" +BORDER_DOTTED: Final = "dotted" +BORDER_DOUBLE: Final = "double" +BORDER_HAIR: Final = "hair" +BORDER_MEDIUM: Final = "medium" +BORDER_MEDIUMDASHDOT: Final = "mediumDashDot" +BORDER_MEDIUMDASHDOTDOT: Final = "mediumDashDotDot" +BORDER_MEDIUMDASHED: Final = "mediumDashed" +BORDER_SLANTDASHDOT: Final = "slantDashDot" +BORDER_THICK: Final = "thick" +BORDER_THIN: Final = "thin" +_StyleType: TypeAlias = Literal[ + "dashDot", + "dashDotDot", + "dashed", + "dotted", + "double", + "hair", + "medium", + "mediumDashDot", + "mediumDashDotDot", + "mediumDashed", + "slantDashDot", + "thick", + "thin", +] class Side(Serialisable): # type: ignore[misc] - __fields__: Any - color: Any - style: Any - border_style: Any - def __init__(self, style: Any | None = ..., color: Any | None = ..., border_style: Any | None = ...) -> None: ... + __fields__: tuple[str, ...] + color: Color | None + style: _StyleType | None = ... + border_style = style + def __init__( + self, style: _StyleType | None = ..., color: Color | None = ..., border_style: _StyleType | None = ... + ) -> None: ... class Border(Serialisable): tagname: str - __fields__: Any - __elements__: Any - start: Any - end: Any - left: Any - right: Any - top: Any - bottom: Any - diagonal: Any - vertical: Any - horizontal: Any - outline: Any - diagonalUp: Any - diagonalDown: Any - diagonal_direction: Any + __fields__: tuple[str, ...] + __elements__: tuple[str, ...] + start: Side | None + end: Side | None + left: Side | None + right: Side | None + top: Side | None + bottom: Side | None + diagonal: Side | None + vertical: Side | None + horizontal: Side | None + outline: bool + diagonalUp: bool + diagonalDown: bool + diagonal_direction: Incomplete | None def __init__( self, - left: Any | None = ..., - right: Any | None = ..., - top: Any | None = ..., - bottom: Any | None = ..., - diagonal: Any | None = ..., - diagonal_direction: Any | None = ..., - vertical: Any | None = ..., - horizontal: Any | None = ..., + left: Side | None = ..., + right: Side | None = ..., + top: Side | None = ..., + bottom: Side | None = ..., + diagonal: Side | None = ..., + diagonal_direction: Incomplete | None = ..., + vertical: Side | None = ..., + horizontal: Side | None = ..., diagonalUp: bool = ..., diagonalDown: bool = ..., outline: bool = ..., - start: Any | None = ..., - end: Any | None = ..., + start: Side | None = ..., + end: Side | None = ..., ) -> None: ... - def __iter__(self): ... + def __iter__(self) -> Generator[tuple[str, str], None, None]: ... -DEFAULT_BORDER: Any +DEFAULT_BORDER: Border diff --git a/stubs/openpyxl/openpyxl/styles/colors.pyi b/stubs/openpyxl/openpyxl/styles/colors.pyi index 5beda186db53..ee4a023c2c62 100644 --- a/stubs/openpyxl/openpyxl/styles/colors.pyi +++ b/stubs/openpyxl/openpyxl/styles/colors.pyi @@ -1,60 +1,137 @@ -from typing import Any +from _typeshed import Self +from collections.abc import Generator +from re import Pattern +from typing import TypeVar, overload +from typing_extensions import TypeAlias from openpyxl.descriptors import Typed +from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.drawing.colors import SystemColor -COLOR_INDEX: Any -BLACK: Any -WHITE: Any -BLUE: Any -aRGB_REGEX: Any +_Unused: TypeAlias = object +_S = TypeVar("_S", bound=Serialisable) + +COLOR_INDEX: tuple[ + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, + str, +] +BLACK: str +WHITE: str +BLUE: str +aRGB_REGEX: Pattern[str] class RGB(Typed): - expected_type: Any - def __set__(self, instance, value) -> None: ... + expected_type: type[str] + def __set__(self, instance: Color | SystemColor | RgbColor, value: str) -> None: ... class Color(Serialisable): tagname: str - rgb: Any - indexed: Any - auto: Any - theme: Any - tint: Any - type: Any + rgb: str + indexed: int + auto: bool + theme: int + tint: float + type: str def __init__( self, - rgb=..., - indexed: Any | None = ..., - auto: Any | None = ..., - theme: Any | None = ..., + rgb: str = ..., + indexed: int | None = ..., + auto: bool | None = ..., + theme: int | None = ..., tint: float = ..., - index: Any | None = ..., - type: str = ..., + index: int | None = ..., + type: _Unused = ..., ) -> None: ... @property - def value(self): ... + def value(self) -> str | float | bool: ... @value.setter - def value(self, value) -> None: ... - def __iter__(self): ... + def value(self, value: str | float | bool) -> None: ... + def __iter__(self) -> Generator[tuple[str, str], None, None]: ... @property - def index(self): ... - def __add__(self, other): ... + def index(self) -> str | float | bool: ... + @overload + def __add__(self: Self, other: Color) -> Self: ... + @overload + def __add__(self, other: _S) -> _S: ... class ColorDescriptor(Typed): - expected_type: Any - def __set__(self, instance, value) -> None: ... + expected_type: type[Color] + def __set__(self, instance: Serialisable, value: str | Color) -> None: ... class RgbColor(Serialisable): tagname: str - rgb: Any - def __init__(self, rgb: Any | None = ...) -> None: ... + rgb: str + def __init__(self, rgb: str) -> None: ... class ColorList(Serialisable): tagname: str - indexedColors: Any - mruColors: Any - __elements__: Any - def __init__(self, indexedColors=..., mruColors=...) -> None: ... + indexedColors: _Sequence[RgbColor] + mruColors: _Sequence[Color] + __elements__: tuple[str, ...] + def __init__(self, indexedColors: _Sequence[RgbColor] = ..., mruColors: _Sequence[Color] = ...) -> None: ... def __bool__(self) -> bool: ... @property - def index(self): ... + def index(self) -> list[str]: ... diff --git a/stubs/openpyxl/openpyxl/styles/differential.pyi b/stubs/openpyxl/openpyxl/styles/differential.pyi index 80737ad19f6a..f226da01f373 100644 --- a/stubs/openpyxl/openpyxl/styles/differential.pyi +++ b/stubs/openpyxl/openpyxl/styles/differential.pyi @@ -1,37 +1,44 @@ -from typing import Any +from _typeshed import Incomplete +from typing_extensions import TypeAlias +from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.styles import Alignment, Border, Fill, Font, Protection + +from .numbers import NumberFormat + +_Unused: TypeAlias = object class DifferentialStyle(Serialisable): tagname: str - __elements__: Any - font: Any - numFmt: Any - fill: Any - alignment: Any - border: Any - protection: Any - extLst: Any + __elements__: tuple[str, ...] + font: Font | None + numFmt: NumberFormat | None + fill: Fill | None + alignment: Alignment | None + border: Border | None + protection: Protection | None + extLst: _Sequence[Incomplete] | None def __init__( self, - font: Any | None = ..., - numFmt: Any | None = ..., - fill: Any | None = ..., - alignment: Any | None = ..., - border: Any | None = ..., - protection: Any | None = ..., - extLst: Any | None = ..., + font: Font | None = ..., + numFmt: NumberFormat | None = ..., + fill: Fill | None = ..., + alignment: Alignment | None = ..., + border: Border | None = ..., + protection: Protection | None = ..., + extLst: _Sequence[Incomplete] | None = ..., ) -> None: ... class DifferentialStyleList(Serialisable): tagname: str - dxf: Any - styles: Any - __attrs__: Any - def __init__(self, dxf=..., count: Any | None = ...) -> None: ... - def append(self, dxf) -> None: ... - def add(self, dxf): ... + dxf: _Sequence[DifferentialStyle] + styles: Incomplete + __attrs__: Incomplete + def __init__(self, dxf: _Sequence[DifferentialStyle] = ..., count: _Unused = ...) -> None: ... + def append(self, dxf: DifferentialStyle) -> None: ... + def add(self, dxf: DifferentialStyle) -> int: ... def __bool__(self) -> bool: ... - def __getitem__(self, idx): ... + def __getitem__(self, idx: int) -> DifferentialStyle: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index f3fdda59492d..781dffa0dbf8 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -1,79 +1,137 @@ -from typing import Any +from _typeshed import Self +from collections.abc import Generator, Sequence +from typing_extensions import Final, Literal, TypeAlias -from openpyxl.descriptors import Sequence +from openpyxl.descriptors import Sequence as SequenceDescriptor +from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.xml.functions import _Element -FILL_NONE: str -FILL_SOLID: str -FILL_PATTERN_DARKDOWN: str -FILL_PATTERN_DARKGRAY: str -FILL_PATTERN_DARKGRID: str -FILL_PATTERN_DARKHORIZONTAL: str -FILL_PATTERN_DARKTRELLIS: str -FILL_PATTERN_DARKUP: str -FILL_PATTERN_DARKVERTICAL: str -FILL_PATTERN_GRAY0625: str -FILL_PATTERN_GRAY125: str -FILL_PATTERN_LIGHTDOWN: str -FILL_PATTERN_LIGHTGRAY: str -FILL_PATTERN_LIGHTGRID: str -FILL_PATTERN_LIGHTHORIZONTAL: str -FILL_PATTERN_LIGHTTRELLIS: str -FILL_PATTERN_LIGHTUP: str -FILL_PATTERN_LIGHTVERTICAL: str -FILL_PATTERN_MEDIUMGRAY: str -fills: Any +from .colors import Color + +_Unused: TypeAlias = object + +FILL_NONE: Final = "none" +FILL_SOLID: Final = "solid" +FILL_PATTERN_DARKDOWN: Final = "darkDown" +FILL_PATTERN_DARKGRAY: Final = "darkGray" +FILL_PATTERN_DARKGRID: Final = "darkGrid" +FILL_PATTERN_DARKHORIZONTAL: Final = "darkHorizontal" +FILL_PATTERN_DARKTRELLIS: Final = "darkTrellis" +FILL_PATTERN_DARKUP: Final = "darkUp" +FILL_PATTERN_DARKVERTICAL: Final = "darkVertical" +FILL_PATTERN_GRAY0625: Final = "gray0625" +FILL_PATTERN_GRAY125: Final = "gray125" +FILL_PATTERN_LIGHTDOWN: Final = "lightDown" +FILL_PATTERN_LIGHTGRAY: Final = "lightGray" +FILL_PATTERN_LIGHTGRID: Final = "lightGrid" +FILL_PATTERN_LIGHTHORIZONTAL: Final = "lightHorizontal" +FILL_PATTERN_LIGHTTRELLIS: Final = "lightTrellis" +FILL_PATTERN_LIGHTUP: Final = "lightUp" +FILL_PATTERN_LIGHTVERTICAL: Final = "lightVertical" +FILL_PATTERN_MEDIUMGRAY: Final = "mediumGray" + +fills: Final = ( + FILL_SOLID, + FILL_PATTERN_DARKDOWN, + FILL_PATTERN_DARKGRAY, + FILL_PATTERN_DARKGRID, + FILL_PATTERN_DARKHORIZONTAL, + FILL_PATTERN_DARKTRELLIS, + FILL_PATTERN_DARKUP, + FILL_PATTERN_DARKVERTICAL, + FILL_PATTERN_GRAY0625, + FILL_PATTERN_GRAY125, + FILL_PATTERN_LIGHTDOWN, + FILL_PATTERN_LIGHTGRAY, + FILL_PATTERN_LIGHTGRID, + FILL_PATTERN_LIGHTHORIZONTAL, + FILL_PATTERN_LIGHTTRELLIS, + FILL_PATTERN_LIGHTUP, + FILL_PATTERN_LIGHTVERTICAL, + FILL_PATTERN_MEDIUMGRAY, +) +_FillsType: TypeAlias = Literal[ + "none", + "solid", + "darkDown", + "darkGray", + "darkGrid", + "darkHorizontal", + "darkTrellis", + "darkUp", + "darkVertical", + "gray0625", + "gray125", + "lightDown", + "lightGray", + "lightGrid", + "lightHorizontal", + "lightTrellis", + "lightUp", + "lightVertical", + "mediumGray", +] class Fill(Serialisable): tagname: str @classmethod - def from_tree(cls, el): ... + def from_tree(cls: Self, el: _Element) -> Self: ... class PatternFill(Fill): tagname: str - __elements__: Any - patternType: Any - fill_type: Any - fgColor: Any - start_color: Any - bgColor: Any - end_color: Any + __elements__: tuple[str, ...] + patternType: _FillsType | None = ... + fill_type = patternType + fgColor: Color = ... + start_color = fgColor + bgColor: Color = ... + end_color = bgColor def __init__( self, - patternType: Any | None = ..., - fgColor=..., - bgColor=..., - fill_type: Any | None = ..., - start_color: Any | None = ..., - end_color: Any | None = ..., + patternType: _FillsType | None = ..., + fgColor: Color = ..., + bgColor: Color = ..., + fill_type: _FillsType | None = ..., + start_color: Color | None = ..., + end_color: Color | None = ..., ) -> None: ... - def to_tree(self, tagname: Any | None = ..., idx: Any | None = ...): ... # type: ignore[override] + def to_tree(self, tagname: _Unused = ..., idx: _Unused = ...): ... # type: ignore[override] -DEFAULT_EMPTY_FILL: Any -DEFAULT_GRAY_FILL: Any +DEFAULT_EMPTY_FILL: PatternFill +DEFAULT_GRAY_FILL: PatternFill class Stop(Serialisable): tagname: str - position: Any - color: Any - def __init__(self, color, position) -> None: ... + position: float + color: Color + def __init__(self, color: Color, position: float) -> None: ... -class StopList(Sequence): - expected_type: Any - def __set__(self, obj, values) -> None: ... +class StopList(SequenceDescriptor): + expected_type: type[Stop] + def __set__(self, obj: GradientFill, values: Sequence[Stop]) -> None: ... class GradientFill(Fill): tagname: str - type: Any - fill_type: Any - degree: Any - left: Any - right: Any - top: Any - bottom: Any - stop: Any + type: Literal["linear", "path"] + fill_type = type + degree: float + left: float + right: float + top: float + bottom: float + stop: _Sequence[Stop] def __init__( - self, type: str = ..., degree: int = ..., left: int = ..., right: int = ..., top: int = ..., bottom: int = ..., stop=... + self, + type: Literal["linear", "path"] = ..., + degree: float = ..., + left: float = ..., + right: float = ..., + top: float = ..., + bottom: float = ..., + stop: _Sequence[Stop] = ..., ) -> None: ... - def __iter__(self): ... - def to_tree(self, tagname: Any | None = ..., namespace: Any | None = ..., idx: Any | None = ...): ... # type: ignore[override] + def __iter__(self) -> Generator[tuple[str, str], None, None]: ... + def to_tree( # type: ignore[override] + self, tagname: _Unused = ..., namespace: _Unused = ..., idx: _Unused = ... + ) -> _Element: ... diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index 9c8bf2998670..940ac3df89f4 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -1,58 +1,64 @@ -from typing import Any +from _typeshed import Self +from typing_extensions import Literal from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.xml.functions import _Element + +from .colors import Color class Font(Serialisable): UNDERLINE_DOUBLE: str UNDERLINE_DOUBLE_ACCOUNTING: str UNDERLINE_SINGLE: str UNDERLINE_SINGLE_ACCOUNTING: str - name: Any - charset: Any - family: Any - sz: Any - size: Any - b: Any - bold: Any - i: Any - italic: Any - strike: Any - strikethrough: Any - outline: Any - shadow: Any - condense: Any - extend: Any - u: Any - underline: Any - vertAlign: Any - color: Any - scheme: Any + name: str | None + charset: int | None + family: float | None + sz: float | None = ... + size = sz + b: bool = ... + bold = b + i: bool = ... + italic = i + strike: bool | None = ... + strikethrough = strike + outline: bool | None + shadow: bool | None + condense: bool | None + extend: bool | None + u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ... + underline = u + vertAlign: Literal["superscript", "subscript", "baseline", None] + color: Color | None + scheme: Literal["major", "minor", None] + tagname: str - __elements__: Any + + __elements__: tuple[str, ...] def __init__( self, - name: Any | None = ..., - sz: Any | None = ..., - b: Any | None = ..., - i: Any | None = ..., - charset: Any | None = ..., - u: Any | None = ..., - strike: Any | None = ..., - color: Any | None = ..., - scheme: Any | None = ..., - family: Any | None = ..., - size: Any | None = ..., - bold: Any | None = ..., - italic: Any | None = ..., - strikethrough: Any | None = ..., - underline: Any | None = ..., - vertAlign: Any | None = ..., - outline: Any | None = ..., - shadow: Any | None = ..., - condense: Any | None = ..., - extend: Any | None = ..., + name: str | None = ..., + sz: float | None = ..., + b: bool | None = ..., + i: bool | None = ..., + charset: int | None = ..., + u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., + strike: bool | None = ..., + color: Color | None = ..., + scheme: Literal["major", "minor", None] = ..., + family: float | None = ..., + size: float | None = ..., + bold: bool | None = ..., + italic: bool | None = ..., + strikethrough: bool | None = ..., + underline: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., + vertAlign: Literal["superscript", "subscript", "baseline", None] = ..., + outline: bool | None = ..., + shadow: bool | None = ..., + condense: bool | None = ..., + extend: bool | None = ..., ) -> None: ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls: Self, node: _Element) -> Self: ... -DEFAULT_FONT: Any +DEFAULT_FONT: Font diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index 97770437b317..fbd71a0dba08 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -1,76 +1,89 @@ -from typing import Any +from collections.abc import Generator +from typing_extensions import Literal, TypeAlias +from openpyxl.descriptors.excel import ExtensionList +from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.workbook.workbook import Workbook + +from .alignment import Alignment +from .borders import Border +from .cell_style import CellStyle, StyleArray +from .fills import Fill, PatternFill +from .fonts import Font +from .protection import Protection + +_Unused: TypeAlias = object class NamedStyle(Serialisable): # type: ignore[misc] - font: Any - fill: Any - border: Any - alignment: Any - number_format: Any - protection: Any - builtinId: Any - hidden: Any + font: Font + fill: Fill + border: Border + alignment: Alignment + number_format: str + protection: Protection + builtinId: int | None + hidden: bool | None # Overwritten by property below - # xfId: Integer - name: Any + # xfId: int | None + name: str def __init__( self, name: str = ..., - font=..., - fill=..., - border=..., - alignment=..., - number_format: Any | None = ..., - protection=..., - builtinId: Any | None = ..., - hidden: bool = ..., - xfId: Any | None = ..., + font: Font = ..., + fill: PatternFill = ..., + border: Border = ..., + alignment: Alignment = ..., + number_format: str | None = ..., + protection: Protection = ..., + builtinId: int | None = ..., + hidden: bool | None = ..., + xfId: _Unused = ..., ) -> None: ... def __setattr__(self, attr: str, value) -> None: ... - def __iter__(self): ... + def __iter__(self) -> Generator[tuple[Literal["name", "builtinId", "hidden", "xfId"], str], None, None]: ... @property - def xfId(self): ... - def bind(self, wb) -> None: ... - def as_tuple(self): ... - def as_xf(self): ... - def as_name(self): ... + def xfId(self) -> int | None: ... + def bind(self, wb: Workbook) -> None: ... + def as_tuple(self) -> StyleArray: ... + def as_xf(self) -> CellStyle: ... + def as_name(self) -> _NamedCellStyle: ... -class NamedStyleList(list[Any]): +class NamedStyleList(list[NamedStyle]): @property - def names(self): ... - def __getitem__(self, key): ... - def append(self, style) -> None: ... + def names(self) -> list[str]: ... + def __getitem__(self, key: int | str) -> NamedStyle: ... # type: ignore[override] + def append(self, style: NamedStyle) -> None: ... class _NamedCellStyle(Serialisable): tagname: str - name: Any - xfId: Any - builtinId: Any - iLevel: Any - hidden: Any - customBuiltin: Any - extLst: Any - __elements__: Any + name: str + xfId: int + builtinId: int | None + iLevel: int | None + hidden: bool | None + customBuiltin: bool | None + extLst: ExtensionList | None + __elements__: tuple[str, ...] def __init__( self, - name: Any | None = ..., - xfId: Any | None = ..., - builtinId: Any | None = ..., - iLevel: Any | None = ..., - hidden: Any | None = ..., - customBuiltin: Any | None = ..., - extLst: Any | None = ..., + name: str, + xfId: int, + builtinId: int | None = ..., + iLevel: int | None = ..., + hidden: bool | None = ..., + customBuiltin: bool | None = ..., + extLst: _Unused = ..., ) -> None: ... class _NamedCellStyleList(Serialisable): tagname: str # Overwritten by property below - # count: Integer - cellStyle: Any - __attrs__: Any - def __init__(self, count: Any | None = ..., cellStyle=...) -> None: ... + # count: int | None + cellStyle: _Sequence[_NamedCellStyle] + __attrs__: tuple[str, ...] + def __init__(self, count: _Unused = ..., cellStyle: _Sequence[_NamedCellStyle] = ...) -> None: ... @property - def count(self): ... + def count(self) -> int | None: ... @property - def names(self): ... + def names(self) -> NamedStyleList: ... diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index 421720d56f7a..6a34beab07c6 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -1,19 +1,25 @@ -from typing import Any +from re import Pattern +from typing import overload +from typing_extensions import Literal, TypeAlias, TypeGuard from openpyxl.descriptors import String +from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.styles.named_styles import NamedStyle -BUILTIN_FORMATS: Any +_Unused: TypeAlias = object + +BUILTIN_FORMATS: dict[int, str] BUILTIN_FORMATS_MAX_SIZE: int -BUILTIN_FORMATS_REVERSE: Any -FORMAT_GENERAL: Any -FORMAT_TEXT: Any -FORMAT_NUMBER: Any -FORMAT_NUMBER_00: Any -FORMAT_NUMBER_COMMA_SEPARATED1: Any +BUILTIN_FORMATS_REVERSE: dict[str, int] +FORMAT_GENERAL: str +FORMAT_TEXT: str +FORMAT_NUMBER: str +FORMAT_NUMBER_00: str +FORMAT_NUMBER_COMMA_SEPARATED1: str FORMAT_NUMBER_COMMA_SEPARATED2: str -FORMAT_PERCENTAGE: Any -FORMAT_PERCENTAGE_00: Any +FORMAT_PERCENTAGE: str +FORMAT_PERCENTAGE_00: str FORMAT_DATE_YYYYMMDD2: str FORMAT_DATE_YYMMDD: str FORMAT_DATE_DDMMYY: str @@ -21,18 +27,18 @@ FORMAT_DATE_DMYSLASH: str FORMAT_DATE_DMYMINUS: str FORMAT_DATE_DMMINUS: str FORMAT_DATE_MYMINUS: str -FORMAT_DATE_XLSX14: Any -FORMAT_DATE_XLSX15: Any -FORMAT_DATE_XLSX16: Any -FORMAT_DATE_XLSX17: Any -FORMAT_DATE_XLSX22: Any +FORMAT_DATE_XLSX14: str +FORMAT_DATE_XLSX15: str +FORMAT_DATE_XLSX16: str +FORMAT_DATE_XLSX17: str +FORMAT_DATE_XLSX22: str FORMAT_DATE_DATETIME: str -FORMAT_DATE_TIME1: Any -FORMAT_DATE_TIME2: Any -FORMAT_DATE_TIME3: Any -FORMAT_DATE_TIME4: Any -FORMAT_DATE_TIME5: Any -FORMAT_DATE_TIME6: Any +FORMAT_DATE_TIME1: str +FORMAT_DATE_TIME2: str +FORMAT_DATE_TIME3: str +FORMAT_DATE_TIME4: str +FORMAT_DATE_TIME5: str +FORMAT_DATE_TIME6: str FORMAT_DATE_TIME7: str FORMAT_DATE_TIME8: str FORMAT_DATE_TIMEDELTA: str @@ -43,31 +49,34 @@ FORMAT_CURRENCY_EUR_SIMPLE: str COLORS: str LITERAL_GROUP: str LOCALE_GROUP: str -STRIP_RE: Any -TIMEDELTA_RE: Any +STRIP_RE: Pattern[str] +TIMEDELTA_RE: Pattern[str] -def is_date_format(fmt): ... +def is_date_format(fmt: str | None) -> TypeGuard[str]: ... def is_timedelta_format(fmt): ... -def is_datetime(fmt): ... -def is_builtin(fmt): ... -def builtin_format_code(index): ... +@overload +def is_datetime(fmt: None) -> None: ... +@overload +def is_datetime(fmt: str) -> Literal["datetime", "date", "time", None]: ... +def is_builtin(fmt: str) -> bool: ... +def builtin_format_code(index: int) -> str | None: ... def builtin_format_id(fmt): ... class NumberFormatDescriptor(String): - def __set__(self, instance, value) -> None: ... + def __set__(self, instance: NamedStyle, value: str | None) -> None: ... class NumberFormat(Serialisable): # type: ignore[misc] - numFmtId: Any - formatCode: Any - def __init__(self, numFmtId: Any | None = ..., formatCode: Any | None = ...) -> None: ... + numFmtId: int + formatCode: str + def __init__(self, numFmtId: int, formatCode: str) -> None: ... class NumberFormatList(Serialisable): # type: ignore[misc] # Overwritten by property below - # count: Integer - numFmt: Any - __elements__: Any - __attrs__: Any - def __init__(self, count: Any | None = ..., numFmt=...) -> None: ... + # count: int | None + numFmt: _Sequence[NumberFormat] + __elements__: tuple[str, ...] + __attrs__: tuple[str, ...] + def __init__(self, count: _Unused = ..., numFmt: _Sequence[NumberFormat] = ...) -> None: ... @property - def count(self): ... - def __getitem__(self, idx): ... + def count(self) -> int | None: ... + def __getitem__(self, idx) -> NumberFormat: ... diff --git a/stubs/openpyxl/openpyxl/styles/protection.pyi b/stubs/openpyxl/openpyxl/styles/protection.pyi index df22903e1876..61d3f6329412 100644 --- a/stubs/openpyxl/openpyxl/styles/protection.pyi +++ b/stubs/openpyxl/openpyxl/styles/protection.pyi @@ -1,9 +1,7 @@ -from typing import Any - from openpyxl.descriptors.serialisable import Serialisable class Protection(Serialisable): tagname: str - locked: Any - hidden: Any + locked: bool + hidden: bool def __init__(self, locked: bool = ..., hidden: bool = ...) -> None: ... diff --git a/stubs/openpyxl/openpyxl/styles/styleable.pyi b/stubs/openpyxl/openpyxl/styles/styleable.pyi index 45929c7d8504..779408667542 100644 --- a/stubs/openpyxl/openpyxl/styles/styleable.pyi +++ b/stubs/openpyxl/openpyxl/styles/styleable.pyi @@ -1,12 +1,14 @@ -from typing import Any +from _typeshed import Incomplete from warnings import warn as warn +from .proxy import StyleProxy + class StyleDescriptor: - collection: Any - key: Any - def __init__(self, collection, key) -> None: ... + collection: str + key: str + def __init__(self, collection: str, key: str) -> None: ... def __set__(self, instance, value) -> None: ... - def __get__(self, instance, cls): ... + def __get__(self, instance, cls) -> StyleProxy: ... class NumberFormatDescriptor: key: str @@ -21,24 +23,24 @@ class NamedStyleDescriptor: def __get__(self, instance, cls): ... class StyleArrayDescriptor: - key: Any - def __init__(self, key) -> None: ... + key: str + def __init__(self, key: str) -> None: ... def __set__(self, instance, value) -> None: ... - def __get__(self, instance, cls): ... + def __get__(self, instance, cls) -> bool: ... class StyleableObject: - font: Any - fill: Any - border: Any - number_format: Any - protection: Any - alignment: Any - style: Any - quotePrefix: Any - pivotButton: Any - parent: Any - def __init__(self, sheet, style_array: Any | None = ...) -> None: ... + font: StyleDescriptor + fill: StyleDescriptor + border: StyleDescriptor + number_format: NumberFormatDescriptor + protection: StyleDescriptor + alignment: StyleDescriptor + style: NamedStyleDescriptor + quotePrefix: StyleArrayDescriptor + pivotButton: StyleArrayDescriptor + parent: Incomplete + def __init__(self, sheet, style_array: Incomplete | None = ...) -> None: ... @property - def style_id(self): ... + def style_id(self) -> int: ... @property - def has_style(self): ... + def has_style(self) -> bool: ... diff --git a/stubs/openpyxl/openpyxl/utils/cell.pyi b/stubs/openpyxl/openpyxl/utils/cell.pyi index 6fc91f158ae8..dc355c20aeba 100644 --- a/stubs/openpyxl/openpyxl/utils/cell.pyi +++ b/stubs/openpyxl/openpyxl/utils/cell.pyi @@ -1,25 +1,24 @@ from collections.abc import Generator -from typing import Any +from re import Pattern -COORD_RE: Any +COORD_RE: Pattern[bytes] COL_RANGE: str ROW_RANGE: str RANGE_EXPR: str -ABSOLUTE_RE: Any +ABSOLUTE_RE: Pattern[bytes] SHEET_TITLE: str -SHEETRANGE_RE: Any +SHEETRANGE_RE: Pattern[bytes] def get_column_interval(start: str | int, end: str | int) -> list[str]: ... def coordinate_from_string(coord_string: str) -> tuple[str, int]: ... def absolute_coordinate(coord_string: str) -> str: ... - -col: Any - def get_column_letter(idx: int) -> str: ... def column_index_from_string(str_col: str) -> int: ... -def range_boundaries(range_string: str) -> tuple[int, int, int, int]: ... -def rows_from_range(range_string) -> Generator[Any, None, None]: ... -def cols_from_range(range_string) -> Generator[Any, None, None]: ... +def range_boundaries( + range_string: str, +) -> tuple[None, int, None, int] | tuple[int, int, int, int] | tuple[int, None, int, None]: ... +def rows_from_range(range_string: str) -> Generator[tuple[str, ...], None, None]: ... +def cols_from_range(range_string: str) -> Generator[tuple[str, ...], None, None]: ... def coordinate_to_tuple(coordinate: str) -> tuple[int, int]: ... def range_to_tuple(range_string: str) -> tuple[str, tuple[int, int, int, int]]: ... def quote_sheetname(sheetname: str) -> str: ... diff --git a/stubs/openpyxl/openpyxl/utils/escape.pyi b/stubs/openpyxl/openpyxl/utils/escape.pyi index 3e182f450ba6..0ad3a1008f0a 100644 --- a/stubs/openpyxl/openpyxl/utils/escape.pyi +++ b/stubs/openpyxl/openpyxl/utils/escape.pyi @@ -1,2 +1,2 @@ -def escape(value): ... -def unescape(value): ... +def escape(value: str) -> str: ... +def unescape(value: str) -> str: ... diff --git a/stubs/openpyxl/openpyxl/utils/formulas.pyi b/stubs/openpyxl/openpyxl/utils/formulas.pyi index 55742aa9e703..ea0772a072e3 100644 --- a/stubs/openpyxl/openpyxl/utils/formulas.pyi +++ b/stubs/openpyxl/openpyxl/utils/formulas.pyi @@ -1,3 +1,358 @@ -from typing import Any +from typing_extensions import Final -FORMULAE: Any +FORMULAE: Final = frozenset( + ( + "CUBEKPIMEMBER", + "CUBEMEMBER", + "CUBEMEMBERPROPERTY", + "CUBERANKEDMEMBER", + "CUBESET", + "CUBESETCOUNT", + "CUBEVALUE", + "DAVERAGE", + "DCOUNT", + "DCOUNTA", + "DGET", + "DMAX", + "DMIN", + "DPRODUCT", + "DSTDEV", + "DSTDEVP", + "DSUM", + "DVAR", + "DVARP", + "DATE", + "DATEDIF", + "DATEVALUE", + "DAY", + "DAYS360", + "EDATE", + "EOMONTH", + "HOUR", + "MINUTE", + "MONTH", + "NETWORKDAYS", + "NETWORKDAYS.INTL", + "NOW", + "SECOND", + "TIME", + "TIMEVALUE", + "TODAY", + "WEEKDAY", + "WEEKNUM", + "WORKDAY ", + "WORKDAY.INTL", + "YEAR", + "YEARFRAC", + "BESSELI", + "BESSELJ", + "BESSELK", + "BESSELY", + "BIN2DEC", + "BIN2HEX", + "BIN2OCT", + "COMPLEX", + "CONVERT", + "DEC2BIN", + "DEC2HEX", + "DEC2OCT", + "DELTA", + "ERF", + "ERFC", + "GESTEP", + "HEX2BIN", + "HEX2DEC", + "HEX2OCT", + "IMABS", + "IMAGINARY", + "IMARGUMENT", + "IMCONJUGATE", + "IMCOS", + "IMDIV", + "IMEXP", + "IMLN", + "IMLOG10", + "IMLOG2", + "IMPOWER", + "IMPRODUCT", + "IMREAL", + "IMSIN", + "IMSQRT", + "IMSUB", + "IMSUM", + "OCT2BIN", + "OCT2DEC", + "OCT2HEX", + "ACCRINT", + "ACCRINTM", + "AMORDEGRC", + "AMORLINC", + "COUPDAYBS", + "COUPDAYS", + "COUPDAYSNC", + "COUPNCD", + "COUPNUM", + "COUPPCD", + "CUMIPMT", + "CUMPRINC", + "DB", + "DDB", + "DISC", + "DOLLARDE", + "DOLLARFR", + "DURATION", + "EFFECT", + "FV", + "FVSCHEDULE", + "INTRATE", + "IPMT", + "IRR", + "ISPMT", + "MDURATION", + "MIRR", + "NOMINAL", + "NPER", + "NPV", + "ODDFPRICE", + "ODDFYIELD", + "ODDLPRICE", + "ODDLYIELD", + "PMT", + "PPMT", + "PRICE", + "PRICEDISC", + "PRICEMAT", + "PV", + "RATE", + "RECEIVED", + "SLN", + "SYD", + "TBILLEQ", + "TBILLPRICE", + "TBILLYIELD", + "VDB", + "XIRR", + "XNPV", + "YIELD", + "YIELDDISC", + "YIELDMAT", + "CELL", + "ERROR.TYPE", + "INFO", + "ISBLANK", + "ISERR", + "ISERROR", + "ISEVEN", + "ISLOGICAL", + "ISNA", + "ISNONTEXT", + "ISNUMBER", + "ISODD", + "ISREF", + "ISTEXT", + "N", + "NA", + "TYPE", + "AND", + "FALSE", + "IF", + "IFERROR", + "NOT", + "OR", + "TRUE ADDRESS", + "AREAS", + "CHOOSE", + "COLUMN", + "COLUMNS", + "GETPIVOTDATA", + "HLOOKUP", + "HYPERLINK", + "INDEX", + "INDIRECT", + "LOOKUP", + "MATCH", + "OFFSET", + "ROW", + "ROWS", + "RTD", + "TRANSPOSE", + "VLOOKUP", + "ABS", + "ACOS", + "ACOSH", + "ASIN", + "ASINH", + "ATAN", + "ATAN2", + "ATANH", + "CEILING", + "COMBIN", + "COS", + "COSH", + "DEGREES", + "ECMA.CEILING", + "EVEN", + "EXP", + "FACT", + "FACTDOUBLE", + "FLOOR", + "GCD", + "INT", + "ISO.CEILING", + "LCM", + "LN", + "LOG", + "LOG10", + "MDETERM", + "MINVERSE", + "MMULT", + "MOD", + "MROUND", + "MULTINOMIAL", + "ODD", + "PI", + "POWER", + "PRODUCT", + "QUOTIENT", + "RADIANS", + "RAND", + "RANDBETWEEN", + "ROMAN", + "ROUND", + "ROUNDDOWN", + "ROUNDUP", + "SERIESSUM", + "SIGN", + "SIN", + "SINH", + "SQRT", + "SQRTPI", + "SUBTOTAL", + "SUM", + "SUMIF", + "SUMIFS", + "SUMPRODUCT", + "SUMSQ", + "SUMX2MY2", + "SUMX2PY2", + "SUMXMY2", + "TAN", + "TANH", + "TRUNC", + "AVEDEV", + "AVERAGE", + "AVERAGEA", + "AVERAGEIF", + "AVERAGEIFS", + "BETADIST", + "BETAINV", + "BINOMDIST", + "CHIDIST", + "CHIINV", + "CHITEST", + "CONFIDENCE", + "CORREL", + "COUNT", + "COUNTA", + "COUNTBLANK", + "COUNTIF", + "COUNTIFS", + "COVAR", + "CRITBINOM", + "DEVSQ", + "EXPONDIST", + "FDIST", + "FINV", + "FISHER", + "FISHERINV", + "FORECAST", + "FREQUENCY", + "FTEST", + "GAMMADIST", + "GAMMAINV", + "GAMMALN", + "GEOMEAN", + "GROWTH", + "HARMEAN", + "HYPGEOMDIST", + "INTERCEPT", + "KURT", + "LARGE", + "LINEST", + "LOGEST", + "LOGINV", + "LOGNORMDIST", + "MAX", + "MAXA", + "MEDIAN", + "MIN", + "MINA", + "MODE", + "NEGBINOMDIST", + "NORMDIST", + "NORMINV", + "NORMSDIST", + "NORMSINV", + "PEARSON", + "PERCENTILE", + "PERCENTRANK", + "PERMUT", + "POISSON", + "PROB", + "QUARTILE", + "RANK", + "RSQ", + "SKEW", + "SLOPE", + "SMALL", + "STANDARDIZE", + "STDEV STDEVA", + "STDEVP", + "STDEVPA STEYX", + "TDIST", + "TINV", + "TREND", + "TRIMMEAN", + "TTEST", + "VAR", + "VARA", + "VARP", + "VARPA", + "WEIBULL", + "ZTEST", + "ASC", + "BAHTTEXT", + "CHAR", + "CLEAN", + "CODE", + "CONCATENATE", + "DOLLAR", + "EXACT", + "FIND", + "FINDB", + "FIXED", + "JIS", + "LEFT", + "LEFTB", + "LEN", + "LENB", + "LOWER", + "MID", + "MIDB", + "PHONETIC", + "PROPER", + "REPLACE", + "REPLACEB", + "REPT", + "RIGHT", + "RIGHTB", + "SEARCH", + "SEARCHB", + "SUBSTITUTE", + "T", + "TEXT", + "TRIM", + "UPPER", + "VALUE", + ) +) diff --git a/stubs/openpyxl/openpyxl/workbook/child.pyi b/stubs/openpyxl/openpyxl/workbook/child.pyi index 2c924f126728..a1730e3190c0 100644 --- a/stubs/openpyxl/openpyxl/workbook/child.pyi +++ b/stubs/openpyxl/openpyxl/workbook/child.pyi @@ -1,20 +1,25 @@ -from typing import Any +from collections.abc import Iterable +from re import Pattern -INVALID_TITLE_REGEX: Any +from openpyxl import _Decodable +from openpyxl.workbook.workbook import Workbook +from openpyxl.worksheet.header_footer import HeaderFooter -def avoid_duplicate_name(names, value): ... +INVALID_TITLE_REGEX: Pattern[str] + +def avoid_duplicate_name(names: Iterable[str], value: str) -> str: ... class _WorkbookChild: - HeaderFooter: Any - def __init__(self, parent: Any | None = ..., title: Any | None = ...) -> None: ... + HeaderFooter: HeaderFooter + def __init__(self, parent: Workbook | None = ..., title: str | _Decodable | None = ...) -> None: ... @property - def parent(self): ... + def parent(self) -> Workbook | None: ... @property - def encoding(self): ... + def encoding(self) -> str: ... @property - def title(self): ... + def title(self) -> str: ... @title.setter - def title(self, value) -> None: ... + def title(self, value: str | _Decodable) -> None: ... @property def oddHeader(self): ... @oddHeader.setter @@ -40,4 +45,4 @@ class _WorkbookChild: @firstFooter.setter def firstFooter(self, value) -> None: ... @property - def path(self): ... + def path(self) -> str: ... diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index 0ce9d9be2d33..bde917033af9 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -1,71 +1,88 @@ -from typing import Any +import datetime +from _typeshed import Incomplete, StrPath +from typing import IO -INTEGER_TYPES: Any +from openpyxl import _Decodable +from openpyxl.chartsheet.chartsheet import Chartsheet +from openpyxl.styles.named_styles import NamedStyle +from openpyxl.workbook.child import _WorkbookChild +from openpyxl.workbook.defined_name import DefinedName +from openpyxl.worksheet._read_only import ReadOnlyWorksheet +from openpyxl.worksheet._write_only import WriteOnlyWorksheet +from openpyxl.worksheet.worksheet import Worksheet + +INTEGER_TYPES: tuple[type[int]] class Workbook: template: bool path: str - defined_names: Any - properties: Any - security: Any - shared_strings: Any - loaded_theme: Any - vba_archive: Any + defined_names: Incomplete + properties: Incomplete + security: Incomplete + shared_strings: Incomplete + loaded_theme: Incomplete + vba_archive: Incomplete is_template: bool - code_name: Any + code_name: Incomplete encoding: str - iso_dates: Any - rels: Any - calculation: Any - views: Any + iso_dates: Incomplete + rels: Incomplete + calculation: Incomplete + views: Incomplete def __init__(self, write_only: bool = ..., iso_dates: bool = ...) -> None: ... @property - def epoch(self): ... + def epoch(self) -> datetime.datetime: ... @epoch.setter - def epoch(self, value) -> None: ... + def epoch(self, value: datetime.datetime) -> None: ... @property - def read_only(self): ... + def read_only(self) -> bool: ... @property - def data_only(self): ... + def data_only(self) -> bool: ... @property - def write_only(self): ... + def write_only(self) -> bool: ... @property - def excel_base_date(self): ... + def excel_base_date(self) -> datetime.datetime: ... @property - def active(self): ... + def active(self) -> Worksheet: ... @active.setter - def active(self, value) -> None: ... - def create_sheet(self, title: Any | None = ..., index: Any | None = ...): ... - def move_sheet(self, sheet, offset: int = ...) -> None: ... - def remove(self, worksheet) -> None: ... + def active(self, value: Worksheet) -> None: ... + def create_sheet(self, title: str | _Decodable | None = ..., index: int | None = ...) -> WriteOnlyWorksheet | Worksheet: ... + def move_sheet(self, sheet: str | Worksheet, offset: int = ...) -> None: ... + def remove(self, worksheet: Worksheet | WriteOnlyWorksheet | Chartsheet) -> None: ... def remove_sheet(self, worksheet) -> None: ... - def create_chartsheet(self, title: Any | None = ..., index: Any | None = ...): ... + def create_chartsheet(self, title: str | _Decodable | None = ..., index: int | None = ...): ... def get_sheet_by_name(self, name): ... - def __contains__(self, key): ... - def index(self, worksheet): ... + def __contains__(self, key: str): ... + def index(self, worksheet: Worksheet | ReadOnlyWorksheet | WriteOnlyWorksheet) -> int: ... def get_index(self, worksheet): ... - def __getitem__(self, key): ... - def __delitem__(self, key) -> None: ... + def __getitem__(self, key: str): ... + def __delitem__(self, key: str) -> None: ... def __iter__(self): ... def get_sheet_names(self): ... @property - def worksheets(self): ... + def worksheets(self) -> list[Worksheet | ReadOnlyWorksheet | WriteOnlyWorksheet]: ... @property - def chartsheets(self): ... + def chartsheets(self) -> list[Chartsheet]: ... @property - def sheetnames(self): ... - def create_named_range(self, name, worksheet: Any | None = ..., value: Any | None = ..., scope: Any | None = ...) -> None: ... - def add_named_style(self, style) -> None: ... + def sheetnames(self) -> list[str]: ... + def create_named_range( + self, + name: str | None, + worksheet: _WorkbookChild | ReadOnlyWorksheet | None = ..., + value: str | None = ..., + scope: int | None = ..., + ) -> None: ... + def add_named_style(self, style: NamedStyle) -> None: ... @property - def named_styles(self): ... - def get_named_ranges(self): ... - def add_named_range(self, named_range) -> None: ... + def named_styles(self) -> list[str]: ... + def get_named_ranges(self) -> list[DefinedName]: ... + def add_named_range(self, named_range: DefinedName) -> None: ... def get_named_range(self, name): ... def remove_named_range(self, named_range) -> None: ... @property - def mime_type(self): ... - def save(self, filename) -> None: ... + def mime_type(self) -> str: ... + def save(self, filename: StrPath | IO[bytes]) -> None: ... @property def style_names(self): ... - def copy_worksheet(self, from_worksheet): ... + def copy_worksheet(self, from_worksheet: Worksheet) -> WriteOnlyWorksheet | Worksheet: ... def close(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index a12256d3c515..9f4629890925 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -1,87 +1,108 @@ -from collections.abc import Generator +from _typeshed import Incomplete +from collections.abc import Container, Generator, Sequence +from datetime import datetime from typing import Any +from zipfile import ZipExtFile -CELL_TAG: Any -VALUE_TAG: Any -FORMULA_TAG: Any -MERGE_TAG: Any -INLINE_STRING: Any -COL_TAG: Any -ROW_TAG: Any -CF_TAG: Any -LEGACY_TAG: Any -PROT_TAG: Any -EXT_TAG: Any -HYPERLINK_TAG: Any -TABLE_TAG: Any -PRINT_TAG: Any -MARGINS_TAG: Any -PAGE_TAG: Any -HEADER_TAG: Any -FILTER_TAG: Any -VALIDATION_TAG: Any -PROPERTIES_TAG: Any -VIEWS_TAG: Any -FORMAT_TAG: Any -ROW_BREAK_TAG: Any -COL_BREAK_TAG: Any -SCENARIOS_TAG: Any -DATA_TAG: Any -DIMENSION_TAG: Any -CUSTOM_VIEWS_TAG: Any +from openpyxl.cell.cell import Cell +from openpyxl.worksheet.hyperlink import HyperlinkList +from openpyxl.worksheet.pagebreak import ColBreak, RowBreak +from openpyxl.worksheet.table import TablePartList +from openpyxl.worksheet.worksheet import Worksheet +from openpyxl.xml.functions import _Element + +CELL_TAG: str +VALUE_TAG: str +FORMULA_TAG: str +MERGE_TAG: str +INLINE_STRING: str +COL_TAG: str +ROW_TAG: str +CF_TAG: str +LEGACY_TAG: str +PROT_TAG: str +EXT_TAG: str +HYPERLINK_TAG: str +TABLE_TAG: str +PRINT_TAG: str +MARGINS_TAG: str +PAGE_TAG: str +HEADER_TAG: str +FILTER_TAG: str +VALIDATION_TAG: str +PROPERTIES_TAG: str +VIEWS_TAG: str +FORMAT_TAG: str +ROW_BREAK_TAG: str +COL_BREAK_TAG: str +SCENARIOS_TAG: str +DATA_TAG: str +DIMENSION_TAG: str +CUSTOM_VIEWS_TAG: str class WorkSheetParser: - min_row: Any - epoch: Any - source: Any - shared_strings: Any - data_only: Any - shared_formulae: Any - array_formulae: Any + min_row: Incomplete | None + min_col: Incomplete | None + epoch: datetime + source: ZipExtFile | str + shared_strings: Sequence[str] + data_only: bool + shared_formulae: dict[Incomplete, Incomplete] + array_formulae: dict[Incomplete, Incomplete] row_counter: int - tables: Any - date_formats: Any - timedelta_formats: Any - row_dimensions: Any - column_dimensions: Any - number_formats: Any + tables: TablePartList + date_formats: Container[int] + timedelta_formats: Container[int] + row_dimensions: dict[Incomplete, Incomplete] + column_dimensions: dict[Incomplete, Incomplete] + number_formats: list[Incomplete] keep_vba: bool - hyperlinks: Any - formatting: Any - legacy_drawing: Any - merged_cells: Any - row_breaks: Any - col_breaks: Any + hyperlinks: HyperlinkList + formatting: list[Incomplete] + legacy_drawing: Incomplete | None + merged_cells: Incomplete | None + row_breaks: RowBreak + col_breaks: ColBreak def __init__( - self, src, shared_strings, data_only: bool = ..., epoch=..., date_formats=..., timedelta_formats=... + self, + src: ZipExtFile | str, + shared_strings: Sequence[str], + data_only: bool = ..., + epoch: datetime = ..., + date_formats: Container[int] = ..., + timedelta_formats: Container[int] = ..., ) -> None: ... - def parse(self) -> Generator[Any, None, None]: ... - def parse_dimensions(self): ... - col_counter: Any - def parse_cell(self, element): ... - def parse_formula(self, element): ... - def parse_column_dimensions(self, col) -> None: ... - def parse_row(self, row): ... - def parse_formatting(self, element) -> None: ... - protection: Any - def parse_sheet_protection(self, element) -> None: ... - def parse_extensions(self, element) -> None: ... - def parse_legacy(self, element) -> None: ... - def parse_row_breaks(self, element) -> None: ... - def parse_col_breaks(self, element) -> None: ... - def parse_custom_views(self, element) -> None: ... + def parse(self) -> Generator[Incomplete, None, None]: ... + def parse_dimensions(self) -> tuple[int, int, int, int]: ... + col_counter: Incomplete + # dict[str, AnyOf[time, date, datetime, timedelta, float, int, bool | str, None]] + def parse_cell(self, element: _Element) -> dict[str, Any]: ... + def parse_formula(self, element: _Element): ... + def parse_column_dimensions(self, col: _Element) -> None: ... + # tuple[int, list[dict[str, AnyOf[time, date, datetime, timedelta, float, int, bool | str, None]]]] + def parse_row(self, row: _Element) -> tuple[int, list[dict[str, Any]]]: ... + def parse_formatting(self, element: _Element) -> None: ... + protection: Incomplete + def parse_sheet_protection(self, element: _Element) -> None: ... + def parse_extensions(self, element: _Element) -> None: ... + def parse_legacy(self, element: _Element) -> None: ... + def parse_row_breaks(self, element: _Element) -> None: ... + def parse_col_breaks(self, element: _Element) -> None: ... + def parse_custom_views(self, element: _Element) -> None: ... class WorksheetReader: - ws: Any - parser: Any - tables: Any - def __init__(self, ws, xml_source, shared_strings, data_only) -> None: ... + ws: Worksheet + parser: WorkSheetParser + tables: list[Incomplete] + def __init__( + self, ws: Worksheet, xml_source: ZipExtFile | str, shared_strings: Sequence[str] | None, data_only: bool | None + ) -> None: ... def bind_cells(self) -> None: ... def bind_formatting(self) -> None: ... def bind_tables(self) -> None: ... def bind_merged_cells(self) -> None: ... def bind_hyperlinks(self) -> None: ... - def normalize_merged_cell_link(self, coord): ... + def normalize_merged_cell_link(self, coord: str) -> Cell | None: ... def bind_col_dimensions(self) -> None: ... def bind_row_dimensions(self) -> None: ... def bind_properties(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi index 0c41382c8710..8fa06413a34d 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi @@ -1,22 +1,26 @@ +from _typeshed import Incomplete from collections.abc import Generator -from typing import Any -ALL_TEMP_FILES: Any +from openpyxl.cell.cell import Cell +from openpyxl.worksheet._write_only import WriteOnlyWorksheet +from openpyxl.worksheet.worksheet import Worksheet -def create_temporary_file(suffix: str = ...): ... +ALL_TEMP_FILES: list[Incomplete] + +def create_temporary_file(suffix: str = ...) -> str: ... class WorksheetWriter: - ws: Any - out: Any - xf: Any - def __init__(self, ws, out: Any | None = ...) -> None: ... + ws: Worksheet | WriteOnlyWorksheet + out: str + xf: Generator[Incomplete | None, None, None] + def __init__(self, ws: Worksheet | WriteOnlyWorksheet, out: str | None = ...) -> None: ... def write_properties(self) -> None: ... def write_dimensions(self) -> None: ... def write_format(self) -> None: ... def write_views(self) -> None: ... def write_cols(self) -> None: ... def write_top(self) -> None: ... - def rows(self): ... + def rows(self) -> list[tuple[int, list[Cell]]]: ... def write_rows(self) -> None: ... def write_row(self, xf, row, row_idx) -> None: ... def write_protection(self) -> None: ... @@ -35,9 +39,9 @@ class WorksheetWriter: def write_drawings(self) -> None: ... def write_legacy(self) -> None: ... def write_tables(self) -> None: ... - def get_stream(self) -> Generator[Any, Any, None]: ... + def get_stream(self) -> Generator[Incomplete | None, None, None]: ... def write_tail(self) -> None: ... def write(self) -> None: ... def close(self) -> None: ... - def read(self): ... + def read(self) -> bytes: ... def cleanup(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi index cf6194d211f9..52dc1314e136 100644 --- a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi @@ -1,32 +1,43 @@ +from _typeshed import Incomplete from collections.abc import Generator -from typing import Any +from typing import overload +from typing_extensions import TypeAlias from openpyxl.descriptors import Strict from openpyxl.descriptors.serialisable import Serialisable +_Unused: TypeAlias = object + class CellRange(Serialisable): # type: ignore[misc] - min_col: Any - min_row: Any - max_col: Any - max_row: Any - title: Any + min_col: Incomplete + min_row: Incomplete + max_col: Incomplete + max_row: Incomplete + title: Incomplete + @overload + def __init__(self, *, min_col: int, min_row: int, max_col: int, max_row: int, title: Incomplete | None = ...) -> None: ... + @overload + def __init__( + self, range_string: None, min_col: int, min_row: int, max_col: int, max_row: int, title: Incomplete | None = ... + ) -> None: ... + @overload def __init__( self, - range_string: Any | None = ..., - min_col: Any | None = ..., - min_row: Any | None = ..., - max_col: Any | None = ..., - max_row: Any | None = ..., - title: Any | None = ..., + range_string: str, + min_col: _Unused = ..., + min_row: _Unused = ..., + max_col: _Unused = ..., + max_row: _Unused = ..., + title: Incomplete | None = ..., ) -> None: ... @property def bounds(self): ... @property def coord(self): ... @property - def rows(self) -> Generator[Any, None, None]: ... + def rows(self) -> Generator[Incomplete, None, None]: ... @property - def cols(self) -> Generator[Any, None, None]: ... + def cols(self) -> Generator[Incomplete, None, None]: ... @property def cells(self): ... def __copy__(self): ... @@ -34,17 +45,17 @@ class CellRange(Serialisable): # type: ignore[misc] def __ne__(self, other): ... def __eq__(self, other): ... def issubset(self, other): ... - __le__: Any + __le__: Incomplete def __lt__(self, other): ... def issuperset(self, other): ... - __ge__: Any + __ge__: Incomplete def __contains__(self, coord): ... def __gt__(self, other): ... def isdisjoint(self, other): ... def intersection(self, other): ... - __and__: Any + __and__: Incomplete def union(self, other): ... - __or__: Any + __or__: Incomplete def __iter__(self): ... def expand(self, right: int = ..., down: int = ..., left: int = ..., up: int = ...) -> None: ... def shrink(self, right: int = ..., bottom: int = ..., left: int = ..., top: int = ...) -> None: ... @@ -60,7 +71,7 @@ class CellRange(Serialisable): # type: ignore[misc] def right(self): ... class MultiCellRange(Strict): - ranges: Any + ranges: Incomplete def __init__(self, ranges=...) -> None: ... def __contains__(self, coord): ... def add(self, coord) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/copier.pyi b/stubs/openpyxl/openpyxl/worksheet/copier.pyi index 728ea63099d3..e32d38c5747b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/copier.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/copier.pyi @@ -1,7 +1,7 @@ -from typing import Any +from openpyxl.worksheet.worksheet import Worksheet class WorksheetCopy: - source: Any - target: Any - def __init__(self, source_worksheet, target_worksheet) -> None: ... + source: Worksheet + target: Worksheet + def __init__(self, source_worksheet: Worksheet, target_worksheet: Worksheet) -> None: ... def copy_worksheet(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 615fd2ad38f8..28ce9cec0e52 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -1,7 +1,20 @@ -from collections.abc import Generator -from typing import Any +from _typeshed import Incomplete +from collections.abc import Generator, Iterable, Iterator +from typing import overload +from typing_extensions import TypeAlias +from openpyxl import _Decodable +from openpyxl.cell.cell import Cell, MergedCell, _KnownTypes +from openpyxl.chart._chart import ChartBase +from openpyxl.drawing.image import Image from openpyxl.workbook.child import _WorkbookChild +from openpyxl.workbook.workbook import Workbook +from openpyxl.worksheet.cell_range import CellRange +from openpyxl.worksheet.table import Table, TableList +from openpyxl.worksheet.views import SheetView + +_Cell: TypeAlias = Cell | MergedCell +_Unused: TypeAlias = object class Worksheet(_WorkbookChild): mime_type: str @@ -24,95 +37,101 @@ class Worksheet(_WorkbookChild): PAPERSIZE_A5: str ORIENTATION_PORTRAIT: str ORIENTATION_LANDSCAPE: str - def __init__(self, parent, title: Any | None = ...) -> None: ... + def __init__(self, parent: Workbook | None, title: str | _Decodable | None = ...) -> None: ... @property - def sheet_view(self): ... + def sheet_view(self) -> SheetView: ... @property - def selected_cell(self): ... + def selected_cell(self) -> str: ... @property - def active_cell(self): ... + def active_cell(self) -> str: ... @property def page_breaks(self): ... @property - def show_gridlines(self): ... + def show_gridlines(self) -> bool | None: ... @property def show_summary_below(self): ... @property def show_summary_right(self): ... @property - def freeze_panes(self): ... + def freeze_panes(self) -> str | None: ... @freeze_panes.setter - def freeze_panes(self, topLeftCell: Any | None = ...) -> None: ... - def cell(self, row, column, value: Any | None = ...): ... - def __getitem__(self, key): ... - def __setitem__(self, key, value) -> None: ... - def __iter__(self): ... - def __delitem__(self, key) -> None: ... + def freeze_panes(self, topLeftCell: Incomplete | None = ...) -> None: ... + def cell(self, row: int, column: int, value: _KnownTypes = ...) -> Cell | MergedCell: ... + def __getitem__(self, key: str | slice | int): ... + def __setitem__(self, key: str | slice | int, value: _KnownTypes) -> None: ... + def __iter__(self) -> (Iterator[_Cell] | Generator[tuple[_Cell, ...], None, None]): ... + def __delitem__(self, key: Iterable[str]) -> None: ... @property - def min_row(self): ... + def min_row(self) -> int: ... @property - def max_row(self): ... + def max_row(self) -> int: ... @property - def min_column(self): ... + def min_column(self) -> int: ... @property - def max_column(self): ... - def calculate_dimension(self): ... + def max_column(self) -> int: ... + def calculate_dimension(self) -> str: ... @property def dimensions(self): ... def iter_rows( self, - min_row: Any | None = ..., - max_row: Any | None = ..., - min_col: Any | None = ..., - max_col: Any | None = ..., + min_row: int | None = ..., + max_row: int | None = ..., + min_col: int | None = ..., + max_col: int | None = ..., values_only: bool = ..., ): ... @property - def rows(self): ... + def rows(self) -> Iterator[tuple[_Cell, ...]] | Generator[tuple[_Cell, ...], None, None]: ... @property - def values(self) -> Generator[Any, None, None]: ... + def values(self) -> Generator[tuple[_Cell, ...], None, None]: ... def iter_cols( self, - min_col: Any | None = ..., - max_col: Any | None = ..., - min_row: Any | None = ..., - max_row: Any | None = ..., + min_col: int | None = ..., + max_col: int | None = ..., + min_row: int | None = ..., + max_row: int | None = ..., values_only: bool = ..., ): ... @property - def columns(self): ... + def columns(self) -> Iterator[_Cell] | Generator[tuple[_Cell, ...], None, None]: ... def set_printer_settings(self, paper_size, orientation) -> None: ... def add_data_validation(self, data_validation) -> None: ... - def add_chart(self, chart, anchor: Any | None = ...) -> None: ... - def add_image(self, img, anchor: Any | None = ...) -> None: ... - def add_table(self, table) -> None: ... + def add_chart(self, chart: ChartBase, anchor: str | None = ...) -> None: ... + def add_image(self, img: Image, anchor: str | None = ...) -> None: ... + def add_table(self, table: Table) -> None: ... @property - def tables(self): ... + def tables(self) -> TableList: ... def add_pivot(self, pivot) -> None: ... + # Same overload as CellRange.__init__ + @overload + def merge_cells(self, *, start_row: int, start_column: int, end_row: int, end_column: int) -> None: ... + @overload + def merge_cells(self, range_string: None, start_row: int, start_column: int, end_row: int, end_column: int) -> None: ... + @overload def merge_cells( self, - range_string: Any | None = ..., - start_row: Any | None = ..., - start_column: Any | None = ..., - end_row: Any | None = ..., - end_column: Any | None = ..., + range_string: str, + start_row: _Unused = ..., + start_column: _Unused = ..., + end_row: _Unused = ..., + end_column: _Unused = ..., ) -> None: ... @property def merged_cell_ranges(self): ... def unmerge_cells( self, - range_string: Any | None = ..., - start_row: Any | None = ..., - start_column: Any | None = ..., - end_row: Any | None = ..., - end_column: Any | None = ..., + range_string: str | None = ..., + start_row: int | None = ..., + start_column: int | None = ..., + end_row: int | None = ..., + end_column: int | None = ..., ) -> None: ... def append(self, iterable) -> None: ... - def insert_rows(self, idx, amount: int = ...) -> None: ... - def insert_cols(self, idx, amount: int = ...) -> None: ... - def delete_rows(self, idx, amount: int = ...) -> None: ... - def delete_cols(self, idx, amount: int = ...) -> None: ... - def move_range(self, cell_range, rows: int = ..., cols: int = ..., translate: bool = ...) -> None: ... + def insert_rows(self, idx: int, amount: int = ...) -> None: ... + def insert_cols(self, idx: int, amount: int = ...) -> None: ... + def delete_rows(self, idx: int, amount: int = ...) -> None: ... + def delete_cols(self, idx: int, amount: int = ...) -> None: ... + def move_range(self, cell_range: str | CellRange, rows: int = ..., cols: int = ..., translate: bool = ...) -> None: ... @property def print_title_rows(self): ... @print_title_rows.setter @@ -122,7 +141,7 @@ class Worksheet(_WorkbookChild): @print_title_cols.setter def print_title_cols(self, cols) -> None: ... @property - def print_titles(self): ... + def print_titles(self) -> str | None: ... @property def print_area(self): ... @print_area.setter diff --git a/stubs/openpyxl/openpyxl/writer/excel.pyi b/stubs/openpyxl/openpyxl/writer/excel.pyi index 57e9d2ac1884..0ecd904c052e 100644 --- a/stubs/openpyxl/openpyxl/writer/excel.pyi +++ b/stubs/openpyxl/openpyxl/writer/excel.pyi @@ -1,13 +1,14 @@ -from typing import Any +from _typeshed import Incomplete, StrPath +from typing import IO class ExcelWriter: - workbook: Any - manifest: Any - vba_modified: Any + workbook: Incomplete + manifest: Incomplete + vba_modified: Incomplete def __init__(self, workbook, archive) -> None: ... def write_data(self) -> None: ... def write_worksheet(self, ws) -> None: ... def save(self) -> None: ... -def save_workbook(workbook, filename): ... +def save_workbook(workbook, filename: StrPath | IO[bytes]): ... def save_virtual_workbook(workbook): ... diff --git a/stubs/openpyxl/openpyxl/xml/__init__.pyi b/stubs/openpyxl/openpyxl/xml/__init__.pyi index c074aaf443c7..d637383bc562 100644 --- a/stubs/openpyxl/openpyxl/xml/__init__.pyi +++ b/stubs/openpyxl/openpyxl/xml/__init__.pyi @@ -1,11 +1,9 @@ -from typing import Any +def lxml_available() -> bool: ... +def lxml_env_set() -> bool: ... -def lxml_available(): ... -def lxml_env_set(): ... +LXML: bool -LXML: Any +def defusedxml_available() -> bool: ... +def defusedxml_env_set() -> bool: ... -def defusedxml_available(): ... -def defusedxml_env_set(): ... - -DEFUSEDXML: Any +DEFUSEDXML: bool diff --git a/stubs/openpyxl/openpyxl/xml/_functions.pyi b/stubs/openpyxl/openpyxl/xml/_functions.pyi new file mode 100644 index 000000000000..fc9c6686c16e --- /dev/null +++ b/stubs/openpyxl/openpyxl/xml/_functions.pyi @@ -0,0 +1,60 @@ +# This file does not exist at runtime. It is a helper file to overload imports in openpyxl.xml.functions +# TODO: Create missing stubs and add missing types upstream +from _typeshed import Incomplete +from collections.abc import Iterator +from typing import overload +from typing_extensions import TypeAlias + +from lxml.etree import _AnyStr, _Element + +_Unused: TypeAlias = object + +# lxml re-definitions are a mix of lxml-stubs and pylance +# defusedxml stubs are missing. But we can still represent them. + +# from lxml.etree import register_namespace +# https://github.com/lxml/lxml-stubs/issues/78 +def register_namespace(prefix, uri): ... + +# from lxml.etree import fromstring +# But made partial, removing parser arg +@overload +def fromstring(text: _AnyStr, *, base_url: _AnyStr = ...) -> _Element: ... # type: ignore[misc] # Overlap with incompatible return types + +# from defusedxml.ElementTree import fromstring +@overload +def fromstring(text, forbid_dtd: bool = ..., forbid_entities: bool = ..., forbid_external: bool = ...) -> int: ... + +# from et_xmlfile.xmlfile import xmlfile +class _et_xmlfile_xmlfile: + def __init__( + self, output_file: Incomplete | str, buffered: _Unused = ..., encoding: _Unused = ..., close: bool = ... + ) -> None: ... + def __enter__(self) -> Incomplete: ... + def __exit__(self, type: object, value: object, traceback: object) -> None: ... + +# Should be importable from lxml.etree but is missing from lxml-stubs +# https://github.com/lxml/lxml-stubs/issues/77 +class _lxml_xmlfile: + def __aenter__(self): ... + def __aexit__(self, exc_type, exc_val, exc_tb): ... + def __enter__(self): ... + def __exit__(self, exc_type, exc_val, exc_tb): ... + def __init__(self, output_file, encoding=..., compression=..., close=..., buffered=...) -> None: ... + @classmethod + def __init_subclass__(cls) -> None: ... + @classmethod + def __subclasshook__(cls, subclass) -> bool: ... + def __getattr__(self, name): ... + +xmlfile: TypeAlias = _et_xmlfile_xmlfile | _lxml_xmlfile # noqa: Y042 # This is the correct name + +# from defusedxml.ElementTree import iterparse +def iterparse( + source, + events: Incomplete | None = ..., + parser: Incomplete | None = ..., + forbid_dtd: bool = ..., + forbid_entities: bool = ..., + forbid_external: bool = ..., +) -> Iterator[tuple[str, Incomplete]]: ... diff --git a/stubs/openpyxl/openpyxl/xml/functions.pyi b/stubs/openpyxl/openpyxl/xml/functions.pyi index 9c34b837c0ec..4cc416306787 100644 --- a/stubs/openpyxl/openpyxl/xml/functions.pyi +++ b/stubs/openpyxl/openpyxl/xml/functions.pyi @@ -1,6 +1,74 @@ -from typing import Any +import sys +import xml.etree.ElementTree +from _typeshed import Incomplete +from re import Pattern +from typing import overload +from typing_extensions import TypeAlias -NS_REGEX: Any +# mypy will default to the first import. Pyright will automatically overload +from xml.etree.ElementTree import ( + Element as Element, + QName as QName, + SubElement as SubElement, + fromstring as fromstring, + iterparse as iterparse, + register_namespace as register_namespace, +) + +import lxml.etree +from lxml.etree import ( # type: ignore[assignment,no-redef] # noqa: F811 # Implied overload + Element as Element, + QName as QName, + SubElement as SubElement, + _ElementOrTree, +) + +from ._functions import ( # type: ignore[assignment,no-redef] # noqa: F811 # Implied overload + fromstring as fromstring, + iterparse as iterparse, + register_namespace as register_namespace, + xmlfile as xmlfile, +) + +# Referenced outside this module +_Element: TypeAlias = lxml.etree._Element | xml.etree.ElementTree.Element # noqa: Y047 + +NS_REGEX: Pattern[str] def localname(node): ... def whitespace(node) -> None: ... + +# from xml.etree.ElementTree import tostring +# But made partial, removing encoding arg +if sys.version_info >= (3, 8): + @overload + def tostring( + element: xml.etree.ElementTree.Element, + method: str | None = ..., + *, + xml_declaration: bool | None = ..., + default_namespace: str | None = ..., + short_empty_elements: bool = ..., + ) -> str: ... + +else: + @overload + def tostring( + element: xml.etree.ElementTree.Element, method: str | None = ..., *, short_empty_elements: bool = ... + ) -> str: ... + +# from lxml.etree import tostring +# But made partial, removing encoding arg +@overload +def tostring( + element_or_tree: _ElementOrTree, + method: str = ..., + xml_declaration: bool = ..., + pretty_print: bool = ..., + with_tail: bool = ..., + standalone: bool = ..., + doctype: str = ..., + exclusive: bool = ..., + with_comments: bool = ..., + inclusive_ns_prefixes: Incomplete = ..., +) -> bytes: ... From 9c14076df08601ff413e0e08830d422ba53003a6 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 12 Jan 2023 07:59:23 -0500 Subject: [PATCH 02/51] Include numpy --- stubs/openpyxl/METADATA.toml | 2 +- stubs/openpyxl/openpyxl/compat/numbers.pyi | 116 ++++++++++----------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/stubs/openpyxl/METADATA.toml b/stubs/openpyxl/METADATA.toml index b51d12137a1c..e8e3495e0616 100644 --- a/stubs/openpyxl/METADATA.toml +++ b/stubs/openpyxl/METADATA.toml @@ -1,5 +1,5 @@ version = "3.0.*" -requires = ["lxml-stubs", "types-pillow"] +requires = ["lxml-stubs", "types-pillow", "numpy"] [tool.stubtest] ignore_missing_stub = false diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index d123871492d3..b74ad95e7e96 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -1,9 +1,9 @@ from _typeshed import Incomplete from decimal import Decimal +from typing import Type # noqa: Y022 Work around mypy bug with unions from typing_extensions import TypeAlias -# #5768 -# import numpy +import numpy NUMERIC_TYPES: ( tuple[type[int], type[float], Decimal] @@ -11,34 +11,34 @@ NUMERIC_TYPES: ( type[int], type[float], Decimal, - Incomplete, # numpy.short, - Incomplete, # numpy.ushort, - Incomplete, # numpy.intc, - Incomplete, # numpy.uintc, - Incomplete, # numpy.int_, - Incomplete, # numpy.uint, - Incomplete, # numpy.longlong, - Incomplete, # numpy.ulonglong, - Incomplete, # numpy.half, - Incomplete, # numpy.float16, - Incomplete, # numpy.single, - Incomplete, # numpy.double, - Incomplete, # numpy.longdouble, - Incomplete, # numpy.int8, - Incomplete, # numpy.int16, - Incomplete, # numpy.int32, - Incomplete, # numpy.int64, - Incomplete, # numpy.uint8, - Incomplete, # numpy.uint16, - Incomplete, # numpy.uint32, - Incomplete, # numpy.uint64, - Incomplete, # numpy.intp, - Incomplete, # numpy.uintp, - Incomplete, # numpy.float32, - Incomplete, # numpy.float64, - Incomplete, # type[numpy.bool_], - Incomplete, # type[numpy.floating], - Incomplete, # type[numpy.integer], + numpy.short, + numpy.ushort, + numpy.intc, + numpy.uintc, + numpy.int_, + numpy.uint, + numpy.longlong, + numpy.ulonglong, + numpy.half, + numpy.float16, + numpy.single, + numpy.double, + numpy.longdouble, + numpy.int8, + numpy.int16, + numpy.int32, + numpy.int64, + numpy.uint8, + numpy.uint16, + numpy.uint32, + numpy.uint64, + numpy.intp, + numpy.uintp, + numpy.float32, + numpy.float64, + type[numpy.bool_], + type[numpy.floating[Incomplete]], + type[numpy.integer[Incomplete]], ] ) # Referenced outside this module @@ -46,33 +46,33 @@ _NumericTypes: TypeAlias = ( # noqa: Y047 int | float | Decimal - # | numpy.short - # | numpy.ushort - # | numpy.intc - # | numpy.uintc - # | numpy.int_ - # | numpy.uint - # | numpy.longlong - # | numpy.ulonglong - # | numpy.half - # | numpy.float16 - # | numpy.single - # | numpy.double - # | numpy.longdouble - # | numpy.int8 - # | numpy.int16 - # | numpy.int32 - # | numpy.int64 - # | numpy.uint8 - # | numpy.uint16 - # | numpy.uint32 - # | numpy.uint64 - # | numpy.intp - # | numpy.uintp - # | numpy.float32 - # | numpy.float64 - # | type[numpy.bool_] - # | type[numpy.floating] - # | type[numpy.integer] + | numpy.short + | numpy.ushort + | numpy.intc + | numpy.uintc + | numpy.int_ + | numpy.uint + | numpy.longlong + | numpy.ulonglong + | numpy.half + | numpy.float16 + | numpy.single + | numpy.double + | numpy.longdouble + | numpy.int8 + | numpy.int16 + | numpy.int32 + | numpy.int64 + | numpy.uint8 + | numpy.uint16 + | numpy.uint32 + | numpy.uint64 + | numpy.intp + | numpy.uintp + | numpy.float32 + | numpy.float64 + | Type[numpy.bool_] + | Type[numpy.floating[Incomplete]] + | Type[numpy.integer[Incomplete]] ) NUMPY: bool From 4e7fc095a8782682bb33340ff0a25acc5709468d Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 12 Jan 2023 11:23:52 -0500 Subject: [PATCH 03/51] Convertible Descriptors --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 257 +++++------------- stubs/openpyxl/openpyxl/cell/cell.pyi | 2 +- stubs/openpyxl/openpyxl/cell/text.pyi | 48 ++-- stubs/openpyxl/openpyxl/chart/axis.pyi | 212 ++++++++++----- stubs/openpyxl/openpyxl/descriptors/base.pyi | 9 +- stubs/openpyxl/openpyxl/styles/alignment.pyi | 53 ++-- stubs/openpyxl/openpyxl/styles/borders.pyi | 26 +- stubs/openpyxl/openpyxl/styles/colors.pyi | 31 ++- stubs/openpyxl/openpyxl/styles/fills.pyi | 55 ++-- stubs/openpyxl/openpyxl/styles/fonts.pyi | 92 +++++-- .../openpyxl/openpyxl/styles/named_styles.pyi | 52 ++-- stubs/openpyxl/openpyxl/styles/numbers.pyi | 8 +- stubs/openpyxl/openpyxl/styles/protection.pyi | 13 +- 13 files changed, 471 insertions(+), 387 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index 4f19b161a310..b92a9d6ee8af 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -5,20 +5,20 @@ openpyxl.descriptors.slots.AutoSlotProperties.__new__ # (lxml, defusedxml, et_xmlfile, numpy, ...) openpyxl.compat.NUMERIC_TYPES openpyxl.xml._functions -openpyxl.xml.functions.xmlfile -openpyxl.xml.functions.tostring openpyxl.xml.functions.Element.__iter__ +openpyxl.xml.functions.tostring +openpyxl.xml.functions.xmlfile # Inconsistent __init__ because # - using the default value results in an error because of the runtime type-guards # - or, keyword arguments are explicitely specified openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ +openpyxl.chart.axis._BaseAxis.__init__ openpyxl.chart.axis.DateAxis.__init__ openpyxl.chart.axis.NumericAxis.__init__ openpyxl.chart.axis.SeriesAxis.__init__ openpyxl.chart.axis.TextAxis.__init__ -openpyxl.chart.axis._BaseAxis.__init__ openpyxl.styles.colors.RgbColor.__init__ openpyxl.styles.named_styles._NamedCellStyle.__init__ openpyxl.styles.numbers.NumberFormat.__init__ @@ -72,8 +72,8 @@ openpyxl.packaging.core.COREPROPS_NS openpyxl.packaging.core.DCORE_NS openpyxl.packaging.core.DCTERMS_NS openpyxl.packaging.core.DCTERMS_PREFIX -openpyxl.packaging.core.XSI_NS openpyxl.packaging.core.tostring +openpyxl.packaging.core.XSI_NS openpyxl.packaging.extended.XPROPS_NS openpyxl.packaging.manifest.ACTIVEX openpyxl.packaging.manifest.ARC_APP @@ -83,9 +83,9 @@ openpyxl.packaging.manifest.ARC_SHARED_STRINGS openpyxl.packaging.manifest.ARC_STYLE openpyxl.packaging.manifest.ARC_THEME openpyxl.packaging.manifest.ARC_WORKBOOK +openpyxl.packaging.manifest.CHART_TYPE openpyxl.packaging.manifest.CHARTSHAPE_TYPE openpyxl.packaging.manifest.CHARTSHEET_TYPE -openpyxl.packaging.manifest.CHART_TYPE openpyxl.packaging.manifest.COMMENTS_TYPE openpyxl.packaging.manifest.CONTYPES_NS openpyxl.packaging.manifest.CTRL @@ -94,13 +94,13 @@ openpyxl.packaging.manifest.EXTERNAL_LINK openpyxl.packaging.manifest.SHARED_STRINGS openpyxl.packaging.manifest.STYLES_TYPE openpyxl.packaging.manifest.THEME_TYPE +openpyxl.packaging.manifest.tostring openpyxl.packaging.manifest.VBA openpyxl.packaging.manifest.WORKSHEET_TYPE openpyxl.packaging.manifest.XLSM openpyxl.packaging.manifest.XLSX openpyxl.packaging.manifest.XLTM openpyxl.packaging.manifest.XLTX -openpyxl.packaging.manifest.tostring openpyxl.packaging.relationship.PKG_REL_NS openpyxl.packaging.relationship.REL_NS openpyxl.packaging.relationship.tostring @@ -154,8 +154,8 @@ openpyxl.workbook._writer.CALENDAR_MAC_1904 openpyxl.workbook._writer.CUSTOMUI_NS openpyxl.workbook._writer.PKG_REL_NS openpyxl.workbook._writer.tostring -openpyxl.workbook.defined_name.SHEETRANGE_RE openpyxl.workbook.defined_name.SHEET_TITLE +openpyxl.workbook.defined_name.SHEETRANGE_RE openpyxl.workbook.external_link.external.SHEET_MAIN_NS openpyxl.workbook.workbook.COLOR_INDEX openpyxl.workbook.workbook.MAC_EPOCH @@ -190,9 +190,9 @@ openpyxl.writer.excel.PACKAGE_DRAWINGS openpyxl.writer.excel.PACKAGE_IMAGES openpyxl.writer.excel.PACKAGE_WORKSHEETS openpyxl.writer.excel.PACKAGE_XL -openpyxl.writer.excel.ZIP_DEFLATED openpyxl.writer.excel.theme_xml openpyxl.writer.excel.tostring +openpyxl.writer.excel.ZIP_DEFLATED openpyxl.xml.functions.CHART_DRAWING_NS openpyxl.xml.functions.CHART_NS openpyxl.xml.functions.COREPROPS_NS @@ -207,62 +207,56 @@ openpyxl.xml.functions.SHEET_MAIN_NS openpyxl.xml.functions.VTYPES_NS openpyxl.xml.functions.XML_NS -# Variable differs from runtime type because attributes are actually descriptors -# and the value is obtained through a dynamic getter -openpyxl.cell.text.InlineFont.b -openpyxl.cell.text.InlineFont.charset +# Variable differs from runtime type because attributes are actually +# non-Convertible descriptors and the value is obtained through a dynamic getter openpyxl.cell.text.InlineFont.color -openpyxl.cell.text.InlineFont.condense -openpyxl.cell.text.InlineFont.extend -openpyxl.cell.text.InlineFont.family -openpyxl.cell.text.InlineFont.i -openpyxl.cell.text.InlineFont.outline openpyxl.cell.text.InlineFont.rFont openpyxl.cell.text.InlineFont.scheme -openpyxl.cell.text.InlineFont.shadow -openpyxl.cell.text.InlineFont.strike -openpyxl.cell.text.InlineFont.sz openpyxl.cell.text.InlineFont.u openpyxl.cell.text.InlineFont.vertAlign openpyxl.cell.text.PhoneticProperties.alignment -openpyxl.cell.text.PhoneticProperties.fontId openpyxl.cell.text.PhoneticProperties.type -openpyxl.cell.text.PhoneticText.eb -openpyxl.cell.text.PhoneticText.sb openpyxl.cell.text.PhoneticText.t openpyxl.cell.text.PhoneticText.text openpyxl.cell.text.RichText.font openpyxl.cell.text.RichText.rPr openpyxl.cell.text.RichText.t openpyxl.cell.text.RichText.text -openpyxl.cell.text.Text.PhoneticProperties openpyxl.cell.text.Text.formatted openpyxl.cell.text.Text.phonetic openpyxl.cell.text.Text.phoneticPr +openpyxl.cell.text.Text.PhoneticProperties openpyxl.cell.text.Text.plain openpyxl.cell.text.Text.r openpyxl.cell.text.Text.rPh openpyxl.cell.text.Text.t +openpyxl.chart.axis._BaseAxis.axPos +openpyxl.chart.axis._BaseAxis.crosses +openpyxl.chart.axis._BaseAxis.graphicalProperties +openpyxl.chart.axis._BaseAxis.majorGridlines +openpyxl.chart.axis._BaseAxis.majorTickMark +openpyxl.chart.axis._BaseAxis.minorGridlines +openpyxl.chart.axis._BaseAxis.minorTickMark +openpyxl.chart.axis._BaseAxis.number_format +openpyxl.chart.axis._BaseAxis.numFmt +openpyxl.chart.axis._BaseAxis.scaling +openpyxl.chart.axis._BaseAxis.spPr +openpyxl.chart.axis._BaseAxis.textProperties +openpyxl.chart.axis._BaseAxis.tickLblPos +openpyxl.chart.axis._BaseAxis.title +openpyxl.chart.axis._BaseAxis.txPr openpyxl.chart.axis.ChartLines.graphicalProperties openpyxl.chart.axis.ChartLines.spPr -openpyxl.chart.axis.DateAxis.auto -openpyxl.chart.axis.DateAxis.axId openpyxl.chart.axis.DateAxis.axPos openpyxl.chart.axis.DateAxis.baseTimeUnit -openpyxl.chart.axis.DateAxis.crossAx openpyxl.chart.axis.DateAxis.crosses -openpyxl.chart.axis.DateAxis.crossesAt -openpyxl.chart.axis.DateAxis.delete openpyxl.chart.axis.DateAxis.extLst -openpyxl.chart.axis.DateAxis.lblOffset openpyxl.chart.axis.DateAxis.majorGridlines openpyxl.chart.axis.DateAxis.majorTickMark openpyxl.chart.axis.DateAxis.majorTimeUnit -openpyxl.chart.axis.DateAxis.majorUnit openpyxl.chart.axis.DateAxis.minorGridlines openpyxl.chart.axis.DateAxis.minorTickMark openpyxl.chart.axis.DateAxis.minorTimeUnit -openpyxl.chart.axis.DateAxis.minorUnit openpyxl.chart.axis.DateAxis.numFmt openpyxl.chart.axis.DateAxis.scaling openpyxl.chart.axis.DateAxis.spPr @@ -277,24 +271,17 @@ openpyxl.chart.axis.DisplayUnitsLabel.textPropertes openpyxl.chart.axis.DisplayUnitsLabel.tx openpyxl.chart.axis.DisplayUnitsLabel.txPr openpyxl.chart.axis.DisplayUnitsLabelList.builtInUnit -openpyxl.chart.axis.DisplayUnitsLabelList.custUnit openpyxl.chart.axis.DisplayUnitsLabelList.dispUnitsLbl openpyxl.chart.axis.DisplayUnitsLabelList.extLst -openpyxl.chart.axis.NumericAxis.axId openpyxl.chart.axis.NumericAxis.axPos -openpyxl.chart.axis.NumericAxis.crossAx openpyxl.chart.axis.NumericAxis.crossBetween openpyxl.chart.axis.NumericAxis.crosses -openpyxl.chart.axis.NumericAxis.crossesAt -openpyxl.chart.axis.NumericAxis.delete openpyxl.chart.axis.NumericAxis.dispUnits openpyxl.chart.axis.NumericAxis.extLst openpyxl.chart.axis.NumericAxis.majorGridlines openpyxl.chart.axis.NumericAxis.majorTickMark -openpyxl.chart.axis.NumericAxis.majorUnit openpyxl.chart.axis.NumericAxis.minorGridlines openpyxl.chart.axis.NumericAxis.minorTickMark -openpyxl.chart.axis.NumericAxis.minorUnit openpyxl.chart.axis.NumericAxis.numFmt openpyxl.chart.axis.NumericAxis.scaling openpyxl.chart.axis.NumericAxis.spPr @@ -302,16 +289,9 @@ openpyxl.chart.axis.NumericAxis.tickLblPos openpyxl.chart.axis.NumericAxis.title openpyxl.chart.axis.NumericAxis.txPr openpyxl.chart.axis.Scaling.extLst -openpyxl.chart.axis.Scaling.logBase -openpyxl.chart.axis.Scaling.max -openpyxl.chart.axis.Scaling.min openpyxl.chart.axis.Scaling.orientation -openpyxl.chart.axis.SeriesAxis.axId openpyxl.chart.axis.SeriesAxis.axPos -openpyxl.chart.axis.SeriesAxis.crossAx openpyxl.chart.axis.SeriesAxis.crosses -openpyxl.chart.axis.SeriesAxis.crossesAt -openpyxl.chart.axis.SeriesAxis.delete openpyxl.chart.axis.SeriesAxis.extLst openpyxl.chart.axis.SeriesAxis.majorGridlines openpyxl.chart.axis.SeriesAxis.majorTickMark @@ -321,150 +301,48 @@ openpyxl.chart.axis.SeriesAxis.numFmt openpyxl.chart.axis.SeriesAxis.scaling openpyxl.chart.axis.SeriesAxis.spPr openpyxl.chart.axis.SeriesAxis.tickLblPos -openpyxl.chart.axis.SeriesAxis.tickLblSkip -openpyxl.chart.axis.SeriesAxis.tickMarkSkip openpyxl.chart.axis.SeriesAxis.title openpyxl.chart.axis.SeriesAxis.txPr -openpyxl.chart.axis.TextAxis.auto -openpyxl.chart.axis.TextAxis.axId openpyxl.chart.axis.TextAxis.axPos -openpyxl.chart.axis.TextAxis.crossAx openpyxl.chart.axis.TextAxis.crosses -openpyxl.chart.axis.TextAxis.crossesAt -openpyxl.chart.axis.TextAxis.delete openpyxl.chart.axis.TextAxis.extLst openpyxl.chart.axis.TextAxis.lblAlgn -openpyxl.chart.axis.TextAxis.lblOffset openpyxl.chart.axis.TextAxis.majorGridlines openpyxl.chart.axis.TextAxis.majorTickMark openpyxl.chart.axis.TextAxis.minorGridlines openpyxl.chart.axis.TextAxis.minorTickMark -openpyxl.chart.axis.TextAxis.noMultiLvlLbl openpyxl.chart.axis.TextAxis.numFmt openpyxl.chart.axis.TextAxis.scaling openpyxl.chart.axis.TextAxis.spPr openpyxl.chart.axis.TextAxis.tickLblPos -openpyxl.chart.axis.TextAxis.tickLblSkip -openpyxl.chart.axis.TextAxis.tickMarkSkip openpyxl.chart.axis.TextAxis.title openpyxl.chart.axis.TextAxis.txPr -openpyxl.chart.axis._BaseAxis.axId -openpyxl.chart.axis._BaseAxis.axPos -openpyxl.chart.axis._BaseAxis.crossAx -openpyxl.chart.axis._BaseAxis.crosses -openpyxl.chart.axis._BaseAxis.crossesAt -openpyxl.chart.axis._BaseAxis.delete -openpyxl.chart.axis._BaseAxis.graphicalProperties -openpyxl.chart.axis._BaseAxis.majorGridlines -openpyxl.chart.axis._BaseAxis.majorTickMark -openpyxl.chart.axis._BaseAxis.minorGridlines -openpyxl.chart.axis._BaseAxis.minorTickMark -openpyxl.chart.axis._BaseAxis.numFmt -openpyxl.chart.axis._BaseAxis.number_format -openpyxl.chart.axis._BaseAxis.scaling -openpyxl.chart.axis._BaseAxis.spPr -openpyxl.chart.axis._BaseAxis.textProperties -openpyxl.chart.axis._BaseAxis.tickLblPos -openpyxl.chart.axis._BaseAxis.title -openpyxl.chart.axis._BaseAxis.txPr +openpyxl.styles.alignment.Alignment.horizontal +openpyxl.styles.alignment.Alignment.shrink_to_fit +openpyxl.styles.alignment.Alignment.text_rotation +openpyxl.styles.alignment.Alignment.textRotation +openpyxl.styles.alignment.Alignment.vertical +openpyxl.styles.alignment.Alignment.wrap_text openpyxl.styles.Alignment.horizontal -openpyxl.styles.Alignment.indent -openpyxl.styles.Alignment.justifyLastLine -openpyxl.styles.Alignment.readingOrder -openpyxl.styles.Alignment.relativeIndent -openpyxl.styles.Alignment.shrinkToFit openpyxl.styles.Alignment.shrink_to_fit -openpyxl.styles.Alignment.textRotation openpyxl.styles.Alignment.text_rotation +openpyxl.styles.Alignment.textRotation openpyxl.styles.Alignment.vertical -openpyxl.styles.Alignment.wrapText openpyxl.styles.Alignment.wrap_text openpyxl.styles.Border.bottom openpyxl.styles.Border.diagonal -openpyxl.styles.Border.diagonalDown -openpyxl.styles.Border.diagonalUp openpyxl.styles.Border.end openpyxl.styles.Border.horizontal openpyxl.styles.Border.left -openpyxl.styles.Border.outline openpyxl.styles.Border.right openpyxl.styles.Border.start openpyxl.styles.Border.top openpyxl.styles.Border.vertical -openpyxl.styles.Color.auto -openpyxl.styles.Color.indexed -openpyxl.styles.Color.rgb -openpyxl.styles.Color.theme -openpyxl.styles.Color.tint -openpyxl.styles.Color.type -openpyxl.styles.Font.b -openpyxl.styles.Font.bold -openpyxl.styles.Font.charset -openpyxl.styles.Font.color -openpyxl.styles.Font.condense -openpyxl.styles.Font.extend -openpyxl.styles.Font.family -openpyxl.styles.Font.i -openpyxl.styles.Font.italic -openpyxl.styles.Font.name -openpyxl.styles.Font.outline -openpyxl.styles.Font.scheme -openpyxl.styles.Font.shadow -openpyxl.styles.Font.size -openpyxl.styles.Font.strike -openpyxl.styles.Font.strikethrough -openpyxl.styles.Font.sz -openpyxl.styles.Font.u -openpyxl.styles.Font.underline -openpyxl.styles.Font.vertAlign -openpyxl.styles.GradientFill.bottom -openpyxl.styles.GradientFill.degree -openpyxl.styles.GradientFill.fill_type -openpyxl.styles.GradientFill.left -openpyxl.styles.GradientFill.right -openpyxl.styles.GradientFill.stop -openpyxl.styles.GradientFill.top -openpyxl.styles.GradientFill.type -openpyxl.styles.NamedStyle.alignment -openpyxl.styles.NamedStyle.border -openpyxl.styles.NamedStyle.builtinId -openpyxl.styles.NamedStyle.fill -openpyxl.styles.NamedStyle.font -openpyxl.styles.NamedStyle.hidden -openpyxl.styles.NamedStyle.name -openpyxl.styles.NamedStyle.number_format -openpyxl.styles.NamedStyle.protection -openpyxl.styles.PatternFill.bgColor -openpyxl.styles.PatternFill.end_color -openpyxl.styles.PatternFill.fgColor -openpyxl.styles.PatternFill.fill_type -openpyxl.styles.PatternFill.patternType -openpyxl.styles.PatternFill.start_color -openpyxl.styles.Protection.hidden -openpyxl.styles.Protection.locked -openpyxl.styles.Side.border_style -openpyxl.styles.Side.color -openpyxl.styles.Side.style -openpyxl.styles.alignment.Alignment.horizontal -openpyxl.styles.alignment.Alignment.indent -openpyxl.styles.alignment.Alignment.justifyLastLine -openpyxl.styles.alignment.Alignment.readingOrder -openpyxl.styles.alignment.Alignment.relativeIndent -openpyxl.styles.alignment.Alignment.shrinkToFit -openpyxl.styles.alignment.Alignment.shrink_to_fit -openpyxl.styles.alignment.Alignment.textRotation -openpyxl.styles.alignment.Alignment.text_rotation -openpyxl.styles.alignment.Alignment.vertical -openpyxl.styles.alignment.Alignment.wrapText -openpyxl.styles.alignment.Alignment.wrap_text openpyxl.styles.borders.Border.bottom openpyxl.styles.borders.Border.diagonal -openpyxl.styles.borders.Border.diagonalDown -openpyxl.styles.borders.Border.diagonalUp openpyxl.styles.borders.Border.end openpyxl.styles.borders.Border.horizontal openpyxl.styles.borders.Border.left -openpyxl.styles.borders.Border.outline openpyxl.styles.borders.Border.right openpyxl.styles.borders.Border.start openpyxl.styles.borders.Border.top @@ -472,11 +350,9 @@ openpyxl.styles.borders.Border.vertical openpyxl.styles.borders.Side.border_style openpyxl.styles.borders.Side.color openpyxl.styles.borders.Side.style -openpyxl.styles.colors.Color.auto -openpyxl.styles.colors.Color.indexed +openpyxl.styles.Color.rgb +openpyxl.styles.Color.type openpyxl.styles.colors.Color.rgb -openpyxl.styles.colors.Color.theme -openpyxl.styles.colors.Color.tint openpyxl.styles.colors.Color.type openpyxl.styles.colors.ColorDescriptor.expected_type openpyxl.styles.colors.ColorList.indexedColors @@ -489,13 +365,8 @@ openpyxl.styles.differential.DifferentialStyle.font openpyxl.styles.differential.DifferentialStyle.numFmt openpyxl.styles.differential.DifferentialStyle.protection openpyxl.styles.differential.DifferentialStyleList.dxf -openpyxl.styles.fills.GradientFill.bottom -openpyxl.styles.fills.GradientFill.degree openpyxl.styles.fills.GradientFill.fill_type -openpyxl.styles.fills.GradientFill.left -openpyxl.styles.fills.GradientFill.right openpyxl.styles.fills.GradientFill.stop -openpyxl.styles.fills.GradientFill.top openpyxl.styles.fills.GradientFill.type openpyxl.styles.fills.PatternFill.bgColor openpyxl.styles.fills.PatternFill.end_color @@ -503,48 +374,56 @@ openpyxl.styles.fills.PatternFill.fgColor openpyxl.styles.fills.PatternFill.fill_type openpyxl.styles.fills.PatternFill.patternType openpyxl.styles.fills.PatternFill.start_color -openpyxl.styles.fills.StopList.expected_type openpyxl.styles.fills.Stop.color -openpyxl.styles.fills.Stop.position -openpyxl.styles.fonts.Font.b +openpyxl.styles.fills.StopList.expected_type +openpyxl.styles.Font.bold +openpyxl.styles.Font.color +openpyxl.styles.Font.italic +openpyxl.styles.Font.name +openpyxl.styles.Font.scheme +openpyxl.styles.Font.size +openpyxl.styles.Font.strikethrough +openpyxl.styles.Font.u +openpyxl.styles.Font.underline +openpyxl.styles.Font.vertAlign openpyxl.styles.fonts.Font.bold -openpyxl.styles.fonts.Font.charset openpyxl.styles.fonts.Font.color -openpyxl.styles.fonts.Font.condense -openpyxl.styles.fonts.Font.extend -openpyxl.styles.fonts.Font.family -openpyxl.styles.fonts.Font.i openpyxl.styles.fonts.Font.italic openpyxl.styles.fonts.Font.name -openpyxl.styles.fonts.Font.outline openpyxl.styles.fonts.Font.scheme -openpyxl.styles.fonts.Font.shadow openpyxl.styles.fonts.Font.size -openpyxl.styles.fonts.Font.strike openpyxl.styles.fonts.Font.strikethrough -openpyxl.styles.fonts.Font.sz openpyxl.styles.fonts.Font.u openpyxl.styles.fonts.Font.underline openpyxl.styles.fonts.Font.vertAlign +openpyxl.styles.GradientFill.fill_type +openpyxl.styles.GradientFill.stop +openpyxl.styles.GradientFill.type +openpyxl.styles.named_styles._NamedCellStyle.extLst +openpyxl.styles.named_styles._NamedCellStyle.name +openpyxl.styles.named_styles._NamedCellStyleList.cellStyle openpyxl.styles.named_styles.NamedStyle.alignment openpyxl.styles.named_styles.NamedStyle.border -openpyxl.styles.named_styles.NamedStyle.builtinId openpyxl.styles.named_styles.NamedStyle.fill openpyxl.styles.named_styles.NamedStyle.font -openpyxl.styles.named_styles.NamedStyle.hidden openpyxl.styles.named_styles.NamedStyle.name openpyxl.styles.named_styles.NamedStyle.number_format openpyxl.styles.named_styles.NamedStyle.protection -openpyxl.styles.named_styles._NamedCellStyle.builtinId -openpyxl.styles.named_styles._NamedCellStyle.customBuiltin -openpyxl.styles.named_styles._NamedCellStyle.extLst -openpyxl.styles.named_styles._NamedCellStyle.hidden -openpyxl.styles.named_styles._NamedCellStyle.iLevel -openpyxl.styles.named_styles._NamedCellStyle.name -openpyxl.styles.named_styles._NamedCellStyle.xfId -openpyxl.styles.named_styles._NamedCellStyleList.cellStyle +openpyxl.styles.NamedStyle.alignment +openpyxl.styles.NamedStyle.border +openpyxl.styles.NamedStyle.fill +openpyxl.styles.NamedStyle.font +openpyxl.styles.NamedStyle.name +openpyxl.styles.NamedStyle.number_format +openpyxl.styles.NamedStyle.protection openpyxl.styles.numbers.NumberFormat.formatCode -openpyxl.styles.numbers.NumberFormat.numFmtId openpyxl.styles.numbers.NumberFormatList.numFmt -openpyxl.styles.protection.Protection.hidden -openpyxl.styles.protection.Protection.locked +openpyxl.styles.PatternFill.bgColor +openpyxl.styles.PatternFill.end_color +openpyxl.styles.PatternFill.fgColor +openpyxl.styles.PatternFill.fill_type +openpyxl.styles.PatternFill.patternType +openpyxl.styles.PatternFill.start_color +openpyxl.styles.Side.border_style +openpyxl.styles.Side.color +openpyxl.styles.Side.style diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index bb1a76254dd4..1f0bcc345ef8 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -63,7 +63,7 @@ class Cell(StyleableObject): @value.setter def value(self, value: _KnownTypes) -> None: ... @property - def internal_value(self): ... + def internal_value(self) -> _KnownTypes: ... @property def hyperlink(self) -> Hyperlink | None: ... @hyperlink.setter diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index 40e45ebe3502..419ad2a6cd6f 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -1,5 +1,6 @@ from typing_extensions import Literal, TypeAlias +from openpyxl.descriptors.base import _IntegerSetter from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.styles.colors import Color @@ -7,23 +8,32 @@ from openpyxl.styles.fonts import Font class PhoneticProperties(Serialisable): tagname: str - fontId: int + @property + def fontId(self) -> int: ... + @fontId.setter + def fontId(self, __value: _IntegerSetter | None) -> None: ... type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] alignment: Literal["noControl", "left", "center", "distributed", None] def __init__( self, - fontId: int, + fontId: _IntegerSetter, type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] = ..., alignment: Literal["noControl", "left", "center", "distributed", None] = ..., ) -> None: ... class PhoneticText(Serialisable): tagname: str - sb: int - eb: int - t: str = ... - text = t - def __init__(self, sb: int, eb: int, t: str) -> None: ... + @property + def sb(self) -> int: ... + @sb.setter + def sb(self, __value: _IntegerSetter) -> None: ... + @property + def eb(self) -> int: ... + @eb.setter + def eb(self, __value: _IntegerSetter) -> None: ... + t: str + text = t # noqa: F821 + def __init__(self, sb: _IntegerSetter, eb: _IntegerSetter, t: str) -> None: ... class InlineFont(Font): tagname: str @@ -50,10 +60,10 @@ class InlineFont(Font): class RichText(Serialisable): tagname: str - rPr: InlineFont | None = ... - font = rPr - t: str | None = ... - text = t + rPr: InlineFont | None + font = rPr # noqa: F821 + t: str | None + text = t # noqa: F821 __elements__: tuple[str, ...] def __init__(self, rPr: InlineFont | None = ..., t: str | None = ...) -> None: ... @@ -61,14 +71,14 @@ _PhoneticProperties: TypeAlias = PhoneticProperties class Text(Serialisable): tagname: str - t: str | None = ... - plain = t - r: _Sequence[RichText] | None = ... - formatted = r - rPh: _Sequence[PhoneticText] | None = ... - phonetic = rPh - phoneticPr: _PhoneticProperties | None = ... - PhoneticProperties = phoneticPr + t: str | None + plain = t # noqa: F821 + r: _Sequence[RichText] | None + formatted = r # noqa: F821 + rPh: _Sequence[PhoneticText] | None + phonetic = rPh # noqa: F821 + phoneticPr: _PhoneticProperties | None + PhoneticProperties = phoneticPr # noqa: F821 __elements__: tuple[str, ...] def __init__( self, diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index c643173db9e0..9b560e82bc60 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -4,6 +4,7 @@ from typing_extensions import Literal, TypeAlias from openpyxl.chart.data_source import NumFmt from openpyxl.chart.title import Title +from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.serialisable import Serialisable from openpyxl.xml.functions import _Element @@ -16,53 +17,74 @@ _Unused: TypeAlias = object class ChartLines(Serialisable): tagname: str - spPr: GraphicalProperties | None = ... - graphicalProperties = spPr + spPr: GraphicalProperties | None + graphicalProperties = spPr # noqa: F821 def __init__(self, spPr: GraphicalProperties | None = ...) -> None: ... class Scaling(Serialisable): tagname: str - logBase: float | None + @property + def logBase(self) -> float | None: ... + @logBase.setter + def logBase(self, __value: _FloatSetter | None) -> None: ... orientation: Literal["maxMin", "minMax"] - max: float | None - min: float | None + @property + def max(self) -> float | None: ... + @max.setter + def max(self, __value: _FloatSetter | None) -> None: ... + @property + def min(self) -> float | None: ... + @min.setter + def min(self, __value: _FloatSetter | None) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - logBase: float | None = ..., + logBase: _FloatSetter | None = ..., orientation: Literal["maxMin", "minMax"] = ..., - max: float | None = ..., - min: float | None = ..., + max: _FloatSetter | None = ..., + min: _FloatSetter | None = ..., extLst: _Unused = ..., ) -> None: ... class _BaseAxis(Serialisable): - axId: int + @property + def axId(self) -> int: ... + @axId.setter + def axId(self, __value: _IntegerSetter) -> None: ... scaling: Scaling - delete: bool | None + @property + def delete(self) -> bool: ... + @delete.setter + def delete(self, __value: _BoolSetter) -> None: ... axPos: Literal["b", "l", "r", "t"] majorGridlines: ChartLines | None minorGridlines: ChartLines | None title: Title | None - numFmt: NumFmt | None = ... - number_format = numFmt + numFmt: NumFmt | None + number_format = numFmt # noqa: F821 majorTickMark: Literal["cross", "in", "out", None] minorTickMark: Literal["cross", "in", "out", None] tickLblPos: Literal["high", "low", "nextTo", None] - spPr: GraphicalProperties | None = ... - graphicalProperties = spPr - txPr: RichText | None = ... - textProperties = txPr - crossAx: int + spPr: GraphicalProperties | None + graphicalProperties = spPr # noqa: F821 + txPr: RichText | None + textProperties = txPr # noqa: F821 + @property + def crossAx(self) -> int: ... + @crossAx.setter + def crossAx(self, __value: _IntegerSetter) -> None: ... crosses: Literal["autoZero", "max", "min", None] - crossesAt: float | None + @property + def crossesAt(self) -> float | None: ... + @crossesAt.setter + def crossesAt(self, __value: _FloatSetter | None) -> None: ... __elements__: tuple[str, ...] def __init__( self, - axId: int, + axId: _IntegerSetter, scaling: Scaling | None, - delete: bool | None, + delete: _BoolSetter, axPos: str, majorGridlines: ChartLines | None, minorGridlines: ChartLines | None, @@ -73,9 +95,9 @@ class _BaseAxis(Serialisable): tickLblPos: Literal["high", "low", "nextTo", None], spPr: GraphicalProperties | None, txPr: RichText | None, - crossAx: int, + crossAx: _IntegerSetter, crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: float | None = ..., + crossesAt: _FloatSetter | None = ..., ) -> None: ... @property @abstractmethod @@ -84,12 +106,12 @@ class _BaseAxis(Serialisable): class DisplayUnitsLabel(Serialisable): tagname: str layout: Layout | None - tx: Text | None = ... - text = tx - spPr: GraphicalProperties | None = ... - graphicalProperties = spPr - txPr: RichText | None = ... - textPropertes = txPr + tx: Text | None + text = tx # noqa: F821 + spPr: GraphicalProperties | None + graphicalProperties = spPr # noqa: F821 + txPr: RichText | None + textPropertes = txPr # noqa: F821 __elements__: tuple[str, ...] def __init__( self, @@ -101,7 +123,10 @@ class DisplayUnitsLabel(Serialisable): class DisplayUnitsLabelList(Serialisable): tagname: str - custUnit: float | None + @property + def custUnit(self) -> float | None: ... + @custUnit.setter + def custUnit(self, __value: _FloatSetter | None) -> None: ... builtInUnit: Literal[ "hundreds", "thousands", @@ -139,21 +164,27 @@ class DisplayUnitsLabelList(Serialisable): class NumericAxis(_BaseAxis): tagname: str crossBetween: Literal["between", "midCat", None] - majorUnit: float | None - minorUnit: float | None + @property + def majorUnit(self) -> float | None: ... + @majorUnit.setter + def majorUnit(self, __value: _FloatSetter | None) -> None: ... + @property + def minorUnit(self) -> float | None: ... + @minorUnit.setter + def minorUnit(self, __value: _FloatSetter | None) -> None: ... dispUnits: DisplayUnitsLabelList | None extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - crossBetween: Incomplete | None = ..., - majorUnit: Incomplete | None = ..., - minorUnit: Incomplete | None = ..., - dispUnits: Incomplete | None = ..., - extLst: Incomplete | None = ..., - axId: int = ..., + crossBetween: Literal["between", "midCat", None] = ..., + majorUnit: _FloatSetter | None = ..., + minorUnit: _FloatSetter | None = ..., + dispUnits: DisplayUnitsLabelList | None = ..., + extLst: _Unused = ..., + axId: _IntegerSetter = ..., scaling: Scaling | None = ..., - delete: bool | None = ..., + delete: _BoolSetter = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -164,35 +195,50 @@ class NumericAxis(_BaseAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: int = ..., + crossAx: _IntegerSetter = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: float | None = ..., + crossesAt: _FloatSetter | None = ..., ) -> None: ... @classmethod def from_tree(cls: Self, node: _Element) -> Self: ... class TextAxis(_BaseAxis): tagname: str - auto: bool | None + @property + def auto(self) -> bool | None: ... + @auto.setter + def auto(self, __value: _BoolSetter) -> None: ... lblAlgn: Literal["ctr", "l", "r", None] - lblOffset: float - tickLblSkip: int | None - tickMarkSkip: int | None - noMultiLvlLbl: bool | None + @property + def lblOffset(self) -> float: ... + @lblOffset.setter + def lblOffset(self, __value: _FloatSetter) -> None: ... + @property + def tickLblSkip(self) -> int | None: ... + @tickLblSkip.setter + def tickLblSkip(self, __value: _IntegerSetter | None) -> None: ... + @property + def tickMarkSkip(self) -> int | None: ... + @tickMarkSkip.setter + def tickMarkSkip(self, __value: _IntegerSetter | None) -> None: ... + @property + def noMultiLvlLbl(self) -> bool | None: ... + @noMultiLvlLbl.setter + def noMultiLvlLbl(self, __value: _BoolSetter) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - auto: bool | None = ..., + auto: _BoolSetter = ..., lblAlgn: Literal["ctr", "l", "r", None] = ..., - lblOffset: float = ..., - tickLblSkip: int | None = ..., - tickMarkSkip: int | None = ..., - noMultiLvlLbl: bool | None = ..., + lblOffset: _FloatSetter = ..., + tickLblSkip: _IntegerSetter | None = ..., + tickMarkSkip: _IntegerSetter | None = ..., + noMultiLvlLbl: _BoolSetter = ..., extLst: _Unused = ..., - axId: int = ..., + axId: _IntegerSetter = ..., scaling: Scaling | None = ..., - delete: bool | None = ..., + delete: _BoolSetter = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -203,35 +249,47 @@ class TextAxis(_BaseAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: int = ..., + crossAx: _IntegerSetter = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: float | None = ..., + crossesAt: _FloatSetter | None = ..., ) -> None: ... class DateAxis(TextAxis): tagname: str - auto: bool | None - lblOffset: int | None # type: ignore[assignment] + @property + def auto(self) -> bool | None: ... + @auto.setter + def auto(self, __value: _BoolSetter) -> None: ... + @property # type: ignore[override] + def lblOffset(self) -> int | None: ... + @lblOffset.setter + def lblOffset(self, __value: _IntegerSetter | None) -> None: ... baseTimeUnit: Literal["days", "months", "years", None] - majorUnit: float | None + @property + def majorUnit(self) -> float | None: ... + @majorUnit.setter + def majorUnit(self, __value: _FloatSetter | None) -> None: ... majorTimeUnit: Literal["days", "months", "years", None] - minorUnit: float | None + @property + def minorUnit(self) -> float | None: ... + @minorUnit.setter + def minorUnit(self, __value: _FloatSetter | None) -> None: ... minorTimeUnit: Literal["days", "months", "years", None] extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - auto: bool | None = ..., - lblOffset: int | None = ..., + auto: _BoolSetter = ..., + lblOffset: _IntegerSetter | None = ..., baseTimeUnit: Literal["days", "months", "years", None] = ..., - majorUnit: float | None = ..., + majorUnit: _FloatSetter | None = ..., majorTimeUnit: Literal["days", "months", "years", None] = ..., - minorUnit: float | None = ..., + minorUnit: _FloatSetter | None = ..., minorTimeUnit: Literal["days", "months", "years", None] = ..., extLst: ExtensionList | None = ..., - axId: int = ..., + axId: _IntegerSetter = ..., scaling: Scaling | None = ..., - delete: bool | None = ..., + delete: _BoolSetter = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -242,25 +300,31 @@ class DateAxis(TextAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: int = ..., + crossAx: _IntegerSetter = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: float | None = ..., + crossesAt: _FloatSetter | None = ..., ) -> None: ... class SeriesAxis(_BaseAxis): tagname: str - tickLblSkip: int | None - tickMarkSkip: int | None + @property + def tickLblSkip(self) -> int | None: ... + @tickLblSkip.setter + def tickLblSkip(self, __value: _IntegerSetter | None) -> None: ... + @property + def tickMarkSkip(self) -> int | None: ... + @tickMarkSkip.setter + def tickMarkSkip(self, __value: _IntegerSetter | None) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - tickLblSkip: int | None = ..., - tickMarkSkip: int | None = ..., + tickLblSkip: _IntegerSetter | None = ..., + tickMarkSkip: _IntegerSetter | None = ..., extLst: _Unused = ..., - axId: int = ..., + axId: _IntegerSetter = ..., scaling: Scaling | None = ..., - delete: bool | None = ..., + delete: _BoolSetter = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -271,7 +335,7 @@ class SeriesAxis(_BaseAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: int = ..., + crossAx: _IntegerSetter = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: float | None = ..., + crossesAt: _FloatSetter | None = ..., ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/base.pyi b/stubs/openpyxl/openpyxl/descriptors/base.pyi index c61b95e8983f..6929f8186e63 100644 --- a/stubs/openpyxl/openpyxl/descriptors/base.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/base.pyi @@ -1,4 +1,11 @@ -from _typeshed import Incomplete +from _typeshed import Incomplete, ReadableBuffer, SupportsTrunc +from typing import SupportsFloat, SupportsInt +from typing_extensions import SupportsIndex, TypeAlias + +# Helper types for Convertible Descriptors +_IntegerSetter: TypeAlias = str | ReadableBuffer | SupportsInt | SupportsIndex | SupportsTrunc # noqa: Y047 +_FloatSetter: TypeAlias = SupportsFloat | SupportsIndex | str | ReadableBuffer # noqa: Y047 +_BoolSetter: TypeAlias = object # noqa: Y047 class Descriptor: name: Incomplete diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index 33c26426ed94..943bf3fa08fe 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -1,6 +1,7 @@ from collections.abc import Generator from typing_extensions import Final, Literal, TypeAlias +from openpyxl.descriptors.base import _BoolSetter, _FloatSetter from openpyxl.descriptors.serialisable import Serialisable _Unused: TypeAlias = object @@ -17,30 +18,48 @@ class Alignment(Serialisable): __fields__: tuple[str, ...] horizontal: _HorizontalAlignementsType | None vertical: _VerticalAlignementsType | None - textRotation: int | None = ... - text_rotation = textRotation - wrapText: bool | None = ... + textRotation: int | None + text_rotation = textRotation # noqa: F821 + @property + def wrapText(self) -> bool | None: ... + @wrapText.setter + def wrapText(self, __value: _BoolSetter) -> None: ... wrap_text = wrapText - shrinkToFit: bool | None = ... + @property + def shrinkToFit(self) -> bool | None: ... + @shrinkToFit.setter + def shrinkToFit(self, __value: _BoolSetter) -> None: ... shrink_to_fit = shrinkToFit - indent: float - relativeIndent: float - justifyLastLine: bool | None - readingOrder: float + @property + def indent(self) -> float: ... + @indent.setter + def indent(self, __value: _FloatSetter) -> None: ... + @property + def relativeIndent(self) -> float: ... + @relativeIndent.setter + def relativeIndent(self, __value: _FloatSetter) -> None: ... + @property + def justifyLastLine(self) -> bool | None: ... + @justifyLastLine.setter + def justifyLastLine(self, __value: _BoolSetter) -> None: ... + @property + def readingOrder(self) -> float: ... + @readingOrder.setter + def readingOrder(self, __value: _FloatSetter) -> None: ... def __init__( self, horizontal: _HorizontalAlignementsType | None = ..., vertical: _VerticalAlignementsType | None = ..., textRotation: float | None = ..., - wrapText: bool | None = ..., - shrinkToFit: bool | None = ..., - indent: float = ..., - relativeIndent: float = ..., - justifyLastLine: bool | None = ..., - readingOrder: float = ..., - text_rotation: bool | None = ..., - wrap_text: bool | None = ..., - shrink_to_fit: bool | None = ..., + wrapText: _BoolSetter = ..., + shrinkToFit: _BoolSetter = ..., + indent: _FloatSetter = ..., + relativeIndent: _FloatSetter = ..., + justifyLastLine: _BoolSetter = ..., + readingOrder: _FloatSetter = ..., + text_rotation: int | None = ..., + wrap_text: _BoolSetter = ..., + shrink_to_fit: _BoolSetter = ..., mergeCell: _Unused = ..., ) -> None: ... def __iter__(self) -> Generator[tuple[str, str], None, None]: ... diff --git a/stubs/openpyxl/openpyxl/styles/borders.pyi b/stubs/openpyxl/openpyxl/styles/borders.pyi index d7b25dc26580..fd87a097c2fb 100644 --- a/stubs/openpyxl/openpyxl/styles/borders.pyi +++ b/stubs/openpyxl/openpyxl/styles/borders.pyi @@ -2,6 +2,7 @@ from _typeshed import Incomplete from collections.abc import Generator from typing_extensions import Final, Literal, TypeAlias +from openpyxl.descriptors.base import _BoolSetter from openpyxl.descriptors.serialisable import Serialisable from .colors import Color @@ -39,8 +40,8 @@ _StyleType: TypeAlias = Literal[ class Side(Serialisable): # type: ignore[misc] __fields__: tuple[str, ...] color: Color | None - style: _StyleType | None = ... - border_style = style + style: _StyleType | None + border_style = style # noqa: F821 def __init__( self, style: _StyleType | None = ..., color: Color | None = ..., border_style: _StyleType | None = ... ) -> None: ... @@ -58,9 +59,18 @@ class Border(Serialisable): diagonal: Side | None vertical: Side | None horizontal: Side | None - outline: bool - diagonalUp: bool - diagonalDown: bool + @property + def outline(self) -> bool: ... + @outline.setter + def outline(self, __value: _BoolSetter) -> None: ... + @property + def diagonalUp(self) -> bool: ... + @diagonalUp.setter + def diagonalUp(self, __value: _BoolSetter) -> None: ... + @property + def diagonalDown(self) -> bool: ... + @diagonalDown.setter + def diagonalDown(self, __value: _BoolSetter) -> None: ... diagonal_direction: Incomplete | None def __init__( self, @@ -72,9 +82,9 @@ class Border(Serialisable): diagonal_direction: Incomplete | None = ..., vertical: Side | None = ..., horizontal: Side | None = ..., - diagonalUp: bool = ..., - diagonalDown: bool = ..., - outline: bool = ..., + diagonalUp: _BoolSetter = ..., + diagonalDown: _BoolSetter = ..., + outline: _BoolSetter = ..., start: Side | None = ..., end: Side | None = ..., ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/styles/colors.pyi b/stubs/openpyxl/openpyxl/styles/colors.pyi index ee4a023c2c62..ee418027f89b 100644 --- a/stubs/openpyxl/openpyxl/styles/colors.pyi +++ b/stubs/openpyxl/openpyxl/styles/colors.pyi @@ -5,6 +5,7 @@ from typing import TypeVar, overload from typing_extensions import TypeAlias from openpyxl.descriptors import Typed +from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.drawing.colors import SystemColor @@ -90,19 +91,31 @@ class RGB(Typed): class Color(Serialisable): tagname: str rgb: str - indexed: int - auto: bool - theme: int - tint: float + @property + def indexed(self) -> int: ... + @indexed.setter + def indexed(self, __value: _IntegerSetter) -> None: ... + @property + def auto(self) -> bool: ... + @auto.setter + def auto(self, __value: _BoolSetter) -> None: ... + @property + def theme(self) -> int: ... + @theme.setter + def theme(self, __value: _IntegerSetter) -> None: ... + @property + def tint(self) -> float: ... + @tint.setter + def tint(self, __value: _FloatSetter) -> None: ... type: str def __init__( self, rgb: str = ..., - indexed: int | None = ..., - auto: bool | None = ..., - theme: int | None = ..., - tint: float = ..., - index: int | None = ..., + indexed: _IntegerSetter | None = ..., + auto: _BoolSetter = ..., + theme: _IntegerSetter | None = ..., + tint: _FloatSetter = ..., + index: _IntegerSetter | None = ..., type: _Unused = ..., ) -> None: ... @property diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index 781dffa0dbf8..f94db6f5026e 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -3,6 +3,7 @@ from collections.abc import Generator, Sequence from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors import Sequence as SequenceDescriptor +from openpyxl.descriptors.base import _FloatSetter from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.xml.functions import _Element @@ -81,12 +82,12 @@ class Fill(Serialisable): class PatternFill(Fill): tagname: str __elements__: tuple[str, ...] - patternType: _FillsType | None = ... - fill_type = patternType - fgColor: Color = ... - start_color = fgColor - bgColor: Color = ... - end_color = bgColor + patternType: _FillsType | None + fill_type = patternType # noqa: F821 + fgColor: Color + start_color = fgColor # noqa: F821 + bgColor: Color + end_color = bgColor # noqa: F821 def __init__( self, patternType: _FillsType | None = ..., @@ -103,9 +104,12 @@ DEFAULT_GRAY_FILL: PatternFill class Stop(Serialisable): tagname: str - position: float + @property + def position(self) -> float: ... + @position.setter + def position(self, __value: _FloatSetter) -> None: ... color: Color - def __init__(self, color: Color, position: float) -> None: ... + def __init__(self, color: Color, position: _FloatSetter) -> None: ... class StopList(SequenceDescriptor): expected_type: type[Stop] @@ -115,20 +119,35 @@ class GradientFill(Fill): tagname: str type: Literal["linear", "path"] fill_type = type - degree: float - left: float - right: float - top: float - bottom: float + @property + def degree(self) -> float: ... + @degree.setter + def degree(self, __value: _FloatSetter) -> None: ... + @property + def left(self) -> float: ... + @left.setter + def left(self, __value: _FloatSetter) -> None: ... + @property + def right(self) -> float: ... + @right.setter + def right(self, __value: _FloatSetter) -> None: ... + @property + def top(self) -> float: ... + @top.setter + def top(self, __value: _FloatSetter) -> None: ... + @property + def bottom(self) -> float: ... + @bottom.setter + def bottom(self, __value: _FloatSetter) -> None: ... stop: _Sequence[Stop] def __init__( self, type: Literal["linear", "path"] = ..., - degree: float = ..., - left: float = ..., - right: float = ..., - top: float = ..., - bottom: float = ..., + degree: _FloatSetter = ..., + left: _FloatSetter = ..., + right: _FloatSetter = ..., + top: _FloatSetter = ..., + bottom: _FloatSetter = ..., stop: _Sequence[Stop] = ..., ) -> None: ... def __iter__(self) -> Generator[tuple[str, str], None, None]: ... diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index 940ac3df89f4..1ca7d69f337d 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -1,33 +1,65 @@ from _typeshed import Self +from typing import ClassVar from typing_extensions import Literal +from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter from openpyxl.descriptors.serialisable import Serialisable from openpyxl.xml.functions import _Element from .colors import Color class Font(Serialisable): - UNDERLINE_DOUBLE: str - UNDERLINE_DOUBLE_ACCOUNTING: str - UNDERLINE_SINGLE: str - UNDERLINE_SINGLE_ACCOUNTING: str + UNDERLINE_DOUBLE: ClassVar[Literal["double"]] + UNDERLINE_DOUBLE_ACCOUNTING: ClassVar[Literal["doubleAccounting"]] + UNDERLINE_SINGLE: ClassVar[Literal["single"]] + UNDERLINE_SINGLE_ACCOUNTING: ClassVar[Literal["singleAccounting"]] name: str | None - charset: int | None - family: float | None - sz: float | None = ... + @property + def charset(self) -> int | None: ... + @charset.setter + def charset(self, __value: _IntegerSetter | None) -> None: ... + @property + def family(self) -> float | None: ... + @family.setter + def family(self, __value: _FloatSetter | None) -> None: ... + @property + def sz(self) -> float | None: ... + @sz.setter + def sz(self, __value: _FloatSetter | None) -> None: ... size = sz - b: bool = ... + @property + def b(self) -> bool: ... + @b.setter + def b(self, __value: _BoolSetter) -> None: ... bold = b - i: bool = ... + @property + def i(self) -> bool: ... + @i.setter + def i(self, __value: _BoolSetter) -> None: ... italic = i - strike: bool | None = ... + @property + def strike(self) -> bool | None: ... + @strike.setter + def strike(self, __value: _BoolSetter) -> None: ... strikethrough = strike - outline: bool | None - shadow: bool | None - condense: bool | None - extend: bool | None - u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ... - underline = u + @property + def outline(self) -> bool | None: ... + @outline.setter + def outline(self, __value: _BoolSetter) -> None: ... + @property + def shadow(self) -> bool | None: ... + @shadow.setter + def shadow(self, __value: _BoolSetter) -> None: ... + @property + def condense(self) -> bool | None: ... + @condense.setter + def condense(self, __value: _BoolSetter) -> None: ... + @property + def extend(self) -> bool | None: ... + @extend.setter + def extend(self, __value: _BoolSetter) -> None: ... + u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] + underline = u # noqa: F821 vertAlign: Literal["superscript", "subscript", "baseline", None] color: Color | None scheme: Literal["major", "minor", None] @@ -38,25 +70,25 @@ class Font(Serialisable): def __init__( self, name: str | None = ..., - sz: float | None = ..., - b: bool | None = ..., - i: bool | None = ..., - charset: int | None = ..., + sz: _FloatSetter | None = ..., + b: _BoolSetter = ..., + i: _BoolSetter = ..., + charset: _IntegerSetter | None = ..., u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., - strike: bool | None = ..., + strike: _BoolSetter = ..., color: Color | None = ..., scheme: Literal["major", "minor", None] = ..., - family: float | None = ..., - size: float | None = ..., - bold: bool | None = ..., - italic: bool | None = ..., - strikethrough: bool | None = ..., + family: _FloatSetter | None = ..., + size: _FloatSetter | None = ..., + bold: _BoolSetter = ..., + italic: _BoolSetter = ..., + strikethrough: _BoolSetter = ..., underline: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., vertAlign: Literal["superscript", "subscript", "baseline", None] = ..., - outline: bool | None = ..., - shadow: bool | None = ..., - condense: bool | None = ..., - extend: bool | None = ..., + outline: _BoolSetter = ..., + shadow: _BoolSetter = ..., + condense: _BoolSetter = ..., + extend: _BoolSetter = ..., ) -> None: ... @classmethod def from_tree(cls: Self, node: _Element) -> Self: ... diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index fbd71a0dba08..3e8f61777dff 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -1,6 +1,7 @@ from collections.abc import Generator from typing_extensions import Literal, TypeAlias +from openpyxl.descriptors.base import _BoolSetter, _IntegerSetter from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable @@ -22,10 +23,14 @@ class NamedStyle(Serialisable): # type: ignore[misc] alignment: Alignment number_format: str protection: Protection - builtinId: int | None - hidden: bool | None - # Overwritten by property below - # xfId: int | None + @property + def builtinId(self) -> int | None: ... + @builtinId.setter + def builtinId(self, __value: _IntegerSetter | None) -> None: ... + @property + def hidden(self) -> bool: ... + @hidden.setter + def hidden(self, __value: _BoolSetter) -> None: ... name: str def __init__( self, @@ -36,8 +41,8 @@ class NamedStyle(Serialisable): # type: ignore[misc] alignment: Alignment = ..., number_format: str | None = ..., protection: Protection = ..., - builtinId: int | None = ..., - hidden: bool | None = ..., + builtinId: _IntegerSetter | None = ..., + hidden: _BoolSetter = ..., xfId: _Unused = ..., ) -> None: ... def __setattr__(self, attr: str, value) -> None: ... @@ -58,21 +63,36 @@ class NamedStyleList(list[NamedStyle]): class _NamedCellStyle(Serialisable): tagname: str name: str - xfId: int - builtinId: int | None - iLevel: int | None - hidden: bool | None - customBuiltin: bool | None + @property + def xfId(self) -> int: ... + @xfId.setter + def xfId(self, __value: _IntegerSetter) -> None: ... + @property + def builtinId(self) -> int | None: ... + @builtinId.setter + def builtinId(self, __value: _IntegerSetter | None) -> None: ... + @property + def iLevel(self) -> int | None: ... + @iLevel.setter + def iLevel(self, __value: _IntegerSetter | None) -> None: ... + @property + def hidden(self) -> bool: ... + @hidden.setter + def hidden(self, __value: _BoolSetter) -> None: ... + @property + def customBuiltin(self) -> bool: ... + @customBuiltin.setter + def customBuiltin(self, __value: _BoolSetter) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, name: str, - xfId: int, - builtinId: int | None = ..., - iLevel: int | None = ..., - hidden: bool | None = ..., - customBuiltin: bool | None = ..., + xfId: _IntegerSetter, + builtinId: _IntegerSetter | None = ..., + iLevel: _IntegerSetter | None = ..., + hidden: _BoolSetter = ..., + customBuiltin: _BoolSetter = ..., extLst: _Unused = ..., ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index 6a34beab07c6..d7b6ffcf0d9f 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -3,6 +3,7 @@ from typing import overload from typing_extensions import Literal, TypeAlias, TypeGuard from openpyxl.descriptors import String +from openpyxl.descriptors.base import _IntegerSetter from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.styles.named_styles import NamedStyle @@ -66,9 +67,12 @@ class NumberFormatDescriptor(String): def __set__(self, instance: NamedStyle, value: str | None) -> None: ... class NumberFormat(Serialisable): # type: ignore[misc] - numFmtId: int + @property + def numFmtId(self) -> int: ... + @numFmtId.setter + def numFmtId(self, __value: _IntegerSetter) -> None: ... formatCode: str - def __init__(self, numFmtId: int, formatCode: str) -> None: ... + def __init__(self, numFmtId: _IntegerSetter, formatCode: str) -> None: ... class NumberFormatList(Serialisable): # type: ignore[misc] # Overwritten by property below diff --git a/stubs/openpyxl/openpyxl/styles/protection.pyi b/stubs/openpyxl/openpyxl/styles/protection.pyi index 61d3f6329412..b0d0b8f5dc70 100644 --- a/stubs/openpyxl/openpyxl/styles/protection.pyi +++ b/stubs/openpyxl/openpyxl/styles/protection.pyi @@ -1,7 +1,14 @@ +from openpyxl.descriptors.base import _BoolSetter from openpyxl.descriptors.serialisable import Serialisable class Protection(Serialisable): tagname: str - locked: bool - hidden: bool - def __init__(self, locked: bool = ..., hidden: bool = ...) -> None: ... + @property + def locked(self) -> bool: ... + @locked.setter + def locked(self, __value: _BoolSetter) -> None: ... + @property + def hidden(self) -> bool: ... + @hidden.setter + def hidden(self, __value: _BoolSetter) -> None: ... + def __init__(self, locked: _BoolSetter = ..., hidden: _BoolSetter = ...) -> None: ... From 8a9de856acb4ed820e3abe47782f2f82572d3eeb Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 12 Jan 2023 12:34:45 -0500 Subject: [PATCH 04/51] Update after self-review --- stubs/openpyxl/openpyxl/chart/descriptors.pyi | 5 ++-- stubs/openpyxl/openpyxl/descriptors/base.pyi | 23 ++++++++++--------- .../openpyxl/descriptors/sequence.pyi | 11 +++++---- stubs/openpyxl/openpyxl/styles/cell_style.pyi | 4 +--- stubs/openpyxl/openpyxl/styles/fonts.pyi | 11 ++++----- .../openpyxl/openpyxl/styles/named_styles.pyi | 4 +--- stubs/openpyxl/openpyxl/styles/numbers.pyi | 4 +--- stubs/openpyxl/openpyxl/workbook/web.pyi | 4 +--- stubs/openpyxl/openpyxl/worksheet/merge.pyi | 4 +--- stubs/openpyxl/openpyxl/worksheet/table.pyi | 4 +--- 10 files changed, 31 insertions(+), 43 deletions(-) diff --git a/stubs/openpyxl/openpyxl/chart/descriptors.pyi b/stubs/openpyxl/openpyxl/chart/descriptors.pyi index 4c8407af4314..b00aa3eb0f5d 100644 --- a/stubs/openpyxl/openpyxl/chart/descriptors.pyi +++ b/stubs/openpyxl/openpyxl/chart/descriptors.pyi @@ -1,5 +1,4 @@ -from _typeshed import Incomplete - +from openpyxl.chart.data_source import NumFmt from openpyxl.descriptors import Typed from openpyxl.descriptors.nested import NestedMinMax @@ -14,6 +13,6 @@ class NestedOverlap(NestedMinMax): max: int class NumberFormatDescriptor(Typed): - expected_type: Incomplete + expected_type: type[NumFmt] allow_none: bool def __set__(self, instance, value) -> None: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/base.pyi b/stubs/openpyxl/openpyxl/descriptors/base.pyi index 6929f8186e63..ebbd393a9660 100644 --- a/stubs/openpyxl/openpyxl/descriptors/base.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/base.pyi @@ -1,5 +1,6 @@ +import datetime from _typeshed import Incomplete, ReadableBuffer, SupportsTrunc -from typing import SupportsFloat, SupportsInt +from typing import Any, SupportsFloat, SupportsInt from typing_extensions import SupportsIndex, TypeAlias # Helper types for Convertible Descriptors @@ -13,7 +14,7 @@ class Descriptor: def __set__(self, instance, value) -> None: ... class Typed(Descriptor): - expected_type: Incomplete + expected_type: type allow_none: bool nested: bool __doc__: Incomplete @@ -24,13 +25,13 @@ class Convertible(Typed): def __set__(self, instance, value) -> None: ... class Max(Convertible): - expected_type: Incomplete + expected_type: type[float] allow_none: bool def __init__(self, **kw) -> None: ... def __set__(self, instance, value) -> None: ... class Min(Convertible): - expected_type: Incomplete + expected_type: type[float] allow_none: bool def __init__(self, **kw) -> None: ... def __set__(self, instance, value) -> None: ... @@ -47,25 +48,25 @@ class NoneSet(Set): def __set__(self, instance, value) -> None: ... class Integer(Convertible): - expected_type: Incomplete + expected_type: type[int] class Float(Convertible): - expected_type: Incomplete + expected_type: type[float] class Bool(Convertible): - expected_type: Incomplete + expected_type: type[bool] def __set__(self, instance, value) -> None: ... class String(Typed): - expected_type: Incomplete + expected_type: type[str] class Text(String, Convertible): ... class ASCII(Typed): - expected_type: Incomplete + expected_type: type[bytes] class Tuple(Typed): - expected_type: Incomplete + expected_type: type[tuple[Any, ...]] class Length(Descriptor): def __init__(self, name: Incomplete | None = ..., **kw) -> None: ... @@ -88,5 +89,5 @@ class MatchPattern(Descriptor): def __set__(self, instance, value) -> None: ... class DateTime(Typed): - expected_type: Incomplete + expected_type: type[datetime.datetime] def __set__(self, instance, value) -> None: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi index cadae9028343..7382d9887495 100644 --- a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi @@ -1,16 +1,17 @@ from _typeshed import Incomplete from collections.abc import Generator -from typing import TypeVar +from typing import Generic, TypeVar from typing_extensions import TypeAlias from .base import Alias, Descriptor _T = TypeVar("_T") +_TType = TypeVar("_TType", bound=type) # Acceptable types for openpyxl.descriptors.Sequence _Sequence: TypeAlias = tuple[_T, ...] | list[_T] # noqa: Y047 class Sequence(Descriptor): - expected_type: Incomplete + expected_type: type seq_types: Incomplete idx_base: int unique: bool @@ -31,9 +32,9 @@ class MultiSequence(Sequence): def __set__(self, instance, seq) -> None: ... def to_tree(self, tagname, obj, namespace: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ... -class MultiSequencePart(Alias): - expected_type: Incomplete +class MultiSequencePart(Alias, Generic[_TType]): + expected_type: _TType store: Incomplete - def __init__(self, expected_type, store) -> None: ... + def __init__(self, expected_type: _TType, store) -> None: ... def __set__(self, instance, value) -> None: ... def __get__(self, instance, cls): ... diff --git a/stubs/openpyxl/openpyxl/styles/cell_style.pyi b/stubs/openpyxl/openpyxl/styles/cell_style.pyi index 32355ec9d840..37238c3f2362 100644 --- a/stubs/openpyxl/openpyxl/styles/cell_style.pyi +++ b/stubs/openpyxl/openpyxl/styles/cell_style.pyi @@ -76,13 +76,11 @@ class CellStyle(Serialisable): class CellStyleList(Serialisable): tagname: str __attrs__: Incomplete - # Overwritten by property below - # count: Integer xf: Incomplete alignment: Incomplete protection: Incomplete __elements__: Incomplete def __init__(self, count: Incomplete | None = ..., xf=...) -> None: ... @property - def count(self): ... + def count(self) -> int: ... def __getitem__(self, idx): ... diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index 1ca7d69f337d..d5a7d2df30b2 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -1,6 +1,5 @@ from _typeshed import Self -from typing import ClassVar -from typing_extensions import Literal +from typing_extensions import Final, Literal from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter from openpyxl.descriptors.serialisable import Serialisable @@ -9,10 +8,10 @@ from openpyxl.xml.functions import _Element from .colors import Color class Font(Serialisable): - UNDERLINE_DOUBLE: ClassVar[Literal["double"]] - UNDERLINE_DOUBLE_ACCOUNTING: ClassVar[Literal["doubleAccounting"]] - UNDERLINE_SINGLE: ClassVar[Literal["single"]] - UNDERLINE_SINGLE_ACCOUNTING: ClassVar[Literal["singleAccounting"]] + UNDERLINE_DOUBLE: Final = "double" + UNDERLINE_DOUBLE_ACCOUNTING: Final = "doubleAccounting" + UNDERLINE_SINGLE: Final = "single" + UNDERLINE_SINGLE_ACCOUNTING: Final = "singleAccounting" name: str | None @property def charset(self) -> int | None: ... diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index 3e8f61777dff..b0a1d8bf0bf6 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -98,12 +98,10 @@ class _NamedCellStyle(Serialisable): class _NamedCellStyleList(Serialisable): tagname: str - # Overwritten by property below - # count: int | None cellStyle: _Sequence[_NamedCellStyle] __attrs__: tuple[str, ...] def __init__(self, count: _Unused = ..., cellStyle: _Sequence[_NamedCellStyle] = ...) -> None: ... @property - def count(self) -> int | None: ... + def count(self) -> int: ... @property def names(self) -> NamedStyleList: ... diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index d7b6ffcf0d9f..8db12393acac 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -75,12 +75,10 @@ class NumberFormat(Serialisable): # type: ignore[misc] def __init__(self, numFmtId: _IntegerSetter, formatCode: str) -> None: ... class NumberFormatList(Serialisable): # type: ignore[misc] - # Overwritten by property below - # count: int | None numFmt: _Sequence[NumberFormat] __elements__: tuple[str, ...] __attrs__: tuple[str, ...] def __init__(self, count: _Unused = ..., numFmt: _Sequence[NumberFormat] = ...) -> None: ... @property - def count(self) -> int | None: ... + def count(self) -> int: ... def __getitem__(self, idx) -> NumberFormat: ... diff --git a/stubs/openpyxl/openpyxl/workbook/web.pyi b/stubs/openpyxl/openpyxl/workbook/web.pyi index 0f80700aaffd..9de228ecf506 100644 --- a/stubs/openpyxl/openpyxl/workbook/web.pyi +++ b/stubs/openpyxl/openpyxl/workbook/web.pyi @@ -22,13 +22,11 @@ class WebPublishObject(Serialisable): class WebPublishObjectList(Serialisable): tagname: str - # Overwritten by property below - # count: Integer webPublishObject: Incomplete __elements__: Incomplete def __init__(self, count: Incomplete | None = ..., webPublishObject=...) -> None: ... @property - def count(self): ... + def count(self) -> int: ... class WebPublishing(Serialisable): tagname: str diff --git a/stubs/openpyxl/openpyxl/worksheet/merge.pyi b/stubs/openpyxl/openpyxl/worksheet/merge.pyi index 2c7ca0a0bf78..821d09ad9aef 100644 --- a/stubs/openpyxl/openpyxl/worksheet/merge.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/merge.pyi @@ -14,14 +14,12 @@ class MergeCell(CellRange): class MergeCells(Serialisable): tagname: str - # Overwritten by property below - # count: Integer mergeCell: Incomplete __elements__: Incomplete __attrs__: Incomplete def __init__(self, count: Incomplete | None = ..., mergeCell=...) -> None: ... @property - def count(self): ... + def count(self) -> int: ... class MergedCellRange(CellRange): ws: Incomplete diff --git a/stubs/openpyxl/openpyxl/worksheet/table.pyi b/stubs/openpyxl/openpyxl/worksheet/table.pyi index c5eca03e81f9..8349d5a900cf 100644 --- a/stubs/openpyxl/openpyxl/worksheet/table.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/table.pyi @@ -160,15 +160,13 @@ class Table(Serialisable): class TablePartList(Serialisable): tagname: str - # Overwritten by property below - # count: Integer tablePart: Incomplete __elements__: Incomplete __attrs__: Incomplete def __init__(self, count: Incomplete | None = ..., tablePart=...) -> None: ... def append(self, part) -> None: ... @property - def count(self): ... + def count(self) -> int: ... def __bool__(self) -> bool: ... class TableList(dict[Incomplete, Incomplete]): From dd5a1525b008fe8fb905a343c6713f39d1e1ff74 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 8 Feb 2023 11:04:23 -0500 Subject: [PATCH 05/51] Update tests --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 178 +---- stubs/openpyxl/openpyxl/cell/cell.pyi | 20 +- stubs/openpyxl/openpyxl/reader/excel.pyi | 4 +- stubs/openpyxl/openpyxl/styles/alignment.pyi | 15 +- stubs/openpyxl/openpyxl/styles/fills.pyi | 42 +- stubs/openpyxl/openpyxl/utils/formulas.pyi | 716 +++++++++--------- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 2 +- 7 files changed, 419 insertions(+), 558 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index b92a9d6ee8af..3ebb9d8e4ae2 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -4,6 +4,8 @@ openpyxl.descriptors.slots.AutoSlotProperties.__new__ # The actual runtime definition depends on what else is installed # (lxml, defusedxml, et_xmlfile, numpy, ...) openpyxl.compat.NUMERIC_TYPES +openpyxl.compat.numbers.NUMERIC_TYPES +openpyxl.cell.cell.NUMERIC_TYPES openpyxl.xml._functions openpyxl.xml.functions.Element.__iter__ openpyxl.xml.functions.tostring @@ -28,184 +30,14 @@ openpyxl.utils.cell.col openpyxl.utils.cell.i # Unintended re-exports -openpyxl.cell._writer.LXML -openpyxl.cell._writer.REL_NS -openpyxl.cell._writer.XML_NS -openpyxl.cell.cell.NUMERIC_TYPES -openpyxl.cell.read_only.BUILTIN_FORMATS -openpyxl.cell.read_only.BUILTIN_FORMATS_MAX_SIZE -openpyxl.chart._chart.attribute_mapping -openpyxl.chart.axis.CHART_NS -openpyxl.chart.chartspace.CHART_NS openpyxl.chart.marker.DRAWING_NS openpyxl.chart.marker.PRESET_COLORS openpyxl.chart.shapes.DRAWING_NS openpyxl.chart.shapes.PRESET_COLORS -openpyxl.chartsheet.chartsheet.REL_NS -openpyxl.chartsheet.chartsheet.SHEET_MAIN_NS -openpyxl.comments.comment_sheet.SHEET_MAIN_NS -openpyxl.comments.comment_sheet.tostring -openpyxl.comments.shape_writer.tostring -openpyxl.compat.numbers.NUMERIC_TYPES -openpyxl.compat.strings.NUMERIC_TYPES -openpyxl.descriptors.excel.REL_NS -openpyxl.descriptors.serialisable.kwlist -openpyxl.drawing.colors.DRAWING_NS -openpyxl.drawing.drawing.BLACK -openpyxl.drawing.drawing.WHITE -openpyxl.drawing.fill.DRAWING_NS -openpyxl.drawing.fill.PRESET_COLORS -openpyxl.drawing.geometry.DRAWING_NS -openpyxl.drawing.graphic.CHART_NS -openpyxl.drawing.graphic.DRAWING_NS -openpyxl.drawing.graphic.NS_REGEX -openpyxl.drawing.graphic.REL_NS -openpyxl.drawing.line.DRAWING_NS -openpyxl.drawing.picture.DRAWING_NS -openpyxl.drawing.properties.DRAWING_NS -openpyxl.drawing.relation.CHART_NS -openpyxl.drawing.spreadsheet_drawing.SHEET_DRAWING_NS -openpyxl.drawing.text.DRAWING_NS openpyxl.drawing.text.PRESET_COLORS -openpyxl.formatting.rule.COORD_RE -openpyxl.packaging.core.COREPROPS_NS -openpyxl.packaging.core.DCORE_NS -openpyxl.packaging.core.DCTERMS_NS -openpyxl.packaging.core.DCTERMS_PREFIX -openpyxl.packaging.core.tostring -openpyxl.packaging.core.XSI_NS -openpyxl.packaging.extended.XPROPS_NS -openpyxl.packaging.manifest.ACTIVEX -openpyxl.packaging.manifest.ARC_APP -openpyxl.packaging.manifest.ARC_CONTENT_TYPES -openpyxl.packaging.manifest.ARC_CORE -openpyxl.packaging.manifest.ARC_SHARED_STRINGS -openpyxl.packaging.manifest.ARC_STYLE -openpyxl.packaging.manifest.ARC_THEME -openpyxl.packaging.manifest.ARC_WORKBOOK -openpyxl.packaging.manifest.CHART_TYPE -openpyxl.packaging.manifest.CHARTSHAPE_TYPE -openpyxl.packaging.manifest.CHARTSHEET_TYPE -openpyxl.packaging.manifest.COMMENTS_TYPE -openpyxl.packaging.manifest.CONTYPES_NS -openpyxl.packaging.manifest.CTRL -openpyxl.packaging.manifest.DRAWING_TYPE -openpyxl.packaging.manifest.EXTERNAL_LINK -openpyxl.packaging.manifest.SHARED_STRINGS -openpyxl.packaging.manifest.STYLES_TYPE -openpyxl.packaging.manifest.THEME_TYPE -openpyxl.packaging.manifest.tostring -openpyxl.packaging.manifest.VBA -openpyxl.packaging.manifest.WORKSHEET_TYPE -openpyxl.packaging.manifest.XLSM -openpyxl.packaging.manifest.XLSX -openpyxl.packaging.manifest.XLTM -openpyxl.packaging.manifest.XLTX -openpyxl.packaging.relationship.PKG_REL_NS -openpyxl.packaging.relationship.REL_NS -openpyxl.packaging.relationship.tostring -openpyxl.packaging.workbook.SHEET_MAIN_NS -openpyxl.pivot.cache.SHEET_MAIN_NS -openpyxl.pivot.cache.tostring -openpyxl.pivot.record.SHEET_MAIN_NS -openpyxl.pivot.record.tostring -openpyxl.pivot.table.SHEET_MAIN_NS -openpyxl.pivot.table.tostring -openpyxl.reader.drawings.IMAGE_NS -openpyxl.reader.drawings.PILImage -openpyxl.reader.excel.ARC_CONTENT_TYPES -openpyxl.reader.excel.ARC_CORE -openpyxl.reader.excel.ARC_SHARED_STRINGS -openpyxl.reader.excel.ARC_THEME -openpyxl.reader.excel.ARC_WORKBOOK -openpyxl.reader.excel.COMMENTS_NS -openpyxl.reader.excel.EXTERNAL_LINK -openpyxl.reader.excel.KEEP_VBA -openpyxl.reader.excel.SHARED_STRINGS -openpyxl.reader.excel.XLSM -openpyxl.reader.excel.XLSX -openpyxl.reader.excel.XLTM -openpyxl.reader.excel.XLTX -openpyxl.reader.excel.ZIP_DEFLATED -openpyxl.reader.strings.SHEET_MAIN_NS -openpyxl.reader.workbook.CALENDAR_MAC_1904 -openpyxl.styles.fills.SHEET_MAIN_NS -openpyxl.styles.fonts.BLACK -openpyxl.styles.fonts.SHEET_MAIN_NS -openpyxl.styles.named_styles.BUILTIN_FORMATS_MAX_SIZE -openpyxl.styles.named_styles.BUILTIN_FORMATS_REVERSE -openpyxl.styles.styleable.BUILTIN_FORMATS -openpyxl.styles.styleable.BUILTIN_FORMATS_MAX_SIZE -openpyxl.styles.styleable.BUILTIN_FORMATS_REVERSE -openpyxl.styles.styleable.styles -openpyxl.styles.stylesheet.ARC_STYLE -openpyxl.styles.stylesheet.BUILTIN_FORMATS -openpyxl.styles.stylesheet.BUILTIN_FORMATS_MAX_SIZE -openpyxl.styles.stylesheet.BUILTIN_FORMATS_REVERSE -openpyxl.styles.stylesheet.COLOR_INDEX -openpyxl.styles.stylesheet.SHEET_MAIN_NS -openpyxl.styles.stylesheet.styles -openpyxl.utils.cell.digits -openpyxl.workbook._writer.ARC_APP -openpyxl.workbook._writer.ARC_CORE -openpyxl.workbook._writer.ARC_ROOT_RELS -openpyxl.workbook._writer.ARC_WORKBOOK -openpyxl.workbook._writer.CALENDAR_MAC_1904 -openpyxl.workbook._writer.CUSTOMUI_NS -openpyxl.workbook._writer.PKG_REL_NS -openpyxl.workbook._writer.tostring -openpyxl.workbook.defined_name.SHEET_TITLE -openpyxl.workbook.defined_name.SHEETRANGE_RE -openpyxl.workbook.external_link.external.SHEET_MAIN_NS -openpyxl.workbook.workbook.COLOR_INDEX -openpyxl.workbook.workbook.MAC_EPOCH -openpyxl.workbook.workbook.WINDOWS_EPOCH -openpyxl.workbook.workbook.XLSM -openpyxl.workbook.workbook.XLSX -openpyxl.workbook.workbook.XLTM -openpyxl.workbook.workbook.XLTX -openpyxl.worksheet._reader.EXT_TYPES -openpyxl.worksheet._reader.SHEET_MAIN_NS -openpyxl.worksheet._reader.WINDOWS_EPOCH -openpyxl.worksheet._writer.SHEET_MAIN_NS -openpyxl.worksheet.dimensions.DEFAULT_COLUMN_WIDTH -openpyxl.worksheet.ole.SHEET_DRAWING_NS -openpyxl.worksheet.table.REL_NS -openpyxl.worksheet.table.SHEET_MAIN_NS -openpyxl.worksheet.table.tostring -openpyxl.worksheet.worksheet.COL_RANGE_RE -openpyxl.worksheet.worksheet.ROW_RANGE_RE -openpyxl.writer.excel.ARC_APP -openpyxl.writer.excel.ARC_CONTENT_TYPES -openpyxl.writer.excel.ARC_CORE -openpyxl.writer.excel.ARC_ROOT_RELS -openpyxl.writer.excel.ARC_SHARED_STRINGS -openpyxl.writer.excel.ARC_STYLE -openpyxl.writer.excel.ARC_THEME -openpyxl.writer.excel.ARC_WORKBOOK -openpyxl.writer.excel.ARC_WORKBOOK_RELS -openpyxl.writer.excel.PACKAGE_CHARTS -openpyxl.writer.excel.PACKAGE_CHARTSHEETS -openpyxl.writer.excel.PACKAGE_DRAWINGS -openpyxl.writer.excel.PACKAGE_IMAGES -openpyxl.writer.excel.PACKAGE_WORKSHEETS -openpyxl.writer.excel.PACKAGE_XL -openpyxl.writer.excel.theme_xml -openpyxl.writer.excel.tostring -openpyxl.writer.excel.ZIP_DEFLATED -openpyxl.xml.functions.CHART_DRAWING_NS -openpyxl.xml.functions.CHART_NS -openpyxl.xml.functions.COREPROPS_NS -openpyxl.xml.functions.DCTERMS_NS -openpyxl.xml.functions.DCTERMS_PREFIX -openpyxl.xml.functions.DEFUSEDXML -openpyxl.xml.functions.DRAWING_NS -openpyxl.xml.functions.LXML -openpyxl.xml.functions.REL_NS -openpyxl.xml.functions.SHEET_DRAWING_NS -openpyxl.xml.functions.SHEET_MAIN_NS -openpyxl.xml.functions.VTYPES_NS -openpyxl.xml.functions.XML_NS + +# Type vs class stubtest issue +openpyxl.chart.descriptors.NumberFormatDescriptor.expected_type # Variable differs from runtime type because attributes are actually # non-Convertible descriptors and the value is obtained through a dynamic getter diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index 1f0bcc345ef8..65a2c903f764 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -16,10 +16,20 @@ TIME_FORMATS: dict[_TimeTypes, str] STRING_TYPES: tuple[type[str], type[bytes]] _StringTypes: TypeAlias = str | bytes # mypy will simplify the type. Pyright fully expands it. -KNOWN_TYPES = NUMERIC_TYPES + TIME_TYPES + STRING_TYPES + (bool, type(None)) # noqa: F821,Y026 +KNOWN_TYPES = NUMERIC_TYPES + TIME_TYPES + STRING_TYPES + (bool, type(None)) # noqa: F821,Y015 _KnownTypes: TypeAlias = _NumericTypes | _TimeTypes | _StringTypes | bool | None ILLEGAL_CHARACTERS_RE: Pattern[str] -ERROR_CODES: Final = ("#NULL!", "#DIV/0!", "#VALUE!", "#REF!", "#NAME?", "#NUM!", "#N/A") +ERROR_CODES: Final[ + tuple[ + Literal["#NULL!"], + Literal["#DIV/0!"], + Literal["#VALUE!"], + Literal["#REF!"], + Literal["#NAME?"], + Literal["#NUM!"], + Literal["#N/A"], + ] +] TYPE_STRING: Final = "s" TYPE_FORMULA: Final = "f" TYPE_NUMERIC: Final = "n" @@ -29,7 +39,11 @@ TYPE_INLINE: Final = "inlineStr" TYPE_ERROR: Final = "e" TYPE_FORMULA_CACHE_STRING: Final = "str" -VALID_TYPES = (TYPE_STRING, TYPE_FORMULA, TYPE_NUMERIC, TYPE_BOOL, TYPE_NULL, TYPE_INLINE, TYPE_ERROR, TYPE_FORMULA_CACHE_STRING) +VALID_TYPES: Final[ + tuple[ + Literal["s"], Literal["f"], Literal["n"], Literal["b"], Literal["n"], Literal["inlineStr"], Literal["e"], Literal["str"] + ] +] def get_type(t, value) -> Literal["n", "s", "d", None]: ... def get_time_format(t) -> str: ... diff --git a/stubs/openpyxl/openpyxl/reader/excel.pyi b/stubs/openpyxl/openpyxl/reader/excel.pyi index 33f945cc7d87..ce5da5c4e3a3 100644 --- a/stubs/openpyxl/openpyxl/reader/excel.pyi +++ b/stubs/openpyxl/openpyxl/reader/excel.pyi @@ -1,13 +1,13 @@ from _typeshed import Incomplete, StrPath from typing import IO -from typing_extensions import Final +from typing_extensions import Final, Literal from zipfile import ZipFile from openpyxl.packaging.relationship import Relationship from openpyxl.packaging.workbook import ChildSheet from openpyxl.workbook.workbook import Workbook -SUPPORTED_FORMATS: Final = (".xlsx", ".xlsm", ".xltx", ".xltm") +SUPPORTED_FORMATS: Final[tuple[Literal[".xlsx"], Literal[".xlsm"], Literal[".xltx"], Literal[".xltm"]]] class ExcelReader: archive: ZipFile diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index 943bf3fa08fe..a92d5ccd30a0 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -6,11 +6,22 @@ from openpyxl.descriptors.serialisable import Serialisable _Unused: TypeAlias = object -horizontal_alignments: Final = ("general", "left", "center", "right", "fill", "justify", "centerContinuous", "distributed") +horizontal_alignments: Final[ + tuple[ + Literal["general"], + Literal["left"], + Literal["center"], + Literal["right"], + Literal["fill"], + Literal["justify"], + Literal["centerContinuous"], + Literal["distributed"], + ] +] _HorizontalAlignementsType: TypeAlias = Literal[ "general", "left", "center", "right", "fill", "justify", "centerContinuous", "distributed" ] -vertical_aligments: Final = ("top", "center", "bottom", "justify", "distributed") +vertical_aligments: Final[tuple[Literal["top"], Literal["center"], Literal["bottom"], Literal["justify"], Literal["distributed"]]] _VerticalAlignementsType: TypeAlias = Literal["top", "center", "bottom", "justify", "distributed"] class Alignment(Serialisable): diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index f94db6f5026e..4bc056e5806e 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -32,26 +32,28 @@ FILL_PATTERN_LIGHTUP: Final = "lightUp" FILL_PATTERN_LIGHTVERTICAL: Final = "lightVertical" FILL_PATTERN_MEDIUMGRAY: Final = "mediumGray" -fills: Final = ( - FILL_SOLID, - FILL_PATTERN_DARKDOWN, - FILL_PATTERN_DARKGRAY, - FILL_PATTERN_DARKGRID, - FILL_PATTERN_DARKHORIZONTAL, - FILL_PATTERN_DARKTRELLIS, - FILL_PATTERN_DARKUP, - FILL_PATTERN_DARKVERTICAL, - FILL_PATTERN_GRAY0625, - FILL_PATTERN_GRAY125, - FILL_PATTERN_LIGHTDOWN, - FILL_PATTERN_LIGHTGRAY, - FILL_PATTERN_LIGHTGRID, - FILL_PATTERN_LIGHTHORIZONTAL, - FILL_PATTERN_LIGHTTRELLIS, - FILL_PATTERN_LIGHTUP, - FILL_PATTERN_LIGHTVERTICAL, - FILL_PATTERN_MEDIUMGRAY, -) +fills: Final[ + tuple[ + Literal["solid"], + Literal["darkDown"], + Literal["darkGray"], + Literal["darkGrid"], + Literal["darkHorizontal"], + Literal["darkTrellis"], + Literal["darkUp"], + Literal["darkVertical"], + Literal["gray0625"], + Literal["gray125"], + Literal["lightDown"], + Literal["lightGray"], + Literal["lightGrid"], + Literal["lightHorizontal"], + Literal["lightTrellis"], + Literal["lightUp"], + Literal["lightVertical"], + Literal["mediumGray"], + ] +] _FillsType: TypeAlias = Literal[ "none", "solid", diff --git a/stubs/openpyxl/openpyxl/utils/formulas.pyi b/stubs/openpyxl/openpyxl/utils/formulas.pyi index ea0772a072e3..9ce21313b7d1 100644 --- a/stubs/openpyxl/openpyxl/utils/formulas.pyi +++ b/stubs/openpyxl/openpyxl/utils/formulas.pyi @@ -1,358 +1,360 @@ -from typing_extensions import Final +from typing_extensions import Final, Literal -FORMULAE: Final = frozenset( - ( - "CUBEKPIMEMBER", - "CUBEMEMBER", - "CUBEMEMBERPROPERTY", - "CUBERANKEDMEMBER", - "CUBESET", - "CUBESETCOUNT", - "CUBEVALUE", - "DAVERAGE", - "DCOUNT", - "DCOUNTA", - "DGET", - "DMAX", - "DMIN", - "DPRODUCT", - "DSTDEV", - "DSTDEVP", - "DSUM", - "DVAR", - "DVARP", - "DATE", - "DATEDIF", - "DATEVALUE", - "DAY", - "DAYS360", - "EDATE", - "EOMONTH", - "HOUR", - "MINUTE", - "MONTH", - "NETWORKDAYS", - "NETWORKDAYS.INTL", - "NOW", - "SECOND", - "TIME", - "TIMEVALUE", - "TODAY", - "WEEKDAY", - "WEEKNUM", - "WORKDAY ", - "WORKDAY.INTL", - "YEAR", - "YEARFRAC", - "BESSELI", - "BESSELJ", - "BESSELK", - "BESSELY", - "BIN2DEC", - "BIN2HEX", - "BIN2OCT", - "COMPLEX", - "CONVERT", - "DEC2BIN", - "DEC2HEX", - "DEC2OCT", - "DELTA", - "ERF", - "ERFC", - "GESTEP", - "HEX2BIN", - "HEX2DEC", - "HEX2OCT", - "IMABS", - "IMAGINARY", - "IMARGUMENT", - "IMCONJUGATE", - "IMCOS", - "IMDIV", - "IMEXP", - "IMLN", - "IMLOG10", - "IMLOG2", - "IMPOWER", - "IMPRODUCT", - "IMREAL", - "IMSIN", - "IMSQRT", - "IMSUB", - "IMSUM", - "OCT2BIN", - "OCT2DEC", - "OCT2HEX", - "ACCRINT", - "ACCRINTM", - "AMORDEGRC", - "AMORLINC", - "COUPDAYBS", - "COUPDAYS", - "COUPDAYSNC", - "COUPNCD", - "COUPNUM", - "COUPPCD", - "CUMIPMT", - "CUMPRINC", - "DB", - "DDB", - "DISC", - "DOLLARDE", - "DOLLARFR", - "DURATION", - "EFFECT", - "FV", - "FVSCHEDULE", - "INTRATE", - "IPMT", - "IRR", - "ISPMT", - "MDURATION", - "MIRR", - "NOMINAL", - "NPER", - "NPV", - "ODDFPRICE", - "ODDFYIELD", - "ODDLPRICE", - "ODDLYIELD", - "PMT", - "PPMT", - "PRICE", - "PRICEDISC", - "PRICEMAT", - "PV", - "RATE", - "RECEIVED", - "SLN", - "SYD", - "TBILLEQ", - "TBILLPRICE", - "TBILLYIELD", - "VDB", - "XIRR", - "XNPV", - "YIELD", - "YIELDDISC", - "YIELDMAT", - "CELL", - "ERROR.TYPE", - "INFO", - "ISBLANK", - "ISERR", - "ISERROR", - "ISEVEN", - "ISLOGICAL", - "ISNA", - "ISNONTEXT", - "ISNUMBER", - "ISODD", - "ISREF", - "ISTEXT", - "N", - "NA", - "TYPE", - "AND", - "FALSE", - "IF", - "IFERROR", - "NOT", - "OR", - "TRUE ADDRESS", - "AREAS", - "CHOOSE", - "COLUMN", - "COLUMNS", - "GETPIVOTDATA", - "HLOOKUP", - "HYPERLINK", - "INDEX", - "INDIRECT", - "LOOKUP", - "MATCH", - "OFFSET", - "ROW", - "ROWS", - "RTD", - "TRANSPOSE", - "VLOOKUP", - "ABS", - "ACOS", - "ACOSH", - "ASIN", - "ASINH", - "ATAN", - "ATAN2", - "ATANH", - "CEILING", - "COMBIN", - "COS", - "COSH", - "DEGREES", - "ECMA.CEILING", - "EVEN", - "EXP", - "FACT", - "FACTDOUBLE", - "FLOOR", - "GCD", - "INT", - "ISO.CEILING", - "LCM", - "LN", - "LOG", - "LOG10", - "MDETERM", - "MINVERSE", - "MMULT", - "MOD", - "MROUND", - "MULTINOMIAL", - "ODD", - "PI", - "POWER", - "PRODUCT", - "QUOTIENT", - "RADIANS", - "RAND", - "RANDBETWEEN", - "ROMAN", - "ROUND", - "ROUNDDOWN", - "ROUNDUP", - "SERIESSUM", - "SIGN", - "SIN", - "SINH", - "SQRT", - "SQRTPI", - "SUBTOTAL", - "SUM", - "SUMIF", - "SUMIFS", - "SUMPRODUCT", - "SUMSQ", - "SUMX2MY2", - "SUMX2PY2", - "SUMXMY2", - "TAN", - "TANH", - "TRUNC", - "AVEDEV", - "AVERAGE", - "AVERAGEA", - "AVERAGEIF", - "AVERAGEIFS", - "BETADIST", - "BETAINV", - "BINOMDIST", - "CHIDIST", - "CHIINV", - "CHITEST", - "CONFIDENCE", - "CORREL", - "COUNT", - "COUNTA", - "COUNTBLANK", - "COUNTIF", - "COUNTIFS", - "COVAR", - "CRITBINOM", - "DEVSQ", - "EXPONDIST", - "FDIST", - "FINV", - "FISHER", - "FISHERINV", - "FORECAST", - "FREQUENCY", - "FTEST", - "GAMMADIST", - "GAMMAINV", - "GAMMALN", - "GEOMEAN", - "GROWTH", - "HARMEAN", - "HYPGEOMDIST", - "INTERCEPT", - "KURT", - "LARGE", - "LINEST", - "LOGEST", - "LOGINV", - "LOGNORMDIST", - "MAX", - "MAXA", - "MEDIAN", - "MIN", - "MINA", - "MODE", - "NEGBINOMDIST", - "NORMDIST", - "NORMINV", - "NORMSDIST", - "NORMSINV", - "PEARSON", - "PERCENTILE", - "PERCENTRANK", - "PERMUT", - "POISSON", - "PROB", - "QUARTILE", - "RANK", - "RSQ", - "SKEW", - "SLOPE", - "SMALL", - "STANDARDIZE", - "STDEV STDEVA", - "STDEVP", - "STDEVPA STEYX", - "TDIST", - "TINV", - "TREND", - "TRIMMEAN", - "TTEST", - "VAR", - "VARA", - "VARP", - "VARPA", - "WEIBULL", - "ZTEST", - "ASC", - "BAHTTEXT", - "CHAR", - "CLEAN", - "CODE", - "CONCATENATE", - "DOLLAR", - "EXACT", - "FIND", - "FINDB", - "FIXED", - "JIS", - "LEFT", - "LEFTB", - "LEN", - "LENB", - "LOWER", - "MID", - "MIDB", - "PHONETIC", - "PROPER", - "REPLACE", - "REPLACEB", - "REPT", - "RIGHT", - "RIGHTB", - "SEARCH", - "SEARCHB", - "SUBSTITUTE", - "T", - "TEXT", - "TRIM", - "UPPER", - "VALUE", - ) -) +FORMULAE: Final[ + frozenset[ + Literal[ + "CUBEKPIMEMBER", + "CUBEMEMBER", + "CUBEMEMBERPROPERTY", + "CUBERANKEDMEMBER", + "CUBESET", + "CUBESETCOUNT", + "CUBEVALUE", + "DAVERAGE", + "DCOUNT", + "DCOUNTA", + "DGET", + "DMAX", + "DMIN", + "DPRODUCT", + "DSTDEV", + "DSTDEVP", + "DSUM", + "DVAR", + "DVARP", + "DATE", + "DATEDIF", + "DATEVALUE", + "DAY", + "DAYS360", + "EDATE", + "EOMONTH", + "HOUR", + "MINUTE", + "MONTH", + "NETWORKDAYS", + "NETWORKDAYS.INTL", + "NOW", + "SECOND", + "TIME", + "TIMEVALUE", + "TODAY", + "WEEKDAY", + "WEEKNUM", + "WORKDAY ", + "WORKDAY.INTL", + "YEAR", + "YEARFRAC", + "BESSELI", + "BESSELJ", + "BESSELK", + "BESSELY", + "BIN2DEC", + "BIN2HEX", + "BIN2OCT", + "COMPLEX", + "CONVERT", + "DEC2BIN", + "DEC2HEX", + "DEC2OCT", + "DELTA", + "ERF", + "ERFC", + "GESTEP", + "HEX2BIN", + "HEX2DEC", + "HEX2OCT", + "IMABS", + "IMAGINARY", + "IMARGUMENT", + "IMCONJUGATE", + "IMCOS", + "IMDIV", + "IMEXP", + "IMLN", + "IMLOG10", + "IMLOG2", + "IMPOWER", + "IMPRODUCT", + "IMREAL", + "IMSIN", + "IMSQRT", + "IMSUB", + "IMSUM", + "OCT2BIN", + "OCT2DEC", + "OCT2HEX", + "ACCRINT", + "ACCRINTM", + "AMORDEGRC", + "AMORLINC", + "COUPDAYBS", + "COUPDAYS", + "COUPDAYSNC", + "COUPNCD", + "COUPNUM", + "COUPPCD", + "CUMIPMT", + "CUMPRINC", + "DB", + "DDB", + "DISC", + "DOLLARDE", + "DOLLARFR", + "DURATION", + "EFFECT", + "FV", + "FVSCHEDULE", + "INTRATE", + "IPMT", + "IRR", + "ISPMT", + "MDURATION", + "MIRR", + "NOMINAL", + "NPER", + "NPV", + "ODDFPRICE", + "ODDFYIELD", + "ODDLPRICE", + "ODDLYIELD", + "PMT", + "PPMT", + "PRICE", + "PRICEDISC", + "PRICEMAT", + "PV", + "RATE", + "RECEIVED", + "SLN", + "SYD", + "TBILLEQ", + "TBILLPRICE", + "TBILLYIELD", + "VDB", + "XIRR", + "XNPV", + "YIELD", + "YIELDDISC", + "YIELDMAT", + "CELL", + "ERROR.TYPE", + "INFO", + "ISBLANK", + "ISERR", + "ISERROR", + "ISEVEN", + "ISLOGICAL", + "ISNA", + "ISNONTEXT", + "ISNUMBER", + "ISODD", + "ISREF", + "ISTEXT", + "N", + "NA", + "TYPE", + "AND", + "FALSE", + "IF", + "IFERROR", + "NOT", + "OR", + "TRUE ADDRESS", + "AREAS", + "CHOOSE", + "COLUMN", + "COLUMNS", + "GETPIVOTDATA", + "HLOOKUP", + "HYPERLINK", + "INDEX", + "INDIRECT", + "LOOKUP", + "MATCH", + "OFFSET", + "ROW", + "ROWS", + "RTD", + "TRANSPOSE", + "VLOOKUP", + "ABS", + "ACOS", + "ACOSH", + "ASIN", + "ASINH", + "ATAN", + "ATAN2", + "ATANH", + "CEILING", + "COMBIN", + "COS", + "COSH", + "DEGREES", + "ECMA.CEILING", + "EVEN", + "EXP", + "FACT", + "FACTDOUBLE", + "FLOOR", + "GCD", + "INT", + "ISO.CEILING", + "LCM", + "LN", + "LOG", + "LOG10", + "MDETERM", + "MINVERSE", + "MMULT", + "MOD", + "MROUND", + "MULTINOMIAL", + "ODD", + "PI", + "POWER", + "PRODUCT", + "QUOTIENT", + "RADIANS", + "RAND", + "RANDBETWEEN", + "ROMAN", + "ROUND", + "ROUNDDOWN", + "ROUNDUP", + "SERIESSUM", + "SIGN", + "SIN", + "SINH", + "SQRT", + "SQRTPI", + "SUBTOTAL", + "SUM", + "SUMIF", + "SUMIFS", + "SUMPRODUCT", + "SUMSQ", + "SUMX2MY2", + "SUMX2PY2", + "SUMXMY2", + "TAN", + "TANH", + "TRUNC", + "AVEDEV", + "AVERAGE", + "AVERAGEA", + "AVERAGEIF", + "AVERAGEIFS", + "BETADIST", + "BETAINV", + "BINOMDIST", + "CHIDIST", + "CHIINV", + "CHITEST", + "CONFIDENCE", + "CORREL", + "COUNT", + "COUNTA", + "COUNTBLANK", + "COUNTIF", + "COUNTIFS", + "COVAR", + "CRITBINOM", + "DEVSQ", + "EXPONDIST", + "FDIST", + "FINV", + "FISHER", + "FISHERINV", + "FORECAST", + "FREQUENCY", + "FTEST", + "GAMMADIST", + "GAMMAINV", + "GAMMALN", + "GEOMEAN", + "GROWTH", + "HARMEAN", + "HYPGEOMDIST", + "INTERCEPT", + "KURT", + "LARGE", + "LINEST", + "LOGEST", + "LOGINV", + "LOGNORMDIST", + "MAX", + "MAXA", + "MEDIAN", + "MIN", + "MINA", + "MODE", + "NEGBINOMDIST", + "NORMDIST", + "NORMINV", + "NORMSDIST", + "NORMSINV", + "PEARSON", + "PERCENTILE", + "PERCENTRANK", + "PERMUT", + "POISSON", + "PROB", + "QUARTILE", + "RANK", + "RSQ", + "SKEW", + "SLOPE", + "SMALL", + "STANDARDIZE", + "STDEV STDEVA", + "STDEVP", + "STDEVPA STEYX", + "TDIST", + "TINV", + "TREND", + "TRIMMEAN", + "TTEST", + "VAR", + "VARA", + "VARP", + "VARPA", + "WEIBULL", + "ZTEST", + "ASC", + "BAHTTEXT", + "CHAR", + "CLEAN", + "CODE", + "CONCATENATE", + "DOLLAR", + "EXACT", + "FIND", + "FINDB", + "FIXED", + "JIS", + "LEFT", + "LEFTB", + "LEN", + "LENB", + "LOWER", + "MID", + "MIDB", + "PHONETIC", + "PROPER", + "REPLACE", + "REPLACEB", + "REPT", + "RIGHT", + "RIGHTB", + "SEARCH", + "SEARCHB", + "SUBSTITUTE", + "T", + "TEXT", + "TRIM", + "UPPER", + "VALUE", + ] + ] +] diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 28ce9cec0e52..061fc7831fc6 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -59,7 +59,7 @@ class Worksheet(_WorkbookChild): def cell(self, row: int, column: int, value: _KnownTypes = ...) -> Cell | MergedCell: ... def __getitem__(self, key: str | slice | int): ... def __setitem__(self, key: str | slice | int, value: _KnownTypes) -> None: ... - def __iter__(self) -> (Iterator[_Cell] | Generator[tuple[_Cell, ...], None, None]): ... + def __iter__(self) -> Iterator[_Cell] | Generator[tuple[_Cell, ...], None, None]: ... def __delitem__(self, key: Iterable[str]) -> None: ... @property def min_row(self) -> int: ... From f11292d89093c1d07ec4bc343bb6139a04c63858 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 9 Feb 2023 00:14:45 -0500 Subject: [PATCH 06/51] Fix pytype errors --- stubs/openpyxl/openpyxl/__init__.pyi | 2 +- stubs/openpyxl/openpyxl/cell/cell.pyi | 6 ++++-- tests/pytype_exclude_list.txt | 27 +++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/stubs/openpyxl/openpyxl/__init__.pyi b/stubs/openpyxl/openpyxl/__init__.pyi index 62143fb1cb72..17ba1ec55dec 100644 --- a/stubs/openpyxl/openpyxl/__init__.pyi +++ b/stubs/openpyxl/openpyxl/__init__.pyi @@ -17,5 +17,5 @@ from ._constants import ( open = load_workbook # Utility type reused elsewhere -class _Decodable(Protocol): # noqa: Y046 # Utility type reused elsewhere +class _Decodable(Protocol): # noqa: Y046 def decode(self, __encoding: str) -> str: ... diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index 65a2c903f764..e87fa245cbfc 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -15,8 +15,10 @@ _TimeTypes: TypeAlias = datetime.datetime | datetime.date | datetime.time | date TIME_FORMATS: dict[_TimeTypes, str] STRING_TYPES: tuple[type[str], type[bytes]] _StringTypes: TypeAlias = str | bytes -# mypy will simplify the type. Pyright fully expands it. -KNOWN_TYPES = NUMERIC_TYPES + TIME_TYPES + STRING_TYPES + (bool, type(None)) # noqa: F821,Y015 +# We could get the exact tuple length and order with the following line, ignoring Y015 +# But pytype doesn't support it and mypy oversimplifies the type. Pyright fully expands it. +# KNOWN_TYPES = NUMERIC_TYPES + TIME_TYPES + STRING_TYPES + (bool, type(None)) +KNOWN_TYPES: tuple[_KnownTypes, ...] _KnownTypes: TypeAlias = _NumericTypes | _TimeTypes | _StringTypes | bool | None ILLEGAL_CHARACTERS_RE: Pattern[str] ERROR_CODES: Final[ diff --git a/tests/pytype_exclude_list.txt b/tests/pytype_exclude_list.txt index 5a857e22c161..bc977cdad657 100644 --- a/tests/pytype_exclude_list.txt +++ b/tests/pytype_exclude_list.txt @@ -109,3 +109,30 @@ stubs/SQLAlchemy/sqlalchemy/sql/selectable.pyi stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi + +# pytype doesn't support stub files external to typeshed +stubs/openpyxl/openpyxl/__init__.pyi +stubs/openpyxl/openpyxl/cell/__init__.pyi +stubs/openpyxl/openpyxl/cell/cell.pyi +stubs/openpyxl/openpyxl/cell/text.pyi +stubs/openpyxl/openpyxl/chart/axis.pyi +stubs/openpyxl/openpyxl/chartsheet/__init__.pyi +stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +stubs/openpyxl/openpyxl/reader/excel.pyi +stubs/openpyxl/openpyxl/reader/workbook.pyi +stubs/openpyxl/openpyxl/styles/__init__.pyi +stubs/openpyxl/openpyxl/styles/differential.pyi +stubs/openpyxl/openpyxl/styles/fills.pyi +stubs/openpyxl/openpyxl/styles/fonts.pyi +stubs/openpyxl/openpyxl/styles/named_styles.pyi +stubs/openpyxl/openpyxl/styles/numbers.pyi +stubs/openpyxl/openpyxl/workbook/__init__.pyi +stubs/openpyxl/openpyxl/workbook/child.pyi +stubs/openpyxl/openpyxl/workbook/workbook.pyi +stubs/openpyxl/openpyxl/worksheet/_reader.pyi +stubs/openpyxl/openpyxl/worksheet/_write_only.pyi +stubs/openpyxl/openpyxl/worksheet/_writer.pyi +stubs/openpyxl/openpyxl/worksheet/copier.pyi +stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +stubs/openpyxl/openpyxl/xml/_functions.pyi +stubs/openpyxl/openpyxl/xml/functions.pyi From 7b034b2de8d55a341ff51a1e055b9992ad3a08f5 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 21 Feb 2023 14:50:46 -0500 Subject: [PATCH 07/51] Fixes --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 7 ++++--- stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi | 8 +++++--- stubs/openpyxl/openpyxl/chartsheet/custom.pyi | 5 +++-- stubs/openpyxl/openpyxl/descriptors/slots.pyi | 2 +- stubs/openpyxl/openpyxl/drawing/image.pyi | 3 ++- stubs/openpyxl/openpyxl/packaging/workbook.pyi | 7 ++++++- stubs/openpyxl/openpyxl/worksheet/_read_only.pyi | 3 ++- stubs/openpyxl/openpyxl/worksheet/worksheet.pyi | 3 +-- stubs/openpyxl/openpyxl/xml/_functions.pyi | 5 +++-- 9 files changed, 27 insertions(+), 16 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index 3ebb9d8e4ae2..c56fdc3cd50f 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -1,6 +1,3 @@ -# "cls" argument has wrong name in implementation. -openpyxl.descriptors.slots.AutoSlotProperties.__new__ - # The actual runtime definition depends on what else is installed # (lxml, defusedxml, et_xmlfile, numpy, ...) openpyxl.compat.NUMERIC_TYPES @@ -24,6 +21,7 @@ openpyxl.chart.axis.TextAxis.__init__ openpyxl.styles.colors.RgbColor.__init__ openpyxl.styles.named_styles._NamedCellStyle.__init__ openpyxl.styles.numbers.NumberFormat.__init__ +openpyxl.workbook.defined_name.DefinedName.__init__ # Leaked into the global space openpyxl.utils.cell.col @@ -149,6 +147,9 @@ openpyxl.chart.axis.TextAxis.spPr openpyxl.chart.axis.TextAxis.tickLblPos openpyxl.chart.axis.TextAxis.title openpyxl.chart.axis.TextAxis.txPr +openpyxl.chartsheet.chartsheet.Chartsheet.sheet_state +openpyxl.chartsheet.Chartsheet.sheet_state +openpyxl.chartsheet.custom.CustomChartsheetView.state openpyxl.styles.alignment.Alignment.horizontal openpyxl.styles.alignment.Alignment.shrink_to_fit openpyxl.styles.alignment.Alignment.text_rotation diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index 9423f1cced4d..ad1abe2fd3d4 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -1,5 +1,7 @@ from _typeshed import Incomplete +from typing_extensions import Literal +from openpyxl import _Decodable from openpyxl.descriptors.serialisable import Serialisable from openpyxl.workbook.child import _WorkbookChild @@ -17,7 +19,7 @@ class Chartsheet(_WorkbookChild, Serialisable): picture: Incomplete webPublishItems: Incomplete extLst: Incomplete - sheet_state: Incomplete + sheet_state: Literal["visible", "hidden", "veryHidden"] headerFooter: Incomplete HeaderFooter: Incomplete __elements__: Incomplete @@ -37,8 +39,8 @@ class Chartsheet(_WorkbookChild, Serialisable): webPublishItems: Incomplete | None = ..., extLst: Incomplete | None = ..., parent: Incomplete | None = ..., - title: str = ..., - sheet_state: str = ..., + title: str | _Decodable = ..., + sheet_state: Literal["visible", "hidden", "veryHidden"] = ..., ) -> None: ... def add_chart(self, chart) -> None: ... def to_tree(self): ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi index 88a26bd8b703..f243f454dc44 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing_extensions import Literal from openpyxl.descriptors.serialisable import Serialisable @@ -6,7 +7,7 @@ class CustomChartsheetView(Serialisable): tagname: str guid: Incomplete scale: Incomplete - state: Incomplete + state: Literal["visible", "hidden", "veryHidden"] zoomToFit: Incomplete pageMargins: Incomplete pageSetup: Incomplete @@ -16,7 +17,7 @@ class CustomChartsheetView(Serialisable): self, guid: Incomplete | None = ..., scale: Incomplete | None = ..., - state: str = ..., + state: Literal["visible", "hidden", "veryHidden"] = ..., zoomToFit: Incomplete | None = ..., pageMargins: Incomplete | None = ..., pageSetup: Incomplete | None = ..., diff --git a/stubs/openpyxl/openpyxl/descriptors/slots.pyi b/stubs/openpyxl/openpyxl/descriptors/slots.pyi index 87f6a0755d1a..ebfc3090e22c 100644 --- a/stubs/openpyxl/openpyxl/descriptors/slots.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/slots.pyi @@ -1,2 +1,2 @@ class AutoSlotProperties(type): - def __new__(cls, classname, bases, dictionary): ... + def __new__(mcl, classname, bases, dictionary): ... diff --git a/stubs/openpyxl/openpyxl/drawing/image.pyi b/stubs/openpyxl/openpyxl/drawing/image.pyi index b0035d77895c..4ae4780095e1 100644 --- a/stubs/openpyxl/openpyxl/drawing/image.pyi +++ b/stubs/openpyxl/openpyxl/drawing/image.pyi @@ -1,9 +1,10 @@ +from types import ModuleType from typing_extensions import Literal from PIL import Image as ImageModule # Using "object" because modules can't by used as type -PILImage: object | Literal[False] +PILImage: ModuleType | Literal[False] class Image: anchor: str diff --git a/stubs/openpyxl/openpyxl/packaging/workbook.pyi b/stubs/openpyxl/openpyxl/packaging/workbook.pyi index 37bc20d10222..d335ce1fc591 100644 --- a/stubs/openpyxl/openpyxl/packaging/workbook.pyi +++ b/stubs/openpyxl/openpyxl/packaging/workbook.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing_extensions import Literal from openpyxl.descriptors.serialisable import Serialisable @@ -23,7 +24,11 @@ class ChildSheet(Serialisable): state: Incomplete id: Incomplete def __init__( - self, name: Incomplete | None = ..., sheetId: Incomplete | None = ..., state: str = ..., id: Incomplete | None = ... + self, + name: Incomplete | None = ..., + sheetId: Incomplete | None = ..., + state: Literal["visible", "hidden", "veryHidden"] = ..., + id: Incomplete | None = ..., ) -> None: ... class PivotCache(Serialisable): diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index 7be2037647be..e19d5b062028 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing_extensions import Literal def read_dimension(source): ... @@ -13,7 +14,7 @@ class ReadOnlyWorksheet: __iter__: Incomplete parent: Incomplete title: Incomplete - sheet_state: str + sheet_state: Literal["visible"] def __init__(self, parent_workbook, title, worksheet_path, shared_strings) -> None: ... def calculate_dimension(self, force: bool = ...): ... def reset_dimensions(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 4996d32217f2..17efa46c801b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -1,6 +1,5 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator, Iterable, Iterator -from datetime import datetime from types import GeneratorType from typing import overload from typing_extensions import Literal, TypeAlias @@ -79,7 +78,7 @@ class Worksheet(_WorkbookChild): @overload def iter_rows( self, min_row: int | None, max_row: int | None, min_col: int | None, max_col: int | None, values_only: Literal[True] - ) -> Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> Generator[tuple[_KnownTypes, ...], None, None]: ... @overload def iter_rows( self, diff --git a/stubs/openpyxl/openpyxl/xml/_functions.pyi b/stubs/openpyxl/openpyxl/xml/_functions.pyi index 76c12d572665..5deb76f0c0e3 100644 --- a/stubs/openpyxl/openpyxl/xml/_functions.pyi +++ b/stubs/openpyxl/openpyxl/xml/_functions.pyi @@ -1,5 +1,6 @@ # This file does not exist at runtime. It is a helper file to overload imports in openpyxl.xml.functions -# TODO: Create missing stubs and add missing types upstream +# TODO: Add missing types in lxml-stubs and et_xmlfile and figure out how to import lxml-stubs +# NOTE: openpyxl already depends on et_xmlfile, but depending on defusedxml is overkill for our needs. from _typeshed import Incomplete, Unused from collections.abc import Iterator from typing import overload @@ -26,7 +27,7 @@ def fromstring(text, forbid_dtd: bool = ..., forbid_entities: bool = ..., forbid # from et_xmlfile.xmlfile import xmlfile class _et_xmlfile_xmlfile: def __init__( - self, output_file: Incomplete | str, buffered: Unused = ..., encoding: _Unused = ..., close: bool = ... + self, output_file: Incomplete | str, buffered: Unused = ..., encoding: Unused = ..., close: bool = ... ) -> None: ... def __enter__(self) -> Incomplete: ... def __exit__(self, type: object, value: object, traceback: object) -> None: ... From 093b0618fd4ca26b6367d4b6d916a6d4316806b1 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 23 Feb 2023 05:28:41 -0500 Subject: [PATCH 08/51] PR comments --- stubs/openpyxl/METADATA.toml | 2 +- stubs/openpyxl/openpyxl/cell/cell.pyi | 20 +- stubs/openpyxl/openpyxl/chart/axis.pyi | 81 ++-- .../openpyxl/chartsheet/chartsheet.pyi | 6 +- stubs/openpyxl/openpyxl/chartsheet/custom.pyi | 6 +- stubs/openpyxl/openpyxl/compat/numbers.pyi | 75 +--- .../openpyxl/openpyxl/packaging/workbook.pyi | 6 +- stubs/openpyxl/openpyxl/reader/excel.pyi | 4 +- stubs/openpyxl/openpyxl/styles/alignment.pyi | 15 +- stubs/openpyxl/openpyxl/styles/colors.pyi | 67 +--- stubs/openpyxl/openpyxl/styles/fills.pyi | 28 +- stubs/openpyxl/openpyxl/utils/formulas.pyi | 361 +----------------- stubs/openpyxl/openpyxl/workbook/views.pyi | 5 +- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 9 +- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 9 +- stubs/openpyxl/openpyxl/xml/_functions.pyi | 4 +- stubs/openpyxl/openpyxl/xml/functions.pyi | 22 +- 17 files changed, 96 insertions(+), 624 deletions(-) diff --git a/stubs/openpyxl/METADATA.toml b/stubs/openpyxl/METADATA.toml index ae5e7be22b9b..dbeb9a9e9146 100644 --- a/stubs/openpyxl/METADATA.toml +++ b/stubs/openpyxl/METADATA.toml @@ -1,2 +1,2 @@ version = "3.0.*" -requires = ["lxml-stubs", "numpy", "types-pillow"] +requires = ["numpy", "types-pillow"] diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index f5ba1dbadd61..20e96c8a86ca 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -11,7 +11,7 @@ from openpyxl.workbook.child import _WorkbookChild from openpyxl.worksheet.hyperlink import Hyperlink __docformat__: str -TIME_TYPES: tuple[type[datetime.datetime], type[datetime.date], type[datetime.time], type[datetime.timedelta]] +TIME_TYPES: tuple[type[_TimeTypes], ...] _TimeTypes: TypeAlias = datetime.datetime | datetime.date | datetime.time | datetime.timedelta TIME_FORMATS: dict[_TimeTypes, str] STRING_TYPES: tuple[type[str], type[bytes]] @@ -22,17 +22,7 @@ _StringTypes: TypeAlias = str | bytes KNOWN_TYPES: tuple[_KnownTypes, ...] _KnownTypes: TypeAlias = _NumericTypes | _TimeTypes | _StringTypes | bool | None ILLEGAL_CHARACTERS_RE: Pattern[str] -ERROR_CODES: Final[ - tuple[ - Literal["#NULL!"], - Literal["#DIV/0!"], - Literal["#VALUE!"], - Literal["#REF!"], - Literal["#NAME?"], - Literal["#NUM!"], - Literal["#N/A"], - ] -] +ERROR_CODES: Final[tuple[str, ...]] TYPE_STRING: Final = "s" TYPE_FORMULA: Final = "f" TYPE_NUMERIC: Final = "n" @@ -42,11 +32,7 @@ TYPE_INLINE: Final = "inlineStr" TYPE_ERROR: Final = "e" TYPE_FORMULA_CACHE_STRING: Final = "str" -VALID_TYPES: Final[ - tuple[ - Literal["s"], Literal["f"], Literal["n"], Literal["b"], Literal["n"], Literal["inlineStr"], Literal["e"], Literal["str"] - ] -] +VALID_TYPES: Final[tuple[str, ...]] def get_type(t: type, value: _KnownTypes) -> Literal["n", "s", "d", None]: ... def get_time_format(t: _TimeTypes) -> str: ... diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index 7bd86fc32fb7..207ff81c8a7f 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Self, Unused from abc import abstractmethod -from typing_extensions import Literal +from typing_extensions import Literal, TypeAlias from openpyxl.chart.data_source import NumFmt from openpyxl.chart.title import Title @@ -13,6 +13,8 @@ from .layout import Layout from .shapes import GraphicalProperties from .text import RichText, Text +_AxisTickMarkType: TypeAlias = Literal["cross", "in", "out", None] + class ChartLines(Serialisable): tagname: str spPr: GraphicalProperties | None @@ -61,8 +63,8 @@ class _BaseAxis(Serialisable): title: Title | None numFmt: NumFmt | None number_format = numFmt # noqa: F821 - majorTickMark: Literal["cross", "in", "out", None] - minorTickMark: Literal["cross", "in", "out", None] + majorTickMark: _AxisTickMarkType + minorTickMark: _AxisTickMarkType tickLblPos: Literal["high", "low", "nextTo", None] spPr: GraphicalProperties | None graphicalProperties = spPr # noqa: F821 @@ -88,8 +90,8 @@ class _BaseAxis(Serialisable): minorGridlines: ChartLines | None, title: Title | None, numFmt: Incomplete | None, - majorTickMark: Literal["cross", "in", "out", None], - minorTickMark: Literal["cross", "in", "out", None], + majorTickMark: _AxisTickMarkType, + minorTickMark: _AxisTickMarkType, tickLblPos: Literal["high", "low", "nextTo", None], spPr: GraphicalProperties | None, txPr: RichText | None, @@ -119,42 +121,33 @@ class DisplayUnitsLabel(Serialisable): txPr: RichText | None = ..., ) -> None: ... +_BuiltInUnitType: TypeAlias = Literal[ + "hundreds", + "thousands", + "tenThousands", + "hundredThousands", + "millions", + "tenMillions", + "hundredMillions", + "billions", + "trillions", + None, +] + class DisplayUnitsLabelList(Serialisable): tagname: str @property def custUnit(self) -> float | None: ... @custUnit.setter def custUnit(self, __value: _FloatSetter | None) -> None: ... - builtInUnit: Literal[ - "hundreds", - "thousands", - "tenThousands", - "hundredThousands", - "millions", - "tenMillions", - "hundredMillions", - "billions", - "trillions", - None, - ] + builtInUnit: _BuiltInUnitType dispUnitsLbl: DisplayUnitsLabel | None extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, custUnit: float | None = ..., - builtInUnit: Literal[ - "hundreds", - "thousands", - "tenThousands", - "hundredThousands", - "millions", - "tenMillions", - "hundredMillions", - "billions", - "trillions", - None, - ] = ..., + builtInUnit: _BuiltInUnitType = ..., dispUnitsLbl: DisplayUnitsLabel | None = ..., extLst: Unused = ..., ) -> None: ... @@ -188,8 +181,8 @@ class NumericAxis(_BaseAxis): minorGridlines: ChartLines | None = ..., title: Title | None = ..., numFmt: Incomplete | None = ..., - majorTickMark: Literal["cross", "in", "out", None] = ..., - minorTickMark: Literal["cross", "in", "out", None] = ..., + majorTickMark: _AxisTickMarkType = ..., + minorTickMark: _AxisTickMarkType = ..., tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., @@ -242,8 +235,8 @@ class TextAxis(_BaseAxis): minorGridlines: ChartLines | None = ..., title: Title | None = ..., numFmt: Incomplete | None = ..., - majorTickMark: Literal["cross", "in", "out", None] = ..., - minorTickMark: Literal["cross", "in", "out", None] = ..., + majorTickMark: _AxisTickMarkType = ..., + minorTickMark: _AxisTickMarkType = ..., tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., @@ -252,6 +245,8 @@ class TextAxis(_BaseAxis): crossesAt: _FloatSetter | None = ..., ) -> None: ... +_TimeUnitType: TypeAlias = Literal["days", "months", "years", None] + class DateAxis(TextAxis): tagname: str @property @@ -262,28 +257,28 @@ class DateAxis(TextAxis): def lblOffset(self) -> int | None: ... @lblOffset.setter def lblOffset(self, __value: _IntegerSetter | None) -> None: ... - baseTimeUnit: Literal["days", "months", "years", None] + baseTimeUnit: _TimeUnitType @property def majorUnit(self) -> float | None: ... @majorUnit.setter def majorUnit(self, __value: _FloatSetter | None) -> None: ... - majorTimeUnit: Literal["days", "months", "years", None] + majorTimeUnit: _TimeUnitType @property def minorUnit(self) -> float | None: ... @minorUnit.setter def minorUnit(self, __value: _FloatSetter | None) -> None: ... - minorTimeUnit: Literal["days", "months", "years", None] + minorTimeUnit: _TimeUnitType extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, auto: _BoolSetter = ..., lblOffset: _IntegerSetter | None = ..., - baseTimeUnit: Literal["days", "months", "years", None] = ..., + baseTimeUnit: _TimeUnitType = ..., majorUnit: _FloatSetter | None = ..., - majorTimeUnit: Literal["days", "months", "years", None] = ..., + majorTimeUnit: _TimeUnitType = ..., minorUnit: _FloatSetter | None = ..., - minorTimeUnit: Literal["days", "months", "years", None] = ..., + minorTimeUnit: _TimeUnitType = ..., extLst: ExtensionList | None = ..., axId: _IntegerSetter = ..., scaling: Scaling | None = ..., @@ -293,8 +288,8 @@ class DateAxis(TextAxis): minorGridlines: ChartLines | None = ..., title: Title | None = ..., numFmt: Incomplete | None = ..., - majorTickMark: Literal["cross", "in", "out", None] = ..., - minorTickMark: Literal["cross", "in", "out", None] = ..., + majorTickMark: _AxisTickMarkType = ..., + minorTickMark: _AxisTickMarkType = ..., tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., @@ -328,8 +323,8 @@ class SeriesAxis(_BaseAxis): minorGridlines: ChartLines | None = ..., title: Title | None = ..., numFmt: Incomplete | None = ..., - majorTickMark: Literal["cross", "in", "out", None] = ..., - minorTickMark: Literal["cross", "in", "out", None] = ..., + majorTickMark: _AxisTickMarkType = ..., + minorTickMark: _AxisTickMarkType = ..., tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index ad1abe2fd3d4..aa68b8198be5 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -1,9 +1,9 @@ from _typeshed import Incomplete -from typing_extensions import Literal from openpyxl import _Decodable from openpyxl.descriptors.serialisable import Serialisable from openpyxl.workbook.child import _WorkbookChild +from openpyxl.worksheet.worksheet import _SheetVisibilityType class Chartsheet(_WorkbookChild, Serialisable): tagname: str @@ -19,7 +19,7 @@ class Chartsheet(_WorkbookChild, Serialisable): picture: Incomplete webPublishItems: Incomplete extLst: Incomplete - sheet_state: Literal["visible", "hidden", "veryHidden"] + sheet_state: _SheetVisibilityType headerFooter: Incomplete HeaderFooter: Incomplete __elements__: Incomplete @@ -40,7 +40,7 @@ class Chartsheet(_WorkbookChild, Serialisable): extLst: Incomplete | None = ..., parent: Incomplete | None = ..., title: str | _Decodable = ..., - sheet_state: Literal["visible", "hidden", "veryHidden"] = ..., + sheet_state: _SheetVisibilityType = ..., ) -> None: ... def add_chart(self, chart) -> None: ... def to_tree(self): ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi index f243f454dc44..3c5a9ef8f6ff 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi @@ -1,13 +1,13 @@ from _typeshed import Incomplete -from typing_extensions import Literal from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.worksheet.worksheet import _SheetVisibilityType class CustomChartsheetView(Serialisable): tagname: str guid: Incomplete scale: Incomplete - state: Literal["visible", "hidden", "veryHidden"] + state: _SheetVisibilityType zoomToFit: Incomplete pageMargins: Incomplete pageSetup: Incomplete @@ -17,7 +17,7 @@ class CustomChartsheetView(Serialisable): self, guid: Incomplete | None = ..., scale: Incomplete | None = ..., - state: Literal["visible", "hidden", "veryHidden"] = ..., + state: _SheetVisibilityType = ..., zoomToFit: Incomplete | None = ..., pageMargins: Incomplete | None = ..., pageSetup: Incomplete | None = ..., diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index b74ad95e7e96..89e5f8ee0587 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -1,78 +1,21 @@ -from _typeshed import Incomplete from decimal import Decimal -from typing import Type # noqa: Y022 Work around mypy bug with unions from typing_extensions import TypeAlias import numpy +import numpy._typing + +NUMERIC_TYPES: tuple[ + Decimal | type[int | float | numpy.bool_ | numpy.floating[numpy._typing.NBitBase] | numpy.integer[numpy._typing.NBitBase]], + ..., +] -NUMERIC_TYPES: ( - tuple[type[int], type[float], Decimal] - | tuple[ - type[int], - type[float], - Decimal, - numpy.short, - numpy.ushort, - numpy.intc, - numpy.uintc, - numpy.int_, - numpy.uint, - numpy.longlong, - numpy.ulonglong, - numpy.half, - numpy.float16, - numpy.single, - numpy.double, - numpy.longdouble, - numpy.int8, - numpy.int16, - numpy.int32, - numpy.int64, - numpy.uint8, - numpy.uint16, - numpy.uint32, - numpy.uint64, - numpy.intp, - numpy.uintp, - numpy.float32, - numpy.float64, - type[numpy.bool_], - type[numpy.floating[Incomplete]], - type[numpy.integer[Incomplete]], - ] -) # Referenced outside this module _NumericTypes: TypeAlias = ( # noqa: Y047 int | float | Decimal - | numpy.short - | numpy.ushort - | numpy.intc - | numpy.uintc - | numpy.int_ - | numpy.uint - | numpy.longlong - | numpy.ulonglong - | numpy.half - | numpy.float16 - | numpy.single - | numpy.double - | numpy.longdouble - | numpy.int8 - | numpy.int16 - | numpy.int32 - | numpy.int64 - | numpy.uint8 - | numpy.uint16 - | numpy.uint32 - | numpy.uint64 - | numpy.intp - | numpy.uintp - | numpy.float32 - | numpy.float64 - | Type[numpy.bool_] - | Type[numpy.floating[Incomplete]] - | Type[numpy.integer[Incomplete]] + | type[numpy.bool_] + | type[numpy.floating[numpy._typing.NBitBase]] + | type[numpy.integer[numpy._typing.NBitBase]] ) NUMPY: bool diff --git a/stubs/openpyxl/openpyxl/packaging/workbook.pyi b/stubs/openpyxl/openpyxl/packaging/workbook.pyi index d335ce1fc591..dd33726c738d 100644 --- a/stubs/openpyxl/openpyxl/packaging/workbook.pyi +++ b/stubs/openpyxl/openpyxl/packaging/workbook.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete -from typing_extensions import Literal from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.worksheet.worksheet import _SheetVisibilityType class FileRecoveryProperties(Serialisable): tagname: str @@ -21,13 +21,13 @@ class ChildSheet(Serialisable): tagname: str name: Incomplete sheetId: Incomplete - state: Incomplete + state: _SheetVisibilityType id: Incomplete def __init__( self, name: Incomplete | None = ..., sheetId: Incomplete | None = ..., - state: Literal["visible", "hidden", "veryHidden"] = ..., + state: _SheetVisibilityType = ..., id: Incomplete | None = ..., ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/reader/excel.pyi b/stubs/openpyxl/openpyxl/reader/excel.pyi index add150c3f190..1230bc0e0ea0 100644 --- a/stubs/openpyxl/openpyxl/reader/excel.pyi +++ b/stubs/openpyxl/openpyxl/reader/excel.pyi @@ -1,13 +1,13 @@ from _typeshed import Incomplete, StrPath from typing import IO -from typing_extensions import Final, Literal +from typing_extensions import Final from zipfile import ZipFile from openpyxl.chartsheet.chartsheet import Chartsheet from openpyxl.packaging.relationship import Relationship from openpyxl.workbook.workbook import Workbook -SUPPORTED_FORMATS: Final[tuple[Literal[".xlsx"], Literal[".xlsm"], Literal[".xltx"], Literal[".xltm"]]] +SUPPORTED_FORMATS: Final[tuple[str, ...]] class ExcelReader: archive: ZipFile diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index f07833eb78d6..b0923617314e 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -5,22 +5,11 @@ from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors.base import _BoolSetter, _FloatSetter from openpyxl.descriptors.serialisable import Serialisable -horizontal_alignments: Final[ - tuple[ - Literal["general"], - Literal["left"], - Literal["center"], - Literal["right"], - Literal["fill"], - Literal["justify"], - Literal["centerContinuous"], - Literal["distributed"], - ] -] +horizontal_alignments: Final[tuple[_HorizontalAlignementsType, ...]] _HorizontalAlignementsType: TypeAlias = Literal[ "general", "left", "center", "right", "fill", "justify", "centerContinuous", "distributed" ] -vertical_aligments: Final[tuple[Literal["top"], Literal["center"], Literal["bottom"], Literal["justify"], Literal["distributed"]]] +vertical_aligments: Final[tuple[_VerticalAlignementsType, ...]] _VerticalAlignementsType: TypeAlias = Literal["top", "center", "bottom", "justify", "distributed"] class Alignment(Serialisable): diff --git a/stubs/openpyxl/openpyxl/styles/colors.pyi b/stubs/openpyxl/openpyxl/styles/colors.pyi index cd0ab73ed23f..2242b1623ba2 100644 --- a/stubs/openpyxl/openpyxl/styles/colors.pyi +++ b/stubs/openpyxl/openpyxl/styles/colors.pyi @@ -11,72 +11,7 @@ from openpyxl.drawing.colors import SystemColor _S = TypeVar("_S", bound=Serialisable) -COLOR_INDEX: tuple[ - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, - str, -] +COLOR_INDEX: tuple[str, ...] BLACK: str WHITE: str BLUE: str diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index fef311b67e48..4bb5dbae1f9d 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -30,30 +30,8 @@ FILL_PATTERN_LIGHTUP: Final = "lightUp" FILL_PATTERN_LIGHTVERTICAL: Final = "lightVertical" FILL_PATTERN_MEDIUMGRAY: Final = "mediumGray" -fills: Final[ - tuple[ - Literal["solid"], - Literal["darkDown"], - Literal["darkGray"], - Literal["darkGrid"], - Literal["darkHorizontal"], - Literal["darkTrellis"], - Literal["darkUp"], - Literal["darkVertical"], - Literal["gray0625"], - Literal["gray125"], - Literal["lightDown"], - Literal["lightGray"], - Literal["lightGrid"], - Literal["lightHorizontal"], - Literal["lightTrellis"], - Literal["lightUp"], - Literal["lightVertical"], - Literal["mediumGray"], - ] -] +fills: Final[tuple[_FillsType, ...]] _FillsType: TypeAlias = Literal[ - "none", "solid", "darkDown", "darkGray", @@ -90,10 +68,10 @@ class PatternFill(Fill): end_color = bgColor # noqa: F821 def __init__( self, - patternType: _FillsType | None = ..., + patternType: _FillsType | Literal["none", None] = ..., fgColor: Color = ..., bgColor: Color = ..., - fill_type: _FillsType | None = ..., + fill_type: _FillsType | Literal["none", None] = ..., start_color: Color | None = ..., end_color: Color | None = ..., ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/utils/formulas.pyi b/stubs/openpyxl/openpyxl/utils/formulas.pyi index 9ce21313b7d1..6d16169b1261 100644 --- a/stubs/openpyxl/openpyxl/utils/formulas.pyi +++ b/stubs/openpyxl/openpyxl/utils/formulas.pyi @@ -1,360 +1,3 @@ -from typing_extensions import Final, Literal +from typing_extensions import Final -FORMULAE: Final[ - frozenset[ - Literal[ - "CUBEKPIMEMBER", - "CUBEMEMBER", - "CUBEMEMBERPROPERTY", - "CUBERANKEDMEMBER", - "CUBESET", - "CUBESETCOUNT", - "CUBEVALUE", - "DAVERAGE", - "DCOUNT", - "DCOUNTA", - "DGET", - "DMAX", - "DMIN", - "DPRODUCT", - "DSTDEV", - "DSTDEVP", - "DSUM", - "DVAR", - "DVARP", - "DATE", - "DATEDIF", - "DATEVALUE", - "DAY", - "DAYS360", - "EDATE", - "EOMONTH", - "HOUR", - "MINUTE", - "MONTH", - "NETWORKDAYS", - "NETWORKDAYS.INTL", - "NOW", - "SECOND", - "TIME", - "TIMEVALUE", - "TODAY", - "WEEKDAY", - "WEEKNUM", - "WORKDAY ", - "WORKDAY.INTL", - "YEAR", - "YEARFRAC", - "BESSELI", - "BESSELJ", - "BESSELK", - "BESSELY", - "BIN2DEC", - "BIN2HEX", - "BIN2OCT", - "COMPLEX", - "CONVERT", - "DEC2BIN", - "DEC2HEX", - "DEC2OCT", - "DELTA", - "ERF", - "ERFC", - "GESTEP", - "HEX2BIN", - "HEX2DEC", - "HEX2OCT", - "IMABS", - "IMAGINARY", - "IMARGUMENT", - "IMCONJUGATE", - "IMCOS", - "IMDIV", - "IMEXP", - "IMLN", - "IMLOG10", - "IMLOG2", - "IMPOWER", - "IMPRODUCT", - "IMREAL", - "IMSIN", - "IMSQRT", - "IMSUB", - "IMSUM", - "OCT2BIN", - "OCT2DEC", - "OCT2HEX", - "ACCRINT", - "ACCRINTM", - "AMORDEGRC", - "AMORLINC", - "COUPDAYBS", - "COUPDAYS", - "COUPDAYSNC", - "COUPNCD", - "COUPNUM", - "COUPPCD", - "CUMIPMT", - "CUMPRINC", - "DB", - "DDB", - "DISC", - "DOLLARDE", - "DOLLARFR", - "DURATION", - "EFFECT", - "FV", - "FVSCHEDULE", - "INTRATE", - "IPMT", - "IRR", - "ISPMT", - "MDURATION", - "MIRR", - "NOMINAL", - "NPER", - "NPV", - "ODDFPRICE", - "ODDFYIELD", - "ODDLPRICE", - "ODDLYIELD", - "PMT", - "PPMT", - "PRICE", - "PRICEDISC", - "PRICEMAT", - "PV", - "RATE", - "RECEIVED", - "SLN", - "SYD", - "TBILLEQ", - "TBILLPRICE", - "TBILLYIELD", - "VDB", - "XIRR", - "XNPV", - "YIELD", - "YIELDDISC", - "YIELDMAT", - "CELL", - "ERROR.TYPE", - "INFO", - "ISBLANK", - "ISERR", - "ISERROR", - "ISEVEN", - "ISLOGICAL", - "ISNA", - "ISNONTEXT", - "ISNUMBER", - "ISODD", - "ISREF", - "ISTEXT", - "N", - "NA", - "TYPE", - "AND", - "FALSE", - "IF", - "IFERROR", - "NOT", - "OR", - "TRUE ADDRESS", - "AREAS", - "CHOOSE", - "COLUMN", - "COLUMNS", - "GETPIVOTDATA", - "HLOOKUP", - "HYPERLINK", - "INDEX", - "INDIRECT", - "LOOKUP", - "MATCH", - "OFFSET", - "ROW", - "ROWS", - "RTD", - "TRANSPOSE", - "VLOOKUP", - "ABS", - "ACOS", - "ACOSH", - "ASIN", - "ASINH", - "ATAN", - "ATAN2", - "ATANH", - "CEILING", - "COMBIN", - "COS", - "COSH", - "DEGREES", - "ECMA.CEILING", - "EVEN", - "EXP", - "FACT", - "FACTDOUBLE", - "FLOOR", - "GCD", - "INT", - "ISO.CEILING", - "LCM", - "LN", - "LOG", - "LOG10", - "MDETERM", - "MINVERSE", - "MMULT", - "MOD", - "MROUND", - "MULTINOMIAL", - "ODD", - "PI", - "POWER", - "PRODUCT", - "QUOTIENT", - "RADIANS", - "RAND", - "RANDBETWEEN", - "ROMAN", - "ROUND", - "ROUNDDOWN", - "ROUNDUP", - "SERIESSUM", - "SIGN", - "SIN", - "SINH", - "SQRT", - "SQRTPI", - "SUBTOTAL", - "SUM", - "SUMIF", - "SUMIFS", - "SUMPRODUCT", - "SUMSQ", - "SUMX2MY2", - "SUMX2PY2", - "SUMXMY2", - "TAN", - "TANH", - "TRUNC", - "AVEDEV", - "AVERAGE", - "AVERAGEA", - "AVERAGEIF", - "AVERAGEIFS", - "BETADIST", - "BETAINV", - "BINOMDIST", - "CHIDIST", - "CHIINV", - "CHITEST", - "CONFIDENCE", - "CORREL", - "COUNT", - "COUNTA", - "COUNTBLANK", - "COUNTIF", - "COUNTIFS", - "COVAR", - "CRITBINOM", - "DEVSQ", - "EXPONDIST", - "FDIST", - "FINV", - "FISHER", - "FISHERINV", - "FORECAST", - "FREQUENCY", - "FTEST", - "GAMMADIST", - "GAMMAINV", - "GAMMALN", - "GEOMEAN", - "GROWTH", - "HARMEAN", - "HYPGEOMDIST", - "INTERCEPT", - "KURT", - "LARGE", - "LINEST", - "LOGEST", - "LOGINV", - "LOGNORMDIST", - "MAX", - "MAXA", - "MEDIAN", - "MIN", - "MINA", - "MODE", - "NEGBINOMDIST", - "NORMDIST", - "NORMINV", - "NORMSDIST", - "NORMSINV", - "PEARSON", - "PERCENTILE", - "PERCENTRANK", - "PERMUT", - "POISSON", - "PROB", - "QUARTILE", - "RANK", - "RSQ", - "SKEW", - "SLOPE", - "SMALL", - "STANDARDIZE", - "STDEV STDEVA", - "STDEVP", - "STDEVPA STEYX", - "TDIST", - "TINV", - "TREND", - "TRIMMEAN", - "TTEST", - "VAR", - "VARA", - "VARP", - "VARPA", - "WEIBULL", - "ZTEST", - "ASC", - "BAHTTEXT", - "CHAR", - "CLEAN", - "CODE", - "CONCATENATE", - "DOLLAR", - "EXACT", - "FIND", - "FINDB", - "FIXED", - "JIS", - "LEFT", - "LEFTB", - "LEN", - "LENB", - "LOWER", - "MID", - "MIDB", - "PHONETIC", - "PROPER", - "REPLACE", - "REPLACEB", - "REPT", - "RIGHT", - "RIGHTB", - "SEARCH", - "SEARCHB", - "SUBSTITUTE", - "T", - "TEXT", - "TRIM", - "UPPER", - "VALUE", - ] - ] -] +FORMULAE: Final[frozenset[str]] diff --git a/stubs/openpyxl/openpyxl/workbook/views.pyi b/stubs/openpyxl/openpyxl/workbook/views.pyi index 1a6e8e0b7c3e..9bbe6d8d29c3 100644 --- a/stubs/openpyxl/openpyxl/workbook/views.pyi +++ b/stubs/openpyxl/openpyxl/workbook/views.pyi @@ -1,10 +1,11 @@ from _typeshed import Incomplete from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.worksheet.worksheet import _SheetVisibilityType class BookView(Serialisable): tagname: str - visibility: Incomplete + visibility: _SheetVisibilityType minimized: Incomplete showHorizontalScroll: Incomplete showVerticalScroll: Incomplete @@ -21,7 +22,7 @@ class BookView(Serialisable): __elements__: Incomplete def __init__( self, - visibility: str = ..., + visibility: _SheetVisibilityType = ..., minimized: bool = ..., showHorizontalScroll: bool = ..., showVerticalScroll: bool = ..., diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index a821eae58e63..05e667dd44b7 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -31,7 +31,8 @@ class Workbook: calculation: Incomplete views: Incomplete # Private, but useful as a reference of what "sheets" can be for other types - _sheets: list[_WorkbookChild | ReadOnlyWorksheet] + # ExcelReader can add ReadOnlyWorksheet in read_only mode. + _sheets: list[Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet] def __init__(self, write_only: bool = ..., iso_dates: bool = ...) -> None: ... @property def epoch(self) -> datetime.datetime: ... @@ -46,12 +47,12 @@ class Workbook: @property def excel_base_date(self) -> datetime.datetime: ... @property - def active(self) -> _WorkbookChild: ... + def active(self) -> Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet | None: ... @active.setter - def active(self, value: _WorkbookChild | int) -> None: ... + def active(self, value: Worksheet | Chartsheet | int) -> None: ... def create_sheet(self, title: str | _Decodable | None = ..., index: int | None = ...) -> WriteOnlyWorksheet | Worksheet: ... def move_sheet(self, sheet: Worksheet | str, offset: int = ...) -> None: ... - def remove(self, worksheet: _WorkbookChild | ReadOnlyWorksheet) -> None: ... + def remove(self, worksheet: Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet) -> None: ... remove_sheet = remove def create_chartsheet(self, title: str | _Decodable | None = ..., index: int | None = ...) -> Chartsheet: ... # Deprecated, same as __getitem__ diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 17efa46c801b..736de029d63d 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -2,7 +2,7 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator, Iterable, Iterator from types import GeneratorType from typing import overload -from typing_extensions import Literal, TypeAlias +from typing_extensions import Final, Literal, TypeAlias from openpyxl import _Decodable from openpyxl.cell.cell import Cell, MergedCell, _KnownTypes @@ -17,15 +17,16 @@ from openpyxl.worksheet.table import Table, TableList from openpyxl.worksheet.views import SheetView _Cell: TypeAlias = Cell | MergedCell +_SheetVisibilityType: TypeAlias = Literal["visible", "hidden", "veryHidden"] # noqa: Y047 # Used in other modules class Worksheet(_WorkbookChild): mime_type: str BREAK_NONE: int BREAK_ROW: int BREAK_COLUMN: int - SHEETSTATE_VISIBLE: str - SHEETSTATE_HIDDEN: str - SHEETSTATE_VERYHIDDEN: str + SHEETSTATE_VISIBLE: Final = "visible" + SHEETSTATE_HIDDEN: Final = "hidden" + SHEETSTATE_VERYHIDDEN: Final = "veryHidden" PAPERSIZE_LETTER: str PAPERSIZE_LETTER_SMALL: str PAPERSIZE_TABLOID: str diff --git a/stubs/openpyxl/openpyxl/xml/_functions.pyi b/stubs/openpyxl/openpyxl/xml/_functions.pyi index 5deb76f0c0e3..94a8121b6c23 100644 --- a/stubs/openpyxl/openpyxl/xml/_functions.pyi +++ b/stubs/openpyxl/openpyxl/xml/_functions.pyi @@ -6,8 +6,6 @@ from collections.abc import Iterator from typing import overload from typing_extensions import TypeAlias -from lxml.etree import _AnyStr, _Element - # lxml re-definitions are a mix of lxml-stubs and pylance # defusedxml stubs are missing. But we can still represent them. @@ -18,7 +16,7 @@ def register_namespace(prefix, uri): ... # from lxml.etree import fromstring # But made partial, removing parser arg @overload -def fromstring(text: _AnyStr, *, base_url: _AnyStr = ...) -> _Element: ... # type: ignore[misc] # Overlap with incompatible return types +def fromstring(text: str | bytes, *, base_url: str | bytes = ...): ... # type: ignore[misc] # Overlap with incompatible return types # from defusedxml.ElementTree import fromstring @overload diff --git a/stubs/openpyxl/openpyxl/xml/functions.pyi b/stubs/openpyxl/openpyxl/xml/functions.pyi index 4cc416306787..8b42792f1f4e 100644 --- a/stubs/openpyxl/openpyxl/xml/functions.pyi +++ b/stubs/openpyxl/openpyxl/xml/functions.pyi @@ -15,14 +15,6 @@ from xml.etree.ElementTree import ( register_namespace as register_namespace, ) -import lxml.etree -from lxml.etree import ( # type: ignore[assignment,no-redef] # noqa: F811 # Implied overload - Element as Element, - QName as QName, - SubElement as SubElement, - _ElementOrTree, -) - from ._functions import ( # type: ignore[assignment,no-redef] # noqa: F811 # Implied overload fromstring as fromstring, iterparse as iterparse, @@ -30,8 +22,18 @@ from ._functions import ( # type: ignore[assignment,no-redef] # noqa: F811 # xmlfile as xmlfile, ) +# TODO: Figure out how to import lxml-stubs +# import lxml.etree +# from lxml.etree import ( # type: ignore[assignment,no-redef] # noqa: F811 # Implied overload +# Element as Element, +# QName as QName, +# SubElement as SubElement, +# _ElementOrTree, +# ) +# _Element: TypeAlias = lxml.etree._Element | xml.etree.ElementTree.Element # noqa: Y047 + # Referenced outside this module -_Element: TypeAlias = lxml.etree._Element | xml.etree.ElementTree.Element # noqa: Y047 +_Element: TypeAlias = xml.etree.ElementTree.Element # noqa: Y047 NS_REGEX: Pattern[str] @@ -61,7 +63,7 @@ else: # But made partial, removing encoding arg @overload def tostring( - element_or_tree: _ElementOrTree, + element_or_tree, method: str = ..., xml_declaration: bool = ..., pretty_print: bool = ..., From ba82470191c6f2858c1008789d80c2db8041850a Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 23 Feb 2023 05:36:13 -0500 Subject: [PATCH 09/51] quick CI fixes --- stubs/openpyxl/openpyxl/compat/numbers.pyi | 22 +++++++++++----------- stubs/openpyxl/openpyxl/xml/functions.pyi | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index 89e5f8ee0587..e06a9ef4099b 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -1,21 +1,21 @@ +import sys from decimal import Decimal +from typing import Any from typing_extensions import TypeAlias import numpy -import numpy._typing -NUMERIC_TYPES: tuple[ - Decimal | type[int | float | numpy.bool_ | numpy.floating[numpy._typing.NBitBase] | numpy.integer[numpy._typing.NBitBase]], - ..., -] +if sys.version_info < (3, 7): + _NBitBase: Any +else: + import numpy._typing + + _NBitBase: TypeAlias = numpy._typing.NBitBase + +NUMERIC_TYPES: tuple[Decimal | type[int | float | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase]], ...] # Referenced outside this module _NumericTypes: TypeAlias = ( # noqa: Y047 - int - | float - | Decimal - | type[numpy.bool_] - | type[numpy.floating[numpy._typing.NBitBase]] - | type[numpy.integer[numpy._typing.NBitBase]] + int | float | Decimal | type[numpy.bool_] | type[numpy.floating[_NBitBase]] | type[numpy.integer[_NBitBase]] ) NUMPY: bool diff --git a/stubs/openpyxl/openpyxl/xml/functions.pyi b/stubs/openpyxl/openpyxl/xml/functions.pyi index 8b42792f1f4e..ffc8cb00c073 100644 --- a/stubs/openpyxl/openpyxl/xml/functions.pyi +++ b/stubs/openpyxl/openpyxl/xml/functions.pyi @@ -24,13 +24,13 @@ from ._functions import ( # type: ignore[assignment,no-redef] # noqa: F811 # # TODO: Figure out how to import lxml-stubs # import lxml.etree -# from lxml.etree import ( # type: ignore[assignment,no-redef] # noqa: F811 # Implied overload +# from lxml.etree import ( # type: ignore[assignment,no-redef] # Implied overload # Element as Element, # QName as QName, # SubElement as SubElement, # _ElementOrTree, # ) -# _Element: TypeAlias = lxml.etree._Element | xml.etree.ElementTree.Element # noqa: Y047 +# _Element: TypeAlias = lxml.etree._Element | xml.etree.ElementTree.Element # Referenced outside this module _Element: TypeAlias = xml.etree.ElementTree.Element # noqa: Y047 From 9e63d219be9a2eeae413d96b099657eab4da024f Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 23 Feb 2023 05:42:31 -0500 Subject: [PATCH 10/51] failed at version checking --- stubs/openpyxl/openpyxl/compat/numbers.pyi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index e06a9ef4099b..c58ad078656f 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -5,12 +5,12 @@ from typing_extensions import TypeAlias import numpy -if sys.version_info < (3, 7): - _NBitBase: Any -else: +if sys.version_info >= (3, 8): import numpy._typing _NBitBase: TypeAlias = numpy._typing.NBitBase +else: + _NBitBase: TypeAlias = Any NUMERIC_TYPES: tuple[Decimal | type[int | float | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase]], ...] From d1e618e5b419c39a250217bd98f4c055fcaf7cf2 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 27 Feb 2023 19:19:42 -0500 Subject: [PATCH 11/51] Apply suggestions from code review Co-authored-by: Alex Waygood --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 2 +- stubs/openpyxl/openpyxl/cell/cell.pyi | 9 +++------ stubs/openpyxl/openpyxl/compat/numbers.pyi | 4 ++-- stubs/openpyxl/openpyxl/drawing/image.pyi | 1 - stubs/openpyxl/openpyxl/styles/alignment.pyi | 8 ++++---- stubs/openpyxl/openpyxl/styles/fills.pyi | 2 +- 6 files changed, 11 insertions(+), 15 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index c56fdc3cd50f..51ab65d661f7 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -10,7 +10,7 @@ openpyxl.xml.functions.xmlfile # Inconsistent __init__ because # - using the default value results in an error because of the runtime type-guards -# - or, keyword arguments are explicitely specified +# - or, keyword arguments are explicitly specified openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.axis._BaseAxis.__init__ diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index 20e96c8a86ca..a8a7f3bf16e5 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -11,16 +11,13 @@ from openpyxl.workbook.child import _WorkbookChild from openpyxl.worksheet.hyperlink import Hyperlink __docformat__: str -TIME_TYPES: tuple[type[_TimeTypes], ...] _TimeTypes: TypeAlias = datetime.datetime | datetime.date | datetime.time | datetime.timedelta -TIME_FORMATS: dict[_TimeTypes, str] +TIME_TYPES: tuple[type[_TimeTypes], ...] +TIME_FORMATS: dict[type[_TimeTypes], str] STRING_TYPES: tuple[type[str], type[bytes]] _StringTypes: TypeAlias = str | bytes -# We could get the exact tuple length and order with the following line, ignoring Y015 -# But pytype doesn't support it and mypy oversimplifies the type. Pyright fully expands it. -# KNOWN_TYPES = NUMERIC_TYPES + TIME_TYPES + STRING_TYPES + (bool, type(None)) -KNOWN_TYPES: tuple[_KnownTypes, ...] _KnownTypes: TypeAlias = _NumericTypes | _TimeTypes | _StringTypes | bool | None +KNOWN_TYPES: tuple[type[_KnownTypes], ...] ILLEGAL_CHARACTERS_RE: Pattern[str] ERROR_CODES: Final[tuple[str, ...]] TYPE_STRING: Final = "s" diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index c58ad078656f..0b6d5977ee1e 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -12,10 +12,10 @@ if sys.version_info >= (3, 8): else: _NBitBase: TypeAlias = Any -NUMERIC_TYPES: tuple[Decimal | type[int | float | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase]], ...] +NUMERIC_TYPES: tuple[type[int | float | Decimal | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase]], ...] # Referenced outside this module _NumericTypes: TypeAlias = ( # noqa: Y047 - int | float | Decimal | type[numpy.bool_] | type[numpy.floating[_NBitBase]] | type[numpy.integer[_NBitBase]] + int | float | Decimal | type[numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase]] ) NUMPY: bool diff --git a/stubs/openpyxl/openpyxl/drawing/image.pyi b/stubs/openpyxl/openpyxl/drawing/image.pyi index 4ae4780095e1..fbe2111f49ea 100644 --- a/stubs/openpyxl/openpyxl/drawing/image.pyi +++ b/stubs/openpyxl/openpyxl/drawing/image.pyi @@ -3,7 +3,6 @@ from typing_extensions import Literal from PIL import Image as ImageModule -# Using "object" because modules can't by used as type PILImage: ModuleType | Literal[False] class Image: diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index b0923617314e..4634841e2ea8 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -5,12 +5,12 @@ from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors.base import _BoolSetter, _FloatSetter from openpyxl.descriptors.serialisable import Serialisable -horizontal_alignments: Final[tuple[_HorizontalAlignementsType, ...]] -_HorizontalAlignementsType: TypeAlias = Literal[ +_HorizontalAlignmentsType: TypeAlias = Literal[ "general", "left", "center", "right", "fill", "justify", "centerContinuous", "distributed" ] -vertical_aligments: Final[tuple[_VerticalAlignementsType, ...]] -_VerticalAlignementsType: TypeAlias = Literal["top", "center", "bottom", "justify", "distributed"] +horizontal_alignments: Final[tuple[_HorizontalAlignmentsType, ...]] +_VerticalAlignmentsType: TypeAlias = Literal["top", "center", "bottom", "justify", "distributed"] +vertical_aligments: Final[tuple[_VerticalAlignmentsType, ...]] class Alignment(Serialisable): tagname: str diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index 4bb5dbae1f9d..b5c09872c5c9 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -30,7 +30,6 @@ FILL_PATTERN_LIGHTUP: Final = "lightUp" FILL_PATTERN_LIGHTVERTICAL: Final = "lightVertical" FILL_PATTERN_MEDIUMGRAY: Final = "mediumGray" -fills: Final[tuple[_FillsType, ...]] _FillsType: TypeAlias = Literal[ "solid", "darkDown", @@ -51,6 +50,7 @@ _FillsType: TypeAlias = Literal[ "lightVertical", "mediumGray", ] +fills: Final[tuple[_FillsType, ...]] class Fill(Serialisable): tagname: str From 6d6d1ce980ad407fdd4d9f13a31fc33f85ae9772 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 27 Feb 2023 19:24:20 -0500 Subject: [PATCH 12/51] Add alias _UnderlineType and update Self --- stubs/openpyxl/openpyxl/cell/text.pyi | 4 ++-- stubs/openpyxl/openpyxl/chart/axis.pyi | 6 +++--- stubs/openpyxl/openpyxl/descriptors/__init__.pyi | 6 +++--- stubs/openpyxl/openpyxl/styles/colors.pyi | 5 +++-- stubs/openpyxl/openpyxl/styles/fills.pyi | 6 +++--- stubs/openpyxl/openpyxl/styles/fonts.pyi | 13 +++++++------ 6 files changed, 21 insertions(+), 19 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index 419ad2a6cd6f..226e8fcd7772 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -4,7 +4,7 @@ from openpyxl.descriptors.base import _IntegerSetter from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.styles.colors import Color -from openpyxl.styles.fonts import Font +from openpyxl.styles.fonts import Font, _UnderlineType class PhoneticProperties(Serialisable): tagname: str @@ -53,7 +53,7 @@ class InlineFont(Font): extend: bool | None = ..., color: Color | None = ..., sz: float | None = ..., - u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., + u: _UnderlineType = ..., vertAlign: Literal["superscript", "subscript", "baseline", None] = ..., scheme: Literal["major", "minor", None] = ..., ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index 207ff81c8a7f..b412954b07d4 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -1,6 +1,6 @@ -from _typeshed import Incomplete, Self, Unused +from _typeshed import Incomplete, Unused from abc import abstractmethod -from typing_extensions import Literal, TypeAlias +from typing_extensions import Literal, Self, TypeAlias from openpyxl.chart.data_source import NumFmt from openpyxl.chart.title import Title @@ -191,7 +191,7 @@ class NumericAxis(_BaseAxis): crossesAt: _FloatSetter | None = ..., ) -> None: ... @classmethod - def from_tree(cls: Self, node: _Element) -> Self: ... + def from_tree(cls, node: _Element) -> Self: ... class TextAxis(_BaseAxis): tagname: str diff --git a/stubs/openpyxl/openpyxl/descriptors/__init__.pyi b/stubs/openpyxl/openpyxl/descriptors/__init__.pyi index 98c2447e9900..7bd029f66857 100644 --- a/stubs/openpyxl/openpyxl/descriptors/__init__.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/__init__.pyi @@ -1,13 +1,13 @@ -from _typeshed import Self +from typing_extensions import Self from .base import * from .sequence import Sequence as Sequence class MetaStrict(type): - def __new__(cls: type[Self], clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... + def __new__(cls, clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... class MetaSerialisable(type): - def __new__(cls: type[Self], clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... + def __new__(cls, clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... class Strict(metaclass=MetaStrict): ... diff --git a/stubs/openpyxl/openpyxl/styles/colors.pyi b/stubs/openpyxl/openpyxl/styles/colors.pyi index 2242b1623ba2..f084f27ecbab 100644 --- a/stubs/openpyxl/openpyxl/styles/colors.pyi +++ b/stubs/openpyxl/openpyxl/styles/colors.pyi @@ -1,7 +1,8 @@ -from _typeshed import Self, Unused +from _typeshed import Unused from collections.abc import Generator from re import Pattern from typing import TypeVar, overload +from typing_extensions import Self from openpyxl.descriptors import Typed from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter @@ -59,7 +60,7 @@ class Color(Serialisable): @property def index(self) -> str | float | bool: ... @overload - def __add__(self: Self, other: Color) -> Self: ... + def __add__(self, other: Color) -> Self: ... @overload def __add__(self, other: _S) -> _S: ... diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index 4bb5dbae1f9d..42b452f0a273 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -1,6 +1,6 @@ -from _typeshed import Self, Unused +from _typeshed import Unused from collections.abc import Generator, Sequence -from typing_extensions import Final, Literal, TypeAlias +from typing_extensions import Final, Literal, Self, TypeAlias from openpyxl.descriptors import Sequence as SequenceDescriptor from openpyxl.descriptors.base import _FloatSetter @@ -55,7 +55,7 @@ _FillsType: TypeAlias = Literal[ class Fill(Serialisable): tagname: str @classmethod - def from_tree(cls: Self, el: _Element) -> Self: ... + def from_tree(cls, el: _Element) -> Self: ... class PatternFill(Fill): tagname: str diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index d5a7d2df30b2..fd30c36fac3d 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -1,5 +1,4 @@ -from _typeshed import Self -from typing_extensions import Final, Literal +from typing_extensions import Final, Literal, Self, TypeAlias from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter from openpyxl.descriptors.serialisable import Serialisable @@ -7,6 +6,8 @@ from openpyxl.xml.functions import _Element from .colors import Color +_UnderlineType: TypeAlias = Literal["single", "double", "singleAccounting", "doubleAccounting", None] + class Font(Serialisable): UNDERLINE_DOUBLE: Final = "double" UNDERLINE_DOUBLE_ACCOUNTING: Final = "doubleAccounting" @@ -57,7 +58,7 @@ class Font(Serialisable): def extend(self) -> bool | None: ... @extend.setter def extend(self, __value: _BoolSetter) -> None: ... - u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] + u: _UnderlineType underline = u # noqa: F821 vertAlign: Literal["superscript", "subscript", "baseline", None] color: Color | None @@ -73,7 +74,7 @@ class Font(Serialisable): b: _BoolSetter = ..., i: _BoolSetter = ..., charset: _IntegerSetter | None = ..., - u: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., + u: _UnderlineType = ..., strike: _BoolSetter = ..., color: Color | None = ..., scheme: Literal["major", "minor", None] = ..., @@ -82,7 +83,7 @@ class Font(Serialisable): bold: _BoolSetter = ..., italic: _BoolSetter = ..., strikethrough: _BoolSetter = ..., - underline: Literal["single", "double", "singleAccounting", "doubleAccounting", None] = ..., + underline: _UnderlineType = ..., vertAlign: Literal["superscript", "subscript", "baseline", None] = ..., outline: _BoolSetter = ..., shadow: _BoolSetter = ..., @@ -90,6 +91,6 @@ class Font(Serialisable): extend: _BoolSetter = ..., ) -> None: ... @classmethod - def from_tree(cls: Self, node: _Element) -> Self: ... + def from_tree(cls, node: _Element) -> Self: ... DEFAULT_FONT: Font From 12789fe004b55422fe468177776fcf354b5114c8 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 27 Feb 2023 20:12:10 -0500 Subject: [PATCH 13/51] Post-merge fixes --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 5 ++--- stubs/openpyxl/openpyxl/compat/numbers.pyi | 7 ++----- stubs/openpyxl/openpyxl/descriptors/__init__.pyi | 6 +++--- stubs/openpyxl/openpyxl/styles/alignment.pyi | 8 ++++---- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index 51ab65d661f7..56c5ba6e82ac 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -1,8 +1,5 @@ # The actual runtime definition depends on what else is installed # (lxml, defusedxml, et_xmlfile, numpy, ...) -openpyxl.compat.NUMERIC_TYPES -openpyxl.compat.numbers.NUMERIC_TYPES -openpyxl.cell.cell.NUMERIC_TYPES openpyxl.xml._functions openpyxl.xml.functions.Element.__iter__ openpyxl.xml.functions.tostring @@ -150,6 +147,7 @@ openpyxl.chart.axis.TextAxis.txPr openpyxl.chartsheet.chartsheet.Chartsheet.sheet_state openpyxl.chartsheet.Chartsheet.sheet_state openpyxl.chartsheet.custom.CustomChartsheetView.state +openpyxl.packaging.workbook.ChildSheet.state openpyxl.styles.alignment.Alignment.horizontal openpyxl.styles.alignment.Alignment.shrink_to_fit openpyxl.styles.alignment.Alignment.text_rotation @@ -260,3 +258,4 @@ openpyxl.styles.PatternFill.start_color openpyxl.styles.Side.border_style openpyxl.styles.Side.color openpyxl.styles.Side.style +openpyxl.workbook.views.BookView.visibility diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index 0b6d5977ee1e..db221724bf7d 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -12,10 +12,7 @@ if sys.version_info >= (3, 8): else: _NBitBase: TypeAlias = Any -NUMERIC_TYPES: tuple[type[int | float | Decimal | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase]], ...] +_NumericTypes: TypeAlias = int | float | Decimal | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase] +NUMERIC_TYPES: tuple[type[_NumericTypes], ...] -# Referenced outside this module -_NumericTypes: TypeAlias = ( # noqa: Y047 - int | float | Decimal | type[numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase]] -) NUMPY: bool diff --git a/stubs/openpyxl/openpyxl/descriptors/__init__.pyi b/stubs/openpyxl/openpyxl/descriptors/__init__.pyi index 7bd029f66857..98c2447e9900 100644 --- a/stubs/openpyxl/openpyxl/descriptors/__init__.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/__init__.pyi @@ -1,13 +1,13 @@ -from typing_extensions import Self +from _typeshed import Self from .base import * from .sequence import Sequence as Sequence class MetaStrict(type): - def __new__(cls, clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... + def __new__(cls: type[Self], clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... class MetaSerialisable(type): - def __new__(cls, clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... + def __new__(cls: type[Self], clsname: str, bases: tuple[type, ...], methods: dict[str, Descriptor]) -> Self: ... class Strict(metaclass=MetaStrict): ... diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index 4634841e2ea8..af7bb8264b89 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -15,8 +15,8 @@ vertical_aligments: Final[tuple[_VerticalAlignmentsType, ...]] class Alignment(Serialisable): tagname: str __fields__: tuple[str, ...] - horizontal: _HorizontalAlignementsType | None - vertical: _VerticalAlignementsType | None + horizontal: _HorizontalAlignmentsType | None + vertical: _VerticalAlignmentsType | None textRotation: int | None text_rotation = textRotation # noqa: F821 @property @@ -47,8 +47,8 @@ class Alignment(Serialisable): def readingOrder(self, __value: _FloatSetter) -> None: ... def __init__( self, - horizontal: _HorizontalAlignementsType | None = ..., - vertical: _VerticalAlignementsType | None = ..., + horizontal: _HorizontalAlignmentsType | None = ..., + vertical: _VerticalAlignmentsType | None = ..., textRotation: float | None = ..., wrapText: _BoolSetter = ..., shrinkToFit: _BoolSetter = ..., From bfb6c60260dc07078aa6bb589f59c639ba08058a Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 27 Feb 2023 22:43:13 -0500 Subject: [PATCH 14/51] Make stubuploader tests pass --- stubs/openpyxl/METADATA.toml | 1 - stubs/openpyxl/openpyxl/compat/numbers.pyi | 19 ++++++++------- stubs/openpyxl/openpyxl/drawing/image.pyi | 8 ++++--- tests/pytype_exclude_list.txt | 27 ---------------------- 4 files changed, 14 insertions(+), 41 deletions(-) diff --git a/stubs/openpyxl/METADATA.toml b/stubs/openpyxl/METADATA.toml index dbeb9a9e9146..4a8e90c0c89d 100644 --- a/stubs/openpyxl/METADATA.toml +++ b/stubs/openpyxl/METADATA.toml @@ -1,2 +1 @@ version = "3.0.*" -requires = ["numpy", "types-pillow"] diff --git a/stubs/openpyxl/openpyxl/compat/numbers.pyi b/stubs/openpyxl/openpyxl/compat/numbers.pyi index db221724bf7d..f0efe97e1da8 100644 --- a/stubs/openpyxl/openpyxl/compat/numbers.pyi +++ b/stubs/openpyxl/openpyxl/compat/numbers.pyi @@ -1,18 +1,17 @@ -import sys from decimal import Decimal -from typing import Any from typing_extensions import TypeAlias -import numpy +# NOTE: Can't specify numpy as a dependency because openpyxl doesn't declare it as one +# import numpy +# if sys.version_info >= (3, 8): +# import numpy._typing -if sys.version_info >= (3, 8): - import numpy._typing +# _NBitBase: TypeAlias = numpy._typing.NBitBase +# else: +# _NBitBase: TypeAlias = Any +# _NumericTypes: TypeAlias = int | float | Decimal | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase] - _NBitBase: TypeAlias = numpy._typing.NBitBase -else: - _NBitBase: TypeAlias = Any - -_NumericTypes: TypeAlias = int | float | Decimal | numpy.bool_ | numpy.floating[_NBitBase] | numpy.integer[_NBitBase] +_NumericTypes: TypeAlias = int | float | Decimal NUMERIC_TYPES: tuple[type[_NumericTypes], ...] NUMPY: bool diff --git a/stubs/openpyxl/openpyxl/drawing/image.pyi b/stubs/openpyxl/openpyxl/drawing/image.pyi index fbe2111f49ea..31b7a5686b51 100644 --- a/stubs/openpyxl/openpyxl/drawing/image.pyi +++ b/stubs/openpyxl/openpyxl/drawing/image.pyi @@ -1,13 +1,15 @@ from types import ModuleType -from typing_extensions import Literal +from typing import Any +from typing_extensions import Literal, TypeAlias -from PIL import Image as ImageModule +# Is actually PIL.Image.Image +_PILImageImage: TypeAlias = Any PILImage: ModuleType | Literal[False] class Image: anchor: str - ref: ImageModule.Image | str + ref: _PILImageImage | str format: str def __init__(self, img) -> None: ... @property diff --git a/tests/pytype_exclude_list.txt b/tests/pytype_exclude_list.txt index bc977cdad657..5a857e22c161 100644 --- a/tests/pytype_exclude_list.txt +++ b/tests/pytype_exclude_list.txt @@ -109,30 +109,3 @@ stubs/SQLAlchemy/sqlalchemy/sql/selectable.pyi stubs/Flask-SQLAlchemy/flask_sqlalchemy/__init__.pyi stubs/Flask-SQLAlchemy/flask_sqlalchemy/model.pyi stubs/Flask-SQLAlchemy/flask_sqlalchemy/utils.pyi - -# pytype doesn't support stub files external to typeshed -stubs/openpyxl/openpyxl/__init__.pyi -stubs/openpyxl/openpyxl/cell/__init__.pyi -stubs/openpyxl/openpyxl/cell/cell.pyi -stubs/openpyxl/openpyxl/cell/text.pyi -stubs/openpyxl/openpyxl/chart/axis.pyi -stubs/openpyxl/openpyxl/chartsheet/__init__.pyi -stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi -stubs/openpyxl/openpyxl/reader/excel.pyi -stubs/openpyxl/openpyxl/reader/workbook.pyi -stubs/openpyxl/openpyxl/styles/__init__.pyi -stubs/openpyxl/openpyxl/styles/differential.pyi -stubs/openpyxl/openpyxl/styles/fills.pyi -stubs/openpyxl/openpyxl/styles/fonts.pyi -stubs/openpyxl/openpyxl/styles/named_styles.pyi -stubs/openpyxl/openpyxl/styles/numbers.pyi -stubs/openpyxl/openpyxl/workbook/__init__.pyi -stubs/openpyxl/openpyxl/workbook/child.pyi -stubs/openpyxl/openpyxl/workbook/workbook.pyi -stubs/openpyxl/openpyxl/worksheet/_reader.pyi -stubs/openpyxl/openpyxl/worksheet/_write_only.pyi -stubs/openpyxl/openpyxl/worksheet/_writer.pyi -stubs/openpyxl/openpyxl/worksheet/copier.pyi -stubs/openpyxl/openpyxl/worksheet/worksheet.pyi -stubs/openpyxl/openpyxl/xml/_functions.pyi -stubs/openpyxl/openpyxl/xml/functions.pyi From f5df85043bb266e8279dd9bca092a9cf84c76738 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 15:28:31 +0000 Subject: [PATCH 15/51] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/openpyxl/openpyxl/reader/excel.pyi | 2 +- stubs/openpyxl/openpyxl/reader/workbook.pyi | 3 +-- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 1 - stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 9 +++++++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/stubs/openpyxl/openpyxl/reader/excel.pyi b/stubs/openpyxl/openpyxl/reader/excel.pyi index 477fa76dca85..f36d81a2b106 100644 --- a/stubs/openpyxl/openpyxl/reader/excel.pyi +++ b/stubs/openpyxl/openpyxl/reader/excel.pyi @@ -1,4 +1,4 @@ -from _typeshed import Incomplete, StrPath, SupportsRead +from _typeshed import Incomplete, StrPath from typing import IO from typing_extensions import Final from zipfile import ZipFile diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index 52b633c08a91..b40a8d0ff98e 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -4,9 +4,8 @@ from zipfile import ZipFile from openpyxl.packaging.relationship import Relationship, RelationshipList from openpyxl.packaging.workbook import ChildSheet, PivotCache from openpyxl.pivot.cache import CacheDefinition -from openpyxl.workbook.workbook import Workbook - from openpyxl.workbook import Workbook +from openpyxl.workbook.workbook import Workbook class WorkbookParser: archive: ZipFile diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index 96ed1d4bcc20..067115f85661 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -7,7 +7,6 @@ from openpyxl import _Decodable from openpyxl.chartsheet.chartsheet import Chartsheet from openpyxl.styles.named_styles import NamedStyle from openpyxl.workbook.child import _WorkbookChild -from openpyxl.workbook.defined_name import DefinedName from openpyxl.worksheet._read_only import ReadOnlyWorksheet from openpyxl.worksheet._write_only import WriteOnlyWorksheet from openpyxl.worksheet.worksheet import Worksheet diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index 5dd7198454f5..51ab5b8390d9 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -75,7 +75,7 @@ class WorkSheetParser: epoch: datetime = ..., date_formats: Container[int] = ..., timedelta_formats: Container[int] = ..., - rich_text: bool = False + rich_text: bool = False, ) -> None: ... def parse(self) -> Generator[Incomplete, None, None]: ... def parse_dimensions(self) -> tuple[int, int, int, int]: ... @@ -98,7 +98,12 @@ class WorksheetReader: parser: WorkSheetParser tables: list[Incomplete] def __init__( - self, ws: Worksheet, xml_source: ZipExtFile | str, shared_strings: Sequence[str] | None, data_only: bool | None, rich_text: bool + self, + ws: Worksheet, + xml_source: ZipExtFile | str, + shared_strings: Sequence[str] | None, + data_only: bool | None, + rich_text: bool, ) -> None: ... def bind_cells(self) -> None: ... def bind_formatting(self) -> None: ... From 028ac1cb203dbc59f7318c334b449026eaabfc6f Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Thu, 16 Mar 2023 15:36:46 +0000 Subject: [PATCH 16/51] Apply suggestions from code review --- stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index 51ab5b8390d9..e9ae83e30eb8 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -1,7 +1,6 @@ import datetime from _typeshed import Incomplete from collections.abc import Container, Generator, Sequence -from datetime import datetime from typing import Any from zipfile import ZipExtFile @@ -45,7 +44,7 @@ CUSTOM_VIEWS_TAG: str class WorkSheetParser: min_row: Incomplete | None min_col: Incomplete | None - epoch: datetime + epoch: datetime.datetime source: ZipExtFile | str shared_strings: Sequence[str] data_only: bool @@ -72,7 +71,7 @@ class WorkSheetParser: src: ZipExtFile | str, shared_strings: Sequence[str], data_only: bool = False, - epoch: datetime = ..., + epoch: datetime.datetime = ..., date_formats: Container[int] = ..., timedelta_formats: Container[int] = ..., rich_text: bool = False, From 6bdc7df4fa8ae96ab6c91719795946e94f33efbb Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Thu, 16 Mar 2023 15:48:25 +0000 Subject: [PATCH 17/51] Update stubs/openpyxl/openpyxl/reader/workbook.pyi --- stubs/openpyxl/openpyxl/reader/workbook.pyi | 1 - 1 file changed, 1 deletion(-) diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index b40a8d0ff98e..372e7deff6d6 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -5,7 +5,6 @@ from openpyxl.packaging.relationship import Relationship, RelationshipList from openpyxl.packaging.workbook import ChildSheet, PivotCache from openpyxl.pivot.cache import CacheDefinition from openpyxl.workbook import Workbook -from openpyxl.workbook.workbook import Workbook class WorkbookParser: archive: ZipFile From c7c24e8ff7c2902cba7255cebdd7cf18f9008a93 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 11:58:25 +0000 Subject: [PATCH 18/51] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/openpyxl/openpyxl/cell/cell.pyi | 3 +-- stubs/openpyxl/openpyxl/worksheet/worksheet.pyi | 1 - stubs/openpyxl/openpyxl/xml/functions.pyi | 3 +-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index c329b60a6f21..e089904ac42c 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -1,5 +1,4 @@ import datetime -from _typeshed import Incomplete, ReadableBuffer from decimal import Decimal from re import Pattern from typing import overload @@ -7,7 +6,7 @@ from typing_extensions import Final, Literal, TypeAlias from openpyxl.cell.rich_text import CellRichText from openpyxl.comments.comments import Comment -from openpyxl.compat.numbers import NUMERIC_TYPES as NUMERIC_TYPES, _NumericTypes +from openpyxl.compat.numbers import NUMERIC_TYPES as NUMERIC_TYPES from openpyxl.styles.cell_style import StyleArray from openpyxl.styles.styleable import StyleableObject from openpyxl.workbook.child import _WorkbookChild diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index c91b7c5d22b4..e17f371c5819 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -1,6 +1,5 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator, Iterable, Iterator -from datetime import datetime from types import GeneratorType from typing import Any, overload from typing_extensions import Final, Literal, TypeAlias diff --git a/stubs/openpyxl/openpyxl/xml/functions.pyi b/stubs/openpyxl/openpyxl/xml/functions.pyi index 3926720a15e5..65bb41d190b7 100644 --- a/stubs/openpyxl/openpyxl/xml/functions.pyi +++ b/stubs/openpyxl/openpyxl/xml/functions.pyi @@ -4,10 +4,9 @@ from _typeshed import Incomplete from re import Pattern from typing import overload from typing_extensions import TypeAlias -from xml.etree.ElementTree import Element as Element # possibly also imported from lxml # mypy will default to the first import. Pyright will automatically overload -from xml.etree.ElementTree import ( +from xml.etree.ElementTree import ( # possibly also imported from lxml Element as Element, QName as QName, SubElement as SubElement, From ed09fc2860dcd07c029a81e530037a2481c67dbf Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 31 Mar 2023 15:06:00 -0400 Subject: [PATCH 19/51] Run stubdefaulter --- stubs/openpyxl/openpyxl/cell/_writer.pyi | 4 +- stubs/openpyxl/openpyxl/cell/cell.pyi | 14 +- stubs/openpyxl/openpyxl/cell/read_only.pyi | 2 +- stubs/openpyxl/openpyxl/cell/text.pyi | 44 +- stubs/openpyxl/openpyxl/chart/_3d.pyi | 30 +- stubs/openpyxl/openpyxl/chart/_chart.pyi | 6 +- stubs/openpyxl/openpyxl/chart/area_chart.pyi | 14 +- stubs/openpyxl/openpyxl/chart/axis.pyi | 78 +-- stubs/openpyxl/openpyxl/chart/bar_chart.pyi | 28 +- .../openpyxl/openpyxl/chart/bubble_chart.pyi | 16 +- stubs/openpyxl/openpyxl/chart/chartspace.pyi | 68 +-- stubs/openpyxl/openpyxl/chart/data_source.pyi | 34 +- stubs/openpyxl/openpyxl/chart/error_bar.pyi | 18 +- stubs/openpyxl/openpyxl/chart/label.pyi | 30 +- stubs/openpyxl/openpyxl/chart/layout.pyi | 22 +- stubs/openpyxl/openpyxl/chart/legend.pyi | 16 +- stubs/openpyxl/openpyxl/chart/line_chart.pyi | 30 +- stubs/openpyxl/openpyxl/chart/marker.pyi | 24 +- stubs/openpyxl/openpyxl/chart/picture.pyi | 10 +- stubs/openpyxl/openpyxl/chart/pie_chart.pyi | 24 +- stubs/openpyxl/openpyxl/chart/pivot.pyi | 14 +- stubs/openpyxl/openpyxl/chart/plotarea.pyi | 28 +- .../openpyxl/chart/print_settings.pyi | 4 +- stubs/openpyxl/openpyxl/chart/radar_chart.pyi | 10 +- stubs/openpyxl/openpyxl/chart/reference.pyi | 12 +- .../openpyxl/openpyxl/chart/scatter_chart.pyi | 10 +- stubs/openpyxl/openpyxl/chart/series.pyi | 46 +- .../openpyxl/chart/series_factory.pyi | 8 +- stubs/openpyxl/openpyxl/chart/shapes.pyi | 24 +- stubs/openpyxl/openpyxl/chart/stock_chart.pyi | 12 +- .../openpyxl/openpyxl/chart/surface_chart.pyi | 6 +- stubs/openpyxl/openpyxl/chart/text.pyi | 6 +- stubs/openpyxl/openpyxl/chart/title.pyi | 12 +- stubs/openpyxl/openpyxl/chart/trendline.pyi | 36 +- stubs/openpyxl/openpyxl/chart/updown_bars.pyi | 8 +- .../openpyxl/chartsheet/chartsheet.pyi | 30 +- stubs/openpyxl/openpyxl/chartsheet/custom.pyi | 16 +- .../openpyxl/chartsheet/properties.pyi | 2 +- .../openpyxl/chartsheet/protection.pyi | 14 +- .../openpyxl/openpyxl/chartsheet/publish.pyi | 18 +- .../openpyxl/openpyxl/chartsheet/relation.pyi | 38 +- stubs/openpyxl/openpyxl/chartsheet/views.pyi | 12 +- stubs/openpyxl/openpyxl/comments/author.pyi | 2 +- .../openpyxl/comments/comment_sheet.pyi | 54 +- stubs/openpyxl/openpyxl/comments/comments.pyi | 2 +- stubs/openpyxl/openpyxl/descriptors/base.pyi | 12 +- stubs/openpyxl/openpyxl/descriptors/excel.pyi | 4 +- .../openpyxl/descriptors/namespace.pyi | 2 +- .../openpyxl/openpyxl/descriptors/nested.pyi | 12 +- .../openpyxl/descriptors/sequence.pyi | 8 +- .../openpyxl/descriptors/serialisable.pyi | 2 +- stubs/openpyxl/openpyxl/drawing/colors.pyi | 160 +++--- stubs/openpyxl/openpyxl/drawing/connector.pyi | 42 +- stubs/openpyxl/openpyxl/drawing/effect.pyi | 94 ++-- stubs/openpyxl/openpyxl/drawing/fill.pyi | 132 ++--- stubs/openpyxl/openpyxl/drawing/geometry.pyi | 134 ++--- stubs/openpyxl/openpyxl/drawing/graphic.pyi | 34 +- stubs/openpyxl/openpyxl/drawing/line.pyi | 38 +- stubs/openpyxl/openpyxl/drawing/picture.pyi | 40 +- .../openpyxl/openpyxl/drawing/properties.pyi | 54 +- .../openpyxl/drawing/spreadsheet_drawing.pyi | 26 +- stubs/openpyxl/openpyxl/drawing/text.pyi | 282 +++++----- .../openpyxl/formatting/formatting.pyi | 2 +- stubs/openpyxl/openpyxl/formatting/rule.pyi | 128 ++--- stubs/openpyxl/openpyxl/formula/tokenizer.pyi | 6 +- stubs/openpyxl/openpyxl/formula/translate.pyi | 2 +- stubs/openpyxl/openpyxl/packaging/core.pyi | 38 +- .../openpyxl/openpyxl/packaging/extended.pyi | 54 +- .../openpyxl/openpyxl/packaging/manifest.pyi | 2 +- .../openpyxl/packaging/relationship.pyi | 14 +- .../openpyxl/openpyxl/packaging/workbook.pyi | 60 +- stubs/openpyxl/openpyxl/pivot/cache.pyi | 374 +++++++------ stubs/openpyxl/openpyxl/pivot/fields.pyi | 140 ++--- stubs/openpyxl/openpyxl/pivot/record.pyi | 18 +- stubs/openpyxl/openpyxl/pivot/table.pyi | 528 +++++++++--------- stubs/openpyxl/openpyxl/reader/workbook.pyi | 2 +- stubs/openpyxl/openpyxl/styles/alignment.pyi | 26 +- stubs/openpyxl/openpyxl/styles/borders.pyi | 28 +- stubs/openpyxl/openpyxl/styles/cell_style.pyi | 36 +- stubs/openpyxl/openpyxl/styles/colors.pyi | 16 +- .../openpyxl/openpyxl/styles/differential.pyi | 16 +- stubs/openpyxl/openpyxl/styles/fills.pyi | 26 +- stubs/openpyxl/openpyxl/styles/fonts.pyi | 40 +- .../openpyxl/openpyxl/styles/named_styles.pyi | 12 +- stubs/openpyxl/openpyxl/styles/numbers.pyi | 2 +- stubs/openpyxl/openpyxl/styles/protection.pyi | 2 +- stubs/openpyxl/openpyxl/styles/styleable.pyi | 2 +- stubs/openpyxl/openpyxl/styles/stylesheet.pyi | 24 +- stubs/openpyxl/openpyxl/styles/table.pyi | 20 +- stubs/openpyxl/openpyxl/utils/dataframe.pyi | 4 +- stubs/openpyxl/openpyxl/utils/datetime.pyi | 2 +- .../openpyxl/openpyxl/utils/indexed_list.pyi | 2 +- stubs/openpyxl/openpyxl/utils/protection.pyi | 2 +- stubs/openpyxl/openpyxl/utils/units.pyi | 4 +- stubs/openpyxl/openpyxl/workbook/child.pyi | 2 +- .../openpyxl/workbook/defined_name.pyi | 32 +- .../workbook/external_link/external.pyi | 28 +- .../openpyxl/workbook/function_group.pyi | 4 +- .../openpyxl/openpyxl/workbook/properties.pyi | 74 +-- .../openpyxl/openpyxl/workbook/protection.pyi | 48 +- .../openpyxl/openpyxl/workbook/smart_tags.pyi | 6 +- stubs/openpyxl/openpyxl/workbook/views.pyi | 78 +-- stubs/openpyxl/openpyxl/workbook/web.pyi | 32 +- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 14 +- .../openpyxl/worksheet/_read_only.pyi | 2 +- stubs/openpyxl/openpyxl/worksheet/_writer.pyi | 4 +- .../openpyxl/worksheet/cell_range.pyi | 20 +- .../openpyxl/worksheet/cell_watch.pyi | 4 +- .../openpyxl/openpyxl/worksheet/controls.pyi | 36 +- stubs/openpyxl/openpyxl/worksheet/custom.pyi | 4 +- .../openpyxl/worksheet/datavalidation.pyi | 46 +- .../openpyxl/worksheet/dimensions.pyi | 32 +- stubs/openpyxl/openpyxl/worksheet/drawing.pyi | 2 +- stubs/openpyxl/openpyxl/worksheet/errors.pyi | 26 +- stubs/openpyxl/openpyxl/worksheet/filters.pyi | 102 ++-- .../openpyxl/worksheet/header_footer.pyi | 30 +- .../openpyxl/openpyxl/worksheet/hyperlink.pyi | 14 +- stubs/openpyxl/openpyxl/worksheet/merge.pyi | 4 +- stubs/openpyxl/openpyxl/worksheet/ole.pyi | 50 +- stubs/openpyxl/openpyxl/worksheet/page.pyi | 52 +- .../openpyxl/openpyxl/worksheet/pagebreak.pyi | 6 +- .../openpyxl/worksheet/properties.pyi | 34 +- .../openpyxl/worksheet/protection.pyi | 46 +- stubs/openpyxl/openpyxl/worksheet/related.pyi | 4 +- .../openpyxl/openpyxl/worksheet/scenario.pyi | 26 +- .../openpyxl/openpyxl/worksheet/smart_tag.pyi | 10 +- stubs/openpyxl/openpyxl/worksheet/table.pyi | 112 ++-- stubs/openpyxl/openpyxl/worksheet/views.pyi | 58 +- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 52 +- stubs/openpyxl/openpyxl/xml/functions.pyi | 4 +- 130 files changed, 2385 insertions(+), 2357 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/_writer.pyi b/stubs/openpyxl/openpyxl/cell/_writer.pyi index ab9092eb2958..0502536f1c39 100644 --- a/stubs/openpyxl/openpyxl/cell/_writer.pyi +++ b/stubs/openpyxl/openpyxl/cell/_writer.pyi @@ -1,7 +1,7 @@ from _typeshed import Incomplete -def etree_write_cell(xf, worksheet, cell, styled: Incomplete | None = ...) -> None: ... -def lxml_write_cell(xf, worksheet, cell, styled: bool = ...) -> None: ... +def etree_write_cell(xf, worksheet, cell, styled: Incomplete | None = None) -> None: ... +def lxml_write_cell(xf, worksheet, cell, styled: bool = False) -> None: ... write_cell = lxml_write_cell write_cell = etree_write_cell diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index e089904ac42c..0cebbffec07a 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -47,10 +47,10 @@ class Cell(StyleableObject): def __init__( self, worksheet: _WorkbookChild, - row: int | None = ..., - column: int | None = ..., - value: _CellValue | bytes | None = ..., - style_array: StyleArray | None = ..., + row: int | None = None, + column: int | None = None, + value: _CellValue | bytes | None = None, + style_array: StyleArray | None = None, ) -> None: ... @property def coordinate(self) -> str: ... @@ -79,7 +79,7 @@ class Cell(StyleableObject): def hyperlink(self, val: Hyperlink | str | None) -> None: ... @property def is_date(self) -> bool: ... - def offset(self, row: int = ..., column: int = ...) -> Cell: ... + def offset(self, row: int = 0, column: int = 0) -> Cell: ... @property def comment(self) -> Comment | None: ... @comment.setter @@ -91,9 +91,9 @@ class MergedCell(StyleableObject): hyperlink: Hyperlink | None row: int | None column: int | None - def __init__(self, worksheet: _WorkbookChild, row: int | None = ..., column: int | None = ...) -> None: ... + def __init__(self, worksheet: _WorkbookChild, row: int | None = None, column: int | None = None) -> None: ... @property def coordinate(self) -> str: ... value: _CellValue | bytes | None -def WriteOnlyCell(ws: _WorkbookChild | None = ..., value: _CellValue | bytes | None = ...) -> Cell: ... +def WriteOnlyCell(ws: _WorkbookChild | None = None, value: _CellValue | bytes | None = None) -> Cell: ... diff --git a/stubs/openpyxl/openpyxl/cell/read_only.pyi b/stubs/openpyxl/openpyxl/cell/read_only.pyi index 9700434446cf..2d1085d3c40c 100644 --- a/stubs/openpyxl/openpyxl/cell/read_only.pyi +++ b/stubs/openpyxl/openpyxl/cell/read_only.pyi @@ -5,7 +5,7 @@ class ReadOnlyCell: row: Incomplete column: Incomplete data_type: Incomplete - def __init__(self, sheet, row, column, value, data_type: str = ..., style_id: int = ...) -> None: ... + def __init__(self, sheet, row, column, value, data_type: str = "n", style_id: int = 0) -> None: ... def __eq__(self, other): ... def __ne__(self, other): ... # defined twice in the implementation diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index 226e8fcd7772..b1977724ee75 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -17,8 +17,8 @@ class PhoneticProperties(Serialisable): def __init__( self, fontId: _IntegerSetter, - type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] = ..., - alignment: Literal["noControl", "left", "center", "distributed", None] = ..., + type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] = None, + alignment: Literal["noControl", "left", "center", "distributed", None] = None, ) -> None: ... class PhoneticText(Serialisable): @@ -41,21 +41,21 @@ class InlineFont(Font): __elements__: tuple[str, ...] def __init__( self, - rFont: str | None = ..., - charset: int | None = ..., - family: float | None = ..., - b: bool | None = ..., - i: bool | None = ..., - strike: bool | None = ..., - outline: bool | None = ..., - shadow: bool | None = ..., - condense: bool | None = ..., - extend: bool | None = ..., - color: Color | None = ..., - sz: float | None = ..., - u: _UnderlineType = ..., - vertAlign: Literal["superscript", "subscript", "baseline", None] = ..., - scheme: Literal["major", "minor", None] = ..., + rFont: str | None = None, + charset: int | None = None, + family: float | None = None, + b: bool | None = None, + i: bool | None = None, + strike: bool | None = None, + outline: bool | None = None, + shadow: bool | None = None, + condense: bool | None = None, + extend: bool | None = None, + color: Color | None = None, + sz: float | None = None, + u: _UnderlineType = None, + vertAlign: Literal["superscript", "subscript", "baseline", None] = None, + scheme: Literal["major", "minor", None] = None, ) -> None: ... class RichText(Serialisable): @@ -65,7 +65,7 @@ class RichText(Serialisable): t: str | None text = t # noqa: F821 __elements__: tuple[str, ...] - def __init__(self, rPr: InlineFont | None = ..., t: str | None = ...) -> None: ... + def __init__(self, rPr: InlineFont | None = None, t: str | None = None) -> None: ... _PhoneticProperties: TypeAlias = PhoneticProperties @@ -82,10 +82,10 @@ class Text(Serialisable): __elements__: tuple[str, ...] def __init__( self, - t: str | None = ..., - r: _Sequence[RichText] | None = ..., - rPh: _Sequence[RichText] | None = ..., - phoneticPr: _PhoneticProperties | None = ..., + t: str | None = None, + r: _Sequence[RichText] | None = (), + rPh: _Sequence[RichText] | None = (), + phoneticPr: _PhoneticProperties | None = None, ) -> None: ... @property def content(self) -> str: ... diff --git a/stubs/openpyxl/openpyxl/chart/_3d.pyi b/stubs/openpyxl/openpyxl/chart/_3d.pyi index 174a349c6b85..24a5dab5b54b 100644 --- a/stubs/openpyxl/openpyxl/chart/_3d.pyi +++ b/stubs/openpyxl/openpyxl/chart/_3d.pyi @@ -18,13 +18,13 @@ class View3D(Serialisable): __elements__: Incomplete def __init__( self, - rotX: int = ..., - hPercent: Incomplete | None = ..., - rotY: int = ..., - depthPercent: Incomplete | None = ..., - rAngAx: bool = ..., - perspective: Incomplete | None = ..., - extLst: Incomplete | None = ..., + rotX: int = 15, + hPercent: Incomplete | None = None, + rotY: int = 20, + depthPercent: Incomplete | None = None, + rAngAx: bool = True, + perspective: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Surface(Serialisable): @@ -37,10 +37,10 @@ class Surface(Serialisable): __elements__: Incomplete def __init__( self, - thickness: Incomplete | None = ..., - spPr: Incomplete | None = ..., - pictureOptions: Incomplete | None = ..., - extLst: Incomplete | None = ..., + thickness: Incomplete | None = None, + spPr: Incomplete | None = None, + pictureOptions: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class _3DBase(Serialisable): @@ -51,8 +51,8 @@ class _3DBase(Serialisable): backWall: Incomplete def __init__( self, - view3D: Incomplete | None = ..., - floor: Incomplete | None = ..., - sideWall: Incomplete | None = ..., - backWall: Incomplete | None = ..., + view3D: Incomplete | None = None, + floor: Incomplete | None = None, + sideWall: Incomplete | None = None, + backWall: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/_chart.pyi b/stubs/openpyxl/openpyxl/chart/_chart.pyi index fb9f3880421f..b4833baa915e 100644 --- a/stubs/openpyxl/openpyxl/chart/_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/_chart.pyi @@ -30,12 +30,12 @@ class ChartBase(Serialisable): pivotSource: Incomplete pivotFormats: Incomplete idx_base: int - def __init__(self, axId=..., **kw) -> None: ... + def __init__(self, axId=(), **kw) -> None: ... def __hash__(self) -> int: ... def __iadd__(self, other): ... - def to_tree(self, namespace: Incomplete | None = ..., tagname: Incomplete | None = ..., idx: Incomplete | None = ...): ... # type: ignore[override] + def to_tree(self, namespace: Incomplete | None = None, tagname: Incomplete | None = None, idx: Incomplete | None = None): ... # type: ignore[override] def set_categories(self, labels) -> None: ... - def add_data(self, data, from_rows: bool = ..., titles_from_data: bool = ...) -> None: ... + def add_data(self, data, from_rows: bool = False, titles_from_data: bool = False) -> None: ... def append(self, value) -> None: ... @property def path(self): ... diff --git a/stubs/openpyxl/openpyxl/chart/area_chart.pyi b/stubs/openpyxl/openpyxl/chart/area_chart.pyi index dc40da13aa12..3fb48ecbc9e7 100644 --- a/stubs/openpyxl/openpyxl/chart/area_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/area_chart.pyi @@ -13,11 +13,11 @@ class _AreaChartBase(ChartBase): __elements__: Incomplete def __init__( self, - grouping: str = ..., - varyColors: Incomplete | None = ..., - ser=..., - dLbls: Incomplete | None = ..., - dropLines: Incomplete | None = ..., + grouping: str = "standard", + varyColors: Incomplete | None = None, + ser=(), + dLbls: Incomplete | None = None, + dropLines: Incomplete | None = None, ) -> None: ... @property @abstractmethod @@ -34,7 +34,7 @@ class AreaChart(_AreaChartBase): y_axis: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, axId: Incomplete | None = ..., extLst: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, axId: Incomplete | None = None, extLst: Incomplete | None = None, **kw) -> None: ... class AreaChart3D(AreaChart): tagname: str @@ -48,4 +48,4 @@ class AreaChart3D(AreaChart): y_axis: Incomplete z_axis: Incomplete __elements__: Incomplete - def __init__(self, gapDepth: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, gapDepth: Incomplete | None = None, **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index b412954b07d4..e49c2715f10a 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -19,7 +19,7 @@ class ChartLines(Serialisable): tagname: str spPr: GraphicalProperties | None graphicalProperties = spPr # noqa: F821 - def __init__(self, spPr: GraphicalProperties | None = ...) -> None: ... + def __init__(self, spPr: GraphicalProperties | None = None) -> None: ... class Scaling(Serialisable): tagname: str @@ -40,11 +40,11 @@ class Scaling(Serialisable): __elements__: tuple[str, ...] def __init__( self, - logBase: _FloatSetter | None = ..., - orientation: Literal["maxMin", "minMax"] = ..., - max: _FloatSetter | None = ..., - min: _FloatSetter | None = ..., - extLst: Unused = ..., + logBase: _FloatSetter | None = None, + orientation: Literal["maxMin", "minMax"] = "minMax", + max: _FloatSetter | None = None, + min: _FloatSetter | None = None, + extLst: Unused = None, ) -> None: ... class _BaseAxis(Serialisable): @@ -96,8 +96,8 @@ class _BaseAxis(Serialisable): spPr: GraphicalProperties | None, txPr: RichText | None, crossAx: _IntegerSetter, - crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: _FloatSetter | None = ..., + crosses: Literal["autoZero", "max", "min", None] = None, + crossesAt: _FloatSetter | None = None, ) -> None: ... @property @abstractmethod @@ -115,10 +115,10 @@ class DisplayUnitsLabel(Serialisable): __elements__: tuple[str, ...] def __init__( self, - layout: Layout | None = ..., - tx: Text | None = ..., - spPr: GraphicalProperties | None = ..., - txPr: RichText | None = ..., + layout: Layout | None = None, + tx: Text | None = None, + spPr: GraphicalProperties | None = None, + txPr: RichText | None = None, ) -> None: ... _BuiltInUnitType: TypeAlias = Literal[ @@ -146,10 +146,10 @@ class DisplayUnitsLabelList(Serialisable): __elements__: tuple[str, ...] def __init__( self, - custUnit: float | None = ..., - builtInUnit: _BuiltInUnitType = ..., - dispUnitsLbl: DisplayUnitsLabel | None = ..., - extLst: Unused = ..., + custUnit: float | None = None, + builtInUnit: _BuiltInUnitType = None, + dispUnitsLbl: DisplayUnitsLabel | None = None, + extLst: Unused = None, ) -> None: ... class NumericAxis(_BaseAxis): @@ -168,11 +168,11 @@ class NumericAxis(_BaseAxis): __elements__: tuple[str, ...] def __init__( self, - crossBetween: Literal["between", "midCat", None] = ..., - majorUnit: _FloatSetter | None = ..., - minorUnit: _FloatSetter | None = ..., - dispUnits: DisplayUnitsLabelList | None = ..., - extLst: Unused = ..., + crossBetween: Literal["between", "midCat", None] = None, + majorUnit: _FloatSetter | None = None, + minorUnit: _FloatSetter | None = None, + dispUnits: DisplayUnitsLabelList | None = None, + extLst: Unused = None, axId: _IntegerSetter = ..., scaling: Scaling | None = ..., delete: _BoolSetter = ..., @@ -220,13 +220,13 @@ class TextAxis(_BaseAxis): __elements__: tuple[str, ...] def __init__( self, - auto: _BoolSetter = ..., - lblAlgn: Literal["ctr", "l", "r", None] = ..., - lblOffset: _FloatSetter = ..., - tickLblSkip: _IntegerSetter | None = ..., - tickMarkSkip: _IntegerSetter | None = ..., - noMultiLvlLbl: _BoolSetter = ..., - extLst: Unused = ..., + auto: _BoolSetter = None, + lblAlgn: Literal["ctr", "l", "r", None] = None, + lblOffset: _FloatSetter = 100, + tickLblSkip: _IntegerSetter | None = None, + tickMarkSkip: _IntegerSetter | None = None, + noMultiLvlLbl: _BoolSetter = None, + extLst: Unused = None, axId: _IntegerSetter = ..., scaling: Scaling | None = ..., delete: _BoolSetter = ..., @@ -272,14 +272,14 @@ class DateAxis(TextAxis): __elements__: tuple[str, ...] def __init__( self, - auto: _BoolSetter = ..., - lblOffset: _IntegerSetter | None = ..., - baseTimeUnit: _TimeUnitType = ..., - majorUnit: _FloatSetter | None = ..., - majorTimeUnit: _TimeUnitType = ..., - minorUnit: _FloatSetter | None = ..., - minorTimeUnit: _TimeUnitType = ..., - extLst: ExtensionList | None = ..., + auto: _BoolSetter = None, + lblOffset: _IntegerSetter | None = None, + baseTimeUnit: _TimeUnitType = None, + majorUnit: _FloatSetter | None = None, + majorTimeUnit: _TimeUnitType = None, + minorUnit: _FloatSetter | None = None, + minorTimeUnit: _TimeUnitType = None, + extLst: ExtensionList | None = None, axId: _IntegerSetter = ..., scaling: Scaling | None = ..., delete: _BoolSetter = ..., @@ -312,9 +312,9 @@ class SeriesAxis(_BaseAxis): __elements__: tuple[str, ...] def __init__( self, - tickLblSkip: _IntegerSetter | None = ..., - tickMarkSkip: _IntegerSetter | None = ..., - extLst: Unused = ..., + tickLblSkip: _IntegerSetter | None = None, + tickMarkSkip: _IntegerSetter | None = None, + extLst: Unused = None, axId: _IntegerSetter = ..., scaling: Scaling | None = ..., delete: _BoolSetter = ..., diff --git a/stubs/openpyxl/openpyxl/chart/bar_chart.pyi b/stubs/openpyxl/openpyxl/chart/bar_chart.pyi index 04cc873ce128..f6ca9b733613 100644 --- a/stubs/openpyxl/openpyxl/chart/bar_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/bar_chart.pyi @@ -15,11 +15,11 @@ class _BarChartBase(ChartBase): __elements__: Incomplete def __init__( self, - barDir: str = ..., - grouping: str = ..., - varyColors: Incomplete | None = ..., - ser=..., - dLbls: Incomplete | None = ..., + barDir: str = "col", + grouping: str = "clustered", + varyColors: Incomplete | None = None, + ser=(), + dLbls: Incomplete | None = None, **kw, ) -> None: ... @property @@ -43,10 +43,10 @@ class BarChart(_BarChartBase): legend: Incomplete def __init__( self, - gapWidth: int = ..., - overlap: Incomplete | None = ..., - serLines: Incomplete | None = ..., - extLst: Incomplete | None = ..., + gapWidth: int = 150, + overlap: Incomplete | None = None, + serLines: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... @@ -72,10 +72,10 @@ class BarChart3D(_BarChartBase, _3DBase): __elements__: Incomplete def __init__( self, - gapWidth: int = ..., - gapDepth: int = ..., - shape: Incomplete | None = ..., - serLines: Incomplete | None = ..., - extLst: Incomplete | None = ..., + gapWidth: int = 150, + gapDepth: int = 150, + shape: Incomplete | None = None, + serLines: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi b/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi index aea9771c1837..e3f9130ef1e5 100644 --- a/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi @@ -18,13 +18,13 @@ class BubbleChart(ChartBase): __elements__: Incomplete def __init__( self, - varyColors: Incomplete | None = ..., - ser=..., - dLbls: Incomplete | None = ..., - bubble3D: Incomplete | None = ..., - bubbleScale: Incomplete | None = ..., - showNegBubbles: Incomplete | None = ..., - sizeRepresents: Incomplete | None = ..., - extLst: Incomplete | None = ..., + varyColors: Incomplete | None = None, + ser=(), + dLbls: Incomplete | None = None, + bubble3D: Incomplete | None = None, + bubbleScale: Incomplete | None = None, + showNegBubbles: Incomplete | None = None, + sizeRepresents: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/chartspace.pyi b/stubs/openpyxl/openpyxl/chart/chartspace.pyi index 5d0628534a90..4b0e1aac8227 100644 --- a/stubs/openpyxl/openpyxl/chart/chartspace.pyi +++ b/stubs/openpyxl/openpyxl/chart/chartspace.pyi @@ -20,19 +20,19 @@ class ChartContainer(Serialisable): __elements__: Incomplete def __init__( self, - title: Incomplete | None = ..., - autoTitleDeleted: Incomplete | None = ..., - pivotFmts=..., - view3D: Incomplete | None = ..., - floor: Incomplete | None = ..., - sideWall: Incomplete | None = ..., - backWall: Incomplete | None = ..., - plotArea: Incomplete | None = ..., - legend: Incomplete | None = ..., - plotVisOnly: bool = ..., - dispBlanksAs: str = ..., - showDLblsOverMax: Incomplete | None = ..., - extLst: Incomplete | None = ..., + title: Incomplete | None = None, + autoTitleDeleted: Incomplete | None = None, + pivotFmts=(), + view3D: Incomplete | None = None, + floor: Incomplete | None = None, + sideWall: Incomplete | None = None, + backWall: Incomplete | None = None, + plotArea: Incomplete | None = None, + legend: Incomplete | None = None, + plotVisOnly: bool = True, + dispBlanksAs: str = "gap", + showDLblsOverMax: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Protection(Serialisable): @@ -45,18 +45,18 @@ class Protection(Serialisable): __elements__: Incomplete def __init__( self, - chartObject: Incomplete | None = ..., - data: Incomplete | None = ..., - formatting: Incomplete | None = ..., - selection: Incomplete | None = ..., - userInterface: Incomplete | None = ..., + chartObject: Incomplete | None = None, + data: Incomplete | None = None, + formatting: Incomplete | None = None, + selection: Incomplete | None = None, + userInterface: Incomplete | None = None, ) -> None: ... class ExternalData(Serialisable): tagname: str autoUpdate: Incomplete id: Incomplete - def __init__(self, autoUpdate: Incomplete | None = ..., id: Incomplete | None = ...) -> None: ... + def __init__(self, autoUpdate: Incomplete | None = None, id: Incomplete | None = None) -> None: ... class ChartSpace(Serialisable): tagname: str @@ -79,19 +79,19 @@ class ChartSpace(Serialisable): __elements__: Incomplete def __init__( self, - date1904: Incomplete | None = ..., - lang: Incomplete | None = ..., - roundedCorners: Incomplete | None = ..., - style: Incomplete | None = ..., - clrMapOvr: Incomplete | None = ..., - pivotSource: Incomplete | None = ..., - protection: Incomplete | None = ..., - chart: Incomplete | None = ..., - spPr: Incomplete | None = ..., - txPr: Incomplete | None = ..., - externalData: Incomplete | None = ..., - printSettings: Incomplete | None = ..., - userShapes: Incomplete | None = ..., - extLst: Incomplete | None = ..., + date1904: Incomplete | None = None, + lang: Incomplete | None = None, + roundedCorners: Incomplete | None = None, + style: Incomplete | None = None, + clrMapOvr: Incomplete | None = None, + pivotSource: Incomplete | None = None, + protection: Incomplete | None = None, + chart: Incomplete | None = None, + spPr: Incomplete | None = None, + txPr: Incomplete | None = None, + externalData: Incomplete | None = None, + printSettings: Incomplete | None = None, + userShapes: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... - def to_tree(self, tagname: Incomplete | None = ..., idx: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree(self, tagname: Incomplete | None = None, idx: Incomplete | None = None, namespace: Incomplete | None = None): ... diff --git a/stubs/openpyxl/openpyxl/chart/data_source.pyi b/stubs/openpyxl/openpyxl/chart/data_source.pyi index b71a03dcea5b..1210fb47a9a3 100644 --- a/stubs/openpyxl/openpyxl/chart/data_source.pyi +++ b/stubs/openpyxl/openpyxl/chart/data_source.pyi @@ -6,7 +6,7 @@ from openpyxl.descriptors.serialisable import Serialisable class NumFmt(Serialisable): # type: ignore[misc] formatCode: Incomplete sourceLinked: Incomplete - def __init__(self, formatCode: Incomplete | None = ..., sourceLinked: bool = ...) -> None: ... + def __init__(self, formatCode: Incomplete | None = None, sourceLinked: bool = False) -> None: ... class NumberValueDescriptor(NestedText): allow_none: bool @@ -17,7 +17,9 @@ class NumVal(Serialisable): # type: ignore[misc] idx: Incomplete formatCode: Incomplete v: Incomplete - def __init__(self, idx: Incomplete | None = ..., formatCode: Incomplete | None = ..., v: Incomplete | None = ...) -> None: ... + def __init__( + self, idx: Incomplete | None = None, formatCode: Incomplete | None = None, v: Incomplete | None = None + ) -> None: ... class NumData(Serialisable): # type: ignore[misc] formatCode: Incomplete @@ -26,7 +28,7 @@ class NumData(Serialisable): # type: ignore[misc] extLst: Incomplete __elements__: Incomplete def __init__( - self, formatCode: Incomplete | None = ..., ptCount: Incomplete | None = ..., pt=..., extLst: Incomplete | None = ... + self, formatCode: Incomplete | None = None, ptCount: Incomplete | None = None, pt=(), extLst: Incomplete | None = None ) -> None: ... class NumRef(Serialisable): # type: ignore[misc] @@ -36,14 +38,14 @@ class NumRef(Serialisable): # type: ignore[misc] extLst: Incomplete __elements__: Incomplete def __init__( - self, f: Incomplete | None = ..., numCache: Incomplete | None = ..., extLst: Incomplete | None = ... + self, f: Incomplete | None = None, numCache: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class StrVal(Serialisable): tagname: str idx: Incomplete v: Incomplete - def __init__(self, idx: int = ..., v: Incomplete | None = ...) -> None: ... + def __init__(self, idx: int = 0, v: Incomplete | None = None) -> None: ... class StrData(Serialisable): tagname: str @@ -51,7 +53,7 @@ class StrData(Serialisable): pt: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, ptCount: Incomplete | None = ..., pt=..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, ptCount: Incomplete | None = None, pt=(), extLst: Incomplete | None = None) -> None: ... class StrRef(Serialisable): tagname: str @@ -60,19 +62,19 @@ class StrRef(Serialisable): extLst: Incomplete __elements__: Incomplete def __init__( - self, f: Incomplete | None = ..., strCache: Incomplete | None = ..., extLst: Incomplete | None = ... + self, f: Incomplete | None = None, strCache: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class NumDataSource(Serialisable): # type: ignore[misc] numRef: Incomplete numLit: Incomplete - def __init__(self, numRef: Incomplete | None = ..., numLit: Incomplete | None = ...) -> None: ... + def __init__(self, numRef: Incomplete | None = None, numLit: Incomplete | None = None) -> None: ... class Level(Serialisable): tagname: str pt: Incomplete __elements__: Incomplete - def __init__(self, pt=...) -> None: ... + def __init__(self, pt=()) -> None: ... class MultiLevelStrData(Serialisable): tagname: str @@ -80,7 +82,7 @@ class MultiLevelStrData(Serialisable): lvl: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, ptCount: Incomplete | None = ..., lvl=..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, ptCount: Incomplete | None = None, lvl=(), extLst: Incomplete | None = None) -> None: ... class MultiLevelStrRef(Serialisable): tagname: str @@ -89,7 +91,7 @@ class MultiLevelStrRef(Serialisable): extLst: Incomplete __elements__: Incomplete def __init__( - self, f: Incomplete | None = ..., multiLvlStrCache: Incomplete | None = ..., extLst: Incomplete | None = ... + self, f: Incomplete | None = None, multiLvlStrCache: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class AxDataSource(Serialisable): @@ -101,9 +103,9 @@ class AxDataSource(Serialisable): multiLvlStrRef: Incomplete def __init__( self, - numRef: Incomplete | None = ..., - numLit: Incomplete | None = ..., - strRef: Incomplete | None = ..., - strLit: Incomplete | None = ..., - multiLvlStrRef: Incomplete | None = ..., + numRef: Incomplete | None = None, + numLit: Incomplete | None = None, + strRef: Incomplete | None = None, + strLit: Incomplete | None = None, + multiLvlStrRef: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/error_bar.pyi b/stubs/openpyxl/openpyxl/chart/error_bar.pyi index 102fd176bffd..ae21656be2c0 100644 --- a/stubs/openpyxl/openpyxl/chart/error_bar.pyi +++ b/stubs/openpyxl/openpyxl/chart/error_bar.pyi @@ -20,13 +20,13 @@ class ErrorBars(Serialisable): __elements__: Incomplete def __init__( self, - errDir: Incomplete | None = ..., - errBarType: str = ..., - errValType: str = ..., - noEndCap: Incomplete | None = ..., - plus: Incomplete | None = ..., - minus: Incomplete | None = ..., - val: Incomplete | None = ..., - spPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + errDir: Incomplete | None = None, + errBarType: str = "both", + errValType: str = "fixedVal", + noEndCap: Incomplete | None = None, + plus: Incomplete | None = None, + minus: Incomplete | None = None, + val: Incomplete | None = None, + spPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/label.pyi b/stubs/openpyxl/openpyxl/chart/label.pyi index 97d9e56eb2ad..686d18fcb7d9 100644 --- a/stubs/openpyxl/openpyxl/chart/label.pyi +++ b/stubs/openpyxl/openpyxl/chart/label.pyi @@ -23,19 +23,19 @@ class _DataLabelBase(Serialisable): __elements__: tuple[str, ...] def __init__( self, - numFmt: Incomplete | None = ..., - spPr: Incomplete | None = ..., - txPr: Incomplete | None = ..., - dLblPos: Incomplete | None = ..., - showLegendKey: Incomplete | None = ..., - showVal: Incomplete | None = ..., - showCatName: Incomplete | None = ..., - showSerName: Incomplete | None = ..., - showPercent: Incomplete | None = ..., - showBubbleSize: Incomplete | None = ..., - showLeaderLines: Incomplete | None = ..., - separator: Incomplete | None = ..., - extLst: Incomplete | None = ..., + numFmt: Incomplete | None = None, + spPr: Incomplete | None = None, + txPr: Incomplete | None = None, + dLblPos: Incomplete | None = None, + showLegendKey: Incomplete | None = None, + showVal: Incomplete | None = None, + showCatName: Incomplete | None = None, + showSerName: Incomplete | None = None, + showPercent: Incomplete | None = None, + showBubbleSize: Incomplete | None = None, + showLeaderLines: Incomplete | None = None, + separator: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... @property @abstractmethod @@ -58,7 +58,7 @@ class DataLabel(_DataLabelBase): separator: Incomplete extLst: Incomplete __elements__: tuple[str, ...] - def __init__(self, idx: int = ..., **kw) -> None: ... + def __init__(self, idx: int = 0, **kw) -> None: ... class DataLabelList(_DataLabelBase): tagname: str @@ -78,4 +78,4 @@ class DataLabelList(_DataLabelBase): separator: Incomplete extLst: Incomplete __elements__: tuple[str, ...] - def __init__(self, dLbl=..., delete: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, dLbl=(), delete: Incomplete | None = None, **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/layout.pyi b/stubs/openpyxl/openpyxl/chart/layout.pyi index 1bb85f85eaee..dc6fcc14fc0a 100644 --- a/stubs/openpyxl/openpyxl/chart/layout.pyi +++ b/stubs/openpyxl/openpyxl/chart/layout.pyi @@ -19,16 +19,16 @@ class ManualLayout(Serialisable): __elements__: Incomplete def __init__( self, - layoutTarget: Incomplete | None = ..., - xMode: Incomplete | None = ..., - yMode: Incomplete | None = ..., - wMode: str = ..., - hMode: str = ..., - x: Incomplete | None = ..., - y: Incomplete | None = ..., - w: Incomplete | None = ..., - h: Incomplete | None = ..., - extLst: Incomplete | None = ..., + layoutTarget: Incomplete | None = None, + xMode: Incomplete | None = None, + yMode: Incomplete | None = None, + wMode: str = "factor", + hMode: str = "factor", + x: Incomplete | None = None, + y: Incomplete | None = None, + w: Incomplete | None = None, + h: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Layout(Serialisable): @@ -36,4 +36,4 @@ class Layout(Serialisable): manualLayout: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, manualLayout: Incomplete | None = ..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, manualLayout: Incomplete | None = None, extLst: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/legend.pyi b/stubs/openpyxl/openpyxl/chart/legend.pyi index 42e7543e0152..12c95b9a5f8f 100644 --- a/stubs/openpyxl/openpyxl/chart/legend.pyi +++ b/stubs/openpyxl/openpyxl/chart/legend.pyi @@ -10,7 +10,7 @@ class LegendEntry(Serialisable): extLst: Incomplete __elements__: Incomplete def __init__( - self, idx: int = ..., delete: bool = ..., txPr: Incomplete | None = ..., extLst: Incomplete | None = ... + self, idx: int = 0, delete: bool = False, txPr: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class Legend(Serialisable): @@ -28,11 +28,11 @@ class Legend(Serialisable): __elements__: Incomplete def __init__( self, - legendPos: str = ..., - legendEntry=..., - layout: Incomplete | None = ..., - overlay: Incomplete | None = ..., - spPr: Incomplete | None = ..., - txPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + legendPos: str = "r", + legendEntry=(), + layout: Incomplete | None = None, + overlay: Incomplete | None = None, + spPr: Incomplete | None = None, + txPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/line_chart.pyi b/stubs/openpyxl/openpyxl/chart/line_chart.pyi index 4df38afdc7fa..e15820a74f9f 100644 --- a/stubs/openpyxl/openpyxl/chart/line_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/line_chart.pyi @@ -13,11 +13,11 @@ class _LineChartBase(ChartBase): __elements__: Incomplete def __init__( self, - grouping: str = ..., - varyColors: Incomplete | None = ..., - ser=..., - dLbls: Incomplete | None = ..., - dropLines: Incomplete | None = ..., + grouping: str = "standard", + varyColors: Incomplete | None = None, + ser=(), + dLbls: Incomplete | None = None, + dropLines: Incomplete | None = None, **kw, ) -> None: ... @property @@ -41,11 +41,11 @@ class LineChart(_LineChartBase): __elements__: Incomplete def __init__( self, - hiLowLines: Incomplete | None = ..., - upDownBars: Incomplete | None = ..., - marker: Incomplete | None = ..., - smooth: Incomplete | None = ..., - extLst: Incomplete | None = ..., + hiLowLines: Incomplete | None = None, + upDownBars: Incomplete | None = None, + marker: Incomplete | None = None, + smooth: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... @@ -68,10 +68,10 @@ class LineChart3D(_LineChartBase): __elements__: Incomplete def __init__( self, - gapDepth: Incomplete | None = ..., - hiLowLines: Incomplete | None = ..., - upDownBars: Incomplete | None = ..., - marker: Incomplete | None = ..., - smooth: Incomplete | None = ..., + gapDepth: Incomplete | None = None, + hiLowLines: Incomplete | None = None, + upDownBars: Incomplete | None = None, + marker: Incomplete | None = None, + smooth: Incomplete | None = None, **kw, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/marker.pyi b/stubs/openpyxl/openpyxl/chart/marker.pyi index 56825794ad31..07ff78671545 100644 --- a/stubs/openpyxl/openpyxl/chart/marker.pyi +++ b/stubs/openpyxl/openpyxl/chart/marker.pyi @@ -12,10 +12,10 @@ class Marker(Serialisable): __elements__: Incomplete def __init__( self, - symbol: Incomplete | None = ..., - size: Incomplete | None = ..., - spPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + symbol: Incomplete | None = None, + size: Incomplete | None = None, + spPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class DataPoint(Serialisable): @@ -32,12 +32,12 @@ class DataPoint(Serialisable): __elements__: Incomplete def __init__( self, - idx: Incomplete | None = ..., - invertIfNegative: Incomplete | None = ..., - marker: Incomplete | None = ..., - bubble3D: Incomplete | None = ..., - explosion: Incomplete | None = ..., - spPr: Incomplete | None = ..., - pictureOptions: Incomplete | None = ..., - extLst: Incomplete | None = ..., + idx: Incomplete | None = None, + invertIfNegative: Incomplete | None = None, + marker: Incomplete | None = None, + bubble3D: Incomplete | None = None, + explosion: Incomplete | None = None, + spPr: Incomplete | None = None, + pictureOptions: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/picture.pyi b/stubs/openpyxl/openpyxl/chart/picture.pyi index 5ec116071cc9..b5638bc00e0e 100644 --- a/stubs/openpyxl/openpyxl/chart/picture.pyi +++ b/stubs/openpyxl/openpyxl/chart/picture.pyi @@ -12,9 +12,9 @@ class PictureOptions(Serialisable): __elements__: Incomplete def __init__( self, - applyToFront: Incomplete | None = ..., - applyToSides: Incomplete | None = ..., - applyToEnd: Incomplete | None = ..., - pictureFormat: Incomplete | None = ..., - pictureStackUnit: Incomplete | None = ..., + applyToFront: Incomplete | None = None, + applyToSides: Incomplete | None = None, + applyToEnd: Incomplete | None = None, + pictureFormat: Incomplete | None = None, + pictureStackUnit: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/pie_chart.pyi b/stubs/openpyxl/openpyxl/chart/pie_chart.pyi index 839e60d260b7..392c060e3473 100644 --- a/stubs/openpyxl/openpyxl/chart/pie_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/pie_chart.pyi @@ -11,7 +11,7 @@ class _PieChartBase(ChartBase): dLbls: Incomplete dataLabels: Incomplete __elements__: Incomplete - def __init__(self, varyColors: bool = ..., ser=..., dLbls: Incomplete | None = ...) -> None: ... + def __init__(self, varyColors: bool = True, ser=(), dLbls: Incomplete | None = None) -> None: ... @property @abstractmethod def tagname(self) -> str: ... @@ -24,7 +24,7 @@ class PieChart(_PieChartBase): firstSliceAng: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, firstSliceAng: int = ..., extLst: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, firstSliceAng: int = 0, extLst: Incomplete | None = None, **kw) -> None: ... class PieChart3D(_PieChartBase): tagname: str @@ -43,13 +43,13 @@ class DoughnutChart(_PieChartBase): holeSize: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, firstSliceAng: int = ..., holeSize: int = ..., extLst: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, firstSliceAng: int = 0, holeSize: int = 10, extLst: Incomplete | None = None, **kw) -> None: ... class CustomSplit(Serialisable): tagname: str secondPiePt: Incomplete __elements__: Incomplete - def __init__(self, secondPiePt=...) -> None: ... + def __init__(self, secondPiePt=()) -> None: ... class ProjectedPieChart(_PieChartBase): tagname: str @@ -69,13 +69,13 @@ class ProjectedPieChart(_PieChartBase): __elements__: Incomplete def __init__( self, - ofPieType: str = ..., - gapWidth: Incomplete | None = ..., - splitType: str = ..., - splitPos: Incomplete | None = ..., - custSplit: Incomplete | None = ..., - secondPieSize: int = ..., - serLines: Incomplete | None = ..., - extLst: Incomplete | None = ..., + ofPieType: str = "pie", + gapWidth: Incomplete | None = None, + splitType: str = "auto", + splitPos: Incomplete | None = None, + custSplit: Incomplete | None = None, + secondPieSize: int = 75, + serLines: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/pivot.pyi b/stubs/openpyxl/openpyxl/chart/pivot.pyi index e5e86d23736b..f0ebd05bbcdd 100644 --- a/stubs/openpyxl/openpyxl/chart/pivot.pyi +++ b/stubs/openpyxl/openpyxl/chart/pivot.pyi @@ -9,7 +9,7 @@ class PivotSource(Serialisable): extLst: Incomplete __elements__: Incomplete def __init__( - self, name: Incomplete | None = ..., fmtId: Incomplete | None = ..., extLst: Incomplete | None = ... + self, name: Incomplete | None = None, fmtId: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class PivotFormat(Serialisable): @@ -26,10 +26,10 @@ class PivotFormat(Serialisable): __elements__: Incomplete def __init__( self, - idx: int = ..., - spPr: Incomplete | None = ..., - txPr: Incomplete | None = ..., - marker: Incomplete | None = ..., - dLbl: Incomplete | None = ..., - extLst: Incomplete | None = ..., + idx: int = 0, + spPr: Incomplete | None = None, + txPr: Incomplete | None = None, + marker: Incomplete | None = None, + dLbl: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/plotarea.pyi b/stubs/openpyxl/openpyxl/chart/plotarea.pyi index 2a9f7f31f77a..6b23d92bcb9c 100644 --- a/stubs/openpyxl/openpyxl/chart/plotarea.pyi +++ b/stubs/openpyxl/openpyxl/chart/plotarea.pyi @@ -15,13 +15,13 @@ class DataTable(Serialisable): __elements__: Incomplete def __init__( self, - showHorzBorder: Incomplete | None = ..., - showVertBorder: Incomplete | None = ..., - showOutline: Incomplete | None = ..., - showKeys: Incomplete | None = ..., - spPr: Incomplete | None = ..., - txPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + showHorzBorder: Incomplete | None = None, + showVertBorder: Incomplete | None = None, + showOutline: Incomplete | None = None, + showKeys: Incomplete | None = None, + spPr: Incomplete | None = None, + txPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class PlotArea(Serialisable): @@ -54,13 +54,13 @@ class PlotArea(Serialisable): __elements__: Incomplete def __init__( self, - layout: Incomplete | None = ..., - dTable: Incomplete | None = ..., - spPr: Incomplete | None = ..., - _charts=..., - _axes=..., - extLst: Incomplete | None = ..., + layout: Incomplete | None = None, + dTable: Incomplete | None = None, + spPr: Incomplete | None = None, + _charts=(), + _axes=(), + extLst: Incomplete | None = None, ) -> None: ... - def to_tree(self, tagname: Incomplete | None = ..., idx: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree(self, tagname: Incomplete | None = None, idx: Incomplete | None = None, namespace: Incomplete | None = None): ... @classmethod def from_tree(cls, node): ... diff --git a/stubs/openpyxl/openpyxl/chart/print_settings.pyi b/stubs/openpyxl/openpyxl/chart/print_settings.pyi index 3a1effc45a15..5fb000ca7998 100644 --- a/stubs/openpyxl/openpyxl/chart/print_settings.pyi +++ b/stubs/openpyxl/openpyxl/chart/print_settings.pyi @@ -15,7 +15,7 @@ class PageMargins(Serialisable): header: Incomplete footer: Incomplete def __init__( - self, l: float = ..., r: float = ..., t: int = ..., b: int = ..., header: float = ..., footer: float = ... + self, l: float = 0.75, r: float = 0.75, t: int = 1, b: int = 1, header: float = 0.5, footer: float = 0.5 ) -> None: ... class PrintSettings(Serialisable): @@ -25,5 +25,5 @@ class PrintSettings(Serialisable): pageSetup: Incomplete __elements__: Incomplete def __init__( - self, headerFooter: Incomplete | None = ..., pageMargins: Incomplete | None = ..., pageSetup: Incomplete | None = ... + self, headerFooter: Incomplete | None = None, pageMargins: Incomplete | None = None, pageSetup: Incomplete | None = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/radar_chart.pyi b/stubs/openpyxl/openpyxl/chart/radar_chart.pyi index 21d1ea6685eb..a32595079bc2 100644 --- a/stubs/openpyxl/openpyxl/chart/radar_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/radar_chart.pyi @@ -16,10 +16,10 @@ class RadarChart(ChartBase): __elements__: Incomplete def __init__( self, - radarStyle: str = ..., - varyColors: Incomplete | None = ..., - ser=..., - dLbls: Incomplete | None = ..., - extLst: Incomplete | None = ..., + radarStyle: str = "standard", + varyColors: Incomplete | None = None, + ser=(), + dLbls: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/reference.pyi b/stubs/openpyxl/openpyxl/chart/reference.pyi index b27c3d2aa8e3..10f0473d1a9f 100644 --- a/stubs/openpyxl/openpyxl/chart/reference.pyi +++ b/stubs/openpyxl/openpyxl/chart/reference.pyi @@ -16,12 +16,12 @@ class Reference(Strict): worksheet: Incomplete def __init__( self, - worksheet: Incomplete | None = ..., - min_col: Incomplete | None = ..., - min_row: Incomplete | None = ..., - max_col: Incomplete | None = ..., - max_row: Incomplete | None = ..., - range_string: Incomplete | None = ..., + worksheet: Incomplete | None = None, + min_col: Incomplete | None = None, + min_row: Incomplete | None = None, + max_col: Incomplete | None = None, + max_row: Incomplete | None = None, + range_string: Incomplete | None = None, ) -> None: ... def __len__(self) -> int: ... def __eq__(self, other): ... diff --git a/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi b/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi index 7d2936456ab1..b0a7e49e63c6 100644 --- a/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi @@ -15,10 +15,10 @@ class ScatterChart(ChartBase): __elements__: Incomplete def __init__( self, - scatterStyle: Incomplete | None = ..., - varyColors: Incomplete | None = ..., - ser=..., - dLbls: Incomplete | None = ..., - extLst: Incomplete | None = ..., + scatterStyle: Incomplete | None = None, + varyColors: Incomplete | None = None, + ser=(), + dLbls: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/series.pyi b/stubs/openpyxl/openpyxl/chart/series.pyi index 06167b63c43a..5316058bcaa9 100644 --- a/stubs/openpyxl/openpyxl/chart/series.pyi +++ b/stubs/openpyxl/openpyxl/chart/series.pyi @@ -10,7 +10,7 @@ class SeriesLabel(Serialisable): v: Incomplete value: Incomplete __elements__: Incomplete - def __init__(self, strRef: Incomplete | None = ..., v: Incomplete | None = ...) -> None: ... + def __init__(self, strRef: Incomplete | None = None, v: Incomplete | None = None) -> None: ... class Series(Serialisable): tagname: str @@ -44,29 +44,29 @@ class Series(Serialisable): __elements__: Incomplete def __init__( self, - idx: int = ..., - order: int = ..., - tx: Incomplete | None = ..., - spPr: Incomplete | None = ..., - pictureOptions: Incomplete | None = ..., - dPt=..., - dLbls: Incomplete | None = ..., - trendline: Incomplete | None = ..., - errBars: Incomplete | None = ..., - cat: Incomplete | None = ..., - val: Incomplete | None = ..., - invertIfNegative: Incomplete | None = ..., - shape: Incomplete | None = ..., - xVal: Incomplete | None = ..., - yVal: Incomplete | None = ..., - bubbleSize: Incomplete | None = ..., - bubble3D: Incomplete | None = ..., - marker: Incomplete | None = ..., - smooth: Incomplete | None = ..., - explosion: Incomplete | None = ..., - extLst: Incomplete | None = ..., + idx: int = 0, + order: int = 0, + tx: Incomplete | None = None, + spPr: Incomplete | None = None, + pictureOptions: Incomplete | None = None, + dPt=(), + dLbls: Incomplete | None = None, + trendline: Incomplete | None = None, + errBars: Incomplete | None = None, + cat: Incomplete | None = None, + val: Incomplete | None = None, + invertIfNegative: Incomplete | None = None, + shape: Incomplete | None = None, + xVal: Incomplete | None = None, + yVal: Incomplete | None = None, + bubbleSize: Incomplete | None = None, + bubble3D: Incomplete | None = None, + marker: Incomplete | None = None, + smooth: Incomplete | None = None, + explosion: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... - def to_tree(self, tagname: Incomplete | None = ..., idx: Incomplete | None = ...): ... # type: ignore[override] + def to_tree(self, tagname: Incomplete | None = None, idx: Incomplete | None = None): ... # type: ignore[override] class XYSeries(Series): idx: Incomplete diff --git a/stubs/openpyxl/openpyxl/chart/series_factory.pyi b/stubs/openpyxl/openpyxl/chart/series_factory.pyi index 53243ea2373c..a23b006064ea 100644 --- a/stubs/openpyxl/openpyxl/chart/series_factory.pyi +++ b/stubs/openpyxl/openpyxl/chart/series_factory.pyi @@ -2,8 +2,8 @@ from _typeshed import Incomplete def SeriesFactory( values, - xvalues: Incomplete | None = ..., - zvalues: Incomplete | None = ..., - title: Incomplete | None = ..., - title_from_data: bool = ..., + xvalues: Incomplete | None = None, + zvalues: Incomplete | None = None, + title: Incomplete | None = None, + title_from_data: bool = False, ): ... diff --git a/stubs/openpyxl/openpyxl/chart/shapes.pyi b/stubs/openpyxl/openpyxl/chart/shapes.pyi index debb37a7c063..423b76933ad5 100644 --- a/stubs/openpyxl/openpyxl/chart/shapes.pyi +++ b/stubs/openpyxl/openpyxl/chart/shapes.pyi @@ -22,16 +22,16 @@ class GraphicalProperties(Serialisable): __elements__: Incomplete def __init__( self, - bwMode: Incomplete | None = ..., - xfrm: Incomplete | None = ..., - noFill: Incomplete | None = ..., - solidFill: Incomplete | None = ..., - gradFill: Incomplete | None = ..., - pattFill: Incomplete | None = ..., - ln: Incomplete | None = ..., - scene3d: Incomplete | None = ..., - custGeom: Incomplete | None = ..., - prstGeom: Incomplete | None = ..., - sp3d: Incomplete | None = ..., - extLst: Incomplete | None = ..., + bwMode: Incomplete | None = None, + xfrm: Incomplete | None = None, + noFill: Incomplete | None = None, + solidFill: Incomplete | None = None, + gradFill: Incomplete | None = None, + pattFill: Incomplete | None = None, + ln: Incomplete | None = None, + scene3d: Incomplete | None = None, + custGeom: Incomplete | None = None, + prstGeom: Incomplete | None = None, + sp3d: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/stock_chart.pyi b/stubs/openpyxl/openpyxl/chart/stock_chart.pyi index 41318473cab4..1b72ff42b020 100644 --- a/stubs/openpyxl/openpyxl/chart/stock_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/stock_chart.pyi @@ -16,11 +16,11 @@ class StockChart(ChartBase): __elements__: Incomplete def __init__( self, - ser=..., - dLbls: Incomplete | None = ..., - dropLines: Incomplete | None = ..., - hiLowLines: Incomplete | None = ..., - upDownBars: Incomplete | None = ..., - extLst: Incomplete | None = ..., + ser=(), + dLbls: Incomplete | None = None, + dropLines: Incomplete | None = None, + hiLowLines: Incomplete | None = None, + upDownBars: Incomplete | None = None, + extLst: Incomplete | None = None, **kw, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/surface_chart.pyi b/stubs/openpyxl/openpyxl/chart/surface_chart.pyi index 69734122aca3..bc32897e601d 100644 --- a/stubs/openpyxl/openpyxl/chart/surface_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/surface_chart.pyi @@ -12,20 +12,20 @@ class BandFormat(Serialisable): spPr: Incomplete graphicalProperties: Incomplete __elements__: Incomplete - def __init__(self, idx: int = ..., spPr: Incomplete | None = ...) -> None: ... + def __init__(self, idx: int = 0, spPr: Incomplete | None = None) -> None: ... class BandFormatList(Serialisable): tagname: str bandFmt: Incomplete __elements__: Incomplete - def __init__(self, bandFmt=...) -> None: ... + def __init__(self, bandFmt=()) -> None: ... class _SurfaceChartBase(ChartBase): wireframe: Incomplete ser: Incomplete bandFmts: Incomplete __elements__: Incomplete - def __init__(self, wireframe: Incomplete | None = ..., ser=..., bandFmts: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, wireframe: Incomplete | None = None, ser=(), bandFmts: Incomplete | None = None, **kw) -> None: ... @property @abstractmethod def tagname(self) -> str: ... diff --git a/stubs/openpyxl/openpyxl/chart/text.pyi b/stubs/openpyxl/openpyxl/chart/text.pyi index c4420217d3a0..5244666e7727 100644 --- a/stubs/openpyxl/openpyxl/chart/text.pyi +++ b/stubs/openpyxl/openpyxl/chart/text.pyi @@ -11,7 +11,7 @@ class RichText(Serialisable): paragraphs: Incomplete __elements__: Incomplete def __init__( - self, bodyPr: Incomplete | None = ..., lstStyle: Incomplete | None = ..., p: Incomplete | None = ... + self, bodyPr: Incomplete | None = None, lstStyle: Incomplete | None = None, p: Incomplete | None = None ) -> None: ... class Text(Serialisable): @@ -19,5 +19,5 @@ class Text(Serialisable): strRef: Incomplete rich: Incomplete __elements__: Incomplete - def __init__(self, strRef: Incomplete | None = ..., rich: Incomplete | None = ...) -> None: ... - def to_tree(self, tagname: Incomplete | None = ..., idx: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def __init__(self, strRef: Incomplete | None = None, rich: Incomplete | None = None) -> None: ... + def to_tree(self, tagname: Incomplete | None = None, idx: Incomplete | None = None, namespace: Incomplete | None = None): ... diff --git a/stubs/openpyxl/openpyxl/chart/title.pyi b/stubs/openpyxl/openpyxl/chart/title.pyi index d12c2900ce75..e7772ee2bba9 100644 --- a/stubs/openpyxl/openpyxl/chart/title.pyi +++ b/stubs/openpyxl/openpyxl/chart/title.pyi @@ -17,12 +17,12 @@ class Title(Serialisable): __elements__: Incomplete def __init__( self, - tx: Incomplete | None = ..., - layout: Incomplete | None = ..., - overlay: Incomplete | None = ..., - spPr: Incomplete | None = ..., - txPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + tx: Incomplete | None = None, + layout: Incomplete | None = None, + overlay: Incomplete | None = None, + spPr: Incomplete | None = None, + txPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... def title_maker(text): ... diff --git a/stubs/openpyxl/openpyxl/chart/trendline.pyi b/stubs/openpyxl/openpyxl/chart/trendline.pyi index 5e5e21a83699..2c7f1f4e7c4a 100644 --- a/stubs/openpyxl/openpyxl/chart/trendline.pyi +++ b/stubs/openpyxl/openpyxl/chart/trendline.pyi @@ -15,12 +15,12 @@ class TrendlineLabel(Serialisable): __elements__: Incomplete def __init__( self, - layout: Incomplete | None = ..., - tx: Incomplete | None = ..., - numFmt: Incomplete | None = ..., - spPr: Incomplete | None = ..., - txPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + layout: Incomplete | None = None, + tx: Incomplete | None = None, + numFmt: Incomplete | None = None, + spPr: Incomplete | None = None, + txPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Trendline(Serialisable): @@ -41,16 +41,16 @@ class Trendline(Serialisable): __elements__: Incomplete def __init__( self, - name: Incomplete | None = ..., - spPr: Incomplete | None = ..., - trendlineType: str = ..., - order: Incomplete | None = ..., - period: Incomplete | None = ..., - forward: Incomplete | None = ..., - backward: Incomplete | None = ..., - intercept: Incomplete | None = ..., - dispRSqr: Incomplete | None = ..., - dispEq: Incomplete | None = ..., - trendlineLbl: Incomplete | None = ..., - extLst: Incomplete | None = ..., + name: Incomplete | None = None, + spPr: Incomplete | None = None, + trendlineType: str = "linear", + order: Incomplete | None = None, + period: Incomplete | None = None, + forward: Incomplete | None = None, + backward: Incomplete | None = None, + intercept: Incomplete | None = None, + dispRSqr: Incomplete | None = None, + dispEq: Incomplete | None = None, + trendlineLbl: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/updown_bars.pyi b/stubs/openpyxl/openpyxl/chart/updown_bars.pyi index 89e21c27e7c5..864cfa874402 100644 --- a/stubs/openpyxl/openpyxl/chart/updown_bars.pyi +++ b/stubs/openpyxl/openpyxl/chart/updown_bars.pyi @@ -11,8 +11,8 @@ class UpDownBars(Serialisable): __elements__: Incomplete def __init__( self, - gapWidth: int = ..., - upBars: Incomplete | None = ..., - downBars: Incomplete | None = ..., - extLst: Incomplete | None = ..., + gapWidth: int = 150, + upBars: Incomplete | None = None, + downBars: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index aa68b8198be5..fb70b372f88d 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -26,21 +26,21 @@ class Chartsheet(_WorkbookChild, Serialisable): __attrs__: Incomplete def __init__( self, - sheetPr: Incomplete | None = ..., - sheetViews: Incomplete | None = ..., - sheetProtection: Incomplete | None = ..., - customSheetViews: Incomplete | None = ..., - pageMargins: Incomplete | None = ..., - pageSetup: Incomplete | None = ..., - headerFooter: Incomplete | None = ..., - drawing: Incomplete | None = ..., - drawingHF: Incomplete | None = ..., - picture: Incomplete | None = ..., - webPublishItems: Incomplete | None = ..., - extLst: Incomplete | None = ..., - parent: Incomplete | None = ..., - title: str | _Decodable = ..., - sheet_state: _SheetVisibilityType = ..., + sheetPr: Incomplete | None = None, + sheetViews: Incomplete | None = None, + sheetProtection: Incomplete | None = None, + customSheetViews: Incomplete | None = None, + pageMargins: Incomplete | None = None, + pageSetup: Incomplete | None = None, + headerFooter: Incomplete | None = None, + drawing: Incomplete | None = None, + drawingHF: Incomplete | None = None, + picture: Incomplete | None = None, + webPublishItems: Incomplete | None = None, + extLst: Incomplete | None = None, + parent: Incomplete | None = None, + title: str | _Decodable = "", + sheet_state: _SheetVisibilityType = "visible", ) -> None: ... def add_chart(self, chart) -> None: ... def to_tree(self): ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi index 3c5a9ef8f6ff..8efba2a442b7 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi @@ -15,17 +15,17 @@ class CustomChartsheetView(Serialisable): __elements__: Incomplete def __init__( self, - guid: Incomplete | None = ..., - scale: Incomplete | None = ..., - state: _SheetVisibilityType = ..., - zoomToFit: Incomplete | None = ..., - pageMargins: Incomplete | None = ..., - pageSetup: Incomplete | None = ..., - headerFooter: Incomplete | None = ..., + guid: Incomplete | None = None, + scale: Incomplete | None = None, + state: _SheetVisibilityType = "visible", + zoomToFit: Incomplete | None = None, + pageMargins: Incomplete | None = None, + pageSetup: Incomplete | None = None, + headerFooter: Incomplete | None = None, ) -> None: ... class CustomChartsheetViews(Serialisable): tagname: str customSheetView: Incomplete __elements__: Incomplete - def __init__(self, customSheetView: Incomplete | None = ...) -> None: ... + def __init__(self, customSheetView: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/properties.pyi b/stubs/openpyxl/openpyxl/chartsheet/properties.pyi index 07bcffc0b230..ada1bc5ff3bf 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/properties.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/properties.pyi @@ -9,5 +9,5 @@ class ChartsheetProperties(Serialisable): tabColor: Incomplete __elements__: tuple[str, ...] def __init__( - self, published: Incomplete | None = ..., codeName: Incomplete | None = ..., tabColor: Incomplete | None = ... + self, published: Incomplete | None = None, codeName: Incomplete | None = None, tabColor: Incomplete | None = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/protection.pyi b/stubs/openpyxl/openpyxl/chartsheet/protection.pyi index 1565a57d95f1..8b6220b8992e 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/protection.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/protection.pyi @@ -15,11 +15,11 @@ class ChartsheetProtection(Serialisable, _Protected): password: Incomplete def __init__( self, - content: Incomplete | None = ..., - objects: Incomplete | None = ..., - hashValue: Incomplete | None = ..., - spinCount: Incomplete | None = ..., - saltValue: Incomplete | None = ..., - algorithmName: Incomplete | None = ..., - password: Incomplete | None = ..., + content: Incomplete | None = None, + objects: Incomplete | None = None, + hashValue: Incomplete | None = None, + spinCount: Incomplete | None = None, + saltValue: Incomplete | None = None, + algorithmName: Incomplete | None = None, + password: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/publish.pyi b/stubs/openpyxl/openpyxl/chartsheet/publish.pyi index deb8575ec1e6..1e106406023d 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/publish.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/publish.pyi @@ -14,14 +14,14 @@ class WebPublishItem(Serialisable): autoRepublish: Incomplete def __init__( self, - id: Incomplete | None = ..., - divId: Incomplete | None = ..., - sourceType: Incomplete | None = ..., - sourceRef: Incomplete | None = ..., - sourceObject: Incomplete | None = ..., - destinationFile: Incomplete | None = ..., - title: Incomplete | None = ..., - autoRepublish: Incomplete | None = ..., + id: Incomplete | None = None, + divId: Incomplete | None = None, + sourceType: Incomplete | None = None, + sourceRef: Incomplete | None = None, + sourceObject: Incomplete | None = None, + destinationFile: Incomplete | None = None, + title: Incomplete | None = None, + autoRepublish: Incomplete | None = None, ) -> None: ... class WebPublishItems(Serialisable): @@ -29,4 +29,4 @@ class WebPublishItems(Serialisable): count: Incomplete webPublishItem: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., webPublishItem: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, webPublishItem: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/relation.pyi b/stubs/openpyxl/openpyxl/chartsheet/relation.pyi index 5c4cf80d6c94..903c5f2fbbd8 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/relation.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/relation.pyi @@ -47,23 +47,23 @@ class DrawingHF(Serialisable): rightFooterFirstPage: Incomplete def __init__( self, - id: Incomplete | None = ..., - lho: Incomplete | None = ..., - lhe: Incomplete | None = ..., - lhf: Incomplete | None = ..., - cho: Incomplete | None = ..., - che: Incomplete | None = ..., - chf: Incomplete | None = ..., - rho: Incomplete | None = ..., - rhe: Incomplete | None = ..., - rhf: Incomplete | None = ..., - lfo: Incomplete | None = ..., - lfe: Incomplete | None = ..., - lff: Incomplete | None = ..., - cfo: Incomplete | None = ..., - cfe: Incomplete | None = ..., - cff: Incomplete | None = ..., - rfo: Incomplete | None = ..., - rfe: Incomplete | None = ..., - rff: Incomplete | None = ..., + id: Incomplete | None = None, + lho: Incomplete | None = None, + lhe: Incomplete | None = None, + lhf: Incomplete | None = None, + cho: Incomplete | None = None, + che: Incomplete | None = None, + chf: Incomplete | None = None, + rho: Incomplete | None = None, + rhe: Incomplete | None = None, + rhf: Incomplete | None = None, + lfo: Incomplete | None = None, + lfe: Incomplete | None = None, + lff: Incomplete | None = None, + cfo: Incomplete | None = None, + cfe: Incomplete | None = None, + cff: Incomplete | None = None, + rfo: Incomplete | None = None, + rfe: Incomplete | None = None, + rff: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/views.pyi b/stubs/openpyxl/openpyxl/chartsheet/views.pyi index 772090b6caa5..d71696aa698f 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/views.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/views.pyi @@ -12,11 +12,11 @@ class ChartsheetView(Serialisable): __elements__: Incomplete def __init__( self, - tabSelected: Incomplete | None = ..., - zoomScale: Incomplete | None = ..., - workbookViewId: int = ..., - zoomToFit: Incomplete | None = ..., - extLst: Incomplete | None = ..., + tabSelected: Incomplete | None = None, + zoomScale: Incomplete | None = None, + workbookViewId: int = 0, + zoomToFit: Incomplete | None = True, + extLst: Incomplete | None = None, ) -> None: ... class ChartsheetViewList(Serialisable): @@ -24,4 +24,4 @@ class ChartsheetViewList(Serialisable): sheetView: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, sheetView: Incomplete | None = ..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, sheetView: Incomplete | None = None, extLst: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/comments/author.pyi b/stubs/openpyxl/openpyxl/comments/author.pyi index e80cfa914cae..cda8676b348a 100644 --- a/stubs/openpyxl/openpyxl/comments/author.pyi +++ b/stubs/openpyxl/openpyxl/comments/author.pyi @@ -6,4 +6,4 @@ class AuthorList(Serialisable): tagname: str author: Incomplete authors: Incomplete - def __init__(self, author=...) -> None: ... + def __init__(self, author=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi b/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi index 50dcef57a672..b2f7de628c10 100644 --- a/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi +++ b/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi @@ -22,22 +22,22 @@ class Properties(Serialisable): anchor: Incomplete def __init__( self, - locked: Incomplete | None = ..., - defaultSize: Incomplete | None = ..., - _print: Incomplete | None = ..., - disabled: Incomplete | None = ..., - uiObject: Incomplete | None = ..., - autoFill: Incomplete | None = ..., - autoLine: Incomplete | None = ..., - altText: Incomplete | None = ..., - textHAlign: Incomplete | None = ..., - textVAlign: Incomplete | None = ..., - lockText: Incomplete | None = ..., - justLastX: Incomplete | None = ..., - autoScale: Incomplete | None = ..., - rowHidden: Incomplete | None = ..., - colHidden: Incomplete | None = ..., - anchor: Incomplete | None = ..., + locked: Incomplete | None = None, + defaultSize: Incomplete | None = None, + _print: Incomplete | None = None, + disabled: Incomplete | None = None, + uiObject: Incomplete | None = None, + autoFill: Incomplete | None = None, + autoLine: Incomplete | None = None, + altText: Incomplete | None = None, + textHAlign: Incomplete | None = None, + textVAlign: Incomplete | None = None, + lockText: Incomplete | None = None, + justLastX: Incomplete | None = None, + autoScale: Incomplete | None = None, + rowHidden: Incomplete | None = None, + colHidden: Incomplete | None = None, + anchor: Incomplete | None = None, ) -> None: ... class CommentRecord(Serialisable): @@ -55,15 +55,15 @@ class CommentRecord(Serialisable): width: Incomplete def __init__( self, - ref: str = ..., - authorId: int = ..., - guid: Incomplete | None = ..., - shapeId: int = ..., - text: Incomplete | None = ..., - commentPr: Incomplete | None = ..., - author: Incomplete | None = ..., - height: int = ..., - width: int = ..., + ref: str = "", + authorId: int = 0, + guid: Incomplete | None = None, + shapeId: int = 0, + text: Incomplete | None = None, + commentPr: Incomplete | None = None, + author: Incomplete | None = None, + height: int = 79, + width: int = 144, ) -> None: ... @classmethod def from_cell(cls, cell): ... @@ -78,13 +78,13 @@ class CommentSheet(Serialisable): mime_type: str __elements__: Incomplete def __init__( - self, authors: Incomplete | None = ..., commentList: Incomplete | None = ..., extLst: Incomplete | None = ... + self, authors: Incomplete | None = None, commentList: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... def to_tree(self): ... @property def comments(self) -> Generator[Incomplete, None, None]: ... @classmethod def from_comments(cls, comments): ... - def write_shapes(self, vml: Incomplete | None = ...): ... + def write_shapes(self, vml: Incomplete | None = None): ... @property def path(self): ... diff --git a/stubs/openpyxl/openpyxl/comments/comments.pyi b/stubs/openpyxl/openpyxl/comments/comments.pyi index b751879a2f0b..e529f78da6d8 100644 --- a/stubs/openpyxl/openpyxl/comments/comments.pyi +++ b/stubs/openpyxl/openpyxl/comments/comments.pyi @@ -5,7 +5,7 @@ class Comment: author: Incomplete height: Incomplete width: Incomplete - def __init__(self, text, author, height: int = ..., width: int = ...) -> None: ... + def __init__(self, text, author, height: int = 79, width: int = 144) -> None: ... @property def parent(self): ... def __eq__(self, other): ... diff --git a/stubs/openpyxl/openpyxl/descriptors/base.pyi b/stubs/openpyxl/openpyxl/descriptors/base.pyi index ebbd393a9660..7b587535795c 100644 --- a/stubs/openpyxl/openpyxl/descriptors/base.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/base.pyi @@ -10,7 +10,7 @@ _BoolSetter: TypeAlias = object # noqa: Y047 class Descriptor: name: Incomplete - def __init__(self, name: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, name: Incomplete | None = None, **kw) -> None: ... def __set__(self, instance, value) -> None: ... class Typed(Descriptor): @@ -40,11 +40,11 @@ class MinMax(Min, Max): ... class Set(Descriptor): __doc__: Incomplete - def __init__(self, name: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, name: Incomplete | None = None, **kw) -> None: ... def __set__(self, instance, value) -> None: ... class NoneSet(Set): - def __init__(self, name: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, name: Incomplete | None = None, **kw) -> None: ... def __set__(self, instance, value) -> None: ... class Integer(Convertible): @@ -69,11 +69,11 @@ class Tuple(Typed): expected_type: type[tuple[Any, ...]] class Length(Descriptor): - def __init__(self, name: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, name: Incomplete | None = None, **kw) -> None: ... def __set__(self, instance, value) -> None: ... class Default(Typed): - def __init__(self, name: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, name: Incomplete | None = None, **kw) -> None: ... def __call__(self): ... class Alias(Descriptor): @@ -85,7 +85,7 @@ class Alias(Descriptor): class MatchPattern(Descriptor): allow_none: bool test_pattern: Incomplete - def __init__(self, name: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, name: Incomplete | None = None, **kw) -> None: ... def __set__(self, instance, value) -> None: ... class DateTime(Typed): diff --git a/stubs/openpyxl/openpyxl/descriptors/excel.pyi b/stubs/openpyxl/openpyxl/descriptors/excel.pyi index 1d7c80f63d02..dfc212e86d02 100644 --- a/stubs/openpyxl/openpyxl/descriptors/excel.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/excel.pyi @@ -24,11 +24,11 @@ class Percentage(MinMax): class Extension(Serialisable): uri: Incomplete - def __init__(self, uri: Incomplete | None = ...) -> None: ... + def __init__(self, uri: Incomplete | None = None) -> None: ... class ExtensionList(Serialisable): ext: Incomplete - def __init__(self, ext=...) -> None: ... + def __init__(self, ext=()) -> None: ... class Relation(String): namespace: Incomplete diff --git a/stubs/openpyxl/openpyxl/descriptors/namespace.pyi b/stubs/openpyxl/openpyxl/descriptors/namespace.pyi index 2d64ce84b7d1..db3a017fc2cc 100644 --- a/stubs/openpyxl/openpyxl/descriptors/namespace.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/namespace.pyi @@ -1,3 +1,3 @@ from _typeshed import Incomplete -def namespaced(obj, tagname, namespace: Incomplete | None = ...): ... +def namespaced(obj, tagname, namespace: Incomplete | None = None): ... diff --git a/stubs/openpyxl/openpyxl/descriptors/nested.pyi b/stubs/openpyxl/openpyxl/descriptors/nested.pyi index f4902e657736..dbd1cbf72497 100644 --- a/stubs/openpyxl/openpyxl/descriptors/nested.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/nested.pyi @@ -7,13 +7,17 @@ class Nested(Descriptor): attribute: str def __set__(self, instance, value) -> None: ... def from_tree(self, node): ... - def to_tree(self, tagname: Incomplete | None = ..., value: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree( + self, tagname: Incomplete | None = None, value: Incomplete | None = None, namespace: Incomplete | None = None + ): ... class NestedValue(Nested, Convertible): ... class NestedText(NestedValue): def from_tree(self, node): ... - def to_tree(self, tagname: Incomplete | None = ..., value: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree( + self, tagname: Incomplete | None = None, value: Incomplete | None = None, namespace: Incomplete | None = None + ): ... class NestedFloat(NestedValue, Float): ... class NestedInteger(NestedValue, Integer): ... @@ -28,4 +32,6 @@ class NestedMinMax(Nested, MinMax): ... class EmptyTag(Nested, Bool): def from_tree(self, node): ... - def to_tree(self, tagname: Incomplete | None = ..., value: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree( + self, tagname: Incomplete | None = None, value: Incomplete | None = None, namespace: Incomplete | None = None + ): ... diff --git a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi index 7382d9887495..7582715a8ea7 100644 --- a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi @@ -16,21 +16,21 @@ class Sequence(Descriptor): idx_base: int unique: bool def __set__(self, instance, seq) -> None: ... - def to_tree(self, tagname, obj, namespace: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = None) -> Generator[Incomplete, None, None]: ... class ValueSequence(Sequence): attribute: str - def to_tree(self, tagname, obj, namespace: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = None) -> Generator[Incomplete, None, None]: ... def from_tree(self, node): ... class NestedSequence(Sequence): count: bool - def to_tree(self, tagname, obj, namespace: Incomplete | None = ...): ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = None): ... def from_tree(self, node): ... class MultiSequence(Sequence): def __set__(self, instance, seq) -> None: ... - def to_tree(self, tagname, obj, namespace: Incomplete | None = ...) -> Generator[Incomplete, None, None]: ... + def to_tree(self, tagname, obj, namespace: Incomplete | None = None) -> Generator[Incomplete, None, None]: ... class MultiSequencePart(Alias, Generic[_TType]): expected_type: _TType diff --git a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi index f309f6a4ccfe..b2b279e4fb4f 100644 --- a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi @@ -18,7 +18,7 @@ class Serialisable(_Serialiasable): namespace: Incomplete @classmethod def from_tree(cls, node): ... - def to_tree(self, tagname: Incomplete | None = ..., idx: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree(self, tagname: Incomplete | None = None, idx: Incomplete | None = None, namespace: Incomplete | None = None): ... def __iter__(self): ... def __eq__(self, other): ... def __ne__(self, other): ... diff --git a/stubs/openpyxl/openpyxl/drawing/colors.pyi b/stubs/openpyxl/openpyxl/drawing/colors.pyi index aaf77fd0f7c5..9f90ab5c2edf 100644 --- a/stubs/openpyxl/openpyxl/drawing/colors.pyi +++ b/stubs/openpyxl/openpyxl/drawing/colors.pyi @@ -44,36 +44,36 @@ class SystemColor(Serialisable): __elements__: Incomplete def __init__( self, - val: str = ..., - lastClr: Incomplete | None = ..., - tint: Incomplete | None = ..., - shade: Incomplete | None = ..., - comp: Incomplete | None = ..., - inv: Incomplete | None = ..., - gray: Incomplete | None = ..., - alpha: Incomplete | None = ..., - alphaOff: Incomplete | None = ..., - alphaMod: Incomplete | None = ..., - hue: Incomplete | None = ..., - hueOff: Incomplete | None = ..., - hueMod: Incomplete | None = ..., - sat: Incomplete | None = ..., - satOff: Incomplete | None = ..., - satMod: Incomplete | None = ..., - lum: Incomplete | None = ..., - lumOff: Incomplete | None = ..., - lumMod: Incomplete | None = ..., - red: Incomplete | None = ..., - redOff: Incomplete | None = ..., - redMod: Incomplete | None = ..., - green: Incomplete | None = ..., - greenOff: Incomplete | None = ..., - greenMod: Incomplete | None = ..., - blue: Incomplete | None = ..., - blueOff: Incomplete | None = ..., - blueMod: Incomplete | None = ..., - gamma: Incomplete | None = ..., - invGamma: Incomplete | None = ..., + val: str = "windowText", + lastClr: Incomplete | None = None, + tint: Incomplete | None = None, + shade: Incomplete | None = None, + comp: Incomplete | None = None, + inv: Incomplete | None = None, + gray: Incomplete | None = None, + alpha: Incomplete | None = None, + alphaOff: Incomplete | None = None, + alphaMod: Incomplete | None = None, + hue: Incomplete | None = None, + hueOff: Incomplete | None = None, + hueMod: Incomplete | None = None, + sat: Incomplete | None = None, + satOff: Incomplete | None = None, + satMod: Incomplete | None = None, + lum: Incomplete | None = None, + lumOff: Incomplete | None = None, + lumMod: Incomplete | None = None, + red: Incomplete | None = None, + redOff: Incomplete | None = None, + redMod: Incomplete | None = None, + green: Incomplete | None = None, + greenOff: Incomplete | None = None, + greenMod: Incomplete | None = None, + blue: Incomplete | None = None, + blueOff: Incomplete | None = None, + blueMod: Incomplete | None = None, + gamma: Incomplete | None = None, + invGamma: Incomplete | None = None, ) -> None: ... class HSLColor(Serialisable): @@ -81,14 +81,14 @@ class HSLColor(Serialisable): hue: Incomplete sat: Incomplete lum: Incomplete - def __init__(self, hue: Incomplete | None = ..., sat: Incomplete | None = ..., lum: Incomplete | None = ...) -> None: ... + def __init__(self, hue: Incomplete | None = None, sat: Incomplete | None = None, lum: Incomplete | None = None) -> None: ... class RGBPercent(Serialisable): tagname: str r: Incomplete g: Incomplete b: Incomplete - def __init__(self, r: Incomplete | None = ..., g: Incomplete | None = ..., b: Incomplete | None = ...) -> None: ... + def __init__(self, r: Incomplete | None = None, g: Incomplete | None = None, b: Incomplete | None = None) -> None: ... class SchemeColor(Serialisable): tagname: str @@ -125,35 +125,35 @@ class SchemeColor(Serialisable): __elements__: Incomplete def __init__( self, - tint: Incomplete | None = ..., - shade: Incomplete | None = ..., - comp: Incomplete | None = ..., - inv: Incomplete | None = ..., - gray: Incomplete | None = ..., - alpha: Incomplete | None = ..., - alphaOff: Incomplete | None = ..., - alphaMod: Incomplete | None = ..., - hue: Incomplete | None = ..., - hueOff: Incomplete | None = ..., - hueMod: Incomplete | None = ..., - sat: Incomplete | None = ..., - satOff: Incomplete | None = ..., - satMod: Incomplete | None = ..., - lum: Incomplete | None = ..., - lumOff: Incomplete | None = ..., - lumMod: Incomplete | None = ..., - red: Incomplete | None = ..., - redOff: Incomplete | None = ..., - redMod: Incomplete | None = ..., - green: Incomplete | None = ..., - greenOff: Incomplete | None = ..., - greenMod: Incomplete | None = ..., - blue: Incomplete | None = ..., - blueOff: Incomplete | None = ..., - blueMod: Incomplete | None = ..., - gamma: Incomplete | None = ..., - invGamma: Incomplete | None = ..., - val: Incomplete | None = ..., + tint: Incomplete | None = None, + shade: Incomplete | None = None, + comp: Incomplete | None = None, + inv: Incomplete | None = None, + gray: Incomplete | None = None, + alpha: Incomplete | None = None, + alphaOff: Incomplete | None = None, + alphaMod: Incomplete | None = None, + hue: Incomplete | None = None, + hueOff: Incomplete | None = None, + hueMod: Incomplete | None = None, + sat: Incomplete | None = None, + satOff: Incomplete | None = None, + satMod: Incomplete | None = None, + lum: Incomplete | None = None, + lumOff: Incomplete | None = None, + lumMod: Incomplete | None = None, + red: Incomplete | None = None, + redOff: Incomplete | None = None, + redMod: Incomplete | None = None, + green: Incomplete | None = None, + greenOff: Incomplete | None = None, + greenMod: Incomplete | None = None, + blue: Incomplete | None = None, + blueOff: Incomplete | None = None, + blueMod: Incomplete | None = None, + gamma: Incomplete | None = None, + invGamma: Incomplete | None = None, + val: Incomplete | None = None, ) -> None: ... class ColorChoice(Serialisable): @@ -170,12 +170,12 @@ class ColorChoice(Serialisable): __elements__: Incomplete def __init__( self, - scrgbClr: Incomplete | None = ..., - srgbClr: Incomplete | None = ..., - hslClr: Incomplete | None = ..., - sysClr: Incomplete | None = ..., - schemeClr: Incomplete | None = ..., - prstClr: Incomplete | None = ..., + scrgbClr: Incomplete | None = None, + srgbClr: Incomplete | None = None, + hslClr: Incomplete | None = None, + sysClr: Incomplete | None = None, + schemeClr: Incomplete | None = None, + prstClr: Incomplete | None = None, ) -> None: ... class ColorMapping(Serialisable): @@ -195,19 +195,19 @@ class ColorMapping(Serialisable): extLst: Incomplete def __init__( self, - bg1: str = ..., - tx1: str = ..., - bg2: str = ..., - tx2: str = ..., - accent1: str = ..., - accent2: str = ..., - accent3: str = ..., - accent4: str = ..., - accent5: str = ..., - accent6: str = ..., - hlink: str = ..., - folHlink: str = ..., - extLst: Incomplete | None = ..., + bg1: str = "lt1", + tx1: str = "dk1", + bg2: str = "lt2", + tx2: str = "dk2", + accent1: str = "accent1", + accent2: str = "accent2", + accent3: str = "accent3", + accent4: str = "accent4", + accent5: str = "accent5", + accent6: str = "accent6", + hlink: str = "hlink", + folHlink: str = "folHlink", + extLst: Incomplete | None = None, ) -> None: ... class ColorChoiceDescriptor(Typed): diff --git a/stubs/openpyxl/openpyxl/drawing/connector.pyi b/stubs/openpyxl/openpyxl/drawing/connector.pyi index 926b416c2db5..9d5b988163a2 100644 --- a/stubs/openpyxl/openpyxl/drawing/connector.pyi +++ b/stubs/openpyxl/openpyxl/drawing/connector.pyi @@ -5,11 +5,11 @@ from openpyxl.descriptors.serialisable import Serialisable class Connection(Serialisable): id: Incomplete idx: Incomplete - def __init__(self, id: Incomplete | None = ..., idx: Incomplete | None = ...) -> None: ... + def __init__(self, id: Incomplete | None = None, idx: Incomplete | None = None) -> None: ... class ConnectorLocking(Serialisable): extLst: Incomplete - def __init__(self, extLst: Incomplete | None = ...) -> None: ... + def __init__(self, extLst: Incomplete | None = None) -> None: ... class NonVisualConnectorProperties(Serialisable): cxnSpLocks: Incomplete @@ -18,17 +18,17 @@ class NonVisualConnectorProperties(Serialisable): extLst: Incomplete def __init__( self, - cxnSpLocks: Incomplete | None = ..., - stCxn: Incomplete | None = ..., - endCxn: Incomplete | None = ..., - extLst: Incomplete | None = ..., + cxnSpLocks: Incomplete | None = None, + stCxn: Incomplete | None = None, + endCxn: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class ConnectorNonVisual(Serialisable): cNvPr: Incomplete cNvCxnSpPr: Incomplete __elements__: Incomplete - def __init__(self, cNvPr: Incomplete | None = ..., cNvCxnSpPr: Incomplete | None = ...) -> None: ... + def __init__(self, cNvPr: Incomplete | None = None, cNvCxnSpPr: Incomplete | None = None) -> None: ... class ConnectorShape(Serialisable): tagname: str @@ -39,18 +39,18 @@ class ConnectorShape(Serialisable): fPublished: Incomplete def __init__( self, - nvCxnSpPr: Incomplete | None = ..., - spPr: Incomplete | None = ..., - style: Incomplete | None = ..., - macro: Incomplete | None = ..., - fPublished: Incomplete | None = ..., + nvCxnSpPr: Incomplete | None = None, + spPr: Incomplete | None = None, + style: Incomplete | None = None, + macro: Incomplete | None = None, + fPublished: Incomplete | None = None, ) -> None: ... class ShapeMeta(Serialisable): tagname: str cNvPr: Incomplete cNvSpPr: Incomplete - def __init__(self, cNvPr: Incomplete | None = ..., cNvSpPr: Incomplete | None = ...) -> None: ... + def __init__(self, cNvPr: Incomplete | None = None, cNvSpPr: Incomplete | None = None) -> None: ... class Shape(Serialisable): macro: Incomplete @@ -65,12 +65,12 @@ class Shape(Serialisable): txBody: Incomplete def __init__( self, - macro: Incomplete | None = ..., - textlink: Incomplete | None = ..., - fPublished: Incomplete | None = ..., - fLocksText: Incomplete | None = ..., - nvSpPr: Incomplete | None = ..., - spPr: Incomplete | None = ..., - style: Incomplete | None = ..., - txBody: Incomplete | None = ..., + macro: Incomplete | None = None, + textlink: Incomplete | None = None, + fPublished: Incomplete | None = None, + fLocksText: Incomplete | None = None, + nvSpPr: Incomplete | None = None, + spPr: Incomplete | None = None, + style: Incomplete | None = None, + txBody: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/effect.pyi b/stubs/openpyxl/openpyxl/drawing/effect.pyi index 58b6e09e79f4..1e340241a007 100644 --- a/stubs/openpyxl/openpyxl/drawing/effect.pyi +++ b/stubs/openpyxl/openpyxl/drawing/effect.pyi @@ -8,26 +8,26 @@ class TintEffect(Serialisable): tagname: str hue: Incomplete amt: Incomplete - def __init__(self, hue: int = ..., amt: int = ...) -> None: ... + def __init__(self, hue: int = 0, amt: int = 0) -> None: ... class LuminanceEffect(Serialisable): tagname: str bright: Incomplete contrast: Incomplete - def __init__(self, bright: int = ..., contrast: int = ...) -> None: ... + def __init__(self, bright: int = 0, contrast: int = 0) -> None: ... class HSLEffect(Serialisable): hue: Incomplete sat: Incomplete lum: Incomplete - def __init__(self, hue: Incomplete | None = ..., sat: Incomplete | None = ..., lum: Incomplete | None = ...) -> None: ... + def __init__(self, hue: Incomplete | None = None, sat: Incomplete | None = None, lum: Incomplete | None = None) -> None: ... class GrayscaleEffect(Serialisable): tagname: str class FillOverlayEffect(Serialisable): blend: Incomplete - def __init__(self, blend: Incomplete | None = ...) -> None: ... + def __init__(self, blend: Incomplete | None = None) -> None: ... class DuotoneEffect(Serialisable): ... class ColorReplaceEffect(Serialisable): ... @@ -38,34 +38,34 @@ class ColorChangeEffect(Serialisable): clrFrom: Incomplete clrTo: Incomplete def __init__( - self, useA: Incomplete | None = ..., clrFrom: Incomplete | None = ..., clrTo: Incomplete | None = ... + self, useA: Incomplete | None = None, clrFrom: Incomplete | None = None, clrTo: Incomplete | None = None ) -> None: ... class BlurEffect(Serialisable): rad: Incomplete grow: Incomplete - def __init__(self, rad: Incomplete | None = ..., grow: Incomplete | None = ...) -> None: ... + def __init__(self, rad: Incomplete | None = None, grow: Incomplete | None = None) -> None: ... class BiLevelEffect(Serialisable): thresh: Incomplete - def __init__(self, thresh: Incomplete | None = ...) -> None: ... + def __init__(self, thresh: Incomplete | None = None) -> None: ... class AlphaReplaceEffect(Serialisable): a: Incomplete - def __init__(self, a: Incomplete | None = ...) -> None: ... + def __init__(self, a: Incomplete | None = None) -> None: ... class AlphaModulateFixedEffect(Serialisable): amt: Incomplete - def __init__(self, amt: Incomplete | None = ...) -> None: ... + def __init__(self, amt: Incomplete | None = None) -> None: ... class EffectContainer(Serialisable): type: Incomplete name: Incomplete - def __init__(self, type: Incomplete | None = ..., name: Incomplete | None = ...) -> None: ... + def __init__(self, type: Incomplete | None = None, name: Incomplete | None = None) -> None: ... class AlphaModulateEffect(Serialisable): cont: Incomplete - def __init__(self, cont: Incomplete | None = ...) -> None: ... + def __init__(self, cont: Incomplete | None = None) -> None: ... class AlphaInverseEffect(Serialisable): ... class AlphaFloorEffect(Serialisable): ... @@ -73,7 +73,7 @@ class AlphaCeilingEffect(Serialisable): ... class AlphaBiLevelEffect(Serialisable): thresh: Incomplete - def __init__(self, thresh: Incomplete | None = ...) -> None: ... + def __init__(self, thresh: Incomplete | None = None) -> None: ... class GlowEffect(ColorChoice): rad: Incomplete @@ -84,7 +84,7 @@ class GlowEffect(ColorChoice): schemeClr: Incomplete prstClr: Incomplete __elements__: Incomplete - def __init__(self, rad: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, rad: Incomplete | None = None, **kw) -> None: ... class InnerShadowEffect(ColorChoice): blurRad: Incomplete @@ -98,7 +98,7 @@ class InnerShadowEffect(ColorChoice): prstClr: Incomplete __elements__: Incomplete def __init__( - self, blurRad: Incomplete | None = ..., dist: Incomplete | None = ..., dir: Incomplete | None = ..., **kw + self, blurRad: Incomplete | None = None, dist: Incomplete | None = None, dir: Incomplete | None = None, **kw ) -> None: ... class OuterShadow(ColorChoice): @@ -121,15 +121,15 @@ class OuterShadow(ColorChoice): __elements__: Incomplete def __init__( self, - blurRad: Incomplete | None = ..., - dist: Incomplete | None = ..., - dir: Incomplete | None = ..., - sx: Incomplete | None = ..., - sy: Incomplete | None = ..., - kx: Incomplete | None = ..., - ky: Incomplete | None = ..., - algn: Incomplete | None = ..., - rotWithShape: Incomplete | None = ..., + blurRad: Incomplete | None = None, + dist: Incomplete | None = None, + dir: Incomplete | None = None, + sx: Incomplete | None = None, + sy: Incomplete | None = None, + kx: Incomplete | None = None, + ky: Incomplete | None = None, + algn: Incomplete | None = None, + rotWithShape: Incomplete | None = None, **kw, ) -> None: ... @@ -145,7 +145,7 @@ class PresetShadowEffect(ColorChoice): prstClr: Incomplete __elements__: Incomplete def __init__( - self, prst: Incomplete | None = ..., dist: Incomplete | None = ..., dir: Incomplete | None = ..., **kw + self, prst: Incomplete | None = None, dist: Incomplete | None = None, dir: Incomplete | None = None, **kw ) -> None: ... class ReflectionEffect(Serialisable): @@ -165,25 +165,25 @@ class ReflectionEffect(Serialisable): rotWithShape: Incomplete def __init__( self, - blurRad: Incomplete | None = ..., - stA: Incomplete | None = ..., - stPos: Incomplete | None = ..., - endA: Incomplete | None = ..., - endPos: Incomplete | None = ..., - dist: Incomplete | None = ..., - dir: Incomplete | None = ..., - fadeDir: Incomplete | None = ..., - sx: Incomplete | None = ..., - sy: Incomplete | None = ..., - kx: Incomplete | None = ..., - ky: Incomplete | None = ..., - algn: Incomplete | None = ..., - rotWithShape: Incomplete | None = ..., + blurRad: Incomplete | None = None, + stA: Incomplete | None = None, + stPos: Incomplete | None = None, + endA: Incomplete | None = None, + endPos: Incomplete | None = None, + dist: Incomplete | None = None, + dir: Incomplete | None = None, + fadeDir: Incomplete | None = None, + sx: Incomplete | None = None, + sy: Incomplete | None = None, + kx: Incomplete | None = None, + ky: Incomplete | None = None, + algn: Incomplete | None = None, + rotWithShape: Incomplete | None = None, ) -> None: ... class SoftEdgesEffect(Serialisable): rad: Incomplete - def __init__(self, rad: Incomplete | None = ...) -> None: ... + def __init__(self, rad: Incomplete | None = None) -> None: ... class EffectList(Serialisable): blur: Incomplete @@ -197,12 +197,12 @@ class EffectList(Serialisable): __elements__: Incomplete def __init__( self, - blur: Incomplete | None = ..., - fillOverlay: Incomplete | None = ..., - glow: Incomplete | None = ..., - innerShdw: Incomplete | None = ..., - outerShdw: Incomplete | None = ..., - prstShdw: Incomplete | None = ..., - reflection: Incomplete | None = ..., - softEdge: Incomplete | None = ..., + blur: Incomplete | None = None, + fillOverlay: Incomplete | None = None, + glow: Incomplete | None = None, + innerShdw: Incomplete | None = None, + outerShdw: Incomplete | None = None, + prstShdw: Incomplete | None = None, + reflection: Incomplete | None = None, + softEdge: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/fill.pyi b/stubs/openpyxl/openpyxl/drawing/fill.pyi index 88b2ce165464..dfc4a9d62aaf 100644 --- a/stubs/openpyxl/openpyxl/drawing/fill.pyi +++ b/stubs/openpyxl/openpyxl/drawing/fill.pyi @@ -12,7 +12,9 @@ class PatternFillProperties(Serialisable): bgClr: Incomplete background: Incomplete __elements__: Incomplete - def __init__(self, prst: Incomplete | None = ..., fgClr: Incomplete | None = ..., bgClr: Incomplete | None = ...) -> None: ... + def __init__( + self, prst: Incomplete | None = None, fgClr: Incomplete | None = None, bgClr: Incomplete | None = None + ) -> None: ... class RelativeRect(Serialisable): tagname: str @@ -26,7 +28,7 @@ class RelativeRect(Serialisable): b: Incomplete bottom: Incomplete def __init__( - self, l: Incomplete | None = ..., t: Incomplete | None = ..., r: Incomplete | None = ..., b: Incomplete | None = ... + self, l: Incomplete | None = None, t: Incomplete | None = None, r: Incomplete | None = None, b: Incomplete | None = None ) -> None: ... class StretchInfoProperties(Serialisable): @@ -50,13 +52,13 @@ class GradientStop(Serialisable): __elements__: Incomplete def __init__( self, - pos: Incomplete | None = ..., - scrgbClr: Incomplete | None = ..., - srgbClr: Incomplete | None = ..., - hslClr: Incomplete | None = ..., - sysClr: Incomplete | None = ..., - schemeClr: Incomplete | None = ..., - prstClr: Incomplete | None = ..., + pos: Incomplete | None = None, + scrgbClr: Incomplete | None = None, + srgbClr: Incomplete | None = None, + hslClr: Incomplete | None = None, + sysClr: Incomplete | None = None, + schemeClr: Incomplete | None = None, + prstClr: Incomplete | None = None, ) -> None: ... class LinearShadeProperties(Serialisable): @@ -64,14 +66,14 @@ class LinearShadeProperties(Serialisable): namespace: Incomplete ang: Incomplete scaled: Incomplete - def __init__(self, ang: Incomplete | None = ..., scaled: Incomplete | None = ...) -> None: ... + def __init__(self, ang: Incomplete | None = None, scaled: Incomplete | None = None) -> None: ... class PathShadeProperties(Serialisable): tagname: str namespace: Incomplete path: Incomplete fillToRect: Incomplete - def __init__(self, path: Incomplete | None = ..., fillToRect: Incomplete | None = ...) -> None: ... + def __init__(self, path: Incomplete | None = None, fillToRect: Incomplete | None = None) -> None: ... class GradientFillProperties(Serialisable): tagname: str @@ -87,12 +89,12 @@ class GradientFillProperties(Serialisable): __elements__: Incomplete def __init__( self, - flip: Incomplete | None = ..., - rotWithShape: Incomplete | None = ..., - gsLst=..., - lin: Incomplete | None = ..., - path: Incomplete | None = ..., - tileRect: Incomplete | None = ..., + flip: Incomplete | None = None, + rotWithShape: Incomplete | None = None, + gsLst=(), + lin: Incomplete | None = None, + path: Incomplete | None = None, + tileRect: Incomplete | None = None, ) -> None: ... class SolidColorFillProperties(Serialisable): @@ -108,12 +110,12 @@ class SolidColorFillProperties(Serialisable): __elements__: Incomplete def __init__( self, - scrgbClr: Incomplete | None = ..., - srgbClr: Incomplete | None = ..., - hslClr: Incomplete | None = ..., - sysClr: Incomplete | None = ..., - schemeClr: Incomplete | None = ..., - prstClr: Incomplete | None = ..., + scrgbClr: Incomplete | None = None, + srgbClr: Incomplete | None = None, + hslClr: Incomplete | None = None, + sysClr: Incomplete | None = None, + schemeClr: Incomplete | None = None, + prstClr: Incomplete | None = None, ) -> None: ... class Blip(Serialisable): @@ -153,37 +155,37 @@ class Blip(Serialisable): __elements__: Incomplete def __init__( self, - cstate: Incomplete | None = ..., - embed: Incomplete | None = ..., - link: Incomplete | None = ..., - noGrp: Incomplete | None = ..., - noSelect: Incomplete | None = ..., - noRot: Incomplete | None = ..., - noChangeAspect: Incomplete | None = ..., - noMove: Incomplete | None = ..., - noResize: Incomplete | None = ..., - noEditPoints: Incomplete | None = ..., - noAdjustHandles: Incomplete | None = ..., - noChangeArrowheads: Incomplete | None = ..., - noChangeShapeType: Incomplete | None = ..., - extLst: Incomplete | None = ..., - alphaBiLevel: Incomplete | None = ..., - alphaCeiling: Incomplete | None = ..., - alphaFloor: Incomplete | None = ..., - alphaInv: Incomplete | None = ..., - alphaMod: Incomplete | None = ..., - alphaModFix: Incomplete | None = ..., - alphaRepl: Incomplete | None = ..., - biLevel: Incomplete | None = ..., - blur: Incomplete | None = ..., - clrChange: Incomplete | None = ..., - clrRepl: Incomplete | None = ..., - duotone: Incomplete | None = ..., - fillOverlay: Incomplete | None = ..., - grayscl: Incomplete | None = ..., - hsl: Incomplete | None = ..., - lum: Incomplete | None = ..., - tint: Incomplete | None = ..., + cstate: Incomplete | None = None, + embed: Incomplete | None = None, + link: Incomplete | None = None, + noGrp: Incomplete | None = None, + noSelect: Incomplete | None = None, + noRot: Incomplete | None = None, + noChangeAspect: Incomplete | None = None, + noMove: Incomplete | None = None, + noResize: Incomplete | None = None, + noEditPoints: Incomplete | None = None, + noAdjustHandles: Incomplete | None = None, + noChangeArrowheads: Incomplete | None = None, + noChangeShapeType: Incomplete | None = None, + extLst: Incomplete | None = None, + alphaBiLevel: Incomplete | None = None, + alphaCeiling: Incomplete | None = None, + alphaFloor: Incomplete | None = None, + alphaInv: Incomplete | None = None, + alphaMod: Incomplete | None = None, + alphaModFix: Incomplete | None = None, + alphaRepl: Incomplete | None = None, + biLevel: Incomplete | None = None, + blur: Incomplete | None = None, + clrChange: Incomplete | None = None, + clrRepl: Incomplete | None = None, + duotone: Incomplete | None = None, + fillOverlay: Incomplete | None = None, + grayscl: Incomplete | None = None, + hsl: Incomplete | None = None, + lum: Incomplete | None = None, + tint: Incomplete | None = None, ) -> None: ... class TileInfoProperties(Serialisable): @@ -195,12 +197,12 @@ class TileInfoProperties(Serialisable): algn: Incomplete def __init__( self, - tx: Incomplete | None = ..., - ty: Incomplete | None = ..., - sx: Incomplete | None = ..., - sy: Incomplete | None = ..., - flip: Incomplete | None = ..., - algn: Incomplete | None = ..., + tx: Incomplete | None = None, + ty: Incomplete | None = None, + sx: Incomplete | None = None, + sy: Incomplete | None = None, + flip: Incomplete | None = None, + algn: Incomplete | None = None, ) -> None: ... class BlipFillProperties(Serialisable): @@ -214,10 +216,10 @@ class BlipFillProperties(Serialisable): __elements__: Incomplete def __init__( self, - dpi: Incomplete | None = ..., - rotWithShape: Incomplete | None = ..., - blip: Incomplete | None = ..., - tile: Incomplete | None = ..., + dpi: Incomplete | None = None, + rotWithShape: Incomplete | None = None, + blip: Incomplete | None = None, + tile: Incomplete | None = None, stretch=..., - srcRect: Incomplete | None = ..., + srcRect: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/geometry.pyi b/stubs/openpyxl/openpyxl/drawing/geometry.pyi index f5ed079b84f3..cbfc297089f9 100644 --- a/stubs/openpyxl/openpyxl/drawing/geometry.pyi +++ b/stubs/openpyxl/openpyxl/drawing/geometry.pyi @@ -7,7 +7,7 @@ class Point2D(Serialisable): namespace: Incomplete x: Incomplete y: Incomplete - def __init__(self, x: Incomplete | None = ..., y: Incomplete | None = ...) -> None: ... + def __init__(self, x: Incomplete | None = None, y: Incomplete | None = None) -> None: ... class PositiveSize2D(Serialisable): tagname: str @@ -16,7 +16,7 @@ class PositiveSize2D(Serialisable): width: Incomplete cy: Incomplete height: Incomplete - def __init__(self, cx: Incomplete | None = ..., cy: Incomplete | None = ...) -> None: ... + def __init__(self, cx: Incomplete | None = None, cy: Incomplete | None = None) -> None: ... class Transform2D(Serialisable): tagname: str @@ -31,13 +31,13 @@ class Transform2D(Serialisable): __elements__: Incomplete def __init__( self, - rot: Incomplete | None = ..., - flipH: Incomplete | None = ..., - flipV: Incomplete | None = ..., - off: Incomplete | None = ..., - ext: Incomplete | None = ..., - chOff: Incomplete | None = ..., - chExt: Incomplete | None = ..., + rot: Incomplete | None = None, + flipH: Incomplete | None = None, + flipV: Incomplete | None = None, + off: Incomplete | None = None, + ext: Incomplete | None = None, + chOff: Incomplete | None = None, + chExt: Incomplete | None = None, ) -> None: ... class GroupTransform2D(Serialisable): @@ -53,13 +53,13 @@ class GroupTransform2D(Serialisable): __elements__: Incomplete def __init__( self, - rot: int = ..., - flipH: Incomplete | None = ..., - flipV: Incomplete | None = ..., - off: Incomplete | None = ..., - ext: Incomplete | None = ..., - chOff: Incomplete | None = ..., - chExt: Incomplete | None = ..., + rot: int = 0, + flipH: Incomplete | None = None, + flipV: Incomplete | None = None, + off: Incomplete | None = None, + ext: Incomplete | None = None, + chOff: Incomplete | None = None, + chExt: Incomplete | None = None, ) -> None: ... class SphereCoords(Serialisable): @@ -67,7 +67,7 @@ class SphereCoords(Serialisable): lat: Incomplete lon: Incomplete rev: Incomplete - def __init__(self, lat: Incomplete | None = ..., lon: Incomplete | None = ..., rev: Incomplete | None = ...) -> None: ... + def __init__(self, lat: Incomplete | None = None, lon: Incomplete | None = None, rev: Incomplete | None = None) -> None: ... class Camera(Serialisable): tagname: str @@ -77,10 +77,10 @@ class Camera(Serialisable): rot: Incomplete def __init__( self, - prst: Incomplete | None = ..., - fov: Incomplete | None = ..., - zoom: Incomplete | None = ..., - rot: Incomplete | None = ..., + prst: Incomplete | None = None, + fov: Incomplete | None = None, + zoom: Incomplete | None = None, + rot: Incomplete | None = None, ) -> None: ... class LightRig(Serialisable): @@ -88,21 +88,21 @@ class LightRig(Serialisable): rig: Incomplete dir: Incomplete rot: Incomplete - def __init__(self, rig: Incomplete | None = ..., dir: Incomplete | None = ..., rot: Incomplete | None = ...) -> None: ... + def __init__(self, rig: Incomplete | None = None, dir: Incomplete | None = None, rot: Incomplete | None = None) -> None: ... class Vector3D(Serialisable): tagname: str dx: Incomplete dy: Incomplete dz: Incomplete - def __init__(self, dx: Incomplete | None = ..., dy: Incomplete | None = ..., dz: Incomplete | None = ...) -> None: ... + def __init__(self, dx: Incomplete | None = None, dy: Incomplete | None = None, dz: Incomplete | None = None) -> None: ... class Point3D(Serialisable): tagname: str x: Incomplete y: Incomplete z: Incomplete - def __init__(self, x: Incomplete | None = ..., y: Incomplete | None = ..., z: Incomplete | None = ...) -> None: ... + def __init__(self, x: Incomplete | None = None, y: Incomplete | None = None, z: Incomplete | None = None) -> None: ... class Backdrop(Serialisable): anchor: Incomplete @@ -111,10 +111,10 @@ class Backdrop(Serialisable): extLst: Incomplete def __init__( self, - anchor: Incomplete | None = ..., - norm: Incomplete | None = ..., - up: Incomplete | None = ..., - extLst: Incomplete | None = ..., + anchor: Incomplete | None = None, + norm: Incomplete | None = None, + up: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Scene3D(Serialisable): @@ -124,10 +124,10 @@ class Scene3D(Serialisable): extLst: Incomplete def __init__( self, - camera: Incomplete | None = ..., - lightRig: Incomplete | None = ..., - backdrop: Incomplete | None = ..., - extLst: Incomplete | None = ..., + camera: Incomplete | None = None, + lightRig: Incomplete | None = None, + backdrop: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Bevel(Serialisable): @@ -135,7 +135,7 @@ class Bevel(Serialisable): w: Incomplete h: Incomplete prst: Incomplete - def __init__(self, w: Incomplete | None = ..., h: Incomplete | None = ..., prst: Incomplete | None = ...) -> None: ... + def __init__(self, w: Incomplete | None = None, h: Incomplete | None = None, prst: Incomplete | None = None) -> None: ... class Shape3D(Serialisable): namespace: Incomplete @@ -150,15 +150,15 @@ class Shape3D(Serialisable): extLst: Incomplete def __init__( self, - z: Incomplete | None = ..., - extrusionH: Incomplete | None = ..., - contourW: Incomplete | None = ..., - prstMaterial: Incomplete | None = ..., - bevelT: Incomplete | None = ..., - bevelB: Incomplete | None = ..., - extrusionClr: Incomplete | None = ..., - contourClr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + z: Incomplete | None = None, + extrusionH: Incomplete | None = None, + contourW: Incomplete | None = None, + prstMaterial: Incomplete | None = None, + bevelT: Incomplete | None = None, + bevelB: Incomplete | None = None, + extrusionClr: Incomplete | None = None, + contourClr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Path2D(Serialisable): @@ -169,16 +169,16 @@ class Path2D(Serialisable): extrusionOk: Incomplete def __init__( self, - w: Incomplete | None = ..., - h: Incomplete | None = ..., - fill: Incomplete | None = ..., - stroke: Incomplete | None = ..., - extrusionOk: Incomplete | None = ..., + w: Incomplete | None = None, + h: Incomplete | None = None, + fill: Incomplete | None = None, + stroke: Incomplete | None = None, + extrusionOk: Incomplete | None = None, ) -> None: ... class Path2DList(Serialisable): path: Incomplete - def __init__(self, path: Incomplete | None = ...) -> None: ... + def __init__(self, path: Incomplete | None = None) -> None: ... class GeomRect(Serialisable): l: Incomplete @@ -186,33 +186,33 @@ class GeomRect(Serialisable): r: Incomplete b: Incomplete def __init__( - self, l: Incomplete | None = ..., t: Incomplete | None = ..., r: Incomplete | None = ..., b: Incomplete | None = ... + self, l: Incomplete | None = None, t: Incomplete | None = None, r: Incomplete | None = None, b: Incomplete | None = None ) -> None: ... class AdjPoint2D(Serialisable): x: Incomplete y: Incomplete - def __init__(self, x: Incomplete | None = ..., y: Incomplete | None = ...) -> None: ... + def __init__(self, x: Incomplete | None = None, y: Incomplete | None = None) -> None: ... class ConnectionSite(Serialisable): ang: Incomplete pos: Incomplete - def __init__(self, ang: Incomplete | None = ..., pos: Incomplete | None = ...) -> None: ... + def __init__(self, ang: Incomplete | None = None, pos: Incomplete | None = None) -> None: ... class ConnectionSiteList(Serialisable): cxn: Incomplete - def __init__(self, cxn: Incomplete | None = ...) -> None: ... + def __init__(self, cxn: Incomplete | None = None) -> None: ... class AdjustHandleList(Serialisable): ... class GeomGuide(Serialisable): name: Incomplete fmla: Incomplete - def __init__(self, name: Incomplete | None = ..., fmla: Incomplete | None = ...) -> None: ... + def __init__(self, name: Incomplete | None = None, fmla: Incomplete | None = None) -> None: ... class GeomGuideList(Serialisable): gd: Incomplete - def __init__(self, gd: Incomplete | None = ...) -> None: ... + def __init__(self, gd: Incomplete | None = None) -> None: ... class CustomGeometry2D(Serialisable): avLst: Incomplete @@ -223,27 +223,27 @@ class CustomGeometry2D(Serialisable): rect: Incomplete def __init__( self, - avLst: Incomplete | None = ..., - gdLst: Incomplete | None = ..., - ahLst: Incomplete | None = ..., - cxnLst: Incomplete | None = ..., - rect: Incomplete | None = ..., - pathLst: Incomplete | None = ..., + avLst: Incomplete | None = None, + gdLst: Incomplete | None = None, + ahLst: Incomplete | None = None, + cxnLst: Incomplete | None = None, + rect: Incomplete | None = None, + pathLst: Incomplete | None = None, ) -> None: ... class PresetGeometry2D(Serialisable): namespace: Incomplete prst: Incomplete avLst: Incomplete - def __init__(self, prst: Incomplete | None = ..., avLst: Incomplete | None = ...) -> None: ... + def __init__(self, prst: Incomplete | None = None, avLst: Incomplete | None = None) -> None: ... class FontReference(Serialisable): idx: Incomplete - def __init__(self, idx: Incomplete | None = ...) -> None: ... + def __init__(self, idx: Incomplete | None = None) -> None: ... class StyleMatrixReference(Serialisable): idx: Incomplete - def __init__(self, idx: Incomplete | None = ...) -> None: ... + def __init__(self, idx: Incomplete | None = None) -> None: ... class ShapeStyle(Serialisable): lnRef: Incomplete @@ -252,8 +252,8 @@ class ShapeStyle(Serialisable): fontRef: Incomplete def __init__( self, - lnRef: Incomplete | None = ..., - fillRef: Incomplete | None = ..., - effectRef: Incomplete | None = ..., - fontRef: Incomplete | None = ..., + lnRef: Incomplete | None = None, + fillRef: Incomplete | None = None, + effectRef: Incomplete | None = None, + fontRef: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/graphic.pyi b/stubs/openpyxl/openpyxl/drawing/graphic.pyi index c30ac13f5a26..91290abcf69b 100644 --- a/stubs/openpyxl/openpyxl/drawing/graphic.pyi +++ b/stubs/openpyxl/openpyxl/drawing/graphic.pyi @@ -12,40 +12,40 @@ class GraphicFrameLocking(Serialisable): extLst: Incomplete def __init__( self, - noGrp: Incomplete | None = ..., - noDrilldown: Incomplete | None = ..., - noSelect: Incomplete | None = ..., - noChangeAspect: Incomplete | None = ..., - noMove: Incomplete | None = ..., - noResize: Incomplete | None = ..., - extLst: Incomplete | None = ..., + noGrp: Incomplete | None = None, + noDrilldown: Incomplete | None = None, + noSelect: Incomplete | None = None, + noChangeAspect: Incomplete | None = None, + noMove: Incomplete | None = None, + noResize: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class NonVisualGraphicFrameProperties(Serialisable): tagname: str graphicFrameLocks: Incomplete extLst: Incomplete - def __init__(self, graphicFrameLocks: Incomplete | None = ..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, graphicFrameLocks: Incomplete | None = None, extLst: Incomplete | None = None) -> None: ... class NonVisualGraphicFrame(Serialisable): tagname: str cNvPr: Incomplete cNvGraphicFramePr: Incomplete __elements__: Incomplete - def __init__(self, cNvPr: Incomplete | None = ..., cNvGraphicFramePr: Incomplete | None = ...) -> None: ... + def __init__(self, cNvPr: Incomplete | None = None, cNvGraphicFramePr: Incomplete | None = None) -> None: ... class GraphicData(Serialisable): tagname: str namespace: Incomplete uri: Incomplete chart: Incomplete - def __init__(self, uri=..., chart: Incomplete | None = ...) -> None: ... + def __init__(self, uri=..., chart: Incomplete | None = None) -> None: ... class GraphicObject(Serialisable): tagname: str namespace: Incomplete graphicData: Incomplete - def __init__(self, graphicData: Incomplete | None = ...) -> None: ... + def __init__(self, graphicData: Incomplete | None = None) -> None: ... class GraphicFrame(Serialisable): tagname: str @@ -57,11 +57,11 @@ class GraphicFrame(Serialisable): __elements__: Incomplete def __init__( self, - nvGraphicFramePr: Incomplete | None = ..., - xfrm: Incomplete | None = ..., - graphic: Incomplete | None = ..., - macro: Incomplete | None = ..., - fPublished: Incomplete | None = ..., + nvGraphicFramePr: Incomplete | None = None, + xfrm: Incomplete | None = None, + graphic: Incomplete | None = None, + macro: Incomplete | None = None, + fPublished: Incomplete | None = None, ) -> None: ... class GroupShape(Serialisable): @@ -72,5 +72,5 @@ class GroupShape(Serialisable): pic: Incomplete __elements__: Incomplete def __init__( - self, nvGrpSpPr: Incomplete | None = ..., grpSpPr: Incomplete | None = ..., pic: Incomplete | None = ... + self, nvGrpSpPr: Incomplete | None = None, grpSpPr: Incomplete | None = None, pic: Incomplete | None = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/line.pyi b/stubs/openpyxl/openpyxl/drawing/line.pyi index 0c8ac33ac46d..27e57cb243e8 100644 --- a/stubs/openpyxl/openpyxl/drawing/line.pyi +++ b/stubs/openpyxl/openpyxl/drawing/line.pyi @@ -8,7 +8,7 @@ class LineEndProperties(Serialisable): type: Incomplete w: Incomplete len: Incomplete - def __init__(self, type: Incomplete | None = ..., w: Incomplete | None = ..., len: Incomplete | None = ...) -> None: ... + def __init__(self, type: Incomplete | None = None, w: Incomplete | None = None, len: Incomplete | None = None) -> None: ... class DashStop(Serialisable): tagname: str @@ -17,11 +17,11 @@ class DashStop(Serialisable): length: Incomplete sp: Incomplete space: Incomplete - def __init__(self, d: int = ..., sp: int = ...) -> None: ... + def __init__(self, d: int = 0, sp: int = 0) -> None: ... class DashStopList(Serialisable): ds: Incomplete - def __init__(self, ds: Incomplete | None = ...) -> None: ... + def __init__(self, ds: Incomplete | None = None) -> None: ... class LineProperties(Serialisable): tagname: str @@ -47,20 +47,20 @@ class LineProperties(Serialisable): __elements__: Incomplete def __init__( self, - w: Incomplete | None = ..., - cap: Incomplete | None = ..., - cmpd: Incomplete | None = ..., - algn: Incomplete | None = ..., - noFill: Incomplete | None = ..., - solidFill: Incomplete | None = ..., - gradFill: Incomplete | None = ..., - pattFill: Incomplete | None = ..., - prstDash: Incomplete | None = ..., - custDash: Incomplete | None = ..., - round: Incomplete | None = ..., - bevel: Incomplete | None = ..., - miter: Incomplete | None = ..., - headEnd: Incomplete | None = ..., - tailEnd: Incomplete | None = ..., - extLst: Incomplete | None = ..., + w: Incomplete | None = None, + cap: Incomplete | None = None, + cmpd: Incomplete | None = None, + algn: Incomplete | None = None, + noFill: Incomplete | None = None, + solidFill: Incomplete | None = None, + gradFill: Incomplete | None = None, + pattFill: Incomplete | None = None, + prstDash: Incomplete | None = None, + custDash: Incomplete | None = None, + round: Incomplete | None = None, + bevel: Incomplete | None = None, + miter: Incomplete | None = None, + headEnd: Incomplete | None = None, + tailEnd: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/picture.pyi b/stubs/openpyxl/openpyxl/drawing/picture.pyi index 9f916d778fbf..d69cab296f8a 100644 --- a/stubs/openpyxl/openpyxl/drawing/picture.pyi +++ b/stubs/openpyxl/openpyxl/drawing/picture.pyi @@ -20,18 +20,18 @@ class PictureLocking(Serialisable): __elements__: Incomplete def __init__( self, - noCrop: Incomplete | None = ..., - noGrp: Incomplete | None = ..., - noSelect: Incomplete | None = ..., - noRot: Incomplete | None = ..., - noChangeAspect: Incomplete | None = ..., - noMove: Incomplete | None = ..., - noResize: Incomplete | None = ..., - noEditPoints: Incomplete | None = ..., - noAdjustHandles: Incomplete | None = ..., - noChangeArrowheads: Incomplete | None = ..., - noChangeShapeType: Incomplete | None = ..., - extLst: Incomplete | None = ..., + noCrop: Incomplete | None = None, + noGrp: Incomplete | None = None, + noSelect: Incomplete | None = None, + noRot: Incomplete | None = None, + noChangeAspect: Incomplete | None = None, + noMove: Incomplete | None = None, + noResize: Incomplete | None = None, + noEditPoints: Incomplete | None = None, + noAdjustHandles: Incomplete | None = None, + noChangeArrowheads: Incomplete | None = None, + noChangeShapeType: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class NonVisualPictureProperties(Serialisable): @@ -41,7 +41,7 @@ class NonVisualPictureProperties(Serialisable): extLst: Incomplete __elements__: Incomplete def __init__( - self, preferRelativeResize: Incomplete | None = ..., picLocks: Incomplete | None = ..., extLst: Incomplete | None = ... + self, preferRelativeResize: Incomplete | None = None, picLocks: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class PictureNonVisual(Serialisable): @@ -49,7 +49,7 @@ class PictureNonVisual(Serialisable): cNvPr: Incomplete cNvPicPr: Incomplete __elements__: Incomplete - def __init__(self, cNvPr: Incomplete | None = ..., cNvPicPr: Incomplete | None = ...) -> None: ... + def __init__(self, cNvPr: Incomplete | None = None, cNvPicPr: Incomplete | None = None) -> None: ... class PictureFrame(Serialisable): tagname: str @@ -63,10 +63,10 @@ class PictureFrame(Serialisable): __elements__: Incomplete def __init__( self, - macro: Incomplete | None = ..., - fPublished: Incomplete | None = ..., - nvPicPr: Incomplete | None = ..., - blipFill: Incomplete | None = ..., - spPr: Incomplete | None = ..., - style: Incomplete | None = ..., + macro: Incomplete | None = None, + fPublished: Incomplete | None = None, + nvPicPr: Incomplete | None = None, + blipFill: Incomplete | None = None, + spPr: Incomplete | None = None, + style: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/properties.pyi b/stubs/openpyxl/openpyxl/drawing/properties.pyi index a7fdff46c6bc..56adb9e44c2c 100644 --- a/stubs/openpyxl/openpyxl/drawing/properties.pyi +++ b/stubs/openpyxl/openpyxl/drawing/properties.pyi @@ -10,10 +10,10 @@ class GroupShapeProperties(Serialisable): extLst: Incomplete def __init__( self, - bwMode: Incomplete | None = ..., - xfrm: Incomplete | None = ..., - scene3d: Incomplete | None = ..., - extLst: Incomplete | None = ..., + bwMode: Incomplete | None = None, + xfrm: Incomplete | None = None, + scene3d: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class GroupLocking(Serialisable): @@ -34,18 +34,18 @@ class GroupLocking(Serialisable): __elements__: Incomplete def __init__( self, - noGrp: Incomplete | None = ..., - noUngrp: Incomplete | None = ..., - noSelect: Incomplete | None = ..., - noRot: Incomplete | None = ..., - noChangeAspect: Incomplete | None = ..., - noChangeArrowheads: Incomplete | None = ..., - noMove: Incomplete | None = ..., - noResize: Incomplete | None = ..., - noEditPoints: Incomplete | None = ..., - noAdjustHandles: Incomplete | None = ..., - noChangeShapeType: Incomplete | None = ..., - extLst: Incomplete | None = ..., + noGrp: Incomplete | None = None, + noUngrp: Incomplete | None = None, + noSelect: Incomplete | None = None, + noRot: Incomplete | None = None, + noChangeAspect: Incomplete | None = None, + noChangeArrowheads: Incomplete | None = None, + noMove: Incomplete | None = None, + noResize: Incomplete | None = None, + noEditPoints: Incomplete | None = None, + noAdjustHandles: Incomplete | None = None, + noChangeShapeType: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class NonVisualGroupDrawingShapeProps(Serialisable): @@ -53,7 +53,7 @@ class NonVisualGroupDrawingShapeProps(Serialisable): grpSpLocks: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, grpSpLocks: Incomplete | None = ..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, grpSpLocks: Incomplete | None = None, extLst: Incomplete | None = None) -> None: ... class NonVisualDrawingShapeProps(Serialisable): tagname: str @@ -63,7 +63,7 @@ class NonVisualDrawingShapeProps(Serialisable): __elements__: Incomplete txBox: Incomplete def __init__( - self, spLocks: Incomplete | None = ..., txBox: Incomplete | None = ..., extLst: Incomplete | None = ... + self, spLocks: Incomplete | None = None, txBox: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class NonVisualDrawingProps(Serialisable): @@ -79,14 +79,14 @@ class NonVisualDrawingProps(Serialisable): __elements__: Incomplete def __init__( self, - id: Incomplete | None = ..., - name: Incomplete | None = ..., - descr: Incomplete | None = ..., - hidden: Incomplete | None = ..., - title: Incomplete | None = ..., - hlinkClick: Incomplete | None = ..., - hlinkHover: Incomplete | None = ..., - extLst: Incomplete | None = ..., + id: Incomplete | None = None, + name: Incomplete | None = None, + descr: Incomplete | None = None, + hidden: Incomplete | None = None, + title: Incomplete | None = None, + hlinkClick: Incomplete | None = None, + hlinkHover: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class NonVisualGroupShape(Serialisable): @@ -94,4 +94,4 @@ class NonVisualGroupShape(Serialisable): cNvPr: Incomplete cNvGrpSpPr: Incomplete __elements__: Incomplete - def __init__(self, cNvPr: Incomplete | None = ..., cNvGrpSpPr: Incomplete | None = ...) -> None: ... + def __init__(self, cNvPr: Incomplete | None = None, cNvGrpSpPr: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi b/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi index 3e1de73b5ac6..c413406d9ab9 100644 --- a/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi +++ b/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi @@ -5,7 +5,7 @@ from openpyxl.descriptors.serialisable import Serialisable class AnchorClientData(Serialisable): fLocksWithSheet: Incomplete fPrintsWithSheet: Incomplete - def __init__(self, fLocksWithSheet: Incomplete | None = ..., fPrintsWithSheet: Incomplete | None = ...) -> None: ... + def __init__(self, fLocksWithSheet: Incomplete | None = None, fPrintsWithSheet: Incomplete | None = None) -> None: ... class AnchorMarker(Serialisable): tagname: str @@ -13,7 +13,7 @@ class AnchorMarker(Serialisable): colOff: Incomplete row: Incomplete rowOff: Incomplete - def __init__(self, col: int = ..., colOff: int = ..., row: int = ..., rowOff: int = ...) -> None: ... + def __init__(self, col: int = 0, colOff: int = 0, row: int = 0, rowOff: int = 0) -> None: ... class _AnchorBase(Serialisable): sp: Incomplete @@ -29,13 +29,13 @@ class _AnchorBase(Serialisable): __elements__: Incomplete def __init__( self, - clientData: Incomplete | None = ..., - sp: Incomplete | None = ..., - grpSp: Incomplete | None = ..., - graphicFrame: Incomplete | None = ..., - cxnSp: Incomplete | None = ..., - pic: Incomplete | None = ..., - contentPart: Incomplete | None = ..., + clientData: Incomplete | None = None, + sp: Incomplete | None = None, + grpSp: Incomplete | None = None, + graphicFrame: Incomplete | None = None, + cxnSp: Incomplete | None = None, + pic: Incomplete | None = None, + contentPart: Incomplete | None = None, ) -> None: ... class AbsoluteAnchor(_AnchorBase): @@ -50,7 +50,7 @@ class AbsoluteAnchor(_AnchorBase): contentPart: Incomplete clientData: Incomplete __elements__: Incomplete - def __init__(self, pos: Incomplete | None = ..., ext: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, pos: Incomplete | None = None, ext: Incomplete | None = None, **kw) -> None: ... class OneCellAnchor(_AnchorBase): tagname: str @@ -63,7 +63,7 @@ class OneCellAnchor(_AnchorBase): contentPart: Incomplete clientData: Incomplete __elements__: Incomplete - def __init__(self, _from: Incomplete | None = ..., ext: Incomplete | None = ..., **kw) -> None: ... + def __init__(self, _from: Incomplete | None = None, ext: Incomplete | None = None, **kw) -> None: ... class TwoCellAnchor(_AnchorBase): tagname: str @@ -78,7 +78,7 @@ class TwoCellAnchor(_AnchorBase): clientData: Incomplete __elements__: Incomplete def __init__( - self, editAs: Incomplete | None = ..., _from: Incomplete | None = ..., to: Incomplete | None = ..., **kw + self, editAs: Incomplete | None = None, _from: Incomplete | None = None, to: Incomplete | None = None, **kw ) -> None: ... class SpreadsheetDrawing(Serialisable): @@ -91,7 +91,7 @@ class SpreadsheetDrawing(Serialisable): __elements__: Incomplete charts: Incomplete images: Incomplete - def __init__(self, twoCellAnchor=..., oneCellAnchor=..., absoluteAnchor=...) -> None: ... + def __init__(self, twoCellAnchor=(), oneCellAnchor=(), absoluteAnchor=()) -> None: ... def __hash__(self) -> int: ... def __bool__(self) -> bool: ... @property diff --git a/stubs/openpyxl/openpyxl/drawing/text.pyi b/stubs/openpyxl/openpyxl/drawing/text.pyi index 8ace8780035d..d7115ebab537 100644 --- a/stubs/openpyxl/openpyxl/drawing/text.pyi +++ b/stubs/openpyxl/openpyxl/drawing/text.pyi @@ -4,7 +4,7 @@ from openpyxl.descriptors.serialisable import Serialisable class EmbeddedWAVAudioFile(Serialisable): # type: ignore[misc] name: Incomplete - def __init__(self, name: Incomplete | None = ...) -> None: ... + def __init__(self, name: Incomplete | None = None) -> None: ... class Hyperlink(Serialisable): tagname: str @@ -22,16 +22,16 @@ class Hyperlink(Serialisable): __elements__: Incomplete def __init__( self, - invalidUrl: Incomplete | None = ..., - action: Incomplete | None = ..., - tgtFrame: Incomplete | None = ..., - tooltip: Incomplete | None = ..., - history: Incomplete | None = ..., - highlightClick: Incomplete | None = ..., - endSnd: Incomplete | None = ..., - snd: Incomplete | None = ..., - extLst: Incomplete | None = ..., - id: Incomplete | None = ..., + invalidUrl: Incomplete | None = None, + action: Incomplete | None = None, + tgtFrame: Incomplete | None = None, + tooltip: Incomplete | None = None, + history: Incomplete | None = None, + highlightClick: Incomplete | None = None, + endSnd: Incomplete | None = None, + snd: Incomplete | None = None, + extLst: Incomplete | None = None, + id: Incomplete | None = None, ) -> None: ... class Font(Serialisable): @@ -43,10 +43,10 @@ class Font(Serialisable): charset: Incomplete def __init__( self, - typeface: Incomplete | None = ..., - panose: Incomplete | None = ..., - pitchFamily: Incomplete | None = ..., - charset: Incomplete | None = ..., + typeface: Incomplete | None = None, + panose: Incomplete | None = None, + pitchFamily: Incomplete | None = None, + charset: Incomplete | None = None, ) -> None: ... class CharacterProperties(Serialisable): @@ -96,68 +96,68 @@ class CharacterProperties(Serialisable): __elements__: Incomplete def __init__( self, - kumimoji: Incomplete | None = ..., - lang: Incomplete | None = ..., - altLang: Incomplete | None = ..., - sz: Incomplete | None = ..., - b: Incomplete | None = ..., - i: Incomplete | None = ..., - u: Incomplete | None = ..., - strike: Incomplete | None = ..., - kern: Incomplete | None = ..., - cap: Incomplete | None = ..., - spc: Incomplete | None = ..., - normalizeH: Incomplete | None = ..., - baseline: Incomplete | None = ..., - noProof: Incomplete | None = ..., - dirty: Incomplete | None = ..., - err: Incomplete | None = ..., - smtClean: Incomplete | None = ..., - smtId: Incomplete | None = ..., - bmk: Incomplete | None = ..., - ln: Incomplete | None = ..., - highlight: Incomplete | None = ..., - latin: Incomplete | None = ..., - ea: Incomplete | None = ..., - cs: Incomplete | None = ..., - sym: Incomplete | None = ..., - hlinkClick: Incomplete | None = ..., - hlinkMouseOver: Incomplete | None = ..., - rtl: Incomplete | None = ..., - extLst: Incomplete | None = ..., - noFill: Incomplete | None = ..., - solidFill: Incomplete | None = ..., - gradFill: Incomplete | None = ..., - blipFill: Incomplete | None = ..., - pattFill: Incomplete | None = ..., - grpFill: Incomplete | None = ..., - effectLst: Incomplete | None = ..., - effectDag: Incomplete | None = ..., - uLnTx: Incomplete | None = ..., - uLn: Incomplete | None = ..., - uFillTx: Incomplete | None = ..., - uFill: Incomplete | None = ..., + kumimoji: Incomplete | None = None, + lang: Incomplete | None = None, + altLang: Incomplete | None = None, + sz: Incomplete | None = None, + b: Incomplete | None = None, + i: Incomplete | None = None, + u: Incomplete | None = None, + strike: Incomplete | None = None, + kern: Incomplete | None = None, + cap: Incomplete | None = None, + spc: Incomplete | None = None, + normalizeH: Incomplete | None = None, + baseline: Incomplete | None = None, + noProof: Incomplete | None = None, + dirty: Incomplete | None = None, + err: Incomplete | None = None, + smtClean: Incomplete | None = None, + smtId: Incomplete | None = None, + bmk: Incomplete | None = None, + ln: Incomplete | None = None, + highlight: Incomplete | None = None, + latin: Incomplete | None = None, + ea: Incomplete | None = None, + cs: Incomplete | None = None, + sym: Incomplete | None = None, + hlinkClick: Incomplete | None = None, + hlinkMouseOver: Incomplete | None = None, + rtl: Incomplete | None = None, + extLst: Incomplete | None = None, + noFill: Incomplete | None = None, + solidFill: Incomplete | None = None, + gradFill: Incomplete | None = None, + blipFill: Incomplete | None = None, + pattFill: Incomplete | None = None, + grpFill: Incomplete | None = None, + effectLst: Incomplete | None = None, + effectDag: Incomplete | None = None, + uLnTx: Incomplete | None = None, + uLn: Incomplete | None = None, + uFillTx: Incomplete | None = None, + uFill: Incomplete | None = None, ) -> None: ... class TabStop(Serialisable): # type: ignore[misc] pos: Incomplete algn: Incomplete - def __init__(self, pos: Incomplete | None = ..., algn: Incomplete | None = ...) -> None: ... + def __init__(self, pos: Incomplete | None = None, algn: Incomplete | None = None) -> None: ... class TabStopList(Serialisable): # type: ignore[misc] tab: Incomplete - def __init__(self, tab: Incomplete | None = ...) -> None: ... + def __init__(self, tab: Incomplete | None = None) -> None: ... class Spacing(Serialisable): spcPct: Incomplete spcPts: Incomplete __elements__: Incomplete - def __init__(self, spcPct: Incomplete | None = ..., spcPts: Incomplete | None = ...) -> None: ... + def __init__(self, spcPct: Incomplete | None = None, spcPts: Incomplete | None = None) -> None: ... class AutonumberBullet(Serialisable): type: Incomplete startAt: Incomplete - def __init__(self, type: Incomplete | None = ..., startAt: Incomplete | None = ...) -> None: ... + def __init__(self, type: Incomplete | None = None, startAt: Incomplete | None = None) -> None: ... class ParagraphProperties(Serialisable): tagname: str @@ -193,34 +193,34 @@ class ParagraphProperties(Serialisable): __elements__: Incomplete def __init__( self, - marL: Incomplete | None = ..., - marR: Incomplete | None = ..., - lvl: Incomplete | None = ..., - indent: Incomplete | None = ..., - algn: Incomplete | None = ..., - defTabSz: Incomplete | None = ..., - rtl: Incomplete | None = ..., - eaLnBrk: Incomplete | None = ..., - fontAlgn: Incomplete | None = ..., - latinLnBrk: Incomplete | None = ..., - hangingPunct: Incomplete | None = ..., - lnSpc: Incomplete | None = ..., - spcBef: Incomplete | None = ..., - spcAft: Incomplete | None = ..., - tabLst: Incomplete | None = ..., - defRPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., - buClrTx: Incomplete | None = ..., - buClr: Incomplete | None = ..., - buSzTx: Incomplete | None = ..., - buSzPct: Incomplete | None = ..., - buSzPts: Incomplete | None = ..., - buFontTx: Incomplete | None = ..., - buFont: Incomplete | None = ..., - buNone: Incomplete | None = ..., - buAutoNum: Incomplete | None = ..., - buChar: Incomplete | None = ..., - buBlip: Incomplete | None = ..., + marL: Incomplete | None = None, + marR: Incomplete | None = None, + lvl: Incomplete | None = None, + indent: Incomplete | None = None, + algn: Incomplete | None = None, + defTabSz: Incomplete | None = None, + rtl: Incomplete | None = None, + eaLnBrk: Incomplete | None = None, + fontAlgn: Incomplete | None = None, + latinLnBrk: Incomplete | None = None, + hangingPunct: Incomplete | None = None, + lnSpc: Incomplete | None = None, + spcBef: Incomplete | None = None, + spcAft: Incomplete | None = None, + tabLst: Incomplete | None = None, + defRPr: Incomplete | None = None, + extLst: Incomplete | None = None, + buClrTx: Incomplete | None = None, + buClr: Incomplete | None = None, + buSzTx: Incomplete | None = None, + buSzPct: Incomplete | None = None, + buSzPts: Incomplete | None = None, + buFontTx: Incomplete | None = None, + buFont: Incomplete | None = None, + buNone: Incomplete | None = None, + buAutoNum: Incomplete | None = None, + buChar: Incomplete | None = None, + buBlip: Incomplete | None = None, ) -> None: ... class ListStyle(Serialisable): @@ -240,17 +240,17 @@ class ListStyle(Serialisable): __elements__: Incomplete def __init__( self, - defPPr: Incomplete | None = ..., - lvl1pPr: Incomplete | None = ..., - lvl2pPr: Incomplete | None = ..., - lvl3pPr: Incomplete | None = ..., - lvl4pPr: Incomplete | None = ..., - lvl5pPr: Incomplete | None = ..., - lvl6pPr: Incomplete | None = ..., - lvl7pPr: Incomplete | None = ..., - lvl8pPr: Incomplete | None = ..., - lvl9pPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + defPPr: Incomplete | None = None, + lvl1pPr: Incomplete | None = None, + lvl2pPr: Incomplete | None = None, + lvl3pPr: Incomplete | None = None, + lvl4pPr: Incomplete | None = None, + lvl5pPr: Incomplete | None = None, + lvl6pPr: Incomplete | None = None, + lvl7pPr: Incomplete | None = None, + lvl8pPr: Incomplete | None = None, + lvl9pPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class RegularTextRun(Serialisable): @@ -261,14 +261,14 @@ class RegularTextRun(Serialisable): t: Incomplete value: Incomplete __elements__: Incomplete - def __init__(self, rPr: Incomplete | None = ..., t: str = ...) -> None: ... + def __init__(self, rPr: Incomplete | None = None, t: str = "") -> None: ... class LineBreak(Serialisable): tagname: str namespace: Incomplete rPr: Incomplete __elements__: Incomplete - def __init__(self, rPr: Incomplete | None = ...) -> None: ... + def __init__(self, rPr: Incomplete | None = None) -> None: ... class TextField(Serialisable): id: Incomplete @@ -279,11 +279,11 @@ class TextField(Serialisable): __elements__: Incomplete def __init__( self, - id: Incomplete | None = ..., - type: Incomplete | None = ..., - rPr: Incomplete | None = ..., - pPr: Incomplete | None = ..., - t: Incomplete | None = ..., + id: Incomplete | None = None, + type: Incomplete | None = None, + rPr: Incomplete | None = None, + pPr: Incomplete | None = None, + t: Incomplete | None = None, ) -> None: ... class Paragraph(Serialisable): @@ -299,31 +299,31 @@ class Paragraph(Serialisable): __elements__: Incomplete def __init__( self, - pPr: Incomplete | None = ..., - endParaRPr: Incomplete | None = ..., - r: Incomplete | None = ..., - br: Incomplete | None = ..., - fld: Incomplete | None = ..., + pPr: Incomplete | None = None, + endParaRPr: Incomplete | None = None, + r: Incomplete | None = None, + br: Incomplete | None = None, + fld: Incomplete | None = None, ) -> None: ... class GeomGuide(Serialisable): name: Incomplete fmla: Incomplete - def __init__(self, name: Incomplete | None = ..., fmla: Incomplete | None = ...) -> None: ... + def __init__(self, name: Incomplete | None = None, fmla: Incomplete | None = None) -> None: ... class GeomGuideList(Serialisable): gd: Incomplete - def __init__(self, gd: Incomplete | None = ...) -> None: ... + def __init__(self, gd: Incomplete | None = None) -> None: ... class PresetTextShape(Serialisable): prst: Incomplete avLst: Incomplete - def __init__(self, prst: Incomplete | None = ..., avLst: Incomplete | None = ...) -> None: ... + def __init__(self, prst: Incomplete | None = None, avLst: Incomplete | None = None) -> None: ... class TextNormalAutofit(Serialisable): fontScale: Incomplete lnSpcReduction: Incomplete - def __init__(self, fontScale: Incomplete | None = ..., lnSpcReduction: Incomplete | None = ...) -> None: ... + def __init__(self, fontScale: Incomplete | None = None, lnSpcReduction: Incomplete | None = None) -> None: ... class RichTextProperties(Serialisable): tagname: str @@ -357,30 +357,30 @@ class RichTextProperties(Serialisable): __elements__: Incomplete def __init__( self, - rot: Incomplete | None = ..., - spcFirstLastPara: Incomplete | None = ..., - vertOverflow: Incomplete | None = ..., - horzOverflow: Incomplete | None = ..., - vert: Incomplete | None = ..., - wrap: Incomplete | None = ..., - lIns: Incomplete | None = ..., - tIns: Incomplete | None = ..., - rIns: Incomplete | None = ..., - bIns: Incomplete | None = ..., - numCol: Incomplete | None = ..., - spcCol: Incomplete | None = ..., - rtlCol: Incomplete | None = ..., - fromWordArt: Incomplete | None = ..., - anchor: Incomplete | None = ..., - anchorCtr: Incomplete | None = ..., - forceAA: Incomplete | None = ..., - upright: Incomplete | None = ..., - compatLnSpc: Incomplete | None = ..., - prstTxWarp: Incomplete | None = ..., - scene3d: Incomplete | None = ..., - extLst: Incomplete | None = ..., - noAutofit: Incomplete | None = ..., - normAutofit: Incomplete | None = ..., - spAutoFit: Incomplete | None = ..., - flatTx: Incomplete | None = ..., + rot: Incomplete | None = None, + spcFirstLastPara: Incomplete | None = None, + vertOverflow: Incomplete | None = None, + horzOverflow: Incomplete | None = None, + vert: Incomplete | None = None, + wrap: Incomplete | None = None, + lIns: Incomplete | None = None, + tIns: Incomplete | None = None, + rIns: Incomplete | None = None, + bIns: Incomplete | None = None, + numCol: Incomplete | None = None, + spcCol: Incomplete | None = None, + rtlCol: Incomplete | None = None, + fromWordArt: Incomplete | None = None, + anchor: Incomplete | None = None, + anchorCtr: Incomplete | None = None, + forceAA: Incomplete | None = None, + upright: Incomplete | None = None, + compatLnSpc: Incomplete | None = None, + prstTxWarp: Incomplete | None = None, + scene3d: Incomplete | None = None, + extLst: Incomplete | None = None, + noAutofit: Incomplete | None = None, + normAutofit: Incomplete | None = None, + spAutoFit: Incomplete | None = None, + flatTx: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/formatting/formatting.pyi b/stubs/openpyxl/openpyxl/formatting/formatting.pyi index e4dfa0bc8623..3b34563fdd95 100644 --- a/stubs/openpyxl/openpyxl/formatting/formatting.pyi +++ b/stubs/openpyxl/openpyxl/formatting/formatting.pyi @@ -9,7 +9,7 @@ class ConditionalFormatting(Serialisable): pivot: Incomplete cfRule: Incomplete rules: Incomplete - def __init__(self, sqref=..., pivot: Incomplete | None = ..., cfRule=..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, sqref=(), pivot: Incomplete | None = None, cfRule=(), extLst: Incomplete | None = None) -> None: ... def __eq__(self, other): ... def __hash__(self) -> int: ... def __contains__(self, coord): ... diff --git a/stubs/openpyxl/openpyxl/formatting/rule.pyi b/stubs/openpyxl/openpyxl/formatting/rule.pyi index 5807e1f5f77b..958431086941 100644 --- a/stubs/openpyxl/openpyxl/formatting/rule.pyi +++ b/stubs/openpyxl/openpyxl/formatting/rule.pyi @@ -15,7 +15,7 @@ class FormatObject(Serialisable): extLst: Incomplete __elements__: Incomplete def __init__( - self, type, val: Incomplete | None = ..., gte: Incomplete | None = ..., extLst: Incomplete | None = ... + self, type, val: Incomplete | None = None, gte: Incomplete | None = None, extLst: Incomplete | None = None ) -> None: ... class RuleType(Serialisable): # type: ignore[misc] @@ -31,11 +31,11 @@ class IconSet(RuleType): cfvo: Incomplete def __init__( self, - iconSet: Incomplete | None = ..., - showValue: Incomplete | None = ..., - percent: Incomplete | None = ..., - reverse: Incomplete | None = ..., - cfvo: Incomplete | None = ..., + iconSet: Incomplete | None = None, + showValue: Incomplete | None = None, + percent: Incomplete | None = None, + reverse: Incomplete | None = None, + cfvo: Incomplete | None = None, ) -> None: ... class DataBar(RuleType): @@ -48,11 +48,11 @@ class DataBar(RuleType): cfvo: Incomplete def __init__( self, - minLength: Incomplete | None = ..., - maxLength: Incomplete | None = ..., - showValue: Incomplete | None = ..., - cfvo: Incomplete | None = ..., - color: Incomplete | None = ..., + minLength: Incomplete | None = None, + maxLength: Incomplete | None = None, + showValue: Incomplete | None = None, + cfvo: Incomplete | None = None, + color: Incomplete | None = None, ) -> None: ... class ColorScale(RuleType): @@ -60,7 +60,7 @@ class ColorScale(RuleType): color: Incomplete __elements__: Incomplete cfvo: Incomplete - def __init__(self, cfvo: Incomplete | None = ..., color: Incomplete | None = ...) -> None: ... + def __init__(self, cfvo: Incomplete | None = None, color: Incomplete | None = None) -> None: ... class Rule(Serialisable): tagname: str @@ -88,67 +88,67 @@ class Rule(Serialisable): def __init__( self, type, - dxfId: Incomplete | None = ..., - priority: int = ..., - stopIfTrue: Incomplete | None = ..., - aboveAverage: Incomplete | None = ..., - percent: Incomplete | None = ..., - bottom: Incomplete | None = ..., - operator: Incomplete | None = ..., - text: Incomplete | None = ..., - timePeriod: Incomplete | None = ..., - rank: Incomplete | None = ..., - stdDev: Incomplete | None = ..., - equalAverage: Incomplete | None = ..., - formula=..., - colorScale: Incomplete | None = ..., - dataBar: Incomplete | None = ..., - iconSet: Incomplete | None = ..., - extLst: Incomplete | None = ..., - dxf: Incomplete | None = ..., + dxfId: Incomplete | None = None, + priority: int = 0, + stopIfTrue: Incomplete | None = None, + aboveAverage: Incomplete | None = None, + percent: Incomplete | None = None, + bottom: Incomplete | None = None, + operator: Incomplete | None = None, + text: Incomplete | None = None, + timePeriod: Incomplete | None = None, + rank: Incomplete | None = None, + stdDev: Incomplete | None = None, + equalAverage: Incomplete | None = None, + formula=(), + colorScale: Incomplete | None = None, + dataBar: Incomplete | None = None, + iconSet: Incomplete | None = None, + extLst: Incomplete | None = None, + dxf: Incomplete | None = None, ) -> None: ... def ColorScaleRule( - start_type: Incomplete | None = ..., - start_value: Incomplete | None = ..., - start_color: Incomplete | None = ..., - mid_type: Incomplete | None = ..., - mid_value: Incomplete | None = ..., - mid_color: Incomplete | None = ..., - end_type: Incomplete | None = ..., - end_value: Incomplete | None = ..., - end_color: Incomplete | None = ..., + start_type: Incomplete | None = None, + start_value: Incomplete | None = None, + start_color: Incomplete | None = None, + mid_type: Incomplete | None = None, + mid_value: Incomplete | None = None, + mid_color: Incomplete | None = None, + end_type: Incomplete | None = None, + end_value: Incomplete | None = None, + end_color: Incomplete | None = None, ): ... def FormulaRule( - formula: Incomplete | None = ..., - stopIfTrue: Incomplete | None = ..., - font: Incomplete | None = ..., - border: Incomplete | None = ..., - fill: Incomplete | None = ..., + formula: Incomplete | None = None, + stopIfTrue: Incomplete | None = None, + font: Incomplete | None = None, + border: Incomplete | None = None, + fill: Incomplete | None = None, ): ... def CellIsRule( - operator: Incomplete | None = ..., - formula: Incomplete | None = ..., - stopIfTrue: Incomplete | None = ..., - font: Incomplete | None = ..., - border: Incomplete | None = ..., - fill: Incomplete | None = ..., + operator: Incomplete | None = None, + formula: Incomplete | None = None, + stopIfTrue: Incomplete | None = None, + font: Incomplete | None = None, + border: Incomplete | None = None, + fill: Incomplete | None = None, ): ... def IconSetRule( - icon_style: Incomplete | None = ..., - type: Incomplete | None = ..., - values: Incomplete | None = ..., - showValue: Incomplete | None = ..., - percent: Incomplete | None = ..., - reverse: Incomplete | None = ..., + icon_style: Incomplete | None = None, + type: Incomplete | None = None, + values: Incomplete | None = None, + showValue: Incomplete | None = None, + percent: Incomplete | None = None, + reverse: Incomplete | None = None, ): ... def DataBarRule( - start_type: Incomplete | None = ..., - start_value: Incomplete | None = ..., - end_type: Incomplete | None = ..., - end_value: Incomplete | None = ..., - color: Incomplete | None = ..., - showValue: Incomplete | None = ..., - minLength: Incomplete | None = ..., - maxLength: Incomplete | None = ..., + start_type: Incomplete | None = None, + start_value: Incomplete | None = None, + end_type: Incomplete | None = None, + end_value: Incomplete | None = None, + color: Incomplete | None = None, + showValue: Incomplete | None = None, + minLength: Incomplete | None = None, + maxLength: Incomplete | None = None, ): ... diff --git a/stubs/openpyxl/openpyxl/formula/tokenizer.pyi b/stubs/openpyxl/openpyxl/formula/tokenizer.pyi index 16129f95f80c..4f2561741b1e 100644 --- a/stubs/openpyxl/openpyxl/formula/tokenizer.pyi +++ b/stubs/openpyxl/openpyxl/formula/tokenizer.pyi @@ -15,7 +15,7 @@ class Tokenizer: token: Incomplete def __init__(self, formula) -> None: ... def check_scientific_notation(self): ... - def assert_empty_token(self, can_follow=...) -> None: ... + def assert_empty_token(self, can_follow=()) -> None: ... def save_token(self) -> None: ... def render(self): ... @@ -33,7 +33,7 @@ class Token: value: Incomplete type: Incomplete subtype: Incomplete - def __init__(self, value, type_, subtype: str = ...) -> None: ... + def __init__(self, value, type_, subtype: str = "") -> None: ... TEXT: str NUMBER: str LOGICAL: str @@ -44,7 +44,7 @@ class Token: OPEN: str CLOSE: str @classmethod - def make_subexp(cls, value, func: bool = ...): ... + def make_subexp(cls, value, func: bool = False): ... def get_closer(self): ... ARG: str ROW: str diff --git a/stubs/openpyxl/openpyxl/formula/translate.pyi b/stubs/openpyxl/openpyxl/formula/translate.pyi index 0904e1e64248..61c6187305d0 100644 --- a/stubs/openpyxl/openpyxl/formula/translate.pyi +++ b/stubs/openpyxl/openpyxl/formula/translate.pyi @@ -17,4 +17,4 @@ class Translator: def strip_ws_name(range_str): ... @classmethod def translate_range(cls, range_str, rdelta, cdelta): ... - def translate_formula(self, dest: Incomplete | None = ..., row_delta: int = ..., col_delta: int = ...): ... + def translate_formula(self, dest: Incomplete | None = None, row_delta: int = 0, col_delta: int = 0): ... diff --git a/stubs/openpyxl/openpyxl/packaging/core.pyi b/stubs/openpyxl/openpyxl/packaging/core.pyi index 0fb87a72ab64..4162220c6feb 100644 --- a/stubs/openpyxl/openpyxl/packaging/core.pyi +++ b/stubs/openpyxl/openpyxl/packaging/core.pyi @@ -6,10 +6,14 @@ from openpyxl.descriptors.serialisable import Serialisable class NestedDateTime(DateTime, NestedText): expected_type: Incomplete - def to_tree(self, tagname: Incomplete | None = ..., value: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree( + self, tagname: Incomplete | None = None, value: Incomplete | None = None, namespace: Incomplete | None = None + ): ... class QualifiedDateTime(NestedDateTime): - def to_tree(self, tagname: Incomplete | None = ..., value: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree( + self, tagname: Incomplete | None = None, value: Incomplete | None = None, namespace: Incomplete | None = None + ): ... class DocumentProperties(Serialisable): tagname: str @@ -33,19 +37,19 @@ class DocumentProperties(Serialisable): __elements__: Incomplete def __init__( self, - category: Incomplete | None = ..., - contentStatus: Incomplete | None = ..., - keywords: Incomplete | None = ..., - lastModifiedBy: Incomplete | None = ..., - lastPrinted: Incomplete | None = ..., - revision: Incomplete | None = ..., - version: Incomplete | None = ..., - created=..., - creator: str = ..., - description: Incomplete | None = ..., - identifier: Incomplete | None = ..., - language: Incomplete | None = ..., - modified=..., - subject: Incomplete | None = ..., - title: Incomplete | None = ..., + category: Incomplete | None = None, + contentStatus: Incomplete | None = None, + keywords: Incomplete | None = None, + lastModifiedBy: Incomplete | None = None, + lastPrinted: Incomplete | None = None, + revision: Incomplete | None = None, + version: Incomplete | None = None, + created=None, + creator: str = "openpyxl", + description: Incomplete | None = None, + identifier: Incomplete | None = None, + language: Incomplete | None = None, + modified=None, + subject: Incomplete | None = None, + title: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/packaging/extended.pyi b/stubs/openpyxl/openpyxl/packaging/extended.pyi index 644279d1ab3c..7b4ca3f0de65 100644 --- a/stubs/openpyxl/openpyxl/packaging/extended.pyi +++ b/stubs/openpyxl/openpyxl/packaging/extended.pyi @@ -48,32 +48,32 @@ class ExtendedProperties(Serialisable): __elements__: Incomplete def __init__( self, - Template: Incomplete | None = ..., - Manager: Incomplete | None = ..., - Company: Incomplete | None = ..., - Pages: Incomplete | None = ..., - Words: Incomplete | None = ..., - Characters: Incomplete | None = ..., - PresentationFormat: Incomplete | None = ..., - Lines: Incomplete | None = ..., - Paragraphs: Incomplete | None = ..., - Slides: Incomplete | None = ..., - Notes: Incomplete | None = ..., - TotalTime: Incomplete | None = ..., - HiddenSlides: Incomplete | None = ..., - MMClips: Incomplete | None = ..., - ScaleCrop: Incomplete | None = ..., - HeadingPairs: Incomplete | None = ..., - TitlesOfParts: Incomplete | None = ..., - LinksUpToDate: Incomplete | None = ..., - CharactersWithSpaces: Incomplete | None = ..., - SharedDoc: Incomplete | None = ..., - HyperlinkBase: Incomplete | None = ..., - HLinks: Incomplete | None = ..., - HyperlinksChanged: Incomplete | None = ..., - DigSig: Incomplete | None = ..., - Application: str = ..., - AppVersion: Incomplete | None = ..., - DocSecurity: Incomplete | None = ..., + Template: Incomplete | None = None, + Manager: Incomplete | None = None, + Company: Incomplete | None = None, + Pages: Incomplete | None = None, + Words: Incomplete | None = None, + Characters: Incomplete | None = None, + PresentationFormat: Incomplete | None = None, + Lines: Incomplete | None = None, + Paragraphs: Incomplete | None = None, + Slides: Incomplete | None = None, + Notes: Incomplete | None = None, + TotalTime: Incomplete | None = None, + HiddenSlides: Incomplete | None = None, + MMClips: Incomplete | None = None, + ScaleCrop: Incomplete | None = None, + HeadingPairs: Incomplete | None = None, + TitlesOfParts: Incomplete | None = None, + LinksUpToDate: Incomplete | None = None, + CharactersWithSpaces: Incomplete | None = None, + SharedDoc: Incomplete | None = None, + HyperlinkBase: Incomplete | None = None, + HLinks: Incomplete | None = None, + HyperlinksChanged: Incomplete | None = None, + DigSig: Incomplete | None = None, + Application: str = "Microsoft Excel", + AppVersion: Incomplete | None = None, + DocSecurity: Incomplete | None = None, ) -> None: ... def to_tree(self): ... diff --git a/stubs/openpyxl/openpyxl/packaging/manifest.pyi b/stubs/openpyxl/openpyxl/packaging/manifest.pyi index 78ee86788f42..26a1cb5be707 100644 --- a/stubs/openpyxl/openpyxl/packaging/manifest.pyi +++ b/stubs/openpyxl/openpyxl/packaging/manifest.pyi @@ -26,7 +26,7 @@ class Manifest(Serialisable): Override: Incomplete path: str __elements__: Incomplete - def __init__(self, Default=..., Override=...) -> None: ... + def __init__(self, Default=(), Override=()) -> None: ... @property def filenames(self): ... @property diff --git a/stubs/openpyxl/openpyxl/packaging/relationship.pyi b/stubs/openpyxl/openpyxl/packaging/relationship.pyi index c8447aa97252..e39941b0c1db 100644 --- a/stubs/openpyxl/openpyxl/packaging/relationship.pyi +++ b/stubs/openpyxl/openpyxl/packaging/relationship.pyi @@ -13,17 +13,17 @@ class Relationship(Serialisable): id: Incomplete def __init__( self, - Id: Incomplete | None = ..., - Type: Incomplete | None = ..., - type: Incomplete | None = ..., - Target: Incomplete | None = ..., - TargetMode: Incomplete | None = ..., + Id: Incomplete | None = None, + Type: Incomplete | None = None, + type: Incomplete | None = None, + Target: Incomplete | None = None, + TargetMode: Incomplete | None = None, ) -> None: ... class RelationshipList(Serialisable): tagname: str Relationship: Incomplete - def __init__(self, Relationship=...) -> None: ... + def __init__(self, Relationship=()) -> None: ... def append(self, value) -> None: ... def __len__(self) -> int: ... def __bool__(self) -> bool: ... @@ -33,4 +33,4 @@ class RelationshipList(Serialisable): def get_rels_path(path): ... def get_dependents(archive, filename): ... -def get_rel(archive, deps, id: Incomplete | None = ..., cls: Incomplete | None = ...): ... +def get_rel(archive, deps, id: Incomplete | None = None, cls: Incomplete | None = None): ... diff --git a/stubs/openpyxl/openpyxl/packaging/workbook.pyi b/stubs/openpyxl/openpyxl/packaging/workbook.pyi index 70846182b5a2..ad8889e7a4d0 100644 --- a/stubs/openpyxl/openpyxl/packaging/workbook.pyi +++ b/stubs/openpyxl/openpyxl/packaging/workbook.pyi @@ -11,10 +11,10 @@ class FileRecoveryProperties(Serialisable): repairLoad: Incomplete def __init__( self, - autoRecover: Incomplete | None = ..., - crashSave: Incomplete | None = ..., - dataExtractLoad: Incomplete | None = ..., - repairLoad: Incomplete | None = ..., + autoRecover: Incomplete | None = None, + crashSave: Incomplete | None = None, + dataExtractLoad: Incomplete | None = None, + repairLoad: Incomplete | None = None, ) -> None: ... class ChildSheet(Serialisable): @@ -25,17 +25,17 @@ class ChildSheet(Serialisable): id: Incomplete def __init__( self, - name: Incomplete | None = ..., - sheetId: Incomplete | None = ..., - state: _SheetVisibilityType = ..., - id: Incomplete | None = ..., + name: Incomplete | None = None, + sheetId: Incomplete | None = None, + state: _SheetVisibilityType = "visible", + id: Incomplete | None = None, ) -> None: ... class PivotCache(Serialisable): tagname: str cacheId: Incomplete id: Incomplete - def __init__(self, cacheId: Incomplete | None = ..., id: Incomplete | None = ...) -> None: ... + def __init__(self, cacheId: Incomplete | None = None, id: Incomplete | None = None) -> None: ... class WorkbookPackage(Serialisable): tagname: str @@ -64,27 +64,27 @@ class WorkbookPackage(Serialisable): __elements__: Incomplete def __init__( self, - conformance: Incomplete | None = ..., - fileVersion: Incomplete | None = ..., - fileSharing: Incomplete | None = ..., - workbookPr: Incomplete | None = ..., - workbookProtection: Incomplete | None = ..., - bookViews=..., - sheets=..., - functionGroups: Incomplete | None = ..., - externalReferences=..., - definedNames: Incomplete | None = ..., - calcPr: Incomplete | None = ..., - oleSize: Incomplete | None = ..., - customWorkbookViews=..., - pivotCaches=..., - smartTagPr: Incomplete | None = ..., - smartTagTypes: Incomplete | None = ..., - webPublishing: Incomplete | None = ..., - fileRecoveryPr: Incomplete | None = ..., - webPublishObjects: Incomplete | None = ..., - extLst: Incomplete | None = ..., - Ignorable: Incomplete | None = ..., + conformance: Incomplete | None = None, + fileVersion: Incomplete | None = None, + fileSharing: Incomplete | None = None, + workbookPr: Incomplete | None = None, + workbookProtection: Incomplete | None = None, + bookViews=(), + sheets=(), + functionGroups: Incomplete | None = None, + externalReferences=(), + definedNames: Incomplete | None = None, + calcPr: Incomplete | None = None, + oleSize: Incomplete | None = None, + customWorkbookViews=(), + pivotCaches=(), + smartTagPr: Incomplete | None = None, + smartTagTypes: Incomplete | None = None, + webPublishing: Incomplete | None = None, + fileRecoveryPr: Incomplete | None = None, + webPublishObjects: Incomplete | None = None, + extLst: Incomplete | None = None, + Ignorable: Incomplete | None = None, ) -> None: ... def to_tree(self): ... @property diff --git a/stubs/openpyxl/openpyxl/pivot/cache.pyi b/stubs/openpyxl/openpyxl/pivot/cache.pyi index 3c4906403f37..f807b116f3a5 100644 --- a/stubs/openpyxl/openpyxl/pivot/cache.pyi +++ b/stubs/openpyxl/openpyxl/pivot/cache.pyi @@ -6,13 +6,13 @@ class MeasureDimensionMap(Serialisable): tagname: str measureGroup: Incomplete dimension: Incomplete - def __init__(self, measureGroup: Incomplete | None = ..., dimension: Incomplete | None = ...) -> None: ... + def __init__(self, measureGroup: Incomplete | None = None, dimension: Incomplete | None = None) -> None: ... class MeasureGroup(Serialisable): tagname: str name: Incomplete caption: Incomplete - def __init__(self, name: Incomplete | None = ..., caption: Incomplete | None = ...) -> None: ... + def __init__(self, name: Incomplete | None = None, caption: Incomplete | None = None) -> None: ... class PivotDimension(Serialisable): tagname: str @@ -22,10 +22,10 @@ class PivotDimension(Serialisable): caption: Incomplete def __init__( self, - measure: Incomplete | None = ..., - name: Incomplete | None = ..., - uniqueName: Incomplete | None = ..., - caption: Incomplete | None = ..., + measure: Incomplete | None = None, + name: Incomplete | None = None, + uniqueName: Incomplete | None = None, + caption: Incomplete | None = None, ) -> None: ... class CalculatedMember(Serialisable): @@ -41,14 +41,14 @@ class CalculatedMember(Serialisable): __elements__: Incomplete def __init__( self, - name: Incomplete | None = ..., - mdx: Incomplete | None = ..., - memberName: Incomplete | None = ..., - hierarchy: Incomplete | None = ..., - parent: Incomplete | None = ..., - solveOrder: Incomplete | None = ..., - set: Incomplete | None = ..., - extLst: Incomplete | None = ..., + name: Incomplete | None = None, + mdx: Incomplete | None = None, + memberName: Incomplete | None = None, + hierarchy: Incomplete | None = None, + parent: Incomplete | None = None, + solveOrder: Incomplete | None = None, + set: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class CalculatedItem(Serialisable): @@ -60,24 +60,24 @@ class CalculatedItem(Serialisable): __elements__: Incomplete def __init__( self, - field: Incomplete | None = ..., - formula: Incomplete | None = ..., - pivotArea: Incomplete | None = ..., - extLst: Incomplete | None = ..., + field: Incomplete | None = None, + formula: Incomplete | None = None, + pivotArea: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class ServerFormat(Serialisable): tagname: str culture: Incomplete format: Incomplete - def __init__(self, culture: Incomplete | None = ..., format: Incomplete | None = ...) -> None: ... + def __init__(self, culture: Incomplete | None = None, format: Incomplete | None = None) -> None: ... class ServerFormatList(Serialisable): tagname: str serverFormat: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., serverFormat: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, serverFormat: Incomplete | None = None) -> None: ... @property def count(self): ... @@ -86,14 +86,14 @@ class Query(Serialisable): mdx: Incomplete tpls: Incomplete __elements__: Incomplete - def __init__(self, mdx: Incomplete | None = ..., tpls: Incomplete | None = ...) -> None: ... + def __init__(self, mdx: Incomplete | None = None, tpls: Incomplete | None = None) -> None: ... class QueryCache(Serialisable): tagname: str count: Incomplete query: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., query: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, query: Incomplete | None = None) -> None: ... class OLAPSet(Serialisable): tagname: str @@ -107,20 +107,20 @@ class OLAPSet(Serialisable): __elements__: Incomplete def __init__( self, - count: Incomplete | None = ..., - maxRank: Incomplete | None = ..., - setDefinition: Incomplete | None = ..., - sortType: Incomplete | None = ..., - queryFailed: Incomplete | None = ..., - tpls: Incomplete | None = ..., - sortByTuple: Incomplete | None = ..., + count: Incomplete | None = None, + maxRank: Incomplete | None = None, + setDefinition: Incomplete | None = None, + sortType: Incomplete | None = None, + queryFailed: Incomplete | None = None, + tpls: Incomplete | None = None, + sortByTuple: Incomplete | None = None, ) -> None: ... class OLAPSets(Serialisable): # type: ignore[misc] count: Incomplete set: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., set: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, set: Incomplete | None = None) -> None: ... class PCDSDTCEntries(Serialisable): tagname: str @@ -132,11 +132,11 @@ class PCDSDTCEntries(Serialisable): __elements__: Incomplete def __init__( self, - count: Incomplete | None = ..., - m: Incomplete | None = ..., - n: Incomplete | None = ..., - e: Incomplete | None = ..., - s: Incomplete | None = ..., + count: Incomplete | None = None, + m: Incomplete | None = None, + n: Incomplete | None = None, + e: Incomplete | None = None, + s: Incomplete | None = None, ) -> None: ... class TupleCache(Serialisable): @@ -149,11 +149,11 @@ class TupleCache(Serialisable): __elements__: Incomplete def __init__( self, - entries: Incomplete | None = ..., - sets: Incomplete | None = ..., - queryCache: Incomplete | None = ..., - serverFormats: Incomplete | None = ..., - extLst: Incomplete | None = ..., + entries: Incomplete | None = None, + sets: Incomplete | None = None, + queryCache: Incomplete | None = None, + serverFormats: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class PCDKPI(Serialisable): @@ -171,30 +171,30 @@ class PCDKPI(Serialisable): time: Incomplete def __init__( self, - uniqueName: Incomplete | None = ..., - caption: Incomplete | None = ..., - displayFolder: Incomplete | None = ..., - measureGroup: Incomplete | None = ..., - parent: Incomplete | None = ..., - value: Incomplete | None = ..., - goal: Incomplete | None = ..., - status: Incomplete | None = ..., - trend: Incomplete | None = ..., - weight: Incomplete | None = ..., - time: Incomplete | None = ..., + uniqueName: Incomplete | None = None, + caption: Incomplete | None = None, + displayFolder: Incomplete | None = None, + measureGroup: Incomplete | None = None, + parent: Incomplete | None = None, + value: Incomplete | None = None, + goal: Incomplete | None = None, + status: Incomplete | None = None, + trend: Incomplete | None = None, + weight: Incomplete | None = None, + time: Incomplete | None = None, ) -> None: ... class GroupMember(Serialisable): tagname: str uniqueName: Incomplete group: Incomplete - def __init__(self, uniqueName: Incomplete | None = ..., group: Incomplete | None = ...) -> None: ... + def __init__(self, uniqueName: Incomplete | None = None, group: Incomplete | None = None) -> None: ... class GroupMembers(Serialisable): # type: ignore[misc] count: Incomplete groupMember: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., groupMember: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, groupMember: Incomplete | None = None) -> None: ... class LevelGroup(Serialisable): tagname: str @@ -207,12 +207,12 @@ class LevelGroup(Serialisable): __elements__: Incomplete def __init__( self, - name: Incomplete | None = ..., - uniqueName: Incomplete | None = ..., - caption: Incomplete | None = ..., - uniqueParent: Incomplete | None = ..., - id: Incomplete | None = ..., - groupMembers: Incomplete | None = ..., + name: Incomplete | None = None, + uniqueName: Incomplete | None = None, + caption: Incomplete | None = None, + uniqueParent: Incomplete | None = None, + id: Incomplete | None = None, + groupMembers: Incomplete | None = None, ) -> None: ... class Groups(Serialisable): @@ -220,7 +220,7 @@ class Groups(Serialisable): count: Incomplete group: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., group: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, group: Incomplete | None = None) -> None: ... class GroupLevel(Serialisable): tagname: str @@ -233,30 +233,30 @@ class GroupLevel(Serialisable): __elements__: Incomplete def __init__( self, - uniqueName: Incomplete | None = ..., - caption: Incomplete | None = ..., - user: Incomplete | None = ..., - customRollUp: Incomplete | None = ..., - groups: Incomplete | None = ..., - extLst: Incomplete | None = ..., + uniqueName: Incomplete | None = None, + caption: Incomplete | None = None, + user: Incomplete | None = None, + customRollUp: Incomplete | None = None, + groups: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class GroupLevels(Serialisable): # type: ignore[misc] count: Incomplete groupLevel: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., groupLevel: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, groupLevel: Incomplete | None = None) -> None: ... class FieldUsage(Serialisable): tagname: str x: Incomplete - def __init__(self, x: Incomplete | None = ...) -> None: ... + def __init__(self, x: Incomplete | None = None) -> None: ... class FieldsUsage(Serialisable): # type: ignore[misc] count: Incomplete fieldUsage: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., fieldUsage: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, fieldUsage: Incomplete | None = None) -> None: ... class CacheHierarchy(Serialisable): tagname: str @@ -288,31 +288,31 @@ class CacheHierarchy(Serialisable): __elements__: Incomplete def __init__( self, - uniqueName: str = ..., - caption: Incomplete | None = ..., - measure: Incomplete | None = ..., - set: Incomplete | None = ..., - parentSet: Incomplete | None = ..., - iconSet: int = ..., - attribute: Incomplete | None = ..., - time: Incomplete | None = ..., - keyAttribute: Incomplete | None = ..., - defaultMemberUniqueName: Incomplete | None = ..., - allUniqueName: Incomplete | None = ..., - allCaption: Incomplete | None = ..., - dimensionUniqueName: Incomplete | None = ..., - displayFolder: Incomplete | None = ..., - measureGroup: Incomplete | None = ..., - measures: Incomplete | None = ..., - count: Incomplete | None = ..., - oneField: Incomplete | None = ..., - memberValueDatatype: Incomplete | None = ..., - unbalanced: Incomplete | None = ..., - unbalancedGroup: Incomplete | None = ..., - hidden: Incomplete | None = ..., - fieldsUsage: Incomplete | None = ..., - groupLevels: Incomplete | None = ..., - extLst: Incomplete | None = ..., + uniqueName: str = "", + caption: Incomplete | None = None, + measure: Incomplete | None = None, + set: Incomplete | None = None, + parentSet: Incomplete | None = None, + iconSet: int = 0, + attribute: Incomplete | None = None, + time: Incomplete | None = None, + keyAttribute: Incomplete | None = None, + defaultMemberUniqueName: Incomplete | None = None, + allUniqueName: Incomplete | None = None, + allCaption: Incomplete | None = None, + dimensionUniqueName: Incomplete | None = None, + displayFolder: Incomplete | None = None, + measureGroup: Incomplete | None = None, + measures: Incomplete | None = None, + count: Incomplete | None = None, + oneField: Incomplete | None = None, + memberValueDatatype: Incomplete | None = None, + unbalanced: Incomplete | None = None, + unbalancedGroup: Incomplete | None = None, + hidden: Incomplete | None = None, + fieldsUsage: Incomplete | None = None, + groupLevels: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class GroupItems(Serialisable): @@ -325,7 +325,7 @@ class GroupItems(Serialisable): d: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., m=..., n=..., b=..., e=..., s=..., d=...) -> None: ... + def __init__(self, count: Incomplete | None = None, m=(), n=(), b=(), e=(), s=(), d=()) -> None: ... @property def count(self): ... @@ -334,7 +334,7 @@ class DiscretePr(Serialisable): count: Incomplete x: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., x: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, x: Incomplete | None = None) -> None: ... class RangePr(Serialisable): tagname: str @@ -348,14 +348,14 @@ class RangePr(Serialisable): groupInterval: Incomplete def __init__( self, - autoStart: bool = ..., - autoEnd: bool = ..., - groupBy: str = ..., - startNum: Incomplete | None = ..., - endNum: Incomplete | None = ..., - startDate: Incomplete | None = ..., - endDate: Incomplete | None = ..., - groupInterval: int = ..., + autoStart: bool = True, + autoEnd: bool = True, + groupBy: str = "range", + startNum: Incomplete | None = None, + endNum: Incomplete | None = None, + startDate: Incomplete | None = None, + endDate: Incomplete | None = None, + groupInterval: int = 1, ) -> None: ... class FieldGroup(Serialisable): @@ -368,11 +368,11 @@ class FieldGroup(Serialisable): __elements__: Incomplete def __init__( self, - par: Incomplete | None = ..., - base: Incomplete | None = ..., - rangePr: Incomplete | None = ..., - discretePr: Incomplete | None = ..., - groupItems: Incomplete | None = ..., + par: Incomplete | None = None, + base: Incomplete | None = None, + rangePr: Incomplete | None = None, + discretePr: Incomplete | None = None, + groupItems: Incomplete | None = None, ) -> None: ... class SharedItems(Serialisable): @@ -399,21 +399,21 @@ class SharedItems(Serialisable): __attrs__: Incomplete def __init__( self, - _fields=..., - containsSemiMixedTypes: Incomplete | None = ..., - containsNonDate: Incomplete | None = ..., - containsDate: Incomplete | None = ..., - containsString: Incomplete | None = ..., - containsBlank: Incomplete | None = ..., - containsMixedTypes: Incomplete | None = ..., - containsNumber: Incomplete | None = ..., - containsInteger: Incomplete | None = ..., - minValue: Incomplete | None = ..., - maxValue: Incomplete | None = ..., - minDate: Incomplete | None = ..., - maxDate: Incomplete | None = ..., - count: Incomplete | None = ..., - longText: Incomplete | None = ..., + _fields=(), + containsSemiMixedTypes: Incomplete | None = None, + containsNonDate: Incomplete | None = None, + containsDate: Incomplete | None = None, + containsString: Incomplete | None = None, + containsBlank: Incomplete | None = None, + containsMixedTypes: Incomplete | None = None, + containsNumber: Incomplete | None = None, + containsInteger: Incomplete | None = None, + minValue: Incomplete | None = None, + maxValue: Incomplete | None = None, + minDate: Incomplete | None = None, + maxDate: Incomplete | None = None, + count: Incomplete | None = None, + longText: Incomplete | None = None, ) -> None: ... @property def count(self): ... @@ -440,23 +440,23 @@ class CacheField(Serialisable): __elements__: Incomplete def __init__( self, - sharedItems: Incomplete | None = ..., - fieldGroup: Incomplete | None = ..., - mpMap: Incomplete | None = ..., - extLst: Incomplete | None = ..., - name: Incomplete | None = ..., - caption: Incomplete | None = ..., - propertyName: Incomplete | None = ..., - serverField: Incomplete | None = ..., - uniqueList: bool = ..., - numFmtId: Incomplete | None = ..., - formula: Incomplete | None = ..., - sqlType: int = ..., - hierarchy: int = ..., - level: int = ..., - databaseField: bool = ..., - mappingCount: Incomplete | None = ..., - memberPropertyField: Incomplete | None = ..., + sharedItems: Incomplete | None = None, + fieldGroup: Incomplete | None = None, + mpMap: Incomplete | None = None, + extLst: Incomplete | None = None, + name: Incomplete | None = None, + caption: Incomplete | None = None, + propertyName: Incomplete | None = None, + serverField: Incomplete | None = None, + uniqueList: bool = True, + numFmtId: Incomplete | None = None, + formula: Incomplete | None = None, + sqlType: int = 0, + hierarchy: int = 0, + level: int = 0, + databaseField: bool = True, + mappingCount: Incomplete | None = None, + memberPropertyField: Incomplete | None = None, ) -> None: ... class RangeSet(Serialisable): @@ -470,25 +470,25 @@ class RangeSet(Serialisable): sheet: Incomplete def __init__( self, - i1: Incomplete | None = ..., - i2: Incomplete | None = ..., - i3: Incomplete | None = ..., - i4: Incomplete | None = ..., - ref: Incomplete | None = ..., - name: Incomplete | None = ..., - sheet: Incomplete | None = ..., + i1: Incomplete | None = None, + i2: Incomplete | None = None, + i3: Incomplete | None = None, + i4: Incomplete | None = None, + ref: Incomplete | None = None, + name: Incomplete | None = None, + sheet: Incomplete | None = None, ) -> None: ... class PageItem(Serialisable): tagname: str name: Incomplete - def __init__(self, name: Incomplete | None = ...) -> None: ... + def __init__(self, name: Incomplete | None = None) -> None: ... class Page(Serialisable): tagname: str pageItem: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., pageItem: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, pageItem: Incomplete | None = None) -> None: ... @property def count(self): ... @@ -498,14 +498,16 @@ class Consolidation(Serialisable): pages: Incomplete rangeSets: Incomplete __elements__: Incomplete - def __init__(self, autoPage: Incomplete | None = ..., pages=..., rangeSets=...) -> None: ... + def __init__(self, autoPage: Incomplete | None = None, pages=(), rangeSets=()) -> None: ... class WorksheetSource(Serialisable): tagname: str ref: Incomplete name: Incomplete sheet: Incomplete - def __init__(self, ref: Incomplete | None = ..., name: Incomplete | None = ..., sheet: Incomplete | None = ...) -> None: ... + def __init__( + self, ref: Incomplete | None = None, name: Incomplete | None = None, sheet: Incomplete | None = None + ) -> None: ... class CacheSource(Serialisable): tagname: str @@ -517,11 +519,11 @@ class CacheSource(Serialisable): __elements__: Incomplete def __init__( self, - type: Incomplete | None = ..., - connectionId: Incomplete | None = ..., - worksheetSource: Incomplete | None = ..., - consolidation: Incomplete | None = ..., - extLst: Incomplete | None = ..., + type: Incomplete | None = None, + connectionId: Incomplete | None = None, + worksheetSource: Incomplete | None = None, + consolidation: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class CacheDefinition(Serialisable): @@ -561,35 +563,35 @@ class CacheDefinition(Serialisable): __elements__: Incomplete def __init__( self, - invalid: Incomplete | None = ..., - saveData: Incomplete | None = ..., - refreshOnLoad: Incomplete | None = ..., - optimizeMemory: Incomplete | None = ..., - enableRefresh: Incomplete | None = ..., - refreshedBy: Incomplete | None = ..., - refreshedDate: Incomplete | None = ..., - refreshedDateIso: Incomplete | None = ..., - backgroundQuery: Incomplete | None = ..., - missingItemsLimit: Incomplete | None = ..., - createdVersion: Incomplete | None = ..., - refreshedVersion: Incomplete | None = ..., - minRefreshableVersion: Incomplete | None = ..., - recordCount: Incomplete | None = ..., - upgradeOnRefresh: Incomplete | None = ..., - tupleCache: Incomplete | None = ..., - supportSubquery: Incomplete | None = ..., - supportAdvancedDrill: Incomplete | None = ..., - cacheSource: Incomplete | None = ..., - cacheFields=..., - cacheHierarchies=..., - kpis=..., - calculatedItems=..., - calculatedMembers=..., - dimensions=..., - measureGroups=..., - maps=..., - extLst: Incomplete | None = ..., - id: Incomplete | None = ..., + invalid: Incomplete | None = None, + saveData: Incomplete | None = None, + refreshOnLoad: Incomplete | None = None, + optimizeMemory: Incomplete | None = None, + enableRefresh: Incomplete | None = None, + refreshedBy: Incomplete | None = None, + refreshedDate: Incomplete | None = None, + refreshedDateIso: Incomplete | None = None, + backgroundQuery: Incomplete | None = None, + missingItemsLimit: Incomplete | None = None, + createdVersion: Incomplete | None = None, + refreshedVersion: Incomplete | None = None, + minRefreshableVersion: Incomplete | None = None, + recordCount: Incomplete | None = None, + upgradeOnRefresh: Incomplete | None = None, + tupleCache: Incomplete | None = None, + supportSubquery: Incomplete | None = None, + supportAdvancedDrill: Incomplete | None = None, + cacheSource: Incomplete | None = None, + cacheFields=(), + cacheHierarchies=(), + kpis=(), + calculatedItems=(), + calculatedMembers=(), + dimensions=(), + measureGroups=(), + maps=(), + extLst: Incomplete | None = None, + id: Incomplete | None = None, ) -> None: ... def to_tree(self): ... @property diff --git a/stubs/openpyxl/openpyxl/pivot/fields.pyi b/stubs/openpyxl/openpyxl/pivot/fields.pyi index b3eb3158ae35..1bcb29a97282 100644 --- a/stubs/openpyxl/openpyxl/pivot/fields.pyi +++ b/stubs/openpyxl/openpyxl/pivot/fields.pyi @@ -5,19 +5,19 @@ from openpyxl.descriptors.serialisable import Serialisable class Index(Serialisable): tagname: str v: Incomplete - def __init__(self, v: int = ...) -> None: ... + def __init__(self, v: int = 0) -> None: ... class Tuple(Serialisable): # type: ignore[misc] fld: Incomplete hier: Incomplete item: Incomplete - def __init__(self, fld: Incomplete | None = ..., hier: Incomplete | None = ..., item: Incomplete | None = ...) -> None: ... + def __init__(self, fld: Incomplete | None = None, hier: Incomplete | None = None, item: Incomplete | None = None) -> None: ... class TupleList(Serialisable): # type: ignore[misc] c: Incomplete tpl: Incomplete __elements__: Incomplete - def __init__(self, c: Incomplete | None = ..., tpl: Incomplete | None = ...) -> None: ... + def __init__(self, c: Incomplete | None = None, tpl: Incomplete | None = None) -> None: ... class Missing(Serialisable): tagname: str @@ -36,19 +36,19 @@ class Missing(Serialisable): __elements__: Incomplete def __init__( self, - tpls=..., - x=..., - u: Incomplete | None = ..., - f: Incomplete | None = ..., - c: Incomplete | None = ..., - cp: Incomplete | None = ..., - _in: Incomplete | None = ..., - bc: Incomplete | None = ..., - fc: Incomplete | None = ..., - i: Incomplete | None = ..., - un: Incomplete | None = ..., - st: Incomplete | None = ..., - b: Incomplete | None = ..., + tpls=(), + x=(), + u: Incomplete | None = None, + f: Incomplete | None = None, + c: Incomplete | None = None, + cp: Incomplete | None = None, + _in: Incomplete | None = None, + bc: Incomplete | None = None, + fc: Incomplete | None = None, + i: Incomplete | None = None, + un: Incomplete | None = None, + st: Incomplete | None = None, + b: Incomplete | None = None, ) -> None: ... class Number(Serialisable): @@ -69,20 +69,20 @@ class Number(Serialisable): __elements__: Incomplete def __init__( self, - tpls=..., - x=..., - v: Incomplete | None = ..., - u: Incomplete | None = ..., - f: Incomplete | None = ..., - c: Incomplete | None = ..., - cp: Incomplete | None = ..., - _in: Incomplete | None = ..., - bc: Incomplete | None = ..., - fc: Incomplete | None = ..., - i: Incomplete | None = ..., - un: Incomplete | None = ..., - st: Incomplete | None = ..., - b: Incomplete | None = ..., + tpls=(), + x=(), + v: Incomplete | None = None, + u: Incomplete | None = None, + f: Incomplete | None = None, + c: Incomplete | None = None, + cp: Incomplete | None = None, + _in: Incomplete | None = None, + bc: Incomplete | None = None, + fc: Incomplete | None = None, + i: Incomplete | None = None, + un: Incomplete | None = None, + st: Incomplete | None = None, + b: Incomplete | None = None, ) -> None: ... class Error(Serialisable): @@ -103,20 +103,20 @@ class Error(Serialisable): __elements__: Incomplete def __init__( self, - tpls: Incomplete | None = ..., - x=..., - v: Incomplete | None = ..., - u: Incomplete | None = ..., - f: Incomplete | None = ..., - c: Incomplete | None = ..., - cp: Incomplete | None = ..., - _in: Incomplete | None = ..., - bc: Incomplete | None = ..., - fc: Incomplete | None = ..., - i: Incomplete | None = ..., - un: Incomplete | None = ..., - st: Incomplete | None = ..., - b: Incomplete | None = ..., + tpls: Incomplete | None = None, + x=(), + v: Incomplete | None = None, + u: Incomplete | None = None, + f: Incomplete | None = None, + c: Incomplete | None = None, + cp: Incomplete | None = None, + _in: Incomplete | None = None, + bc: Incomplete | None = None, + fc: Incomplete | None = None, + i: Incomplete | None = None, + un: Incomplete | None = None, + st: Incomplete | None = None, + b: Incomplete | None = None, ) -> None: ... class Boolean(Serialisable): @@ -130,12 +130,12 @@ class Boolean(Serialisable): __elements__: Incomplete def __init__( self, - x=..., - v: Incomplete | None = ..., - u: Incomplete | None = ..., - f: Incomplete | None = ..., - c: Incomplete | None = ..., - cp: Incomplete | None = ..., + x=(), + v: Incomplete | None = None, + u: Incomplete | None = None, + f: Incomplete | None = None, + c: Incomplete | None = None, + cp: Incomplete | None = None, ) -> None: ... class Text(Serialisable): @@ -156,20 +156,20 @@ class Text(Serialisable): __elements__: Incomplete def __init__( self, - tpls=..., - x=..., - v: Incomplete | None = ..., - u: Incomplete | None = ..., - f: Incomplete | None = ..., - c: Incomplete | None = ..., - cp: Incomplete | None = ..., - _in: Incomplete | None = ..., - bc: Incomplete | None = ..., - fc: Incomplete | None = ..., - i: Incomplete | None = ..., - un: Incomplete | None = ..., - st: Incomplete | None = ..., - b: Incomplete | None = ..., + tpls=(), + x=(), + v: Incomplete | None = None, + u: Incomplete | None = None, + f: Incomplete | None = None, + c: Incomplete | None = None, + cp: Incomplete | None = None, + _in: Incomplete | None = None, + bc: Incomplete | None = None, + fc: Incomplete | None = None, + i: Incomplete | None = None, + un: Incomplete | None = None, + st: Incomplete | None = None, + b: Incomplete | None = None, ) -> None: ... class DateTimeField(Serialisable): @@ -183,10 +183,10 @@ class DateTimeField(Serialisable): __elements__: Incomplete def __init__( self, - x=..., - v: Incomplete | None = ..., - u: Incomplete | None = ..., - f: Incomplete | None = ..., - c: Incomplete | None = ..., - cp: Incomplete | None = ..., + x=(), + v: Incomplete | None = None, + u: Incomplete | None = None, + f: Incomplete | None = None, + c: Incomplete | None = None, + cp: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/pivot/record.pyi b/stubs/openpyxl/openpyxl/pivot/record.pyi index 3406068bdf23..90411cb6606d 100644 --- a/stubs/openpyxl/openpyxl/pivot/record.pyi +++ b/stubs/openpyxl/openpyxl/pivot/record.pyi @@ -13,14 +13,14 @@ class Record(Serialisable): x: Incomplete def __init__( self, - _fields=..., - m: Incomplete | None = ..., - n: Incomplete | None = ..., - b: Incomplete | None = ..., - e: Incomplete | None = ..., - s: Incomplete | None = ..., - d: Incomplete | None = ..., - x: Incomplete | None = ..., + _fields=(), + m: Incomplete | None = None, + n: Incomplete | None = None, + b: Incomplete | None = None, + e: Incomplete | None = None, + s: Incomplete | None = None, + d: Incomplete | None = None, + x: Incomplete | None = None, ) -> None: ... class RecordList(Serialisable): @@ -31,7 +31,7 @@ class RecordList(Serialisable): extLst: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., r=..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, r=(), extLst: Incomplete | None = None) -> None: ... @property def count(self): ... def to_tree(self): ... diff --git a/stubs/openpyxl/openpyxl/pivot/table.pyi b/stubs/openpyxl/openpyxl/pivot/table.pyi index 16a7b289b239..2bca0d30945a 100644 --- a/stubs/openpyxl/openpyxl/pivot/table.pyi +++ b/stubs/openpyxl/openpyxl/pivot/table.pyi @@ -5,14 +5,14 @@ from openpyxl.descriptors.serialisable import Serialisable class HierarchyUsage(Serialisable): tagname: str hierarchyUsage: Incomplete - def __init__(self, hierarchyUsage: Incomplete | None = ...) -> None: ... + def __init__(self, hierarchyUsage: Incomplete | None = None) -> None: ... class ColHierarchiesUsage(Serialisable): tagname: str colHierarchyUsage: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., colHierarchyUsage=...) -> None: ... + def __init__(self, count: Incomplete | None = None, colHierarchyUsage=()) -> None: ... @property def count(self): ... @@ -21,7 +21,7 @@ class RowHierarchiesUsage(Serialisable): rowHierarchyUsage: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., rowHierarchyUsage=...) -> None: ... + def __init__(self, count: Incomplete | None = None, rowHierarchyUsage=()) -> None: ... @property def count(self): ... @@ -43,26 +43,26 @@ class PivotFilter(Serialisable): __elements__: Incomplete def __init__( self, - fld: Incomplete | None = ..., - mpFld: Incomplete | None = ..., - type: Incomplete | None = ..., - evalOrder: Incomplete | None = ..., - id: Incomplete | None = ..., - iMeasureHier: Incomplete | None = ..., - iMeasureFld: Incomplete | None = ..., - name: Incomplete | None = ..., - description: Incomplete | None = ..., - stringValue1: Incomplete | None = ..., - stringValue2: Incomplete | None = ..., - autoFilter: Incomplete | None = ..., - extLst: Incomplete | None = ..., + fld: Incomplete | None = None, + mpFld: Incomplete | None = None, + type: Incomplete | None = None, + evalOrder: Incomplete | None = None, + id: Incomplete | None = None, + iMeasureHier: Incomplete | None = None, + iMeasureFld: Incomplete | None = None, + name: Incomplete | None = None, + description: Incomplete | None = None, + stringValue1: Incomplete | None = None, + stringValue2: Incomplete | None = None, + autoFilter: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class PivotFilters(Serialisable): # type: ignore[misc] count: Incomplete filter: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., filter: Incomplete | None = ...) -> None: ... + def __init__(self, count: Incomplete | None = None, filter: Incomplete | None = None) -> None: ... class PivotTableStyle(Serialisable): tagname: str @@ -74,12 +74,12 @@ class PivotTableStyle(Serialisable): showLastColumn: Incomplete def __init__( self, - name: Incomplete | None = ..., - showRowHeaders: Incomplete | None = ..., - showColHeaders: Incomplete | None = ..., - showRowStripes: Incomplete | None = ..., - showColStripes: Incomplete | None = ..., - showLastColumn: Incomplete | None = ..., + name: Incomplete | None = None, + showRowHeaders: Incomplete | None = None, + showColHeaders: Incomplete | None = None, + showRowStripes: Incomplete | None = None, + showColStripes: Incomplete | None = None, + showLastColumn: Incomplete | None = None, ) -> None: ... class MemberList(Serialisable): @@ -87,7 +87,7 @@ class MemberList(Serialisable): level: Incomplete member: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., level: Incomplete | None = ..., member=...) -> None: ... + def __init__(self, count: Incomplete | None = None, level: Incomplete | None = None, member=()) -> None: ... @property def count(self): ... @@ -104,15 +104,15 @@ class MemberProperty(Serialisable): field: Incomplete def __init__( self, - name: Incomplete | None = ..., - showCell: Incomplete | None = ..., - showTip: Incomplete | None = ..., - showAsCaption: Incomplete | None = ..., - nameLen: Incomplete | None = ..., - pPos: Incomplete | None = ..., - pLen: Incomplete | None = ..., - level: Incomplete | None = ..., - field: Incomplete | None = ..., + name: Incomplete | None = None, + showCell: Incomplete | None = None, + showTip: Incomplete | None = None, + showAsCaption: Incomplete | None = None, + nameLen: Incomplete | None = None, + pPos: Incomplete | None = None, + pLen: Incomplete | None = None, + level: Incomplete | None = None, + field: Incomplete | None = None, ) -> None: ... class PivotHierarchy(Serialisable): @@ -134,20 +134,20 @@ class PivotHierarchy(Serialisable): __elements__: Incomplete def __init__( self, - outline: Incomplete | None = ..., - multipleItemSelectionAllowed: Incomplete | None = ..., - subtotalTop: Incomplete | None = ..., - showInFieldList: Incomplete | None = ..., - dragToRow: Incomplete | None = ..., - dragToCol: Incomplete | None = ..., - dragToPage: Incomplete | None = ..., - dragToData: Incomplete | None = ..., - dragOff: Incomplete | None = ..., - includeNewItemsInFilter: Incomplete | None = ..., - caption: Incomplete | None = ..., - mps=..., - members: Incomplete | None = ..., - extLst: Incomplete | None = ..., + outline: Incomplete | None = None, + multipleItemSelectionAllowed: Incomplete | None = None, + subtotalTop: Incomplete | None = None, + showInFieldList: Incomplete | None = None, + dragToRow: Incomplete | None = None, + dragToCol: Incomplete | None = None, + dragToPage: Incomplete | None = None, + dragToData: Incomplete | None = None, + dragOff: Incomplete | None = None, + includeNewItemsInFilter: Incomplete | None = None, + caption: Incomplete | None = None, + mps=(), + members: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Reference(Serialisable): @@ -173,25 +173,25 @@ class Reference(Serialisable): __elements__: Incomplete def __init__( self, - field: Incomplete | None = ..., - count: Incomplete | None = ..., - selected: Incomplete | None = ..., - byPosition: Incomplete | None = ..., - relative: Incomplete | None = ..., - defaultSubtotal: Incomplete | None = ..., - sumSubtotal: Incomplete | None = ..., - countASubtotal: Incomplete | None = ..., - avgSubtotal: Incomplete | None = ..., - maxSubtotal: Incomplete | None = ..., - minSubtotal: Incomplete | None = ..., - productSubtotal: Incomplete | None = ..., - countSubtotal: Incomplete | None = ..., - stdDevSubtotal: Incomplete | None = ..., - stdDevPSubtotal: Incomplete | None = ..., - varSubtotal: Incomplete | None = ..., - varPSubtotal: Incomplete | None = ..., - x: Incomplete | None = ..., - extLst: Incomplete | None = ..., + field: Incomplete | None = None, + count: Incomplete | None = None, + selected: Incomplete | None = None, + byPosition: Incomplete | None = None, + relative: Incomplete | None = None, + defaultSubtotal: Incomplete | None = None, + sumSubtotal: Incomplete | None = None, + countASubtotal: Incomplete | None = None, + avgSubtotal: Incomplete | None = None, + maxSubtotal: Incomplete | None = None, + minSubtotal: Incomplete | None = None, + productSubtotal: Incomplete | None = None, + countSubtotal: Incomplete | None = None, + stdDevSubtotal: Incomplete | None = None, + stdDevPSubtotal: Incomplete | None = None, + varSubtotal: Incomplete | None = None, + varPSubtotal: Incomplete | None = None, + x: Incomplete | None = (), + extLst: Incomplete | None = None, ) -> None: ... @property def count(self): ... @@ -215,20 +215,20 @@ class PivotArea(Serialisable): __elements__: Incomplete def __init__( self, - references=..., - extLst: Incomplete | None = ..., - field: Incomplete | None = ..., - type: str = ..., - dataOnly: bool = ..., - labelOnly: Incomplete | None = ..., - grandRow: Incomplete | None = ..., - grandCol: Incomplete | None = ..., - cacheIndex: Incomplete | None = ..., - outline: bool = ..., - offset: Incomplete | None = ..., - collapsedLevelsAreSubtotals: Incomplete | None = ..., - axis: Incomplete | None = ..., - fieldPosition: Incomplete | None = ..., + references=(), + extLst: Incomplete | None = None, + field: Incomplete | None = None, + type: str = "normal", + dataOnly: bool = True, + labelOnly: Incomplete | None = None, + grandRow: Incomplete | None = None, + grandCol: Incomplete | None = None, + cacheIndex: Incomplete | None = None, + outline: bool = True, + offset: Incomplete | None = None, + collapsedLevelsAreSubtotals: Incomplete | None = None, + axis: Incomplete | None = None, + fieldPosition: Incomplete | None = None, ) -> None: ... class ChartFormat(Serialisable): @@ -240,10 +240,10 @@ class ChartFormat(Serialisable): __elements__: Incomplete def __init__( self, - chart: Incomplete | None = ..., - format: Incomplete | None = ..., - series: Incomplete | None = ..., - pivotArea: Incomplete | None = ..., + chart: Incomplete | None = None, + format: Incomplete | None = None, + series: Incomplete | None = None, + pivotArea: Incomplete | None = None, ) -> None: ... class ConditionalFormat(Serialisable): @@ -256,11 +256,11 @@ class ConditionalFormat(Serialisable): __elements__: Incomplete def __init__( self, - scope: Incomplete | None = ..., - type: Incomplete | None = ..., - priority: Incomplete | None = ..., - pivotAreas=..., - extLst: Incomplete | None = ..., + scope: Incomplete | None = "selection", + type: Incomplete | None = None, + priority: Incomplete | None = None, + pivotAreas=(), + extLst: Incomplete | None = None, ) -> None: ... class Format(Serialisable): @@ -272,10 +272,10 @@ class Format(Serialisable): __elements__: Incomplete def __init__( self, - action: str = ..., - dxfId: Incomplete | None = ..., - pivotArea: Incomplete | None = ..., - extLst: Incomplete | None = ..., + action: str = "formatting", + dxfId: Incomplete | None = None, + pivotArea: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class DataField(Serialisable): @@ -291,14 +291,14 @@ class DataField(Serialisable): __elements__: Incomplete def __init__( self, - name: Incomplete | None = ..., - fld: Incomplete | None = ..., - subtotal: str = ..., - showDataAs: str = ..., - baseField: int = ..., - baseItem: int = ..., - numFmtId: Incomplete | None = ..., - extLst: Incomplete | None = ..., + name: Incomplete | None = None, + fld: Incomplete | None = None, + subtotal: str = "sum", + showDataAs: str = "normal", + baseField: int = -1, + baseItem: int = 1048832, + numFmtId: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class PageField(Serialisable): @@ -312,12 +312,12 @@ class PageField(Serialisable): __elements__: Incomplete def __init__( self, - fld: Incomplete | None = ..., - item: Incomplete | None = ..., - hier: Incomplete | None = ..., - name: Incomplete | None = ..., - cap: Incomplete | None = ..., - extLst: Incomplete | None = ..., + fld: Incomplete | None = None, + item: Incomplete | None = None, + hier: Incomplete | None = None, + name: Incomplete | None = None, + cap: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class RowColItem(Serialisable): @@ -327,17 +327,17 @@ class RowColItem(Serialisable): i: Incomplete x: Incomplete __elements__: Incomplete - def __init__(self, t: str = ..., r: int = ..., i: int = ..., x=...) -> None: ... + def __init__(self, t: str = "data", r: int = 0, i: int = 0, x=()) -> None: ... class RowColField(Serialisable): tagname: str x: Incomplete - def __init__(self, x: Incomplete | None = ...) -> None: ... + def __init__(self, x: Incomplete | None = None) -> None: ... class AutoSortScope(Serialisable): # type: ignore[misc] pivotArea: Incomplete __elements__: Incomplete - def __init__(self, pivotArea: Incomplete | None = ...) -> None: ... + def __init__(self, pivotArea: Incomplete | None = None) -> None: ... class FieldItem(Serialisable): tagname: str @@ -354,17 +354,17 @@ class FieldItem(Serialisable): e: Incomplete def __init__( self, - n: Incomplete | None = ..., - t: str = ..., - h: Incomplete | None = ..., - s: Incomplete | None = ..., - sd: bool = ..., - f: Incomplete | None = ..., - m: Incomplete | None = ..., - c: Incomplete | None = ..., - x: Incomplete | None = ..., - d: Incomplete | None = ..., - e: Incomplete | None = ..., + n: Incomplete | None = None, + t: str = "data", + h: Incomplete | None = None, + s: Incomplete | None = None, + sd: bool = True, + f: Incomplete | None = None, + m: Incomplete | None = None, + c: Incomplete | None = None, + x: Incomplete | None = None, + d: Incomplete | None = None, + e: Incomplete | None = None, ) -> None: ... class PivotField(Serialisable): @@ -423,57 +423,57 @@ class PivotField(Serialisable): __elements__: Incomplete def __init__( self, - items=..., - autoSortScope: Incomplete | None = ..., - name: Incomplete | None = ..., - axis: Incomplete | None = ..., - dataField: Incomplete | None = ..., - subtotalCaption: Incomplete | None = ..., - showDropDowns: bool = ..., - hiddenLevel: Incomplete | None = ..., - uniqueMemberProperty: Incomplete | None = ..., - compact: bool = ..., - allDrilled: Incomplete | None = ..., - numFmtId: Incomplete | None = ..., - outline: bool = ..., - subtotalTop: bool = ..., - dragToRow: bool = ..., - dragToCol: bool = ..., - multipleItemSelectionAllowed: Incomplete | None = ..., - dragToPage: bool = ..., - dragToData: bool = ..., - dragOff: bool = ..., - showAll: bool = ..., - insertBlankRow: Incomplete | None = ..., - serverField: Incomplete | None = ..., - insertPageBreak: Incomplete | None = ..., - autoShow: Incomplete | None = ..., - topAutoShow: bool = ..., - hideNewItems: Incomplete | None = ..., - measureFilter: Incomplete | None = ..., - includeNewItemsInFilter: Incomplete | None = ..., - itemPageCount: int = ..., - sortType: str = ..., - dataSourceSort: Incomplete | None = ..., - nonAutoSortDefault: Incomplete | None = ..., - rankBy: Incomplete | None = ..., - defaultSubtotal: bool = ..., - sumSubtotal: Incomplete | None = ..., - countASubtotal: Incomplete | None = ..., - avgSubtotal: Incomplete | None = ..., - maxSubtotal: Incomplete | None = ..., - minSubtotal: Incomplete | None = ..., - productSubtotal: Incomplete | None = ..., - countSubtotal: Incomplete | None = ..., - stdDevSubtotal: Incomplete | None = ..., - stdDevPSubtotal: Incomplete | None = ..., - varSubtotal: Incomplete | None = ..., - varPSubtotal: Incomplete | None = ..., - showPropCell: Incomplete | None = ..., - showPropTip: Incomplete | None = ..., - showPropAsCaption: Incomplete | None = ..., - defaultAttributeDrillState: Incomplete | None = ..., - extLst: Incomplete | None = ..., + items=(), + autoSortScope: Incomplete | None = None, + name: Incomplete | None = None, + axis: Incomplete | None = None, + dataField: Incomplete | None = None, + subtotalCaption: Incomplete | None = None, + showDropDowns: bool = True, + hiddenLevel: Incomplete | None = None, + uniqueMemberProperty: Incomplete | None = None, + compact: bool = True, + allDrilled: Incomplete | None = None, + numFmtId: Incomplete | None = None, + outline: bool = True, + subtotalTop: bool = True, + dragToRow: bool = True, + dragToCol: bool = True, + multipleItemSelectionAllowed: Incomplete | None = None, + dragToPage: bool = True, + dragToData: bool = True, + dragOff: bool = True, + showAll: bool = True, + insertBlankRow: Incomplete | None = None, + serverField: Incomplete | None = None, + insertPageBreak: Incomplete | None = None, + autoShow: Incomplete | None = None, + topAutoShow: bool = True, + hideNewItems: Incomplete | None = None, + measureFilter: Incomplete | None = None, + includeNewItemsInFilter: Incomplete | None = None, + itemPageCount: int = 10, + sortType: str = "manual", + dataSourceSort: Incomplete | None = None, + nonAutoSortDefault: Incomplete | None = None, + rankBy: Incomplete | None = None, + defaultSubtotal: bool = True, + sumSubtotal: Incomplete | None = None, + countASubtotal: Incomplete | None = None, + avgSubtotal: Incomplete | None = None, + maxSubtotal: Incomplete | None = None, + minSubtotal: Incomplete | None = None, + productSubtotal: Incomplete | None = None, + countSubtotal: Incomplete | None = None, + stdDevSubtotal: Incomplete | None = None, + stdDevPSubtotal: Incomplete | None = None, + varSubtotal: Incomplete | None = None, + varPSubtotal: Incomplete | None = None, + showPropCell: Incomplete | None = None, + showPropTip: Incomplete | None = None, + showPropAsCaption: Incomplete | None = None, + defaultAttributeDrillState: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class Location(Serialisable): @@ -486,12 +486,12 @@ class Location(Serialisable): colPageCount: Incomplete def __init__( self, - ref: Incomplete | None = ..., - firstHeaderRow: Incomplete | None = ..., - firstDataRow: Incomplete | None = ..., - firstDataCol: Incomplete | None = ..., - rowPageCount: Incomplete | None = ..., - colPageCount: Incomplete | None = ..., + ref: Incomplete | None = None, + firstHeaderRow: Incomplete | None = None, + firstDataRow: Incomplete | None = None, + firstDataCol: Incomplete | None = None, + rowPageCount: Incomplete | None = None, + colPageCount: Incomplete | None = None, ) -> None: ... class TableDefinition(Serialisable): @@ -588,92 +588,92 @@ class TableDefinition(Serialisable): __elements__: Incomplete def __init__( self, - name: Incomplete | None = ..., - cacheId: Incomplete | None = ..., - dataOnRows: bool = ..., - dataPosition: Incomplete | None = ..., - dataCaption: Incomplete | None = ..., - grandTotalCaption: Incomplete | None = ..., - errorCaption: Incomplete | None = ..., - showError: bool = ..., - missingCaption: Incomplete | None = ..., - showMissing: bool = ..., - pageStyle: Incomplete | None = ..., - pivotTableStyle: Incomplete | None = ..., - vacatedStyle: Incomplete | None = ..., - tag: Incomplete | None = ..., - updatedVersion: int = ..., - minRefreshableVersion: int = ..., - asteriskTotals: bool = ..., - showItems: bool = ..., - editData: bool = ..., - disableFieldList: bool = ..., - showCalcMbrs: bool = ..., - visualTotals: bool = ..., - showMultipleLabel: bool = ..., - showDataDropDown: bool = ..., - showDrill: bool = ..., - printDrill: bool = ..., - showMemberPropertyTips: bool = ..., - showDataTips: bool = ..., - enableWizard: bool = ..., - enableDrill: bool = ..., - enableFieldProperties: bool = ..., - preserveFormatting: bool = ..., - useAutoFormatting: bool = ..., - pageWrap: int = ..., - pageOverThenDown: bool = ..., - subtotalHiddenItems: bool = ..., - rowGrandTotals: bool = ..., - colGrandTotals: bool = ..., - fieldPrintTitles: bool = ..., - itemPrintTitles: bool = ..., - mergeItem: bool = ..., - showDropZones: bool = ..., - createdVersion: int = ..., - indent: int = ..., - showEmptyRow: bool = ..., - showEmptyCol: bool = ..., - showHeaders: bool = ..., - compact: bool = ..., - outline: bool = ..., - outlineData: bool = ..., - compactData: bool = ..., - published: bool = ..., - gridDropZones: bool = ..., - immersive: bool = ..., - multipleFieldFilters: Incomplete | None = ..., - chartFormat: int = ..., - rowHeaderCaption: Incomplete | None = ..., - colHeaderCaption: Incomplete | None = ..., - fieldListSortAscending: Incomplete | None = ..., - mdxSubqueries: Incomplete | None = ..., - customListSort: Incomplete | None = ..., - autoFormatId: Incomplete | None = ..., - applyNumberFormats: bool = ..., - applyBorderFormats: bool = ..., - applyFontFormats: bool = ..., - applyPatternFormats: bool = ..., - applyAlignmentFormats: bool = ..., - applyWidthHeightFormats: bool = ..., - location: Incomplete | None = ..., - pivotFields=..., - rowFields=..., - rowItems=..., - colFields=..., - colItems=..., - pageFields=..., - dataFields=..., - formats=..., - conditionalFormats=..., - chartFormats=..., - pivotHierarchies=..., - pivotTableStyleInfo: Incomplete | None = ..., - filters=..., - rowHierarchiesUsage: Incomplete | None = ..., - colHierarchiesUsage: Incomplete | None = ..., - extLst: Incomplete | None = ..., - id: Incomplete | None = ..., + name: Incomplete | None = None, + cacheId: Incomplete | None = None, + dataOnRows: bool = False, + dataPosition: Incomplete | None = None, + dataCaption: Incomplete | None = None, + grandTotalCaption: Incomplete | None = None, + errorCaption: Incomplete | None = None, + showError: bool = False, + missingCaption: Incomplete | None = None, + showMissing: bool = True, + pageStyle: Incomplete | None = None, + pivotTableStyle: Incomplete | None = None, + vacatedStyle: Incomplete | None = None, + tag: Incomplete | None = None, + updatedVersion: int = 0, + minRefreshableVersion: int = 0, + asteriskTotals: bool = False, + showItems: bool = True, + editData: bool = False, + disableFieldList: bool = False, + showCalcMbrs: bool = True, + visualTotals: bool = True, + showMultipleLabel: bool = True, + showDataDropDown: bool = True, + showDrill: bool = True, + printDrill: bool = False, + showMemberPropertyTips: bool = True, + showDataTips: bool = True, + enableWizard: bool = True, + enableDrill: bool = True, + enableFieldProperties: bool = True, + preserveFormatting: bool = True, + useAutoFormatting: bool = False, + pageWrap: int = 0, + pageOverThenDown: bool = False, + subtotalHiddenItems: bool = False, + rowGrandTotals: bool = True, + colGrandTotals: bool = True, + fieldPrintTitles: bool = False, + itemPrintTitles: bool = False, + mergeItem: bool = False, + showDropZones: bool = True, + createdVersion: int = 0, + indent: int = 1, + showEmptyRow: bool = False, + showEmptyCol: bool = False, + showHeaders: bool = True, + compact: bool = True, + outline: bool = False, + outlineData: bool = False, + compactData: bool = True, + published: bool = False, + gridDropZones: bool = False, + immersive: bool = True, + multipleFieldFilters: Incomplete | None = None, + chartFormat: int = 0, + rowHeaderCaption: Incomplete | None = None, + colHeaderCaption: Incomplete | None = None, + fieldListSortAscending: Incomplete | None = None, + mdxSubqueries: Incomplete | None = None, + customListSort: Incomplete | None = None, + autoFormatId: Incomplete | None = None, + applyNumberFormats: bool = False, + applyBorderFormats: bool = False, + applyFontFormats: bool = False, + applyPatternFormats: bool = False, + applyAlignmentFormats: bool = False, + applyWidthHeightFormats: bool = False, + location: Incomplete | None = None, + pivotFields=(), + rowFields=(), + rowItems=(), + colFields=(), + colItems=(), + pageFields=(), + dataFields=(), + formats=(), + conditionalFormats=None, + chartFormats=(), + pivotHierarchies=(), + pivotTableStyleInfo: Incomplete | None = None, + filters=(), + rowHierarchiesUsage: Incomplete | None = None, + colHierarchiesUsage: Incomplete | None = None, + extLst: Incomplete | None = None, + id: Incomplete | None = None, ) -> None: ... def to_tree(self): ... @property diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index 372e7deff6d6..eadcf9402b49 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -12,7 +12,7 @@ class WorkbookParser: wb: Workbook keep_links: bool sheets: list[ChildSheet] - def __init__(self, archive: ZipFile, workbook_part_name: str, keep_links: bool = ...) -> None: ... + def __init__(self, archive: ZipFile, workbook_part_name: str, keep_links: bool = True) -> None: ... @property def rels(self) -> RelationshipList: ... caches: Iterable[PivotCache] diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index af7bb8264b89..324f8b2cbe14 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -47,18 +47,18 @@ class Alignment(Serialisable): def readingOrder(self, __value: _FloatSetter) -> None: ... def __init__( self, - horizontal: _HorizontalAlignmentsType | None = ..., - vertical: _VerticalAlignmentsType | None = ..., - textRotation: float | None = ..., - wrapText: _BoolSetter = ..., - shrinkToFit: _BoolSetter = ..., - indent: _FloatSetter = ..., - relativeIndent: _FloatSetter = ..., - justifyLastLine: _BoolSetter = ..., - readingOrder: _FloatSetter = ..., - text_rotation: int | None = ..., - wrap_text: _BoolSetter = ..., - shrink_to_fit: _BoolSetter = ..., - mergeCell: Unused = ..., + horizontal: _HorizontalAlignmentsType | None = None, + vertical: _VerticalAlignmentsType | None = None, + textRotation: float | None = 0, + wrapText: _BoolSetter = None, + shrinkToFit: _BoolSetter = None, + indent: _FloatSetter = 0, + relativeIndent: _FloatSetter = 0, + justifyLastLine: _BoolSetter = None, + readingOrder: _FloatSetter = 0, + text_rotation: int | None = None, + wrap_text: _BoolSetter = None, + shrink_to_fit: _BoolSetter = None, + mergeCell: Unused = None, ) -> None: ... def __iter__(self) -> Generator[tuple[str, str], None, None]: ... diff --git a/stubs/openpyxl/openpyxl/styles/borders.pyi b/stubs/openpyxl/openpyxl/styles/borders.pyi index fd87a097c2fb..4e748e1d205d 100644 --- a/stubs/openpyxl/openpyxl/styles/borders.pyi +++ b/stubs/openpyxl/openpyxl/styles/borders.pyi @@ -43,7 +43,7 @@ class Side(Serialisable): # type: ignore[misc] style: _StyleType | None border_style = style # noqa: F821 def __init__( - self, style: _StyleType | None = ..., color: Color | None = ..., border_style: _StyleType | None = ... + self, style: _StyleType | None = None, color: Color | None = None, border_style: _StyleType | None = None ) -> None: ... class Border(Serialisable): @@ -74,19 +74,19 @@ class Border(Serialisable): diagonal_direction: Incomplete | None def __init__( self, - left: Side | None = ..., - right: Side | None = ..., - top: Side | None = ..., - bottom: Side | None = ..., - diagonal: Side | None = ..., - diagonal_direction: Incomplete | None = ..., - vertical: Side | None = ..., - horizontal: Side | None = ..., - diagonalUp: _BoolSetter = ..., - diagonalDown: _BoolSetter = ..., - outline: _BoolSetter = ..., - start: Side | None = ..., - end: Side | None = ..., + left: Side | None = None, + right: Side | None = None, + top: Side | None = None, + bottom: Side | None = None, + diagonal: Side | None = None, + diagonal_direction: Incomplete | None = None, + vertical: Side | None = None, + horizontal: Side | None = None, + diagonalUp: _BoolSetter = False, + diagonalDown: _BoolSetter = False, + outline: _BoolSetter = True, + start: Side | None = None, + end: Side | None = None, ) -> None: ... def __iter__(self) -> Generator[tuple[str, str], None, None]: ... diff --git a/stubs/openpyxl/openpyxl/styles/cell_style.pyi b/stubs/openpyxl/openpyxl/styles/cell_style.pyi index 37238c3f2362..9ed00b87d4fd 100644 --- a/stubs/openpyxl/openpyxl/styles/cell_style.pyi +++ b/stubs/openpyxl/openpyxl/styles/cell_style.pyi @@ -20,7 +20,7 @@ class StyleArray(array[Incomplete]): pivotButton: Incomplete quotePrefix: Incomplete xfId: Incomplete - def __new__(cls, args=...): ... + def __new__(cls, args=[0, 0, 0, 0, 0, 0, 0, 0, 0]): ... def __hash__(self) -> int: ... def __copy__(self): ... def __deepcopy__(self, memo): ... @@ -48,22 +48,22 @@ class CellStyle(Serialisable): __attrs__: Incomplete def __init__( self, - numFmtId: int = ..., - fontId: int = ..., - fillId: int = ..., - borderId: int = ..., - xfId: Incomplete | None = ..., - quotePrefix: Incomplete | None = ..., - pivotButton: Incomplete | None = ..., - applyNumberFormat: Incomplete | None = ..., - applyFont: Incomplete | None = ..., - applyFill: Incomplete | None = ..., - applyBorder: Incomplete | None = ..., - applyAlignment: Incomplete | None = ..., - applyProtection: Incomplete | None = ..., - alignment: Incomplete | None = ..., - protection: Incomplete | None = ..., - extLst: Incomplete | None = ..., + numFmtId: int = 0, + fontId: int = 0, + fillId: int = 0, + borderId: int = 0, + xfId: Incomplete | None = None, + quotePrefix: Incomplete | None = None, + pivotButton: Incomplete | None = None, + applyNumberFormat: Incomplete | None = None, + applyFont: Incomplete | None = None, + applyFill: Incomplete | None = None, + applyBorder: Incomplete | None = None, + applyAlignment: Incomplete | None = None, + applyProtection: Incomplete | None = None, + alignment: Incomplete | None = None, + protection: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... def to_array(self): ... @classmethod @@ -80,7 +80,7 @@ class CellStyleList(Serialisable): alignment: Incomplete protection: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., xf=...) -> None: ... + def __init__(self, count: Incomplete | None = None, xf=()) -> None: ... @property def count(self) -> int: ... def __getitem__(self, idx): ... diff --git a/stubs/openpyxl/openpyxl/styles/colors.pyi b/stubs/openpyxl/openpyxl/styles/colors.pyi index f084f27ecbab..a80f413e14c2 100644 --- a/stubs/openpyxl/openpyxl/styles/colors.pyi +++ b/stubs/openpyxl/openpyxl/styles/colors.pyi @@ -44,13 +44,13 @@ class Color(Serialisable): type: str def __init__( self, - rgb: str = ..., - indexed: _IntegerSetter | None = ..., - auto: _BoolSetter = ..., - theme: _IntegerSetter | None = ..., - tint: _FloatSetter = ..., - index: _IntegerSetter | None = ..., - type: Unused = ..., + rgb: str = "00000000", + indexed: _IntegerSetter | None = None, + auto: _BoolSetter = None, + theme: _IntegerSetter | None = None, + tint: _FloatSetter = 0.0, + index: _IntegerSetter | None = None, + type: Unused = "rgb", ) -> None: ... @property def value(self) -> str | float | bool: ... @@ -78,7 +78,7 @@ class ColorList(Serialisable): indexedColors: _Sequence[RgbColor] mruColors: _Sequence[Color] __elements__: tuple[str, ...] - def __init__(self, indexedColors: _Sequence[RgbColor] = ..., mruColors: _Sequence[Color] = ...) -> None: ... + def __init__(self, indexedColors: _Sequence[RgbColor] = (), mruColors: _Sequence[Color] = ()) -> None: ... def __bool__(self) -> bool: ... @property def index(self) -> list[str]: ... diff --git a/stubs/openpyxl/openpyxl/styles/differential.pyi b/stubs/openpyxl/openpyxl/styles/differential.pyi index e063f1baa1f1..43e39abe7839 100644 --- a/stubs/openpyxl/openpyxl/styles/differential.pyi +++ b/stubs/openpyxl/openpyxl/styles/differential.pyi @@ -18,13 +18,13 @@ class DifferentialStyle(Serialisable): extLst: _Sequence[Incomplete] | None def __init__( self, - font: Font | None = ..., - numFmt: NumberFormat | None = ..., - fill: Fill | None = ..., - alignment: Alignment | None = ..., - border: Border | None = ..., - protection: Protection | None = ..., - extLst: _Sequence[Incomplete] | None = ..., + font: Font | None = None, + numFmt: NumberFormat | None = None, + fill: Fill | None = None, + alignment: Alignment | None = None, + border: Border | None = None, + protection: Protection | None = None, + extLst: _Sequence[Incomplete] | None = None, ) -> None: ... class DifferentialStyleList(Serialisable): @@ -32,7 +32,7 @@ class DifferentialStyleList(Serialisable): dxf: _Sequence[DifferentialStyle] styles: Incomplete __attrs__: Incomplete - def __init__(self, dxf: _Sequence[DifferentialStyle] = ..., count: Unused = ...) -> None: ... + def __init__(self, dxf: _Sequence[DifferentialStyle] = (), count: Unused = None) -> None: ... def append(self, dxf: DifferentialStyle) -> None: ... def add(self, dxf: DifferentialStyle) -> int: ... def __bool__(self) -> bool: ... diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index ddd69206e4e0..7ae477dfc2e2 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -68,14 +68,14 @@ class PatternFill(Fill): end_color = bgColor # noqa: F821 def __init__( self, - patternType: _FillsType | Literal["none", None] = ..., + patternType: _FillsType | Literal["none", None] = None, fgColor: Color = ..., bgColor: Color = ..., - fill_type: _FillsType | Literal["none", None] = ..., - start_color: Color | None = ..., - end_color: Color | None = ..., + fill_type: _FillsType | Literal["none", None] = None, + start_color: Color | None = None, + end_color: Color | None = None, ) -> None: ... - def to_tree(self, tagname: Unused = ..., idx: Unused = ...): ... # type: ignore[override] + def to_tree(self, tagname: Unused = None, idx: Unused = None): ... # type: ignore[override] DEFAULT_EMPTY_FILL: PatternFill DEFAULT_GRAY_FILL: PatternFill @@ -120,15 +120,15 @@ class GradientFill(Fill): stop: _Sequence[Stop] def __init__( self, - type: Literal["linear", "path"] = ..., - degree: _FloatSetter = ..., - left: _FloatSetter = ..., - right: _FloatSetter = ..., - top: _FloatSetter = ..., - bottom: _FloatSetter = ..., - stop: _Sequence[Stop] = ..., + type: Literal["linear", "path"] = "linear", + degree: _FloatSetter = 0, + left: _FloatSetter = 0, + right: _FloatSetter = 0, + top: _FloatSetter = 0, + bottom: _FloatSetter = 0, + stop: _Sequence[Stop] = (), ) -> None: ... def __iter__(self) -> Generator[tuple[str, str], None, None]: ... def to_tree( # type: ignore[override] - self, tagname: Unused = ..., namespace: Unused = ..., idx: Unused = ... + self, tagname: Unused = None, namespace: Unused = None, idx: Unused = None ) -> _Element: ... diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index fd30c36fac3d..24f8edc71aa0 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -69,26 +69,26 @@ class Font(Serialisable): __elements__: tuple[str, ...] def __init__( self, - name: str | None = ..., - sz: _FloatSetter | None = ..., - b: _BoolSetter = ..., - i: _BoolSetter = ..., - charset: _IntegerSetter | None = ..., - u: _UnderlineType = ..., - strike: _BoolSetter = ..., - color: Color | None = ..., - scheme: Literal["major", "minor", None] = ..., - family: _FloatSetter | None = ..., - size: _FloatSetter | None = ..., - bold: _BoolSetter = ..., - italic: _BoolSetter = ..., - strikethrough: _BoolSetter = ..., - underline: _UnderlineType = ..., - vertAlign: Literal["superscript", "subscript", "baseline", None] = ..., - outline: _BoolSetter = ..., - shadow: _BoolSetter = ..., - condense: _BoolSetter = ..., - extend: _BoolSetter = ..., + name: str | None = None, + sz: _FloatSetter | None = None, + b: _BoolSetter = None, + i: _BoolSetter = None, + charset: _IntegerSetter | None = None, + u: _UnderlineType = None, + strike: _BoolSetter = None, + color: Color | None = None, + scheme: Literal["major", "minor", None] = None, + family: _FloatSetter | None = None, + size: _FloatSetter | None = None, + bold: _BoolSetter = None, + italic: _BoolSetter = None, + strikethrough: _BoolSetter = None, + underline: _UnderlineType = None, + vertAlign: Literal["superscript", "subscript", "baseline", None] = None, + outline: _BoolSetter = None, + shadow: _BoolSetter = None, + condense: _BoolSetter = None, + extend: _BoolSetter = None, ) -> None: ... @classmethod def from_tree(cls, node: _Element) -> Self: ... diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index 0399b99f3bb4..f0700ef0c972 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -88,18 +88,18 @@ class _NamedCellStyle(Serialisable): self, name: str, xfId: _IntegerSetter, - builtinId: _IntegerSetter | None = ..., - iLevel: _IntegerSetter | None = ..., - hidden: _BoolSetter = ..., - customBuiltin: _BoolSetter = ..., - extLst: Unused = ..., + builtinId: _IntegerSetter | None = None, + iLevel: _IntegerSetter | None = None, + hidden: _BoolSetter = None, + customBuiltin: _BoolSetter = None, + extLst: Unused = None, ) -> None: ... class _NamedCellStyleList(Serialisable): tagname: str cellStyle: _Sequence[_NamedCellStyle] __attrs__: tuple[str, ...] - def __init__(self, count: Unused = ..., cellStyle: _Sequence[_NamedCellStyle] = ...) -> None: ... + def __init__(self, count: Unused = None, cellStyle: _Sequence[_NamedCellStyle] = ()) -> None: ... @property def count(self) -> int: ... @property diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index 5242838d11a7..70348bb234c2 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -77,7 +77,7 @@ class NumberFormatList(Serialisable): # type: ignore[misc] numFmt: _Sequence[NumberFormat] __elements__: tuple[str, ...] __attrs__: tuple[str, ...] - def __init__(self, count: Unused = ..., numFmt: _Sequence[NumberFormat] = ...) -> None: ... + def __init__(self, count: Unused = None, numFmt: _Sequence[NumberFormat] = ()) -> None: ... @property def count(self) -> int: ... def __getitem__(self, idx) -> NumberFormat: ... diff --git a/stubs/openpyxl/openpyxl/styles/protection.pyi b/stubs/openpyxl/openpyxl/styles/protection.pyi index b0d0b8f5dc70..7136917044c1 100644 --- a/stubs/openpyxl/openpyxl/styles/protection.pyi +++ b/stubs/openpyxl/openpyxl/styles/protection.pyi @@ -11,4 +11,4 @@ class Protection(Serialisable): def hidden(self) -> bool: ... @hidden.setter def hidden(self, __value: _BoolSetter) -> None: ... - def __init__(self, locked: _BoolSetter = ..., hidden: _BoolSetter = ...) -> None: ... + def __init__(self, locked: _BoolSetter = True, hidden: _BoolSetter = False) -> None: ... diff --git a/stubs/openpyxl/openpyxl/styles/styleable.pyi b/stubs/openpyxl/openpyxl/styles/styleable.pyi index 779408667542..e3b9ea07fc91 100644 --- a/stubs/openpyxl/openpyxl/styles/styleable.pyi +++ b/stubs/openpyxl/openpyxl/styles/styleable.pyi @@ -39,7 +39,7 @@ class StyleableObject: quotePrefix: StyleArrayDescriptor pivotButton: StyleArrayDescriptor parent: Incomplete - def __init__(self, sheet, style_array: Incomplete | None = ...) -> None: ... + def __init__(self, sheet, style_array: Incomplete | None = None) -> None: ... @property def style_id(self) -> int: ... @property diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index 3af63a8916b8..31434efbf7e3 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -23,23 +23,23 @@ class Stylesheet(Serialisable): named_styles: Incomplete def __init__( self, - numFmts: Incomplete | None = ..., - fonts=..., - fills=..., - borders=..., - cellStyleXfs: Incomplete | None = ..., - cellXfs: Incomplete | None = ..., - cellStyles: Incomplete | None = ..., - dxfs=..., - tableStyles: Incomplete | None = ..., - colors: Incomplete | None = ..., - extLst: Incomplete | None = ..., + numFmts: Incomplete | None = None, + fonts=(), + fills=(), + borders=(), + cellStyleXfs: Incomplete | None = None, + cellXfs: Incomplete | None = None, + cellStyles: Incomplete | None = None, + dxfs=(), + tableStyles: Incomplete | None = None, + colors: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... @classmethod def from_tree(cls, node): ... @property def custom_formats(self): ... - def to_tree(self, tagname: Incomplete | None = ..., idx: Incomplete | None = ..., namespace: Incomplete | None = ...): ... + def to_tree(self, tagname: Incomplete | None = None, idx: Incomplete | None = None, namespace: Incomplete | None = None): ... def apply_stylesheet(archive, wb): ... def write_stylesheet(wb): ... diff --git a/stubs/openpyxl/openpyxl/styles/table.pyi b/stubs/openpyxl/openpyxl/styles/table.pyi index eae5d3850749..daf88cab37e0 100644 --- a/stubs/openpyxl/openpyxl/styles/table.pyi +++ b/stubs/openpyxl/openpyxl/styles/table.pyi @@ -7,7 +7,9 @@ class TableStyleElement(Serialisable): type: Incomplete size: Incomplete dxfId: Incomplete - def __init__(self, type: Incomplete | None = ..., size: Incomplete | None = ..., dxfId: Incomplete | None = ...) -> None: ... + def __init__( + self, type: Incomplete | None = None, size: Incomplete | None = None, dxfId: Incomplete | None = None + ) -> None: ... class TableStyle(Serialisable): tagname: str @@ -19,11 +21,11 @@ class TableStyle(Serialisable): __elements__: Incomplete def __init__( self, - name: Incomplete | None = ..., - pivot: Incomplete | None = ..., - table: Incomplete | None = ..., - count: Incomplete | None = ..., - tableStyleElement=..., + name: Incomplete | None = None, + pivot: Incomplete | None = None, + table: Incomplete | None = None, + count: Incomplete | None = None, + tableStyleElement=(), ) -> None: ... class TableStyleList(Serialisable): @@ -34,7 +36,11 @@ class TableStyleList(Serialisable): __elements__: Incomplete __attrs__: Incomplete def __init__( - self, count: Incomplete | None = ..., defaultTableStyle: str = ..., defaultPivotStyle: str = ..., tableStyle=... + self, + count: Incomplete | None = None, + defaultTableStyle: str = "TableStyleMedium9", + defaultPivotStyle: str = "PivotStyleLight16", + tableStyle=(), ) -> None: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/utils/dataframe.pyi b/stubs/openpyxl/openpyxl/utils/dataframe.pyi index 2f2938db512d..d82d6c3c63fd 100644 --- a/stubs/openpyxl/openpyxl/utils/dataframe.pyi +++ b/stubs/openpyxl/openpyxl/utils/dataframe.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete from collections.abc import Generator -def dataframe_to_rows(df, index: bool = ..., header: bool = ...) -> Generator[Incomplete, None, None]: ... -def expand_index(index, header: bool = ...) -> Generator[Incomplete, None, None]: ... +def dataframe_to_rows(df, index: bool = True, header: bool = True) -> Generator[Incomplete, None, None]: ... +def expand_index(index, header: bool = False) -> Generator[Incomplete, None, None]: ... diff --git a/stubs/openpyxl/openpyxl/utils/datetime.pyi b/stubs/openpyxl/openpyxl/utils/datetime.pyi index 1fc8bec4bb5b..941bd248939e 100644 --- a/stubs/openpyxl/openpyxl/utils/datetime.pyi +++ b/stubs/openpyxl/openpyxl/utils/datetime.pyi @@ -13,7 +13,7 @@ ISO_DURATION: Incomplete def to_ISO8601(dt): ... def from_ISO8601(formatted_string): ... def to_excel(dt, epoch=...): ... -def from_excel(value, epoch=..., timedelta: bool = ...): ... +def from_excel(value, epoch=..., timedelta: bool = False): ... def time_to_days(value): ... def timedelta_to_days(value): ... def days_to_time(value): ... diff --git a/stubs/openpyxl/openpyxl/utils/indexed_list.pyi b/stubs/openpyxl/openpyxl/utils/indexed_list.pyi index 00420455e48f..d4bd17462c1b 100644 --- a/stubs/openpyxl/openpyxl/utils/indexed_list.pyi +++ b/stubs/openpyxl/openpyxl/utils/indexed_list.pyi @@ -2,7 +2,7 @@ from _typeshed import Incomplete class IndexedList(list[Incomplete]): clean: bool - def __init__(self, iterable: Incomplete | None = ...) -> None: ... + def __init__(self, iterable: Incomplete | None = None) -> None: ... def __contains__(self, value): ... def index(self, value): ... def append(self, value) -> None: ... diff --git a/stubs/openpyxl/openpyxl/utils/protection.pyi b/stubs/openpyxl/openpyxl/utils/protection.pyi index 28eb69b53173..f2b3f73e367c 100644 --- a/stubs/openpyxl/openpyxl/utils/protection.pyi +++ b/stubs/openpyxl/openpyxl/utils/protection.pyi @@ -1 +1 @@ -def hash_password(plaintext_password: str = ...): ... +def hash_password(plaintext_password: str = ""): ... diff --git a/stubs/openpyxl/openpyxl/utils/units.pyi b/stubs/openpyxl/openpyxl/utils/units.pyi index dde205065862..8f9c3d1a5209 100644 --- a/stubs/openpyxl/openpyxl/utils/units.pyi +++ b/stubs/openpyxl/openpyxl/utils/units.pyi @@ -17,8 +17,8 @@ def cm_to_EMU(value): ... def EMU_to_cm(value): ... def inch_to_EMU(value): ... def EMU_to_inch(value): ... -def pixels_to_points(value, dpi: int = ...): ... -def points_to_pixels(value, dpi: int = ...): ... +def pixels_to_points(value, dpi: int = 96): ... +def points_to_pixels(value, dpi: int = 96): ... def degrees_to_angle(value): ... def angle_to_degrees(value): ... def short_color(color): ... diff --git a/stubs/openpyxl/openpyxl/workbook/child.pyi b/stubs/openpyxl/openpyxl/workbook/child.pyi index a1730e3190c0..8a36fb1cd940 100644 --- a/stubs/openpyxl/openpyxl/workbook/child.pyi +++ b/stubs/openpyxl/openpyxl/workbook/child.pyi @@ -11,7 +11,7 @@ def avoid_duplicate_name(names: Iterable[str], value: str) -> str: ... class _WorkbookChild: HeaderFooter: HeaderFooter - def __init__(self, parent: Workbook | None = ..., title: str | _Decodable | None = ...) -> None: ... + def __init__(self, parent: Workbook | None = None, title: str | _Decodable | None = None) -> None: ... @property def parent(self) -> Workbook | None: ... @property diff --git a/stubs/openpyxl/openpyxl/workbook/defined_name.pyi b/stubs/openpyxl/openpyxl/workbook/defined_name.pyi index f9e2d5d961c2..874bbce511e0 100644 --- a/stubs/openpyxl/openpyxl/workbook/defined_name.pyi +++ b/stubs/openpyxl/openpyxl/workbook/defined_name.pyi @@ -31,21 +31,21 @@ class DefinedName(Serialisable): def __init__( self, name: str, - comment: Incomplete | None = ..., - customMenu: Incomplete | None = ..., - description: Incomplete | None = ..., - help: Incomplete | None = ..., - statusBar: Incomplete | None = ..., - localSheetId: Incomplete | None = ..., - hidden: Incomplete | None = ..., - function: Incomplete | None = ..., - vbProcedure: Incomplete | None = ..., - xlm: Incomplete | None = ..., - functionGroupId: Incomplete | None = ..., - shortcutKey: Incomplete | None = ..., - publishToServer: Incomplete | None = ..., - workbookParameter: Incomplete | None = ..., - attr_text: Incomplete | None = ..., + comment: Incomplete | None = None, + customMenu: Incomplete | None = None, + description: Incomplete | None = None, + help: Incomplete | None = None, + statusBar: Incomplete | None = None, + localSheetId: Incomplete | None = None, + hidden: Incomplete | None = None, + function: Incomplete | None = None, + vbProcedure: Incomplete | None = None, + xlm: Incomplete | None = None, + functionGroupId: Incomplete | None = None, + shortcutKey: Incomplete | None = None, + publishToServer: Incomplete | None = None, + workbookParameter: Incomplete | None = None, + attr_text: Incomplete | None = None, ) -> None: ... @property def type(self): ... @@ -63,6 +63,6 @@ class DefinedNameDict(dict[str, DefinedName]): class DefinedNameList(Serialisable): tagname: str definedName: Sequence - def __init__(self, definedName=...) -> None: ... + def __init__(self, definedName=()) -> None: ... def by_sheet(self) -> defaultdict[int, DefinedNameDict]: ... def __len__(self) -> int: ... diff --git a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi index 49590a3a37b1..91eb8559773b 100644 --- a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi +++ b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi @@ -8,31 +8,31 @@ class ExternalCell(Serialisable): # type: ignore[misc] vm: Incomplete v: Incomplete def __init__( - self, r: Incomplete | None = ..., t: Incomplete | None = ..., vm: Incomplete | None = ..., v: Incomplete | None = ... + self, r: Incomplete | None = None, t: Incomplete | None = None, vm: Incomplete | None = None, v: Incomplete | None = None ) -> None: ... class ExternalRow(Serialisable): # type: ignore[misc] r: Incomplete cell: Incomplete __elements__: Incomplete - def __init__(self, r=..., cell: Incomplete | None = ...) -> None: ... + def __init__(self, r=(), cell: Incomplete | None = None) -> None: ... class ExternalSheetData(Serialisable): # type: ignore[misc] sheetId: Incomplete refreshError: Incomplete row: Incomplete __elements__: Incomplete - def __init__(self, sheetId: Incomplete | None = ..., refreshError: Incomplete | None = ..., row=...) -> None: ... + def __init__(self, sheetId: Incomplete | None = None, refreshError: Incomplete | None = None, row=()) -> None: ... class ExternalSheetDataSet(Serialisable): # type: ignore[misc] sheetData: Incomplete __elements__: Incomplete - def __init__(self, sheetData: Incomplete | None = ...) -> None: ... + def __init__(self, sheetData: Incomplete | None = None) -> None: ... class ExternalSheetNames(Serialisable): # type: ignore[misc] sheetName: Incomplete __elements__: Incomplete - def __init__(self, sheetName=...) -> None: ... + def __init__(self, sheetName=()) -> None: ... class ExternalDefinedName(Serialisable): tagname: str @@ -40,7 +40,7 @@ class ExternalDefinedName(Serialisable): refersTo: Incomplete sheetId: Incomplete def __init__( - self, name: Incomplete | None = ..., refersTo: Incomplete | None = ..., sheetId: Incomplete | None = ... + self, name: Incomplete | None = None, refersTo: Incomplete | None = None, sheetId: Incomplete | None = None ) -> None: ... class ExternalBook(Serialisable): @@ -52,10 +52,10 @@ class ExternalBook(Serialisable): __elements__: Incomplete def __init__( self, - sheetNames: Incomplete | None = ..., - definedNames=..., - sheetDataSet: Incomplete | None = ..., - id: Incomplete | None = ..., + sheetNames: Incomplete | None = None, + definedNames=(), + sheetDataSet: Incomplete | None = None, + id: Incomplete | None = None, ) -> None: ... class ExternalLink(Serialisable): @@ -66,10 +66,10 @@ class ExternalLink(Serialisable): __elements__: Incomplete def __init__( self, - externalBook: Incomplete | None = ..., - ddeLink: Incomplete | None = ..., - oleLink: Incomplete | None = ..., - extLst: Incomplete | None = ..., + externalBook: Incomplete | None = None, + ddeLink: Incomplete | None = None, + oleLink: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... def to_tree(self): ... @property diff --git a/stubs/openpyxl/openpyxl/workbook/function_group.pyi b/stubs/openpyxl/openpyxl/workbook/function_group.pyi index 861dbf404652..e8926313f529 100644 --- a/stubs/openpyxl/openpyxl/workbook/function_group.pyi +++ b/stubs/openpyxl/openpyxl/workbook/function_group.pyi @@ -5,11 +5,11 @@ from openpyxl.descriptors.serialisable import Serialisable class FunctionGroup(Serialisable): tagname: str name: Incomplete - def __init__(self, name: Incomplete | None = ...) -> None: ... + def __init__(self, name: Incomplete | None = None) -> None: ... class FunctionGroupList(Serialisable): tagname: str builtInGroupCount: Incomplete functionGroup: Incomplete __elements__: Incomplete - def __init__(self, builtInGroupCount: int = ..., functionGroup=...) -> None: ... + def __init__(self, builtInGroupCount: int = 16, functionGroup=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/properties.pyi b/stubs/openpyxl/openpyxl/workbook/properties.pyi index 91cc69faca14..b68cee4510ef 100644 --- a/stubs/openpyxl/openpyxl/workbook/properties.pyi +++ b/stubs/openpyxl/openpyxl/workbook/properties.pyi @@ -25,25 +25,25 @@ class WorkbookProperties(Serialisable): defaultThemeVersion: Incomplete def __init__( self, - date1904: Incomplete | None = ..., - dateCompatibility: Incomplete | None = ..., - showObjects: Incomplete | None = ..., - showBorderUnselectedTables: Incomplete | None = ..., - filterPrivacy: Incomplete | None = ..., - promptedSolutions: Incomplete | None = ..., - showInkAnnotation: Incomplete | None = ..., - backupFile: Incomplete | None = ..., - saveExternalLinkValues: Incomplete | None = ..., - updateLinks: Incomplete | None = ..., - codeName: Incomplete | None = ..., - hidePivotFieldList: Incomplete | None = ..., - showPivotChartFilter: Incomplete | None = ..., - allowRefreshQuery: Incomplete | None = ..., - publishItems: Incomplete | None = ..., - checkCompatibility: Incomplete | None = ..., - autoCompressPictures: Incomplete | None = ..., - refreshAllConnections: Incomplete | None = ..., - defaultThemeVersion: Incomplete | None = ..., + date1904: Incomplete | None = None, + dateCompatibility: Incomplete | None = None, + showObjects: Incomplete | None = None, + showBorderUnselectedTables: Incomplete | None = None, + filterPrivacy: Incomplete | None = None, + promptedSolutions: Incomplete | None = None, + showInkAnnotation: Incomplete | None = None, + backupFile: Incomplete | None = None, + saveExternalLinkValues: Incomplete | None = None, + updateLinks: Incomplete | None = None, + codeName: Incomplete | None = None, + hidePivotFieldList: Incomplete | None = None, + showPivotChartFilter: Incomplete | None = None, + allowRefreshQuery: Incomplete | None = None, + publishItems: Incomplete | None = None, + checkCompatibility: Incomplete | None = None, + autoCompressPictures: Incomplete | None = None, + refreshAllConnections: Incomplete | None = None, + defaultThemeVersion: Incomplete | None = None, ) -> None: ... class CalcProperties(Serialisable): @@ -63,19 +63,19 @@ class CalcProperties(Serialisable): forceFullCalc: Incomplete def __init__( self, - calcId: int = ..., - calcMode: Incomplete | None = ..., - fullCalcOnLoad: bool = ..., - refMode: Incomplete | None = ..., - iterate: Incomplete | None = ..., - iterateCount: Incomplete | None = ..., - iterateDelta: Incomplete | None = ..., - fullPrecision: Incomplete | None = ..., - calcCompleted: Incomplete | None = ..., - calcOnSave: Incomplete | None = ..., - concurrentCalc: Incomplete | None = ..., - concurrentManualCount: Incomplete | None = ..., - forceFullCalc: Incomplete | None = ..., + calcId: int = 124519, + calcMode: Incomplete | None = None, + fullCalcOnLoad: bool = True, + refMode: Incomplete | None = None, + iterate: Incomplete | None = None, + iterateCount: Incomplete | None = None, + iterateDelta: Incomplete | None = None, + fullPrecision: Incomplete | None = None, + calcCompleted: Incomplete | None = None, + calcOnSave: Incomplete | None = None, + concurrentCalc: Incomplete | None = None, + concurrentManualCount: Incomplete | None = None, + forceFullCalc: Incomplete | None = None, ) -> None: ... class FileVersion(Serialisable): @@ -87,9 +87,9 @@ class FileVersion(Serialisable): codeName: Incomplete def __init__( self, - appName: Incomplete | None = ..., - lastEdited: Incomplete | None = ..., - lowestEdited: Incomplete | None = ..., - rupBuild: Incomplete | None = ..., - codeName: Incomplete | None = ..., + appName: Incomplete | None = None, + lastEdited: Incomplete | None = None, + lowestEdited: Incomplete | None = None, + rupBuild: Incomplete | None = None, + codeName: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/protection.pyi b/stubs/openpyxl/openpyxl/workbook/protection.pyi index 44b18bf2b1c8..f978e8e8558a 100644 --- a/stubs/openpyxl/openpyxl/workbook/protection.pyi +++ b/stubs/openpyxl/openpyxl/workbook/protection.pyi @@ -25,28 +25,28 @@ class WorkbookProtection(Serialisable): __attrs__: Incomplete def __init__( self, - workbookPassword: Incomplete | None = ..., - workbookPasswordCharacterSet: Incomplete | None = ..., - revisionsPassword: Incomplete | None = ..., - revisionsPasswordCharacterSet: Incomplete | None = ..., - lockStructure: Incomplete | None = ..., - lockWindows: Incomplete | None = ..., - lockRevision: Incomplete | None = ..., - revisionsAlgorithmName: Incomplete | None = ..., - revisionsHashValue: Incomplete | None = ..., - revisionsSaltValue: Incomplete | None = ..., - revisionsSpinCount: Incomplete | None = ..., - workbookAlgorithmName: Incomplete | None = ..., - workbookHashValue: Incomplete | None = ..., - workbookSaltValue: Incomplete | None = ..., - workbookSpinCount: Incomplete | None = ..., + workbookPassword: Incomplete | None = None, + workbookPasswordCharacterSet: Incomplete | None = None, + revisionsPassword: Incomplete | None = None, + revisionsPasswordCharacterSet: Incomplete | None = None, + lockStructure: Incomplete | None = None, + lockWindows: Incomplete | None = None, + lockRevision: Incomplete | None = None, + revisionsAlgorithmName: Incomplete | None = None, + revisionsHashValue: Incomplete | None = None, + revisionsSaltValue: Incomplete | None = None, + revisionsSpinCount: Incomplete | None = None, + workbookAlgorithmName: Incomplete | None = None, + workbookHashValue: Incomplete | None = None, + workbookSaltValue: Incomplete | None = None, + workbookSpinCount: Incomplete | None = None, ) -> None: ... - def set_workbook_password(self, value: str = ..., already_hashed: bool = ...) -> None: ... + def set_workbook_password(self, value: str = "", already_hashed: bool = False) -> None: ... @property def workbookPassword(self): ... @workbookPassword.setter def workbookPassword(self, value) -> None: ... - def set_revisions_password(self, value: str = ..., already_hashed: bool = ...) -> None: ... + def set_revisions_password(self, value: str = "", already_hashed: bool = False) -> None: ... @property def revisionsPassword(self): ... @revisionsPassword.setter @@ -67,11 +67,11 @@ class FileSharing(Serialisable): spinCount: Incomplete def __init__( self, - readOnlyRecommended: Incomplete | None = ..., - userName: Incomplete | None = ..., - reservationPassword: Incomplete | None = ..., - algorithmName: Incomplete | None = ..., - hashValue: Incomplete | None = ..., - saltValue: Incomplete | None = ..., - spinCount: Incomplete | None = ..., + readOnlyRecommended: Incomplete | None = None, + userName: Incomplete | None = None, + reservationPassword: Incomplete | None = None, + algorithmName: Incomplete | None = None, + hashValue: Incomplete | None = None, + saltValue: Incomplete | None = None, + spinCount: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi b/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi index d5be770ca3ba..9c595258ffce 100644 --- a/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi +++ b/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi @@ -8,17 +8,17 @@ class SmartTag(Serialisable): name: Incomplete url: Incomplete def __init__( - self, namespaceUri: Incomplete | None = ..., name: Incomplete | None = ..., url: Incomplete | None = ... + self, namespaceUri: Incomplete | None = None, name: Incomplete | None = None, url: Incomplete | None = None ) -> None: ... class SmartTagList(Serialisable): tagname: str smartTagType: Incomplete __elements__: Incomplete - def __init__(self, smartTagType=...) -> None: ... + def __init__(self, smartTagType=()) -> None: ... class SmartTagProperties(Serialisable): tagname: str embed: Incomplete show: Incomplete - def __init__(self, embed: Incomplete | None = ..., show: Incomplete | None = ...) -> None: ... + def __init__(self, embed: Incomplete | None = None, show: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/views.pyi b/stubs/openpyxl/openpyxl/workbook/views.pyi index 9bbe6d8d29c3..6b7bc9e846ec 100644 --- a/stubs/openpyxl/openpyxl/workbook/views.pyi +++ b/stubs/openpyxl/openpyxl/workbook/views.pyi @@ -22,20 +22,20 @@ class BookView(Serialisable): __elements__: Incomplete def __init__( self, - visibility: _SheetVisibilityType = ..., - minimized: bool = ..., - showHorizontalScroll: bool = ..., - showVerticalScroll: bool = ..., - showSheetTabs: bool = ..., - xWindow: Incomplete | None = ..., - yWindow: Incomplete | None = ..., - windowWidth: Incomplete | None = ..., - windowHeight: Incomplete | None = ..., - tabRatio: int = ..., - firstSheet: int = ..., - activeTab: int = ..., - autoFilterDateGrouping: bool = ..., - extLst: Incomplete | None = ..., + visibility: _SheetVisibilityType = "visible", + minimized: bool = False, + showHorizontalScroll: bool = True, + showVerticalScroll: bool = True, + showSheetTabs: bool = True, + xWindow: Incomplete | None = None, + yWindow: Incomplete | None = None, + windowWidth: Incomplete | None = None, + windowHeight: Incomplete | None = None, + tabRatio: int = 600, + firstSheet: int = 0, + activeTab: int = 0, + autoFilterDateGrouping: bool = True, + extLst: Incomplete | None = None, ) -> None: ... class CustomWorkbookView(Serialisable): @@ -68,29 +68,29 @@ class CustomWorkbookView(Serialisable): __elements__: Incomplete def __init__( self, - name: Incomplete | None = ..., - guid: Incomplete | None = ..., - autoUpdate: Incomplete | None = ..., - mergeInterval: Incomplete | None = ..., - changesSavedWin: Incomplete | None = ..., - onlySync: Incomplete | None = ..., - personalView: Incomplete | None = ..., - includePrintSettings: Incomplete | None = ..., - includeHiddenRowCol: Incomplete | None = ..., - maximized: Incomplete | None = ..., - minimized: Incomplete | None = ..., - showHorizontalScroll: Incomplete | None = ..., - showVerticalScroll: Incomplete | None = ..., - showSheetTabs: Incomplete | None = ..., - xWindow: Incomplete | None = ..., - yWindow: Incomplete | None = ..., - windowWidth: Incomplete | None = ..., - windowHeight: Incomplete | None = ..., - tabRatio: Incomplete | None = ..., - activeSheetId: Incomplete | None = ..., - showFormulaBar: Incomplete | None = ..., - showStatusbar: Incomplete | None = ..., - showComments: str = ..., - showObjects: str = ..., - extLst: Incomplete | None = ..., + name: Incomplete | None = None, + guid: Incomplete | None = None, + autoUpdate: Incomplete | None = None, + mergeInterval: Incomplete | None = None, + changesSavedWin: Incomplete | None = None, + onlySync: Incomplete | None = None, + personalView: Incomplete | None = None, + includePrintSettings: Incomplete | None = None, + includeHiddenRowCol: Incomplete | None = None, + maximized: Incomplete | None = None, + minimized: Incomplete | None = None, + showHorizontalScroll: Incomplete | None = None, + showVerticalScroll: Incomplete | None = None, + showSheetTabs: Incomplete | None = None, + xWindow: Incomplete | None = None, + yWindow: Incomplete | None = None, + windowWidth: Incomplete | None = None, + windowHeight: Incomplete | None = None, + tabRatio: Incomplete | None = None, + activeSheetId: Incomplete | None = None, + showFormulaBar: Incomplete | None = None, + showStatusbar: Incomplete | None = None, + showComments: str = "commIndicator", + showObjects: str = "all", + extLst: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/web.pyi b/stubs/openpyxl/openpyxl/workbook/web.pyi index 9de228ecf506..cedfaee5968f 100644 --- a/stubs/openpyxl/openpyxl/workbook/web.pyi +++ b/stubs/openpyxl/openpyxl/workbook/web.pyi @@ -12,19 +12,19 @@ class WebPublishObject(Serialisable): autoRepublish: Incomplete def __init__( self, - id: Incomplete | None = ..., - divId: Incomplete | None = ..., - sourceObject: Incomplete | None = ..., - destinationFile: Incomplete | None = ..., - title: Incomplete | None = ..., - autoRepublish: Incomplete | None = ..., + id: Incomplete | None = None, + divId: Incomplete | None = None, + sourceObject: Incomplete | None = None, + destinationFile: Incomplete | None = None, + title: Incomplete | None = None, + autoRepublish: Incomplete | None = None, ) -> None: ... class WebPublishObjectList(Serialisable): tagname: str webPublishObject: Incomplete __elements__: Incomplete - def __init__(self, count: Incomplete | None = ..., webPublishObject=...) -> None: ... + def __init__(self, count: Incomplete | None = None, webPublishObject=()) -> None: ... @property def count(self) -> int: ... @@ -41,13 +41,13 @@ class WebPublishing(Serialisable): characterSet: Incomplete def __init__( self, - css: Incomplete | None = ..., - thicket: Incomplete | None = ..., - longFileNames: Incomplete | None = ..., - vml: Incomplete | None = ..., - allowPng: Incomplete | None = ..., - targetScreenSize: str = ..., - dpi: Incomplete | None = ..., - codePage: Incomplete | None = ..., - characterSet: Incomplete | None = ..., + css: Incomplete | None = None, + thicket: Incomplete | None = None, + longFileNames: Incomplete | None = None, + vml: Incomplete | None = None, + allowPng: Incomplete | None = None, + targetScreenSize: str = "800x600", + dpi: Incomplete | None = None, + codePage: Incomplete | None = None, + characterSet: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index 067115f85661..7b5ab706f7a8 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -32,7 +32,7 @@ class Workbook: # Private, but useful as a reference of what "sheets" can be for other types # ExcelReader can add ReadOnlyWorksheet in read_only mode. _sheets: list[Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet] - def __init__(self, write_only: bool = ..., iso_dates: bool = ...) -> None: ... + def __init__(self, write_only: bool = False, iso_dates: bool = False) -> None: ... @property def epoch(self) -> datetime.datetime: ... @epoch.setter @@ -49,11 +49,11 @@ class Workbook: def active(self) -> Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet | None: ... @active.setter def active(self, value: Worksheet | Chartsheet | int) -> None: ... - def create_sheet(self, title: str | _Decodable | None = ..., index: int | None = ...) -> WriteOnlyWorksheet | Worksheet: ... - def move_sheet(self, sheet: Worksheet | str, offset: int = ...) -> None: ... + def create_sheet(self, title: str | _Decodable | None = None, index: int | None = None) -> WriteOnlyWorksheet | Worksheet: ... + def move_sheet(self, sheet: Worksheet | str, offset: int = 0) -> None: ... def remove(self, worksheet: Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet) -> None: ... remove_sheet = remove - def create_chartsheet(self, title: str | _Decodable | None = ..., index: int | None = ...) -> Chartsheet: ... + def create_chartsheet(self, title: str | _Decodable | None = None, index: int | None = None) -> Chartsheet: ... # Deprecated, same as __getitem__ def get_sheet_by_name(self, name: str) -> Worksheet | ReadOnlyWorksheet | WriteOnlyWorksheet | Chartsheet: ... def __contains__(self, key: str) -> bool: ... @@ -72,9 +72,9 @@ class Workbook: def create_named_range( self, name: str, - worksheet: _WorkbookChild | ReadOnlyWorksheet | None = ..., - value: str | None = ..., - scope: int | None = ..., + worksheet: _WorkbookChild | ReadOnlyWorksheet | None = None, + value: str | None = None, + scope: int | None = None, ) -> None: ... def add_named_style(self, style: NamedStyle) -> None: ... @property diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index e19d5b062028..ba39d4870a1b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -16,7 +16,7 @@ class ReadOnlyWorksheet: title: Incomplete sheet_state: Literal["visible"] def __init__(self, parent_workbook, title, worksheet_path, shared_strings) -> None: ... - def calculate_dimension(self, force: bool = ...): ... + def calculate_dimension(self, force: bool = False): ... def reset_dimensions(self) -> None: ... @property def min_row(self): ... diff --git a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi index 8fa06413a34d..7da2b8cdd320 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi @@ -7,13 +7,13 @@ from openpyxl.worksheet.worksheet import Worksheet ALL_TEMP_FILES: list[Incomplete] -def create_temporary_file(suffix: str = ...) -> str: ... +def create_temporary_file(suffix: str = "") -> str: ... class WorksheetWriter: ws: Worksheet | WriteOnlyWorksheet out: str xf: Generator[Incomplete | None, None, None] - def __init__(self, ws: Worksheet | WriteOnlyWorksheet, out: str | None = ...) -> None: ... + def __init__(self, ws: Worksheet | WriteOnlyWorksheet, out: str | None = None) -> None: ... def write_properties(self) -> None: ... def write_dimensions(self) -> None: ... def write_format(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi index 67fe8448df14..fe41a687b987 100644 --- a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi @@ -12,20 +12,20 @@ class CellRange(Serialisable): # type: ignore[misc] max_row: Incomplete title: Incomplete @overload - def __init__(self, *, min_col: int, min_row: int, max_col: int, max_row: int, title: Incomplete | None = ...) -> None: ... + def __init__(self, *, min_col: int, min_row: int, max_col: int, max_row: int, title: Incomplete | None = None) -> None: ... @overload def __init__( - self, range_string: None, min_col: int, min_row: int, max_col: int, max_row: int, title: Incomplete | None = ... + self, range_string: None, min_col: int, min_row: int, max_col: int, max_row: int, title: Incomplete | None = None ) -> None: ... @overload def __init__( self, range_string: str, - min_col: Unused = ..., - min_row: Unused = ..., - max_col: Unused = ..., - max_row: Unused = ..., - title: Incomplete | None = ..., + min_col: Unused = None, + min_row: Unused = None, + max_col: Unused = None, + max_row: Unused = None, + title: Incomplete | None = None, ) -> None: ... @property def bounds(self): ... @@ -38,7 +38,7 @@ class CellRange(Serialisable): # type: ignore[misc] @property def cells(self): ... def __copy__(self): ... - def shift(self, col_shift: int = ..., row_shift: int = ...) -> None: ... + def shift(self, col_shift: int = 0, row_shift: int = 0) -> None: ... def __ne__(self, other): ... def __eq__(self, other): ... def issubset(self, other): ... @@ -54,8 +54,8 @@ class CellRange(Serialisable): # type: ignore[misc] def union(self, other): ... __or__: Incomplete def __iter__(self): ... - def expand(self, right: int = ..., down: int = ..., left: int = ..., up: int = ...) -> None: ... - def shrink(self, right: int = ..., bottom: int = ..., left: int = ..., top: int = ...) -> None: ... + def expand(self, right: int = 0, down: int = 0, left: int = 0, up: int = 0) -> None: ... + def shrink(self, right: int = 0, bottom: int = 0, left: int = 0, top: int = 0) -> None: ... @property def size(self): ... @property diff --git a/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi b/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi index 35ebbda0f00c..d3c3434a4298 100644 --- a/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi @@ -5,10 +5,10 @@ from openpyxl.descriptors.serialisable import Serialisable class CellWatch(Serialisable): tagname: str r: Incomplete - def __init__(self, r: Incomplete | None = ...) -> None: ... + def __init__(self, r: Incomplete | None = None) -> None: ... class CellWatches(Serialisable): tagname: str cellWatch: Incomplete __elements__: Incomplete - def __init__(self, cellWatch=...) -> None: ... + def __init__(self, cellWatch=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/controls.pyi b/stubs/openpyxl/openpyxl/worksheet/controls.pyi index f56d3ae3a1b4..99cfd33ded37 100644 --- a/stubs/openpyxl/openpyxl/worksheet/controls.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/controls.pyi @@ -22,22 +22,22 @@ class ControlProperty(Serialisable): __elements__: Incomplete def __init__( self, - anchor: Incomplete | None = ..., - locked: bool = ..., - defaultSize: bool = ..., - _print: bool = ..., - disabled: bool = ..., - recalcAlways: bool = ..., - uiObject: bool = ..., - autoFill: bool = ..., - autoLine: bool = ..., - autoPict: bool = ..., - macro: Incomplete | None = ..., - altText: Incomplete | None = ..., - linkedCell: Incomplete | None = ..., - listFillRange: Incomplete | None = ..., - cf: str = ..., - id: Incomplete | None = ..., + anchor: Incomplete | None = None, + locked: bool = True, + defaultSize: bool = True, + _print: bool = True, + disabled: bool = False, + recalcAlways: bool = False, + uiObject: bool = False, + autoFill: bool = True, + autoLine: bool = True, + autoPict: bool = True, + macro: Incomplete | None = None, + altText: Incomplete | None = None, + linkedCell: Incomplete | None = None, + listFillRange: Incomplete | None = None, + cf: str = "pict", + id: Incomplete | None = None, ) -> None: ... class Control(Serialisable): @@ -47,11 +47,11 @@ class Control(Serialisable): name: Incomplete __elements__: Incomplete def __init__( - self, controlPr: Incomplete | None = ..., shapeId: Incomplete | None = ..., name: Incomplete | None = ... + self, controlPr: Incomplete | None = None, shapeId: Incomplete | None = None, name: Incomplete | None = None ) -> None: ... class Controls(Serialisable): tagname: str control: Incomplete __elements__: Incomplete - def __init__(self, control=...) -> None: ... + def __init__(self, control=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/custom.pyi b/stubs/openpyxl/openpyxl/worksheet/custom.pyi index ba95ab03bccb..3c9b6616e880 100644 --- a/stubs/openpyxl/openpyxl/worksheet/custom.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/custom.pyi @@ -5,10 +5,10 @@ from openpyxl.descriptors.serialisable import Serialisable class CustomProperty(Serialisable): tagname: str name: Incomplete - def __init__(self, name: Incomplete | None = ...) -> None: ... + def __init__(self, name: Incomplete | None = None) -> None: ... class CustomProperties(Serialisable): tagname: str customPr: Incomplete __elements__: Incomplete - def __init__(self, customPr=...) -> None: ... + def __init__(self, customPr=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi b/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi index 51bc50b7d205..335fbd599834 100644 --- a/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi @@ -2,7 +2,7 @@ from _typeshed import Incomplete from openpyxl.descriptors.serialisable import Serialisable -def collapse_cell_addresses(cells, input_ranges=...): ... +def collapse_cell_addresses(cells, input_ranges=()): ... def expand_cell_ranges(range_string): ... class DataValidation(Serialisable): @@ -29,22 +29,22 @@ class DataValidation(Serialisable): validation_type: Incomplete def __init__( self, - type: Incomplete | None = ..., - formula1: Incomplete | None = ..., - formula2: Incomplete | None = ..., - showErrorMessage: bool = ..., - showInputMessage: bool = ..., - showDropDown: Incomplete | None = ..., - allowBlank: Incomplete | None = ..., - sqref=..., - promptTitle: Incomplete | None = ..., - errorStyle: Incomplete | None = ..., - error: Incomplete | None = ..., - prompt: Incomplete | None = ..., - errorTitle: Incomplete | None = ..., - imeMode: Incomplete | None = ..., - operator: Incomplete | None = ..., - allow_blank: Incomplete | None = ..., + type: Incomplete | None = None, + formula1: Incomplete | None = None, + formula2: Incomplete | None = None, + showErrorMessage: bool = False, + showInputMessage: bool = False, + showDropDown: Incomplete | None = False, + allowBlank: Incomplete | None = False, + sqref=(), + promptTitle: Incomplete | None = None, + errorStyle: Incomplete | None = None, + error: Incomplete | None = None, + prompt: Incomplete | None = None, + errorTitle: Incomplete | None = None, + imeMode: Incomplete | None = None, + operator: Incomplete | None = None, + allow_blank: Incomplete | None = False, ) -> None: ... def add(self, cell) -> None: ... def __contains__(self, cell): ... @@ -59,14 +59,14 @@ class DataValidationList(Serialisable): __attrs__: Incomplete def __init__( self, - disablePrompts: Incomplete | None = ..., - xWindow: Incomplete | None = ..., - yWindow: Incomplete | None = ..., - count: Incomplete | None = ..., - dataValidation=..., + disablePrompts: Incomplete | None = None, + xWindow: Incomplete | None = None, + yWindow: Incomplete | None = None, + count: Incomplete | None = None, + dataValidation=(), ) -> None: ... @property def count(self): ... def __len__(self) -> int: ... def append(self, dv) -> None: ... - def to_tree(self, tagname: Incomplete | None = ...): ... # type: ignore[override] + def to_tree(self, tagname: Incomplete | None = None): ... # type: ignore[override] diff --git a/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi b/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi index eda43be324f2..13d73da56b63 100644 --- a/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi @@ -19,9 +19,9 @@ class Dimension(Strict, StyleableObject): index: Integer hidden: Bool outlineLevel: Integer - outline_level: Alias + outline_level = outlineLevel # noqa: F821 collapsed: Bool - style: Alias + style: Incomplete def __init__( self, @@ -37,10 +37,10 @@ class Dimension(Strict, StyleableObject): def __copy__(self) -> Self: ... class RowDimension(Dimension): - r: Alias - s: Alias + r: Incomplete + s: Incomplete ht: Float - height: Alias + height = ht # noqa: F821 thickBot: Bool thickTop: Bool @@ -82,7 +82,7 @@ class ColumnDimension(Dimension): self, worksheet: Worksheet, index: str = "A", - width: int = ..., + width: int = 13, bestFit: bool = False, hidden: bool = False, outlineLevel: int = 0, @@ -124,20 +124,20 @@ class SheetFormatProperties(Serialisable): outlineLevelCol: Incomplete def __init__( self, - baseColWidth: int = ..., - defaultColWidth: Incomplete | None = ..., - defaultRowHeight: int = ..., - customHeight: Incomplete | None = ..., - zeroHeight: Incomplete | None = ..., - thickTop: Incomplete | None = ..., - thickBottom: Incomplete | None = ..., - outlineLevelRow: Incomplete | None = ..., - outlineLevelCol: Incomplete | None = ..., + baseColWidth: int = 8, + defaultColWidth: Incomplete | None = None, + defaultRowHeight: int = 15, + customHeight: Incomplete | None = None, + zeroHeight: Incomplete | None = None, + thickTop: Incomplete | None = None, + thickBottom: Incomplete | None = None, + outlineLevelRow: Incomplete | None = None, + outlineLevelCol: Incomplete | None = None, ) -> None: ... class SheetDimension(Serialisable): tagname: str ref: Incomplete - def __init__(self, ref: Incomplete | None = ...) -> None: ... + def __init__(self, ref: Incomplete | None = None) -> None: ... @property def boundaries(self): ... diff --git a/stubs/openpyxl/openpyxl/worksheet/drawing.pyi b/stubs/openpyxl/openpyxl/worksheet/drawing.pyi index 25de5747c1e0..d95fbd256a9b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/drawing.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/drawing.pyi @@ -5,4 +5,4 @@ from openpyxl.descriptors.serialisable import Serialisable class Drawing(Serialisable): tagname: str id: Incomplete - def __init__(self, id: Incomplete | None = ...) -> None: ... + def __init__(self, id: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/errors.pyi b/stubs/openpyxl/openpyxl/worksheet/errors.pyi index 0481d7662411..d29bc9cbc590 100644 --- a/stubs/openpyxl/openpyxl/worksheet/errors.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/errors.pyi @@ -5,13 +5,13 @@ from openpyxl.descriptors.serialisable import Serialisable class Extension(Serialisable): tagname: str uri: Incomplete - def __init__(self, uri: Incomplete | None = ...) -> None: ... + def __init__(self, uri: Incomplete | None = None) -> None: ... class ExtensionList(Serialisable): tagname: str ext: Incomplete __elements__: Incomplete - def __init__(self, ext=...) -> None: ... + def __init__(self, ext=()) -> None: ... class IgnoredError(Serialisable): tagname: str @@ -27,16 +27,16 @@ class IgnoredError(Serialisable): calculatedColumn: Incomplete def __init__( self, - sqref: Incomplete | None = ..., - evalError: bool = ..., - twoDigitTextYear: bool = ..., - numberStoredAsText: bool = ..., - formula: bool = ..., - formulaRange: bool = ..., - unlockedFormula: bool = ..., - emptyCellReference: bool = ..., - listDataValidation: bool = ..., - calculatedColumn: bool = ..., + sqref: Incomplete | None = None, + evalError: bool = False, + twoDigitTextYear: bool = False, + numberStoredAsText: bool = False, + formula: bool = False, + formulaRange: bool = False, + unlockedFormula: bool = False, + emptyCellReference: bool = False, + listDataValidation: bool = False, + calculatedColumn: bool = False, ) -> None: ... class IgnoredErrors(Serialisable): @@ -44,4 +44,4 @@ class IgnoredErrors(Serialisable): ignoredError: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, ignoredError=..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, ignoredError=(), extLst: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/filters.pyi b/stubs/openpyxl/openpyxl/worksheet/filters.pyi index 7526971d49ee..b3ad79588ac2 100644 --- a/stubs/openpyxl/openpyxl/worksheet/filters.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/filters.pyi @@ -13,13 +13,13 @@ class SortCondition(Serialisable): iconId: Incomplete def __init__( self, - ref: Incomplete | None = ..., - descending: Incomplete | None = ..., - sortBy: Incomplete | None = ..., - customList: Incomplete | None = ..., - dxfId: Incomplete | None = ..., - iconSet: Incomplete | None = ..., - iconId: Incomplete | None = ..., + ref: Incomplete | None = None, + descending: Incomplete | None = None, + sortBy: Incomplete | None = None, + customList: Incomplete | None = None, + dxfId: Incomplete | None = None, + iconSet: Incomplete | None = None, + iconId: Incomplete | None = None, ) -> None: ... class SortState(Serialisable): @@ -33,12 +33,12 @@ class SortState(Serialisable): __elements__: Incomplete def __init__( self, - columnSort: Incomplete | None = ..., - caseSensitive: Incomplete | None = ..., - sortMethod: Incomplete | None = ..., - ref: Incomplete | None = ..., - sortCondition=..., - extLst: Incomplete | None = ..., + columnSort: Incomplete | None = None, + caseSensitive: Incomplete | None = None, + sortMethod: Incomplete | None = None, + ref: Incomplete | None = None, + sortCondition=(), + extLst: Incomplete | None = None, ) -> None: ... def __bool__(self) -> bool: ... @@ -46,13 +46,13 @@ class IconFilter(Serialisable): tagname: str iconSet: Incomplete iconId: Incomplete - def __init__(self, iconSet: Incomplete | None = ..., iconId: Incomplete | None = ...) -> None: ... + def __init__(self, iconSet: Incomplete | None = None, iconId: Incomplete | None = None) -> None: ... class ColorFilter(Serialisable): tagname: str dxfId: Incomplete cellColor: Incomplete - def __init__(self, dxfId: Incomplete | None = ..., cellColor: Incomplete | None = ...) -> None: ... + def __init__(self, dxfId: Incomplete | None = None, cellColor: Incomplete | None = None) -> None: ... class DynamicFilter(Serialisable): tagname: str @@ -63,24 +63,24 @@ class DynamicFilter(Serialisable): maxValIso: Incomplete def __init__( self, - type: Incomplete | None = ..., - val: Incomplete | None = ..., - valIso: Incomplete | None = ..., - maxVal: Incomplete | None = ..., - maxValIso: Incomplete | None = ..., + type: Incomplete | None = None, + val: Incomplete | None = None, + valIso: Incomplete | None = None, + maxVal: Incomplete | None = None, + maxValIso: Incomplete | None = None, ) -> None: ... class CustomFilter(Serialisable): tagname: str operator: Incomplete val: Incomplete - def __init__(self, operator: Incomplete | None = ..., val: Incomplete | None = ...) -> None: ... + def __init__(self, operator: Incomplete | None = None, val: Incomplete | None = None) -> None: ... class CustomFilters(Serialisable): tagname: str customFilter: Incomplete __elements__: Incomplete - def __init__(self, _and: Incomplete | None = ..., customFilter=...) -> None: ... + def __init__(self, _and: Incomplete | None = False, customFilter=()) -> None: ... class Top10(Serialisable): tagname: str @@ -90,10 +90,10 @@ class Top10(Serialisable): filterVal: Incomplete def __init__( self, - top: Incomplete | None = ..., - percent: Incomplete | None = ..., - val: Incomplete | None = ..., - filterVal: Incomplete | None = ..., + top: Incomplete | None = None, + percent: Incomplete | None = None, + val: Incomplete | None = None, + filterVal: Incomplete | None = None, ) -> None: ... class DateGroupItem(Serialisable): @@ -107,13 +107,13 @@ class DateGroupItem(Serialisable): dateTimeGrouping: Incomplete def __init__( self, - year: Incomplete | None = ..., - month: Incomplete | None = ..., - day: Incomplete | None = ..., - hour: Incomplete | None = ..., - minute: Incomplete | None = ..., - second: Incomplete | None = ..., - dateTimeGrouping: Incomplete | None = ..., + year: Incomplete | None = None, + month: Incomplete | None = None, + day: Incomplete | None = None, + hour: Incomplete | None = None, + minute: Incomplete | None = None, + second: Incomplete | None = None, + dateTimeGrouping: Incomplete | None = None, ) -> None: ... class Filters(Serialisable): @@ -124,7 +124,7 @@ class Filters(Serialisable): dateGroupItem: Incomplete __elements__: Incomplete def __init__( - self, blank: Incomplete | None = ..., calendarType: Incomplete | None = ..., filter=..., dateGroupItem=... + self, blank: Incomplete | None = None, calendarType: Incomplete | None = None, filter=(), dateGroupItem=() ) -> None: ... class FilterColumn(Serialisable): @@ -143,18 +143,18 @@ class FilterColumn(Serialisable): __elements__: Incomplete def __init__( self, - colId: Incomplete | None = ..., - hiddenButton: Incomplete | None = ..., - showButton: Incomplete | None = ..., - filters: Incomplete | None = ..., - top10: Incomplete | None = ..., - customFilters: Incomplete | None = ..., - dynamicFilter: Incomplete | None = ..., - colorFilter: Incomplete | None = ..., - iconFilter: Incomplete | None = ..., - extLst: Incomplete | None = ..., - blank: Incomplete | None = ..., - vals: Incomplete | None = ..., + colId: Incomplete | None = None, + hiddenButton: Incomplete | None = False, + showButton: Incomplete | None = True, + filters: Incomplete | None = None, + top10: Incomplete | None = None, + customFilters: Incomplete | None = None, + dynamicFilter: Incomplete | None = None, + colorFilter: Incomplete | None = None, + iconFilter: Incomplete | None = None, + extLst: Incomplete | None = None, + blank: Incomplete | None = None, + vals: Incomplete | None = None, ) -> None: ... class AutoFilter(Serialisable): @@ -165,8 +165,12 @@ class AutoFilter(Serialisable): extLst: Incomplete __elements__: Incomplete def __init__( - self, ref: Incomplete | None = ..., filterColumn=..., sortState: Incomplete | None = ..., extLst: Incomplete | None = ... + self, + ref: Incomplete | None = None, + filterColumn=(), + sortState: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... def __bool__(self) -> bool: ... - def add_filter_column(self, col_id, vals, blank: bool = ...) -> None: ... - def add_sort_condition(self, ref, descending: bool = ...) -> None: ... + def add_filter_column(self, col_id, vals, blank: bool = False) -> None: ... + def add_sort_condition(self, ref, descending: bool = False) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi b/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi index 3c4767707707..4a876b3ba909 100644 --- a/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi @@ -16,10 +16,10 @@ class _HeaderFooterPart(Strict): color: Incomplete def __init__( self, - text: Incomplete | None = ..., - font: Incomplete | None = ..., - size: Incomplete | None = ..., - color: Incomplete | None = ..., + text: Incomplete | None = None, + font: Incomplete | None = None, + size: Incomplete | None = None, + color: Incomplete | None = None, ) -> None: ... def __bool__(self) -> bool: ... @classmethod @@ -31,7 +31,7 @@ class HeaderFooterItem(Strict): centre: Incomplete right: Incomplete def __init__( - self, left: Incomplete | None = ..., right: Incomplete | None = ..., center: Incomplete | None = ... + self, left: Incomplete | None = None, right: Incomplete | None = None, center: Incomplete | None = None ) -> None: ... def __bool__(self) -> bool: ... def to_tree(self, tagname): ... @@ -53,15 +53,15 @@ class HeaderFooter(Serialisable): __elements__: Incomplete def __init__( self, - differentOddEven: Incomplete | None = ..., - differentFirst: Incomplete | None = ..., - scaleWithDoc: Incomplete | None = ..., - alignWithMargins: Incomplete | None = ..., - oddHeader: Incomplete | None = ..., - oddFooter: Incomplete | None = ..., - evenHeader: Incomplete | None = ..., - evenFooter: Incomplete | None = ..., - firstHeader: Incomplete | None = ..., - firstFooter: Incomplete | None = ..., + differentOddEven: Incomplete | None = None, + differentFirst: Incomplete | None = None, + scaleWithDoc: Incomplete | None = None, + alignWithMargins: Incomplete | None = None, + oddHeader: Incomplete | None = None, + oddFooter: Incomplete | None = None, + evenHeader: Incomplete | None = None, + evenFooter: Incomplete | None = None, + firstHeader: Incomplete | None = None, + firstFooter: Incomplete | None = None, ) -> None: ... def __bool__(self) -> bool: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi b/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi index ebf821ad16fb..deba3e34e98c 100644 --- a/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi @@ -13,18 +13,18 @@ class Hyperlink(Serialisable): __attrs__: Incomplete def __init__( self, - ref: Incomplete | None = ..., - location: Incomplete | None = ..., - tooltip: Incomplete | None = ..., - display: Incomplete | None = ..., - id: Incomplete | None = ..., - target: Incomplete | None = ..., + ref: Incomplete | None = None, + location: Incomplete | None = None, + tooltip: Incomplete | None = None, + display: Incomplete | None = None, + id: Incomplete | None = None, + target: Incomplete | None = None, ) -> None: ... class HyperlinkList(Serialisable): tagname: str hyperlink: Incomplete - def __init__(self, hyperlink=...) -> None: ... + def __init__(self, hyperlink=()) -> None: ... def __bool__(self) -> bool: ... def __len__(self) -> int: ... def append(self, value) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/merge.pyi b/stubs/openpyxl/openpyxl/worksheet/merge.pyi index 821d09ad9aef..eebaa5490fce 100644 --- a/stubs/openpyxl/openpyxl/worksheet/merge.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/merge.pyi @@ -9,7 +9,7 @@ class MergeCell(CellRange): @property def ref(self): ... __attrs__: Incomplete - def __init__(self, ref: Incomplete | None = ...) -> None: ... + def __init__(self, ref: Incomplete | None = None) -> None: ... def __copy__(self): ... class MergeCells(Serialisable): @@ -17,7 +17,7 @@ class MergeCells(Serialisable): mergeCell: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., mergeCell=...) -> None: ... + def __init__(self, count: Incomplete | None = None, mergeCell=()) -> None: ... @property def count(self) -> int: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/ole.pyi b/stubs/openpyxl/openpyxl/worksheet/ole.pyi index ce36b5172286..ca159e62f7f7 100644 --- a/stubs/openpyxl/openpyxl/worksheet/ole.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/ole.pyi @@ -10,11 +10,11 @@ class ObjectAnchor(Serialisable): z_order: Incomplete def __init__( self, - _from: Incomplete | None = ..., - to: Incomplete | None = ..., - moveWithCells: bool = ..., - sizeWithCells: bool = ..., - z_order: Incomplete | None = ..., + _from: Incomplete | None = None, + to: Incomplete | None = None, + moveWithCells: bool = False, + sizeWithCells: bool = False, + z_order: Incomplete | None = None, ) -> None: ... class ObjectPr(Serialisable): @@ -33,18 +33,18 @@ class ObjectPr(Serialisable): __elements__: Incomplete def __init__( self, - anchor: Incomplete | None = ..., - locked: bool = ..., - defaultSize: bool = ..., - _print: bool = ..., - disabled: bool = ..., - uiObject: bool = ..., - autoFill: bool = ..., - autoLine: bool = ..., - autoPict: bool = ..., - macro: Incomplete | None = ..., - altText: Incomplete | None = ..., - dde: bool = ..., + anchor: Incomplete | None = None, + locked: bool = True, + defaultSize: bool = True, + _print: bool = True, + disabled: bool = False, + uiObject: bool = False, + autoFill: bool = True, + autoLine: bool = True, + autoPict: bool = True, + macro: Incomplete | None = None, + altText: Incomplete | None = None, + dde: bool = False, ) -> None: ... class OleObject(Serialisable): @@ -59,17 +59,17 @@ class OleObject(Serialisable): __elements__: Incomplete def __init__( self, - objectPr: Incomplete | None = ..., - progId: Incomplete | None = ..., - dvAspect: str = ..., - link: Incomplete | None = ..., - oleUpdate: Incomplete | None = ..., - autoLoad: bool = ..., - shapeId: Incomplete | None = ..., + objectPr: Incomplete | None = None, + progId: Incomplete | None = None, + dvAspect: str = "DVASPECT_CONTENT", + link: Incomplete | None = None, + oleUpdate: Incomplete | None = None, + autoLoad: bool = False, + shapeId: Incomplete | None = None, ) -> None: ... class OleObjects(Serialisable): tagname: str oleObject: Incomplete __elements__: Incomplete - def __init__(self, oleObject=...) -> None: ... + def __init__(self, oleObject=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/page.pyi b/stubs/openpyxl/openpyxl/worksheet/page.pyi index c81b5f284a02..a15c7b798144 100644 --- a/stubs/openpyxl/openpyxl/worksheet/page.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/page.pyi @@ -25,26 +25,26 @@ class PrintPageSetup(Serialisable): id: Incomplete def __init__( self, - worksheet: Incomplete | None = ..., - orientation: Incomplete | None = ..., - paperSize: Incomplete | None = ..., - scale: Incomplete | None = ..., - fitToHeight: Incomplete | None = ..., - fitToWidth: Incomplete | None = ..., - firstPageNumber: Incomplete | None = ..., - useFirstPageNumber: Incomplete | None = ..., - paperHeight: Incomplete | None = ..., - paperWidth: Incomplete | None = ..., - pageOrder: Incomplete | None = ..., - usePrinterDefaults: Incomplete | None = ..., - blackAndWhite: Incomplete | None = ..., - draft: Incomplete | None = ..., - cellComments: Incomplete | None = ..., - errors: Incomplete | None = ..., - horizontalDpi: Incomplete | None = ..., - verticalDpi: Incomplete | None = ..., - copies: Incomplete | None = ..., - id: Incomplete | None = ..., + worksheet: Incomplete | None = None, + orientation: Incomplete | None = None, + paperSize: Incomplete | None = None, + scale: Incomplete | None = None, + fitToHeight: Incomplete | None = None, + fitToWidth: Incomplete | None = None, + firstPageNumber: Incomplete | None = None, + useFirstPageNumber: Incomplete | None = None, + paperHeight: Incomplete | None = None, + paperWidth: Incomplete | None = None, + pageOrder: Incomplete | None = None, + usePrinterDefaults: Incomplete | None = None, + blackAndWhite: Incomplete | None = None, + draft: Incomplete | None = None, + cellComments: Incomplete | None = None, + errors: Incomplete | None = None, + horizontalDpi: Incomplete | None = None, + verticalDpi: Incomplete | None = None, + copies: Incomplete | None = None, + id: Incomplete | None = None, ) -> None: ... def __bool__(self) -> bool: ... @property @@ -69,11 +69,11 @@ class PrintOptions(Serialisable): gridLinesSet: Incomplete def __init__( self, - horizontalCentered: Incomplete | None = ..., - verticalCentered: Incomplete | None = ..., - headings: Incomplete | None = ..., - gridLines: Incomplete | None = ..., - gridLinesSet: Incomplete | None = ..., + horizontalCentered: Incomplete | None = None, + verticalCentered: Incomplete | None = None, + headings: Incomplete | None = None, + gridLines: Incomplete | None = None, + gridLinesSet: Incomplete | None = None, ) -> None: ... def __bool__(self) -> bool: ... @@ -86,5 +86,5 @@ class PageMargins(Serialisable): header: Incomplete footer: Incomplete def __init__( - self, left: float = ..., right: float = ..., top: int = ..., bottom: int = ..., header: float = ..., footer: float = ... + self, left: float = 0.75, right: float = 0.75, top: int = 1, bottom: int = 1, header: float = 0.5, footer: float = 0.5 ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi b/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi index c1e6420ff301..04cb2018c2d4 100644 --- a/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi @@ -9,7 +9,7 @@ class Break(Serialisable): max: Incomplete man: Incomplete pt: Incomplete - def __init__(self, id: int = ..., min: int = ..., max: int = ..., man: bool = ..., pt: Incomplete | None = ...) -> None: ... + def __init__(self, id: int = 0, min: int = 0, max: int = 16383, man: bool = True, pt: Incomplete | None = None) -> None: ... class RowBreak(Serialisable): tagname: str @@ -19,14 +19,14 @@ class RowBreak(Serialisable): brk: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., manualBreakCount: Incomplete | None = ..., brk=...) -> None: ... + def __init__(self, count: Incomplete | None = None, manualBreakCount: Incomplete | None = None, brk=()) -> None: ... def __bool__(self) -> bool: ... def __len__(self) -> int: ... @property def count(self): ... @property def manualBreakCount(self): ... - def append(self, brk: Incomplete | None = ...) -> None: ... + def append(self, brk: Incomplete | None = None) -> None: ... PageBreak = RowBreak diff --git a/stubs/openpyxl/openpyxl/worksheet/properties.pyi b/stubs/openpyxl/openpyxl/worksheet/properties.pyi index 37cbdac17aea..0f8eafb0f80f 100644 --- a/stubs/openpyxl/openpyxl/worksheet/properties.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/properties.pyi @@ -10,17 +10,17 @@ class Outline(Serialisable): showOutlineSymbols: Incomplete def __init__( self, - applyStyles: Incomplete | None = ..., - summaryBelow: Incomplete | None = ..., - summaryRight: Incomplete | None = ..., - showOutlineSymbols: Incomplete | None = ..., + applyStyles: Incomplete | None = None, + summaryBelow: Incomplete | None = None, + summaryRight: Incomplete | None = None, + showOutlineSymbols: Incomplete | None = None, ) -> None: ... class PageSetupProperties(Serialisable): tagname: str autoPageBreaks: Incomplete fitToPage: Incomplete - def __init__(self, autoPageBreaks: Incomplete | None = ..., fitToPage: Incomplete | None = ...) -> None: ... + def __init__(self, autoPageBreaks: Incomplete | None = None, fitToPage: Incomplete | None = None) -> None: ... class WorksheetProperties(Serialisable): tagname: str @@ -39,16 +39,16 @@ class WorksheetProperties(Serialisable): __elements__: Incomplete def __init__( self, - codeName: Incomplete | None = ..., - enableFormatConditionsCalculation: Incomplete | None = ..., - filterMode: Incomplete | None = ..., - published: Incomplete | None = ..., - syncHorizontal: Incomplete | None = ..., - syncRef: Incomplete | None = ..., - syncVertical: Incomplete | None = ..., - transitionEvaluation: Incomplete | None = ..., - transitionEntry: Incomplete | None = ..., - tabColor: Incomplete | None = ..., - outlinePr: Incomplete | None = ..., - pageSetUpPr: Incomplete | None = ..., + codeName: Incomplete | None = None, + enableFormatConditionsCalculation: Incomplete | None = None, + filterMode: Incomplete | None = None, + published: Incomplete | None = None, + syncHorizontal: Incomplete | None = None, + syncRef: Incomplete | None = None, + syncVertical: Incomplete | None = None, + transitionEvaluation: Incomplete | None = None, + transitionEntry: Incomplete | None = None, + tabColor: Incomplete | None = None, + outlinePr: Incomplete | None = None, + pageSetUpPr: Incomplete | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/protection.pyi b/stubs/openpyxl/openpyxl/worksheet/protection.pyi index 8bd46afc426a..cc910a11bb29 100644 --- a/stubs/openpyxl/openpyxl/worksheet/protection.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/protection.pyi @@ -3,7 +3,7 @@ from _typeshed import Incomplete from openpyxl.descriptors.serialisable import Serialisable class _Protected: - def set_password(self, value: str = ..., already_hashed: bool = ...) -> None: ... + def set_password(self, value: str = "", already_hashed: bool = False) -> None: ... @property def password(self): ... @password.setter @@ -36,29 +36,29 @@ class SheetProtection(Serialisable, _Protected): password: Incomplete def __init__( self, - sheet: bool = ..., - objects: bool = ..., - scenarios: bool = ..., - formatCells: bool = ..., - formatRows: bool = ..., - formatColumns: bool = ..., - insertColumns: bool = ..., - insertRows: bool = ..., - insertHyperlinks: bool = ..., - deleteColumns: bool = ..., - deleteRows: bool = ..., - selectLockedCells: bool = ..., - selectUnlockedCells: bool = ..., - sort: bool = ..., - autoFilter: bool = ..., - pivotTables: bool = ..., - password: Incomplete | None = ..., - algorithmName: Incomplete | None = ..., - saltValue: Incomplete | None = ..., - spinCount: Incomplete | None = ..., - hashValue: Incomplete | None = ..., + sheet: bool = False, + objects: bool = False, + scenarios: bool = False, + formatCells: bool = True, + formatRows: bool = True, + formatColumns: bool = True, + insertColumns: bool = True, + insertRows: bool = True, + insertHyperlinks: bool = True, + deleteColumns: bool = True, + deleteRows: bool = True, + selectLockedCells: bool = False, + selectUnlockedCells: bool = False, + sort: bool = True, + autoFilter: bool = True, + pivotTables: bool = True, + password: Incomplete | None = None, + algorithmName: Incomplete | None = None, + saltValue: Incomplete | None = None, + spinCount: Incomplete | None = None, + hashValue: Incomplete | None = None, ) -> None: ... - def set_password(self, value: str = ..., already_hashed: bool = ...) -> None: ... + def set_password(self, value: str = "", already_hashed: bool = False) -> None: ... def enable(self) -> None: ... def disable(self) -> None: ... def __bool__(self) -> bool: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/related.pyi b/stubs/openpyxl/openpyxl/worksheet/related.pyi index 89252ae67445..b778c4ad9d34 100644 --- a/stubs/openpyxl/openpyxl/worksheet/related.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/related.pyi @@ -4,5 +4,5 @@ from openpyxl.descriptors.serialisable import Serialisable class Related(Serialisable): # type: ignore[misc] id: Incomplete - def __init__(self, id: Incomplete | None = ...) -> None: ... - def to_tree(self, tagname, idx: Incomplete | None = ...): ... # type: ignore[override] + def __init__(self, id: Incomplete | None = None) -> None: ... + def to_tree(self, tagname, idx: Incomplete | None = None): ... # type: ignore[override] diff --git a/stubs/openpyxl/openpyxl/worksheet/scenario.pyi b/stubs/openpyxl/openpyxl/worksheet/scenario.pyi index 2d287b95de38..fc448de79441 100644 --- a/stubs/openpyxl/openpyxl/worksheet/scenario.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/scenario.pyi @@ -11,11 +11,11 @@ class InputCells(Serialisable): numFmtId: Incomplete def __init__( self, - r: Incomplete | None = ..., - deleted: bool = ..., - undone: bool = ..., - val: Incomplete | None = ..., - numFmtId: Incomplete | None = ..., + r: Incomplete | None = None, + deleted: bool = False, + undone: bool = False, + val: Incomplete | None = None, + numFmtId: Incomplete | None = None, ) -> None: ... class Scenario(Serialisable): @@ -30,13 +30,13 @@ class Scenario(Serialisable): __attrs__: Incomplete def __init__( self, - inputCells=..., - name: Incomplete | None = ..., - locked: bool = ..., - hidden: bool = ..., - count: Incomplete | None = ..., - user: Incomplete | None = ..., - comment: Incomplete | None = ..., + inputCells=(), + name: Incomplete | None = None, + locked: bool = False, + hidden: bool = False, + count: Incomplete | None = None, + user: Incomplete | None = None, + comment: Incomplete | None = None, ) -> None: ... @property def count(self): ... @@ -49,7 +49,7 @@ class ScenarioList(Serialisable): sqref: Incomplete __elements__: Incomplete def __init__( - self, scenario=..., current: Incomplete | None = ..., show: Incomplete | None = ..., sqref: Incomplete | None = ... + self, scenario=(), current: Incomplete | None = None, show: Incomplete | None = None, sqref: Incomplete | None = None ) -> None: ... def append(self, scenario) -> None: ... def __bool__(self) -> bool: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi b/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi index 682d77911806..4f34810987bf 100644 --- a/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi @@ -6,7 +6,7 @@ class CellSmartTagPr(Serialisable): tagname: str key: Incomplete val: Incomplete - def __init__(self, key: Incomplete | None = ..., val: Incomplete | None = ...) -> None: ... + def __init__(self, key: Incomplete | None = None, val: Incomplete | None = None) -> None: ... class CellSmartTag(Serialisable): tagname: str @@ -15,17 +15,19 @@ class CellSmartTag(Serialisable): deleted: Incomplete xmlBased: Incomplete __elements__: Incomplete - def __init__(self, cellSmartTagPr=..., type: Incomplete | None = ..., deleted: bool = ..., xmlBased: bool = ...) -> None: ... + def __init__( + self, cellSmartTagPr=(), type: Incomplete | None = None, deleted: bool = False, xmlBased: bool = False + ) -> None: ... class CellSmartTags(Serialisable): tagname: str cellSmartTag: Incomplete r: Incomplete __elements__: Incomplete - def __init__(self, cellSmartTag=..., r: Incomplete | None = ...) -> None: ... + def __init__(self, cellSmartTag=(), r: Incomplete | None = None) -> None: ... class SmartTags(Serialisable): tagname: str cellSmartTags: Incomplete __elements__: Incomplete - def __init__(self, cellSmartTags=...) -> None: ... + def __init__(self, cellSmartTags=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/table.pyi b/stubs/openpyxl/openpyxl/worksheet/table.pyi index 8349d5a900cf..dae36b8ad8c3 100644 --- a/stubs/openpyxl/openpyxl/worksheet/table.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/table.pyi @@ -15,11 +15,11 @@ class TableStyleInfo(Serialisable): showColumnStripes: Incomplete def __init__( self, - name: Incomplete | None = ..., - showFirstColumn: Incomplete | None = ..., - showLastColumn: Incomplete | None = ..., - showRowStripes: Incomplete | None = ..., - showColumnStripes: Incomplete | None = ..., + name: Incomplete | None = None, + showFirstColumn: Incomplete | None = None, + showLastColumn: Incomplete | None = None, + showRowStripes: Incomplete | None = None, + showColumnStripes: Incomplete | None = None, ) -> None: ... class XMLColumnProps(Serialisable): @@ -32,11 +32,11 @@ class XMLColumnProps(Serialisable): __elements__: Incomplete def __init__( self, - mapId: Incomplete | None = ..., - xpath: Incomplete | None = ..., - denormalized: Incomplete | None = ..., - xmlDataType: Incomplete | None = ..., - extLst: Incomplete | None = ..., + mapId: Incomplete | None = None, + xpath: Incomplete | None = None, + denormalized: Incomplete | None = None, + xmlDataType: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... class TableFormula(Serialisable): @@ -44,7 +44,7 @@ class TableFormula(Serialisable): array: Incomplete attr_text: Incomplete text: Incomplete - def __init__(self, array: Incomplete | None = ..., attr_text: Incomplete | None = ...) -> None: ... + def __init__(self, array: Incomplete | None = None, attr_text: Incomplete | None = None) -> None: ... class TableColumn(Serialisable): tagname: str @@ -67,22 +67,22 @@ class TableColumn(Serialisable): __elements__: Incomplete def __init__( self, - id: Incomplete | None = ..., - uniqueName: Incomplete | None = ..., - name: Incomplete | None = ..., - totalsRowFunction: Incomplete | None = ..., - totalsRowLabel: Incomplete | None = ..., - queryTableFieldId: Incomplete | None = ..., - headerRowDxfId: Incomplete | None = ..., - dataDxfId: Incomplete | None = ..., - totalsRowDxfId: Incomplete | None = ..., - headerRowCellStyle: Incomplete | None = ..., - dataCellStyle: Incomplete | None = ..., - totalsRowCellStyle: Incomplete | None = ..., - calculatedColumnFormula: Incomplete | None = ..., - totalsRowFormula: Incomplete | None = ..., - xmlColumnPr: Incomplete | None = ..., - extLst: Incomplete | None = ..., + id: Incomplete | None = None, + uniqueName: Incomplete | None = None, + name: Incomplete | None = None, + totalsRowFunction: Incomplete | None = None, + totalsRowLabel: Incomplete | None = None, + queryTableFieldId: Incomplete | None = None, + headerRowDxfId: Incomplete | None = None, + dataDxfId: Incomplete | None = None, + totalsRowDxfId: Incomplete | None = None, + headerRowCellStyle: Incomplete | None = None, + dataCellStyle: Incomplete | None = None, + totalsRowCellStyle: Incomplete | None = None, + calculatedColumnFormula: Incomplete | None = None, + totalsRowFormula: Incomplete | None = None, + xmlColumnPr: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... def __iter__(self): ... @classmethod @@ -124,33 +124,33 @@ class Table(Serialisable): __elements__: Incomplete def __init__( self, - id: int = ..., - displayName: Incomplete | None = ..., - ref: Incomplete | None = ..., - name: Incomplete | None = ..., - comment: Incomplete | None = ..., - tableType: Incomplete | None = ..., - headerRowCount: int = ..., - insertRow: Incomplete | None = ..., - insertRowShift: Incomplete | None = ..., - totalsRowCount: Incomplete | None = ..., - totalsRowShown: Incomplete | None = ..., - published: Incomplete | None = ..., - headerRowDxfId: Incomplete | None = ..., - dataDxfId: Incomplete | None = ..., - totalsRowDxfId: Incomplete | None = ..., - headerRowBorderDxfId: Incomplete | None = ..., - tableBorderDxfId: Incomplete | None = ..., - totalsRowBorderDxfId: Incomplete | None = ..., - headerRowCellStyle: Incomplete | None = ..., - dataCellStyle: Incomplete | None = ..., - totalsRowCellStyle: Incomplete | None = ..., - connectionId: Incomplete | None = ..., - autoFilter: Incomplete | None = ..., - sortState: Incomplete | None = ..., - tableColumns=..., - tableStyleInfo: Incomplete | None = ..., - extLst: Incomplete | None = ..., + id: int = 1, + displayName: Incomplete | None = None, + ref: Incomplete | None = None, + name: Incomplete | None = None, + comment: Incomplete | None = None, + tableType: Incomplete | None = None, + headerRowCount: int = 1, + insertRow: Incomplete | None = None, + insertRowShift: Incomplete | None = None, + totalsRowCount: Incomplete | None = None, + totalsRowShown: Incomplete | None = None, + published: Incomplete | None = None, + headerRowDxfId: Incomplete | None = None, + dataDxfId: Incomplete | None = None, + totalsRowDxfId: Incomplete | None = None, + headerRowBorderDxfId: Incomplete | None = None, + tableBorderDxfId: Incomplete | None = None, + totalsRowBorderDxfId: Incomplete | None = None, + headerRowCellStyle: Incomplete | None = None, + dataCellStyle: Incomplete | None = None, + totalsRowCellStyle: Incomplete | None = None, + connectionId: Incomplete | None = None, + autoFilter: Incomplete | None = None, + sortState: Incomplete | None = None, + tableColumns=(), + tableStyleInfo: Incomplete | None = None, + extLst: Incomplete | None = None, ) -> None: ... def to_tree(self): ... @property @@ -163,7 +163,7 @@ class TablePartList(Serialisable): tablePart: Incomplete __elements__: Incomplete __attrs__: Incomplete - def __init__(self, count: Incomplete | None = ..., tablePart=...) -> None: ... + def __init__(self, count: Incomplete | None = None, tablePart=()) -> None: ... def append(self, part) -> None: ... @property def count(self) -> int: ... @@ -171,5 +171,5 @@ class TablePartList(Serialisable): class TableList(dict[Incomplete, Incomplete]): def add(self, table) -> None: ... - def get(self, name: Incomplete | None = ..., table_range: Incomplete | None = ...): ... + def get(self, name: Incomplete | None = None, table_range: Incomplete | None = None): ... def items(self): ... diff --git a/stubs/openpyxl/openpyxl/worksheet/views.pyi b/stubs/openpyxl/openpyxl/worksheet/views.pyi index 0abd81b98a84..86bb9afea0a3 100644 --- a/stubs/openpyxl/openpyxl/worksheet/views.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/views.pyi @@ -10,11 +10,11 @@ class Pane(Serialisable): # type: ignore[misc] state: Incomplete def __init__( self, - xSplit: Incomplete | None = ..., - ySplit: Incomplete | None = ..., - topLeftCell: Incomplete | None = ..., - activePane: str = ..., - state: str = ..., + xSplit: Incomplete | None = None, + ySplit: Incomplete | None = None, + topLeftCell: Incomplete | None = None, + activePane: str = "topLeft", + state: str = "split", ) -> None: ... class Selection(Serialisable): # type: ignore[misc] @@ -23,7 +23,7 @@ class Selection(Serialisable): # type: ignore[misc] activeCellId: Incomplete sqref: Incomplete def __init__( - self, pane: Incomplete | None = ..., activeCell: str = ..., activeCellId: Incomplete | None = ..., sqref: str = ... + self, pane: Incomplete | None = None, activeCell: str = "A1", activeCellId: Incomplete | None = None, sqref: str = "A1" ) -> None: ... class SheetView(Serialisable): @@ -52,28 +52,28 @@ class SheetView(Serialisable): pane: Incomplete def __init__( self, - windowProtection: Incomplete | None = ..., - showFormulas: Incomplete | None = ..., - showGridLines: Incomplete | None = ..., - showRowColHeaders: Incomplete | None = ..., - showZeros: Incomplete | None = ..., - rightToLeft: Incomplete | None = ..., - tabSelected: Incomplete | None = ..., - showRuler: Incomplete | None = ..., - showOutlineSymbols: Incomplete | None = ..., - defaultGridColor: Incomplete | None = ..., - showWhiteSpace: Incomplete | None = ..., - view: Incomplete | None = ..., - topLeftCell: Incomplete | None = ..., - colorId: Incomplete | None = ..., - zoomScale: Incomplete | None = ..., - zoomScaleNormal: Incomplete | None = ..., - zoomScaleSheetLayoutView: Incomplete | None = ..., - zoomScalePageLayoutView: Incomplete | None = ..., - zoomToFit: Incomplete | None = ..., - workbookViewId: int = ..., - selection: Incomplete | None = ..., - pane: Incomplete | None = ..., + windowProtection: Incomplete | None = None, + showFormulas: Incomplete | None = None, + showGridLines: Incomplete | None = None, + showRowColHeaders: Incomplete | None = None, + showZeros: Incomplete | None = None, + rightToLeft: Incomplete | None = None, + tabSelected: Incomplete | None = None, + showRuler: Incomplete | None = None, + showOutlineSymbols: Incomplete | None = None, + defaultGridColor: Incomplete | None = None, + showWhiteSpace: Incomplete | None = None, + view: Incomplete | None = None, + topLeftCell: Incomplete | None = None, + colorId: Incomplete | None = None, + zoomScale: Incomplete | None = None, + zoomScaleNormal: Incomplete | None = None, + zoomScaleSheetLayoutView: Incomplete | None = None, + zoomScalePageLayoutView: Incomplete | None = None, + zoomToFit: Incomplete | None = None, + workbookViewId: int = 0, + selection: Incomplete | None = None, + pane: Incomplete | None = None, ) -> None: ... class SheetViewList(Serialisable): @@ -81,4 +81,4 @@ class SheetViewList(Serialisable): sheetView: Incomplete extLst: Incomplete __elements__: Incomplete - def __init__(self, sheetView: Incomplete | None = ..., extLst: Incomplete | None = ...) -> None: ... + def __init__(self, sheetView: Incomplete | None = None, extLst: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index e17f371c5819..d6e7eb237cfd 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -70,7 +70,7 @@ class Worksheet(_WorkbookChild): sheet_format: SheetFormatProperties scenarios: ScenarioList - def __init__(self, parent: Workbook | None, title: str | _Decodable | None = ...) -> None: ... + def __init__(self, parent: Workbook | None, title: str | _Decodable | None = None) -> None: ... @property def sheet_view(self) -> SheetView: ... @property @@ -85,7 +85,7 @@ class Worksheet(_WorkbookChild): def freeze_panes(self) -> str | None: ... @freeze_panes.setter def freeze_panes(self, topLeftCell: Incomplete | None = ...) -> None: ... - def cell(self, row: int, column: int, value: _CellValue | None = ...) -> Cell: ... + def cell(self, row: int, column: int, value: _CellValue | None = None) -> Cell: ... @overload def __getitem__(self, key: int | slice) -> tuple[Cell, ...]: ... @overload @@ -121,10 +121,10 @@ class Worksheet(_WorkbookChild): @overload def iter_rows( self, - min_row: int | None = ..., - max_row: int | None = ..., - min_col: int | None = ..., - max_col: int | None = ..., + min_row: int | None = None, + max_row: int | None = None, + min_col: int | None = None, + max_col: int | None = None, values_only: Literal[False] = False, ) -> Generator[tuple[_Cell, ...], None, None]: ... @overload @@ -162,10 +162,10 @@ class Worksheet(_WorkbookChild): @overload def iter_cols( self, - min_col: int | None = ..., - max_col: int | None = ..., - min_row: int | None = ..., - max_row: int | None = ..., + min_col: int | None = None, + max_col: int | None = None, + min_row: int | None = None, + max_row: int | None = None, values_only: Literal[False] = False, ) -> Generator[tuple[_Cell, ...], None, None]: ... @overload @@ -188,8 +188,8 @@ class Worksheet(_WorkbookChild): self, paper_size: int | None, orientation: Literal["default", "portrait", "landscape", None] ) -> None: ... def add_data_validation(self, data_validation: DataValidation) -> None: ... - def add_chart(self, chart: ChartBase, anchor: str | None = ...) -> None: ... - def add_image(self, img: Image, anchor: str | None = ...) -> None: ... + def add_chart(self, chart: ChartBase, anchor: str | None = None) -> None: ... + def add_image(self, img: Image, anchor: str | None = None) -> None: ... def add_table(self, table: Table) -> None: ... @property def tables(self) -> TableList: ... @@ -203,20 +203,20 @@ class Worksheet(_WorkbookChild): def merge_cells( self, range_string: str, - start_row: Unused = ..., - start_column: Unused = ..., - end_row: Unused = ..., - end_column: Unused = ..., + start_row: Unused = None, + start_column: Unused = None, + end_row: Unused = None, + end_column: Unused = None, ) -> None: ... @property def merged_cell_ranges(self) -> list[CellRange]: ... def unmerge_cells( self, - range_string: str | None = ..., - start_row: int | None = ..., - start_column: int | None = ..., - end_row: int | None = ..., - end_column: int | None = ..., + range_string: str | None = None, + start_row: int | None = None, + start_column: int | None = None, + end_row: int | None = None, + end_column: int | None = None, ) -> None: ... def append( self, @@ -226,11 +226,11 @@ class Worksheet(_WorkbookChild): | GeneratorType[_CellValue | Cell, object, object] | dict[int | str, _CellValue], ) -> None: ... - def insert_rows(self, idx: int, amount: int = ...) -> None: ... - def insert_cols(self, idx: int, amount: int = ...) -> None: ... - def delete_rows(self, idx: int, amount: int = ...) -> None: ... - def delete_cols(self, idx: int, amount: int = ...) -> None: ... - def move_range(self, cell_range: CellRange | str, rows: int = ..., cols: int = ..., translate: bool = ...) -> None: ... + def insert_rows(self, idx: int, amount: int = 1) -> None: ... + def insert_cols(self, idx: int, amount: int = 1) -> None: ... + def delete_rows(self, idx: int, amount: int = 1) -> None: ... + def delete_cols(self, idx: int, amount: int = 1) -> None: ... + def move_range(self, cell_range: CellRange | str, rows: int = 0, cols: int = 0, translate: bool = False) -> None: ... @property def print_title_rows(self) -> str | None: ... @print_title_rows.setter diff --git a/stubs/openpyxl/openpyxl/xml/functions.pyi b/stubs/openpyxl/openpyxl/xml/functions.pyi index 65bb41d190b7..63f0ceef4ba2 100644 --- a/stubs/openpyxl/openpyxl/xml/functions.pyi +++ b/stubs/openpyxl/openpyxl/xml/functions.pyi @@ -46,9 +46,9 @@ if sys.version_info >= (3, 8): @overload def tostring( element: xml.etree.ElementTree.Element, - method: str | None = ..., + method: str | None = "xml", *, - xml_declaration: bool | None = ..., + xml_declaration: bool | None = None, default_namespace: str | None = ..., short_empty_elements: bool = ..., ) -> str: ... From feef334fadbc9fdbd5e147a1142301b0bbecef42 Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 10 May 2023 10:23:41 -0400 Subject: [PATCH 20/51] Use new type aliases for params --- stubs/openpyxl/openpyxl/cell/text.pyi | 12 +- stubs/openpyxl/openpyxl/chart/axis.pyi | 116 +++++++++--------- stubs/openpyxl/openpyxl/descriptors/base.pyi | 7 +- stubs/openpyxl/openpyxl/styles/alignment.pyi | 30 ++--- stubs/openpyxl/openpyxl/styles/borders.pyi | 14 +-- stubs/openpyxl/openpyxl/styles/colors.pyi | 20 +-- stubs/openpyxl/openpyxl/styles/fills.pyi | 26 ++-- stubs/openpyxl/openpyxl/styles/fonts.pyi | 50 ++++---- .../openpyxl/openpyxl/styles/named_styles.pyi | 30 ++--- stubs/openpyxl/openpyxl/styles/numbers.pyi | 6 +- stubs/openpyxl/openpyxl/styles/protection.pyi | 8 +- 11 files changed, 160 insertions(+), 159 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index b1977724ee75..582b54def3c6 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -1,6 +1,6 @@ from typing_extensions import Literal, TypeAlias -from openpyxl.descriptors.base import _IntegerSetter +from openpyxl.descriptors.base import _ConvertibleToInt from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.styles.colors import Color @@ -11,12 +11,12 @@ class PhoneticProperties(Serialisable): @property def fontId(self) -> int: ... @fontId.setter - def fontId(self, __value: _IntegerSetter | None) -> None: ... + def fontId(self, __value: _ConvertibleToInt | None) -> None: ... type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] alignment: Literal["noControl", "left", "center", "distributed", None] def __init__( self, - fontId: _IntegerSetter, + fontId: _ConvertibleToInt, type: Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion", None] = None, alignment: Literal["noControl", "left", "center", "distributed", None] = None, ) -> None: ... @@ -26,14 +26,14 @@ class PhoneticText(Serialisable): @property def sb(self) -> int: ... @sb.setter - def sb(self, __value: _IntegerSetter) -> None: ... + def sb(self, __value: _ConvertibleToInt) -> None: ... @property def eb(self) -> int: ... @eb.setter - def eb(self, __value: _IntegerSetter) -> None: ... + def eb(self, __value: _ConvertibleToInt) -> None: ... t: str text = t # noqa: F821 - def __init__(self, sb: _IntegerSetter, eb: _IntegerSetter, t: str) -> None: ... + def __init__(self, sb: _ConvertibleToInt, eb: _ConvertibleToInt, t: str) -> None: ... class InlineFont(Font): tagname: str diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index e49c2715f10a..c1ee9ef18c5f 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -4,7 +4,7 @@ from typing_extensions import Literal, Self, TypeAlias from openpyxl.chart.data_source import NumFmt from openpyxl.chart.title import Title -from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter +from openpyxl.descriptors.base import _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.serialisable import Serialisable from openpyxl.xml.functions import _Element @@ -26,24 +26,24 @@ class Scaling(Serialisable): @property def logBase(self) -> float | None: ... @logBase.setter - def logBase(self, __value: _FloatSetter | None) -> None: ... + def logBase(self, __value: _ConvertibleToFloat | None) -> None: ... orientation: Literal["maxMin", "minMax"] @property def max(self) -> float | None: ... @max.setter - def max(self, __value: _FloatSetter | None) -> None: ... + def max(self, __value: _ConvertibleToFloat | None) -> None: ... @property def min(self) -> float | None: ... @min.setter - def min(self, __value: _FloatSetter | None) -> None: ... + def min(self, __value: _ConvertibleToFloat | None) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - logBase: _FloatSetter | None = None, + logBase: _ConvertibleToFloat | None = None, orientation: Literal["maxMin", "minMax"] = "minMax", - max: _FloatSetter | None = None, - min: _FloatSetter | None = None, + max: _ConvertibleToFloat | None = None, + min: _ConvertibleToFloat | None = None, extLst: Unused = None, ) -> None: ... @@ -51,12 +51,12 @@ class _BaseAxis(Serialisable): @property def axId(self) -> int: ... @axId.setter - def axId(self, __value: _IntegerSetter) -> None: ... + def axId(self, __value: _ConvertibleToInt) -> None: ... scaling: Scaling @property def delete(self) -> bool: ... @delete.setter - def delete(self, __value: _BoolSetter) -> None: ... + def delete(self, __value: _ConvertibleToBool) -> None: ... axPos: Literal["b", "l", "r", "t"] majorGridlines: ChartLines | None minorGridlines: ChartLines | None @@ -73,18 +73,18 @@ class _BaseAxis(Serialisable): @property def crossAx(self) -> int: ... @crossAx.setter - def crossAx(self, __value: _IntegerSetter) -> None: ... + def crossAx(self, __value: _ConvertibleToInt) -> None: ... crosses: Literal["autoZero", "max", "min", None] @property def crossesAt(self) -> float | None: ... @crossesAt.setter - def crossesAt(self, __value: _FloatSetter | None) -> None: ... + def crossesAt(self, __value: _ConvertibleToFloat | None) -> None: ... __elements__: tuple[str, ...] def __init__( self, - axId: _IntegerSetter, + axId: _ConvertibleToInt, scaling: Scaling | None, - delete: _BoolSetter, + delete: _ConvertibleToBool, axPos: str, majorGridlines: ChartLines | None, minorGridlines: ChartLines | None, @@ -95,9 +95,9 @@ class _BaseAxis(Serialisable): tickLblPos: Literal["high", "low", "nextTo", None], spPr: GraphicalProperties | None, txPr: RichText | None, - crossAx: _IntegerSetter, + crossAx: _ConvertibleToInt, crosses: Literal["autoZero", "max", "min", None] = None, - crossesAt: _FloatSetter | None = None, + crossesAt: _ConvertibleToFloat | None = None, ) -> None: ... @property @abstractmethod @@ -139,7 +139,7 @@ class DisplayUnitsLabelList(Serialisable): @property def custUnit(self) -> float | None: ... @custUnit.setter - def custUnit(self, __value: _FloatSetter | None) -> None: ... + def custUnit(self, __value: _ConvertibleToFloat | None) -> None: ... builtInUnit: _BuiltInUnitType dispUnitsLbl: DisplayUnitsLabel | None extLst: ExtensionList | None @@ -158,24 +158,24 @@ class NumericAxis(_BaseAxis): @property def majorUnit(self) -> float | None: ... @majorUnit.setter - def majorUnit(self, __value: _FloatSetter | None) -> None: ... + def majorUnit(self, __value: _ConvertibleToFloat | None) -> None: ... @property def minorUnit(self) -> float | None: ... @minorUnit.setter - def minorUnit(self, __value: _FloatSetter | None) -> None: ... + def minorUnit(self, __value: _ConvertibleToFloat | None) -> None: ... dispUnits: DisplayUnitsLabelList | None extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, crossBetween: Literal["between", "midCat", None] = None, - majorUnit: _FloatSetter | None = None, - minorUnit: _FloatSetter | None = None, + majorUnit: _ConvertibleToFloat | None = None, + minorUnit: _ConvertibleToFloat | None = None, dispUnits: DisplayUnitsLabelList | None = None, extLst: Unused = None, - axId: _IntegerSetter = ..., + axId: _ConvertibleToInt = ..., scaling: Scaling | None = ..., - delete: _BoolSetter = ..., + delete: _ConvertibleToBool = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -186,9 +186,9 @@ class NumericAxis(_BaseAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: _IntegerSetter = ..., + crossAx: _ConvertibleToInt = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: _FloatSetter | None = ..., + crossesAt: _ConvertibleToFloat | None = ..., ) -> None: ... @classmethod def from_tree(cls, node: _Element) -> Self: ... @@ -198,38 +198,38 @@ class TextAxis(_BaseAxis): @property def auto(self) -> bool | None: ... @auto.setter - def auto(self, __value: _BoolSetter) -> None: ... + def auto(self, __value: _ConvertibleToBool) -> None: ... lblAlgn: Literal["ctr", "l", "r", None] @property def lblOffset(self) -> float: ... @lblOffset.setter - def lblOffset(self, __value: _FloatSetter) -> None: ... + def lblOffset(self, __value: _ConvertibleToFloat) -> None: ... @property def tickLblSkip(self) -> int | None: ... @tickLblSkip.setter - def tickLblSkip(self, __value: _IntegerSetter | None) -> None: ... + def tickLblSkip(self, __value: _ConvertibleToInt | None) -> None: ... @property def tickMarkSkip(self) -> int | None: ... @tickMarkSkip.setter - def tickMarkSkip(self, __value: _IntegerSetter | None) -> None: ... + def tickMarkSkip(self, __value: _ConvertibleToInt | None) -> None: ... @property def noMultiLvlLbl(self) -> bool | None: ... @noMultiLvlLbl.setter - def noMultiLvlLbl(self, __value: _BoolSetter) -> None: ... + def noMultiLvlLbl(self, __value: _ConvertibleToBool) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - auto: _BoolSetter = None, + auto: _ConvertibleToBool = None, lblAlgn: Literal["ctr", "l", "r", None] = None, - lblOffset: _FloatSetter = 100, - tickLblSkip: _IntegerSetter | None = None, - tickMarkSkip: _IntegerSetter | None = None, - noMultiLvlLbl: _BoolSetter = None, + lblOffset: _ConvertibleToFloat = 100, + tickLblSkip: _ConvertibleToInt | None = None, + tickMarkSkip: _ConvertibleToInt | None = None, + noMultiLvlLbl: _ConvertibleToBool = None, extLst: Unused = None, - axId: _IntegerSetter = ..., + axId: _ConvertibleToInt = ..., scaling: Scaling | None = ..., - delete: _BoolSetter = ..., + delete: _ConvertibleToBool = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -240,9 +240,9 @@ class TextAxis(_BaseAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: _IntegerSetter = ..., + crossAx: _ConvertibleToInt = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: _FloatSetter | None = ..., + crossesAt: _ConvertibleToFloat | None = ..., ) -> None: ... _TimeUnitType: TypeAlias = Literal["days", "months", "years", None] @@ -252,37 +252,37 @@ class DateAxis(TextAxis): @property def auto(self) -> bool | None: ... @auto.setter - def auto(self, __value: _BoolSetter) -> None: ... + def auto(self, __value: _ConvertibleToBool) -> None: ... @property # type: ignore[override] def lblOffset(self) -> int | None: ... @lblOffset.setter - def lblOffset(self, __value: _IntegerSetter | None) -> None: ... + def lblOffset(self, __value: _ConvertibleToInt | None) -> None: ... baseTimeUnit: _TimeUnitType @property def majorUnit(self) -> float | None: ... @majorUnit.setter - def majorUnit(self, __value: _FloatSetter | None) -> None: ... + def majorUnit(self, __value: _ConvertibleToFloat | None) -> None: ... majorTimeUnit: _TimeUnitType @property def minorUnit(self) -> float | None: ... @minorUnit.setter - def minorUnit(self, __value: _FloatSetter | None) -> None: ... + def minorUnit(self, __value: _ConvertibleToFloat | None) -> None: ... minorTimeUnit: _TimeUnitType extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - auto: _BoolSetter = None, - lblOffset: _IntegerSetter | None = None, + auto: _ConvertibleToBool = None, + lblOffset: _ConvertibleToInt | None = None, baseTimeUnit: _TimeUnitType = None, - majorUnit: _FloatSetter | None = None, + majorUnit: _ConvertibleToFloat | None = None, majorTimeUnit: _TimeUnitType = None, - minorUnit: _FloatSetter | None = None, + minorUnit: _ConvertibleToFloat | None = None, minorTimeUnit: _TimeUnitType = None, extLst: ExtensionList | None = None, - axId: _IntegerSetter = ..., + axId: _ConvertibleToInt = ..., scaling: Scaling | None = ..., - delete: _BoolSetter = ..., + delete: _ConvertibleToBool = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -293,9 +293,9 @@ class DateAxis(TextAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: _IntegerSetter = ..., + crossAx: _ConvertibleToInt = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: _FloatSetter | None = ..., + crossesAt: _ConvertibleToFloat | None = ..., ) -> None: ... class SeriesAxis(_BaseAxis): @@ -303,21 +303,21 @@ class SeriesAxis(_BaseAxis): @property def tickLblSkip(self) -> int | None: ... @tickLblSkip.setter - def tickLblSkip(self, __value: _IntegerSetter | None) -> None: ... + def tickLblSkip(self, __value: _ConvertibleToInt | None) -> None: ... @property def tickMarkSkip(self) -> int | None: ... @tickMarkSkip.setter - def tickMarkSkip(self, __value: _IntegerSetter | None) -> None: ... + def tickMarkSkip(self, __value: _ConvertibleToInt | None) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, - tickLblSkip: _IntegerSetter | None = None, - tickMarkSkip: _IntegerSetter | None = None, + tickLblSkip: _ConvertibleToInt | None = None, + tickMarkSkip: _ConvertibleToInt | None = None, extLst: Unused = None, - axId: _IntegerSetter = ..., + axId: _ConvertibleToInt = ..., scaling: Scaling | None = ..., - delete: _BoolSetter = ..., + delete: _ConvertibleToBool = ..., axPos: str = ..., majorGridlines: ChartLines | None = ..., minorGridlines: ChartLines | None = ..., @@ -328,7 +328,7 @@ class SeriesAxis(_BaseAxis): tickLblPos: Literal["high", "low", "nextTo", None] = ..., spPr: GraphicalProperties | None = ..., txPr: RichText | None = ..., - crossAx: _IntegerSetter = ..., + crossAx: _ConvertibleToInt = ..., crosses: Literal["autoZero", "max", "min", None] = ..., - crossesAt: _FloatSetter | None = ..., + crossesAt: _ConvertibleToFloat | None = ..., ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/base.pyi b/stubs/openpyxl/openpyxl/descriptors/base.pyi index 7b587535795c..1a0af6dc59c8 100644 --- a/stubs/openpyxl/openpyxl/descriptors/base.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/base.pyi @@ -4,9 +4,10 @@ from typing import Any, SupportsFloat, SupportsInt from typing_extensions import SupportsIndex, TypeAlias # Helper types for Convertible Descriptors -_IntegerSetter: TypeAlias = str | ReadableBuffer | SupportsInt | SupportsIndex | SupportsTrunc # noqa: Y047 -_FloatSetter: TypeAlias = SupportsFloat | SupportsIndex | str | ReadableBuffer # noqa: Y047 -_BoolSetter: TypeAlias = object # noqa: Y047 +_ConvertibleToInt: TypeAlias = int | str | ReadableBuffer | SupportsInt | SupportsIndex | SupportsTrunc +_ConvertibleToFloat: TypeAlias = float | SupportsFloat | SupportsIndex | str | ReadableBuffer +# Since everything is convertible to a bool, this restricts to only intended expected types +_ConvertibleToBool: TypeAlias = bool | str | int | None # True | False | "true" | "t" | "false" | "f" | 1 | 0 | None class Descriptor: name: Incomplete diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index 324f8b2cbe14..998d2e595556 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -2,7 +2,7 @@ from _typeshed import Unused from collections.abc import Generator from typing_extensions import Final, Literal, TypeAlias -from openpyxl.descriptors.base import _BoolSetter, _FloatSetter +from openpyxl.descriptors.base import _ConvertibleToBool, _ConvertibleToFloat from openpyxl.descriptors.serialisable import Serialisable _HorizontalAlignmentsType: TypeAlias = Literal[ @@ -22,43 +22,43 @@ class Alignment(Serialisable): @property def wrapText(self) -> bool | None: ... @wrapText.setter - def wrapText(self, __value: _BoolSetter) -> None: ... + def wrapText(self, __value: _ConvertibleToBool) -> None: ... wrap_text = wrapText @property def shrinkToFit(self) -> bool | None: ... @shrinkToFit.setter - def shrinkToFit(self, __value: _BoolSetter) -> None: ... + def shrinkToFit(self, __value: _ConvertibleToBool) -> None: ... shrink_to_fit = shrinkToFit @property def indent(self) -> float: ... @indent.setter - def indent(self, __value: _FloatSetter) -> None: ... + def indent(self, __value: _ConvertibleToFloat) -> None: ... @property def relativeIndent(self) -> float: ... @relativeIndent.setter - def relativeIndent(self, __value: _FloatSetter) -> None: ... + def relativeIndent(self, __value: _ConvertibleToFloat) -> None: ... @property def justifyLastLine(self) -> bool | None: ... @justifyLastLine.setter - def justifyLastLine(self, __value: _BoolSetter) -> None: ... + def justifyLastLine(self, __value: _ConvertibleToBool) -> None: ... @property def readingOrder(self) -> float: ... @readingOrder.setter - def readingOrder(self, __value: _FloatSetter) -> None: ... + def readingOrder(self, __value: _ConvertibleToFloat) -> None: ... def __init__( self, horizontal: _HorizontalAlignmentsType | None = None, vertical: _VerticalAlignmentsType | None = None, textRotation: float | None = 0, - wrapText: _BoolSetter = None, - shrinkToFit: _BoolSetter = None, - indent: _FloatSetter = 0, - relativeIndent: _FloatSetter = 0, - justifyLastLine: _BoolSetter = None, - readingOrder: _FloatSetter = 0, + wrapText: _ConvertibleToBool = None, + shrinkToFit: _ConvertibleToBool = None, + indent: _ConvertibleToFloat = 0, + relativeIndent: _ConvertibleToFloat = 0, + justifyLastLine: _ConvertibleToBool = None, + readingOrder: _ConvertibleToFloat = 0, text_rotation: int | None = None, - wrap_text: _BoolSetter = None, - shrink_to_fit: _BoolSetter = None, + wrap_text: _ConvertibleToBool = None, + shrink_to_fit: _ConvertibleToBool = None, mergeCell: Unused = None, ) -> None: ... def __iter__(self) -> Generator[tuple[str, str], None, None]: ... diff --git a/stubs/openpyxl/openpyxl/styles/borders.pyi b/stubs/openpyxl/openpyxl/styles/borders.pyi index 4e748e1d205d..49dfc3078079 100644 --- a/stubs/openpyxl/openpyxl/styles/borders.pyi +++ b/stubs/openpyxl/openpyxl/styles/borders.pyi @@ -2,7 +2,7 @@ from _typeshed import Incomplete from collections.abc import Generator from typing_extensions import Final, Literal, TypeAlias -from openpyxl.descriptors.base import _BoolSetter +from openpyxl.descriptors.base import _ConvertibleToBool from openpyxl.descriptors.serialisable import Serialisable from .colors import Color @@ -62,15 +62,15 @@ class Border(Serialisable): @property def outline(self) -> bool: ... @outline.setter - def outline(self, __value: _BoolSetter) -> None: ... + def outline(self, __value: _ConvertibleToBool) -> None: ... @property def diagonalUp(self) -> bool: ... @diagonalUp.setter - def diagonalUp(self, __value: _BoolSetter) -> None: ... + def diagonalUp(self, __value: _ConvertibleToBool) -> None: ... @property def diagonalDown(self) -> bool: ... @diagonalDown.setter - def diagonalDown(self, __value: _BoolSetter) -> None: ... + def diagonalDown(self, __value: _ConvertibleToBool) -> None: ... diagonal_direction: Incomplete | None def __init__( self, @@ -82,9 +82,9 @@ class Border(Serialisable): diagonal_direction: Incomplete | None = None, vertical: Side | None = None, horizontal: Side | None = None, - diagonalUp: _BoolSetter = False, - diagonalDown: _BoolSetter = False, - outline: _BoolSetter = True, + diagonalUp: _ConvertibleToBool = False, + diagonalDown: _ConvertibleToBool = False, + outline: _ConvertibleToBool = True, start: Side | None = None, end: Side | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/styles/colors.pyi b/stubs/openpyxl/openpyxl/styles/colors.pyi index a80f413e14c2..4fe424c98bd8 100644 --- a/stubs/openpyxl/openpyxl/styles/colors.pyi +++ b/stubs/openpyxl/openpyxl/styles/colors.pyi @@ -5,7 +5,7 @@ from typing import TypeVar, overload from typing_extensions import Self from openpyxl.descriptors import Typed -from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter +from openpyxl.descriptors.base import _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.drawing.colors import SystemColor @@ -28,28 +28,28 @@ class Color(Serialisable): @property def indexed(self) -> int: ... @indexed.setter - def indexed(self, __value: _IntegerSetter) -> None: ... + def indexed(self, __value: _ConvertibleToInt) -> None: ... @property def auto(self) -> bool: ... @auto.setter - def auto(self, __value: _BoolSetter) -> None: ... + def auto(self, __value: _ConvertibleToBool) -> None: ... @property def theme(self) -> int: ... @theme.setter - def theme(self, __value: _IntegerSetter) -> None: ... + def theme(self, __value: _ConvertibleToInt) -> None: ... @property def tint(self) -> float: ... @tint.setter - def tint(self, __value: _FloatSetter) -> None: ... + def tint(self, __value: _ConvertibleToFloat) -> None: ... type: str def __init__( self, rgb: str = "00000000", - indexed: _IntegerSetter | None = None, - auto: _BoolSetter = None, - theme: _IntegerSetter | None = None, - tint: _FloatSetter = 0.0, - index: _IntegerSetter | None = None, + indexed: _ConvertibleToInt | None = None, + auto: _ConvertibleToBool = None, + theme: _ConvertibleToInt | None = None, + tint: _ConvertibleToFloat = 0.0, + index: _ConvertibleToInt | None = None, type: Unused = "rgb", ) -> None: ... @property diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index 7ae477dfc2e2..085e7d23bd3d 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -3,7 +3,7 @@ from collections.abc import Generator, Sequence from typing_extensions import Final, Literal, Self, TypeAlias from openpyxl.descriptors import Sequence as SequenceDescriptor -from openpyxl.descriptors.base import _FloatSetter +from openpyxl.descriptors.base import _ConvertibleToFloat from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.xml.functions import _Element @@ -85,9 +85,9 @@ class Stop(Serialisable): @property def position(self) -> float: ... @position.setter - def position(self, __value: _FloatSetter) -> None: ... + def position(self, __value: _ConvertibleToFloat) -> None: ... color: Color - def __init__(self, color: Color, position: _FloatSetter) -> None: ... + def __init__(self, color: Color, position: _ConvertibleToFloat) -> None: ... class StopList(SequenceDescriptor): expected_type: type[Stop] @@ -100,32 +100,32 @@ class GradientFill(Fill): @property def degree(self) -> float: ... @degree.setter - def degree(self, __value: _FloatSetter) -> None: ... + def degree(self, __value: _ConvertibleToFloat) -> None: ... @property def left(self) -> float: ... @left.setter - def left(self, __value: _FloatSetter) -> None: ... + def left(self, __value: _ConvertibleToFloat) -> None: ... @property def right(self) -> float: ... @right.setter - def right(self, __value: _FloatSetter) -> None: ... + def right(self, __value: _ConvertibleToFloat) -> None: ... @property def top(self) -> float: ... @top.setter - def top(self, __value: _FloatSetter) -> None: ... + def top(self, __value: _ConvertibleToFloat) -> None: ... @property def bottom(self) -> float: ... @bottom.setter - def bottom(self, __value: _FloatSetter) -> None: ... + def bottom(self, __value: _ConvertibleToFloat) -> None: ... stop: _Sequence[Stop] def __init__( self, type: Literal["linear", "path"] = "linear", - degree: _FloatSetter = 0, - left: _FloatSetter = 0, - right: _FloatSetter = 0, - top: _FloatSetter = 0, - bottom: _FloatSetter = 0, + degree: _ConvertibleToFloat = 0, + left: _ConvertibleToFloat = 0, + right: _ConvertibleToFloat = 0, + top: _ConvertibleToFloat = 0, + bottom: _ConvertibleToFloat = 0, stop: _Sequence[Stop] = (), ) -> None: ... def __iter__(self) -> Generator[tuple[str, str], None, None]: ... diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index 24f8edc71aa0..c3c9309fbe65 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -1,6 +1,6 @@ from typing_extensions import Final, Literal, Self, TypeAlias -from openpyxl.descriptors.base import _BoolSetter, _FloatSetter, _IntegerSetter +from openpyxl.descriptors.base import _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt from openpyxl.descriptors.serialisable import Serialisable from openpyxl.xml.functions import _Element @@ -17,47 +17,47 @@ class Font(Serialisable): @property def charset(self) -> int | None: ... @charset.setter - def charset(self, __value: _IntegerSetter | None) -> None: ... + def charset(self, __value: _ConvertibleToInt | None) -> None: ... @property def family(self) -> float | None: ... @family.setter - def family(self, __value: _FloatSetter | None) -> None: ... + def family(self, __value: _ConvertibleToFloat | None) -> None: ... @property def sz(self) -> float | None: ... @sz.setter - def sz(self, __value: _FloatSetter | None) -> None: ... + def sz(self, __value: _ConvertibleToFloat | None) -> None: ... size = sz @property def b(self) -> bool: ... @b.setter - def b(self, __value: _BoolSetter) -> None: ... + def b(self, __value: _ConvertibleToBool) -> None: ... bold = b @property def i(self) -> bool: ... @i.setter - def i(self, __value: _BoolSetter) -> None: ... + def i(self, __value: _ConvertibleToBool) -> None: ... italic = i @property def strike(self) -> bool | None: ... @strike.setter - def strike(self, __value: _BoolSetter) -> None: ... + def strike(self, __value: _ConvertibleToBool) -> None: ... strikethrough = strike @property def outline(self) -> bool | None: ... @outline.setter - def outline(self, __value: _BoolSetter) -> None: ... + def outline(self, __value: _ConvertibleToBool) -> None: ... @property def shadow(self) -> bool | None: ... @shadow.setter - def shadow(self, __value: _BoolSetter) -> None: ... + def shadow(self, __value: _ConvertibleToBool) -> None: ... @property def condense(self) -> bool | None: ... @condense.setter - def condense(self, __value: _BoolSetter) -> None: ... + def condense(self, __value: _ConvertibleToBool) -> None: ... @property def extend(self) -> bool | None: ... @extend.setter - def extend(self, __value: _BoolSetter) -> None: ... + def extend(self, __value: _ConvertibleToBool) -> None: ... u: _UnderlineType underline = u # noqa: F821 vertAlign: Literal["superscript", "subscript", "baseline", None] @@ -70,25 +70,25 @@ class Font(Serialisable): def __init__( self, name: str | None = None, - sz: _FloatSetter | None = None, - b: _BoolSetter = None, - i: _BoolSetter = None, - charset: _IntegerSetter | None = None, + sz: _ConvertibleToFloat | None = None, + b: _ConvertibleToBool = None, + i: _ConvertibleToBool = None, + charset: _ConvertibleToInt | None = None, u: _UnderlineType = None, - strike: _BoolSetter = None, + strike: _ConvertibleToBool = None, color: Color | None = None, scheme: Literal["major", "minor", None] = None, - family: _FloatSetter | None = None, - size: _FloatSetter | None = None, - bold: _BoolSetter = None, - italic: _BoolSetter = None, - strikethrough: _BoolSetter = None, + family: _ConvertibleToFloat | None = None, + size: _ConvertibleToFloat | None = None, + bold: _ConvertibleToBool = None, + italic: _ConvertibleToBool = None, + strikethrough: _ConvertibleToBool = None, underline: _UnderlineType = None, vertAlign: Literal["superscript", "subscript", "baseline", None] = None, - outline: _BoolSetter = None, - shadow: _BoolSetter = None, - condense: _BoolSetter = None, - extend: _BoolSetter = None, + outline: _ConvertibleToBool = None, + shadow: _ConvertibleToBool = None, + condense: _ConvertibleToBool = None, + extend: _ConvertibleToBool = None, ) -> None: ... @classmethod def from_tree(cls, node: _Element) -> Self: ... diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index f0700ef0c972..04c77795f02c 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -2,7 +2,7 @@ from _typeshed import Unused from collections.abc import Generator from typing_extensions import Literal -from openpyxl.descriptors.base import _BoolSetter, _IntegerSetter +from openpyxl.descriptors.base import _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable @@ -25,11 +25,11 @@ class NamedStyle(Serialisable): # type: ignore[misc] @property def builtinId(self) -> int | None: ... @builtinId.setter - def builtinId(self, __value: _IntegerSetter | None) -> None: ... + def builtinId(self, __value: _ConvertibleToInt | None) -> None: ... @property def hidden(self) -> bool: ... @hidden.setter - def hidden(self, __value: _BoolSetter) -> None: ... + def hidden(self, __value: _ConvertibleToBool) -> None: ... name: str def __init__( self, @@ -40,8 +40,8 @@ class NamedStyle(Serialisable): # type: ignore[misc] alignment: Alignment = ..., number_format: str | None = ..., protection: Protection = ..., - builtinId: _IntegerSetter | None = ..., - hidden: _BoolSetter = ..., + builtinId: _ConvertibleToInt | None = ..., + hidden: _ConvertibleToBool = ..., xfId: Unused = ..., ) -> None: ... def __setattr__(self, attr: str, value) -> None: ... @@ -65,33 +65,33 @@ class _NamedCellStyle(Serialisable): @property def xfId(self) -> int: ... @xfId.setter - def xfId(self, __value: _IntegerSetter) -> None: ... + def xfId(self, __value: _ConvertibleToInt) -> None: ... @property def builtinId(self) -> int | None: ... @builtinId.setter - def builtinId(self, __value: _IntegerSetter | None) -> None: ... + def builtinId(self, __value: _ConvertibleToInt | None) -> None: ... @property def iLevel(self) -> int | None: ... @iLevel.setter - def iLevel(self, __value: _IntegerSetter | None) -> None: ... + def iLevel(self, __value: _ConvertibleToInt | None) -> None: ... @property def hidden(self) -> bool: ... @hidden.setter - def hidden(self, __value: _BoolSetter) -> None: ... + def hidden(self, __value: _ConvertibleToBool) -> None: ... @property def customBuiltin(self) -> bool: ... @customBuiltin.setter - def customBuiltin(self, __value: _BoolSetter) -> None: ... + def customBuiltin(self, __value: _ConvertibleToBool) -> None: ... extLst: ExtensionList | None __elements__: tuple[str, ...] def __init__( self, name: str, - xfId: _IntegerSetter, - builtinId: _IntegerSetter | None = None, - iLevel: _IntegerSetter | None = None, - hidden: _BoolSetter = None, - customBuiltin: _BoolSetter = None, + xfId: _ConvertibleToInt, + builtinId: _ConvertibleToInt | None = None, + iLevel: _ConvertibleToInt | None = None, + hidden: _ConvertibleToBool = None, + customBuiltin: _ConvertibleToBool = None, extLst: Unused = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index 70348bb234c2..de5094aaf0de 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -4,7 +4,7 @@ from typing import overload from typing_extensions import Literal, TypeGuard from openpyxl.descriptors import String -from openpyxl.descriptors.base import _IntegerSetter +from openpyxl.descriptors.base import _ConvertibleToInt from openpyxl.descriptors.sequence import _Sequence from openpyxl.descriptors.serialisable import Serialisable from openpyxl.styles.named_styles import NamedStyle @@ -69,9 +69,9 @@ class NumberFormat(Serialisable): # type: ignore[misc] @property def numFmtId(self) -> int: ... @numFmtId.setter - def numFmtId(self, __value: _IntegerSetter) -> None: ... + def numFmtId(self, __value: _ConvertibleToInt) -> None: ... formatCode: str - def __init__(self, numFmtId: _IntegerSetter, formatCode: str) -> None: ... + def __init__(self, numFmtId: _ConvertibleToInt, formatCode: str) -> None: ... class NumberFormatList(Serialisable): # type: ignore[misc] numFmt: _Sequence[NumberFormat] diff --git a/stubs/openpyxl/openpyxl/styles/protection.pyi b/stubs/openpyxl/openpyxl/styles/protection.pyi index 7136917044c1..d97c74e1f644 100644 --- a/stubs/openpyxl/openpyxl/styles/protection.pyi +++ b/stubs/openpyxl/openpyxl/styles/protection.pyi @@ -1,4 +1,4 @@ -from openpyxl.descriptors.base import _BoolSetter +from openpyxl.descriptors.base import _ConvertibleToBool from openpyxl.descriptors.serialisable import Serialisable class Protection(Serialisable): @@ -6,9 +6,9 @@ class Protection(Serialisable): @property def locked(self) -> bool: ... @locked.setter - def locked(self, __value: _BoolSetter) -> None: ... + def locked(self, __value: _ConvertibleToBool) -> None: ... @property def hidden(self) -> bool: ... @hidden.setter - def hidden(self, __value: _BoolSetter) -> None: ... - def __init__(self, locked: _BoolSetter = True, hidden: _BoolSetter = False) -> None: ... + def hidden(self, __value: _ConvertibleToBool) -> None: ... + def __init__(self, locked: _ConvertibleToBool = True, hidden: _ConvertibleToBool = False) -> None: ... From bc66516ddc1ff8e58c933b63424df6f63daf20ec Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 10 May 2023 11:32:45 -0400 Subject: [PATCH 21/51] Type MetaSerialisable dunders --- stubs/openpyxl/openpyxl/cell/text.pyi | 7 ++- stubs/openpyxl/openpyxl/chart/_3d.pyi | 5 +- stubs/openpyxl/openpyxl/chart/_chart.pyi | 3 +- stubs/openpyxl/openpyxl/chart/area_chart.pyi | 7 ++- stubs/openpyxl/openpyxl/chart/axis.pyi | 17 +++--- stubs/openpyxl/openpyxl/chart/bar_chart.pyi | 7 ++- .../openpyxl/openpyxl/chart/bubble_chart.pyi | 3 +- stubs/openpyxl/openpyxl/chart/chartspace.pyi | 8 +-- stubs/openpyxl/openpyxl/chart/data_source.pyi | 16 +++--- stubs/openpyxl/openpyxl/chart/error_bar.pyi | 3 +- stubs/openpyxl/openpyxl/chart/label.pyi | 7 ++- stubs/openpyxl/openpyxl/chart/layout.pyi | 5 +- stubs/openpyxl/openpyxl/chart/legend.pyi | 5 +- stubs/openpyxl/openpyxl/chart/line_chart.pyi | 7 ++- stubs/openpyxl/openpyxl/chart/marker.pyi | 5 +- stubs/openpyxl/openpyxl/chart/picture.pyi | 3 +- stubs/openpyxl/openpyxl/chart/pie_chart.pyi | 13 +++-- stubs/openpyxl/openpyxl/chart/pivot.pyi | 5 +- stubs/openpyxl/openpyxl/chart/plotarea.pyi | 5 +- .../openpyxl/chart/print_settings.pyi | 4 +- stubs/openpyxl/openpyxl/chart/radar_chart.pyi | 3 +- .../openpyxl/openpyxl/chart/scatter_chart.pyi | 3 +- stubs/openpyxl/openpyxl/chart/series.pyi | 5 +- stubs/openpyxl/openpyxl/chart/shapes.pyi | 3 +- stubs/openpyxl/openpyxl/chart/stock_chart.pyi | 3 +- .../openpyxl/openpyxl/chart/surface_chart.pyi | 11 ++-- stubs/openpyxl/openpyxl/chart/text.pyi | 5 +- stubs/openpyxl/openpyxl/chart/title.pyi | 3 +- stubs/openpyxl/openpyxl/chart/trendline.pyi | 5 +- stubs/openpyxl/openpyxl/chart/updown_bars.pyi | 3 +- .../openpyxl/chartsheet/chartsheet.pyi | 5 +- stubs/openpyxl/openpyxl/chartsheet/custom.pyi | 6 +- .../openpyxl/chartsheet/properties.pyi | 4 +- .../openpyxl/chartsheet/protection.pyi | 3 +- .../openpyxl/openpyxl/chartsheet/publish.pyi | 4 +- stubs/openpyxl/openpyxl/chartsheet/views.pyi | 5 +- .../openpyxl/comments/comment_sheet.pyi | 10 ++-- .../openpyxl/descriptors/serialisable.pyi | 10 ++-- stubs/openpyxl/openpyxl/drawing/colors.pyi | 8 +-- stubs/openpyxl/openpyxl/drawing/connector.pyi | 5 +- stubs/openpyxl/openpyxl/drawing/effect.pyi | 12 ++-- stubs/openpyxl/openpyxl/drawing/fill.pyi | 13 +++-- stubs/openpyxl/openpyxl/drawing/geometry.pyi | 6 +- stubs/openpyxl/openpyxl/drawing/graphic.pyi | 8 ++- stubs/openpyxl/openpyxl/drawing/line.pyi | 3 +- stubs/openpyxl/openpyxl/drawing/picture.pyi | 9 +-- .../openpyxl/openpyxl/drawing/properties.pyi | 13 +++-- .../openpyxl/drawing/spreadsheet_drawing.pyi | 11 ++-- stubs/openpyxl/openpyxl/drawing/text.pyi | 21 +++---- stubs/openpyxl/openpyxl/formatting/rule.pyi | 13 +++-- stubs/openpyxl/openpyxl/packaging/core.pyi | 3 +- .../openpyxl/openpyxl/packaging/extended.pyi | 15 ++--- .../openpyxl/openpyxl/packaging/manifest.pyi | 3 +- .../openpyxl/openpyxl/packaging/workbook.pyi | 3 +- stubs/openpyxl/openpyxl/pivot/cache.pyi | 56 +++++++++---------- stubs/openpyxl/openpyxl/pivot/fields.pyi | 16 +++--- stubs/openpyxl/openpyxl/pivot/record.pyi | 5 +- stubs/openpyxl/openpyxl/pivot/table.pyi | 42 +++++++------- stubs/openpyxl/openpyxl/styles/borders.pyi | 3 +- stubs/openpyxl/openpyxl/styles/cell_style.pyi | 9 +-- stubs/openpyxl/openpyxl/styles/colors.pyi | 3 +- .../openpyxl/openpyxl/styles/differential.pyi | 5 +- stubs/openpyxl/openpyxl/styles/fills.pyi | 3 +- stubs/openpyxl/openpyxl/styles/fonts.pyi | 3 +- .../openpyxl/openpyxl/styles/named_styles.pyi | 5 +- stubs/openpyxl/openpyxl/styles/numbers.pyi | 5 +- stubs/openpyxl/openpyxl/styles/stylesheet.pyi | 3 +- stubs/openpyxl/openpyxl/styles/table.pyi | 7 ++- .../workbook/external_link/external.pyi | 13 +++-- .../openpyxl/workbook/function_group.pyi | 3 +- .../openpyxl/openpyxl/workbook/protection.pyi | 3 +- .../openpyxl/openpyxl/workbook/smart_tags.pyi | 3 +- stubs/openpyxl/openpyxl/workbook/views.pyi | 6 +- stubs/openpyxl/openpyxl/workbook/web.pyi | 4 +- .../openpyxl/worksheet/cell_watch.pyi | 3 +- .../openpyxl/openpyxl/worksheet/controls.pyi | 8 +-- stubs/openpyxl/openpyxl/worksheet/custom.pyi | 3 +- .../openpyxl/worksheet/datavalidation.pyi | 5 +- stubs/openpyxl/openpyxl/worksheet/errors.pyi | 5 +- stubs/openpyxl/openpyxl/worksheet/filters.pyi | 12 ++-- .../openpyxl/worksheet/header_footer.pyi | 3 +- .../openpyxl/openpyxl/worksheet/hyperlink.pyi | 3 +- stubs/openpyxl/openpyxl/worksheet/merge.pyi | 7 ++- stubs/openpyxl/openpyxl/worksheet/ole.pyi | 8 +-- .../openpyxl/openpyxl/worksheet/pagebreak.pyi | 7 ++- .../openpyxl/worksheet/properties.pyi | 3 +- .../openpyxl/worksheet/protection.pyi | 3 +- .../openpyxl/openpyxl/worksheet/scenario.pyi | 8 +-- .../openpyxl/openpyxl/worksheet/smart_tag.pyi | 8 +-- stubs/openpyxl/openpyxl/worksheet/table.pyi | 12 ++-- stubs/openpyxl/openpyxl/worksheet/views.pyi | 3 +- 91 files changed, 370 insertions(+), 300 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index 0caf5992de76..909358848ef7 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Alias, Integer, NoneSet, Typed, _ConvertibleToInt @@ -47,7 +48,7 @@ class InlineFont(Font): u: Incomplete vertAlign: Incomplete scheme: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, rFont: Incomplete | None = None, @@ -73,7 +74,7 @@ class RichText(Serialisable): font: Alias t: Incomplete text: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, rPr: InlineFont | None = None, t: Incomplete | None = None) -> None: ... class Text(Serialisable): @@ -86,7 +87,7 @@ class Text(Serialisable): phonetic: Alias phoneticPr: Typed[_PhoneticProperties, Literal[True]] PhoneticProperties: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, t: Incomplete | None = None, r=(), rPh=(), phoneticPr: _PhoneticProperties | None = None) -> None: ... @property def content(self): ... diff --git a/stubs/openpyxl/openpyxl/chart/_3d.pyi b/stubs/openpyxl/openpyxl/chart/_3d.pyi index 7bdaa9de549c..d11b2af0a3fc 100644 --- a/stubs/openpyxl/openpyxl/chart/_3d.pyi +++ b/stubs/openpyxl/openpyxl/chart/_3d.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.picture import PictureOptions @@ -20,7 +21,7 @@ class View3D(Serialisable): right_angle_axes: Alias perspective: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, rotX: int = 15, @@ -39,7 +40,7 @@ class Surface(Serialisable): graphicalProperties: Alias pictureOptions: Typed[PictureOptions, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, thickness: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/_chart.pyi b/stubs/openpyxl/openpyxl/chart/_chart.pyi index 7370afbf36ac..405748b58e9d 100644 --- a/stubs/openpyxl/openpyxl/chart/_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/_chart.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.chart.layout import Layout @@ -32,7 +33,7 @@ class ChartBase(Serialisable): style: MinMax[float, Literal[True]] mime_type: str graphical_properties: Typed[GraphicalProperties, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] plot_area: Incomplete pivotSource: Incomplete pivotFormats: Incomplete diff --git a/stubs/openpyxl/openpyxl/chart/area_chart.pyi b/stubs/openpyxl/openpyxl/chart/area_chart.pyi index 85bfb5ae174c..c9b82946d7d1 100644 --- a/stubs/openpyxl/openpyxl/chart/area_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/area_chart.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import ChartLines, NumericAxis, SeriesAxis, TextAxis @@ -16,7 +17,7 @@ class _AreaChartBase(ChartBase): dLbls: Typed[DataLabelList, Literal[True]] dataLabels: Alias dropLines: Typed[ChartLines, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, grouping: str = "standard", @@ -39,7 +40,7 @@ class AreaChart(_AreaChartBase): x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, axId: Unused = None, extLst: Unused = None, **kw) -> None: ... class AreaChart3D(AreaChart): @@ -53,5 +54,5 @@ class AreaChart3D(AreaChart): x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] z_axis: Typed[SeriesAxis, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, gapDepth: Incomplete | None = None, **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index e5170a9776e9..258437879f95 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.layout import Layout @@ -22,7 +23,7 @@ class Scaling(Serialisable): max: Incomplete min: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, logBase: Incomplete | None = None, @@ -52,7 +53,7 @@ class _BaseAxis(Serialisable): crossAx: Incomplete crosses: Incomplete crossesAt: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, axId: Incomplete | None = None, @@ -85,7 +86,7 @@ class DisplayUnitsLabel(Serialisable): graphicalProperties: Alias txPr: Typed[RichText, Literal[True]] textPropertes: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, layout: Layout | None = None, @@ -100,7 +101,7 @@ class DisplayUnitsLabelList(Serialisable): builtInUnit: Incomplete dispUnitsLbl: Typed[DisplayUnitsLabel, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, custUnit: Incomplete | None = None, @@ -132,7 +133,7 @@ class NumericAxis(_BaseAxis): minorUnit: Incomplete dispUnits: Typed[DisplayUnitsLabelList, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, crossBetween: Incomplete | None = None, @@ -170,7 +171,7 @@ class TextAxis(_BaseAxis): tickMarkSkip: Incomplete noMultiLvlLbl: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, auto: Incomplete | None = None, @@ -209,7 +210,7 @@ class DateAxis(TextAxis): minorUnit: Incomplete minorTimeUnit: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, auto: Incomplete | None = None, @@ -244,7 +245,7 @@ class SeriesAxis(_BaseAxis): tickLblSkip: Incomplete tickMarkSkip: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, tickLblSkip: Incomplete | None = None, tickMarkSkip: Incomplete | None = None, extLst: Unused = None, **kw ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/bar_chart.pyi b/stubs/openpyxl/openpyxl/chart/bar_chart.pyi index 15a9be73782e..f06b54c64679 100644 --- a/stubs/openpyxl/openpyxl/chart/bar_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/bar_chart.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import ChartLines, NumericAxis, SeriesAxis, TextAxis @@ -18,7 +19,7 @@ class _BarChartBase(ChartBase): ser: Incomplete dLbls: Typed[DataLabelList, Literal[True]] dataLabels: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, barDir: str = "col", @@ -45,7 +46,7 @@ class BarChart(_BarChartBase): extLst: Typed[ExtensionList, Literal[True]] x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] legend: Incomplete def __init__( self, @@ -75,7 +76,7 @@ class BarChart3D(_BarChartBase, _3DBase): x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] z_axis: Typed[SeriesAxis, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, gapWidth: int = 150, diff --git a/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi b/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi index fd47bafab88f..a1ba6637d512 100644 --- a/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/bubble_chart.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import NumericAxis @@ -21,7 +22,7 @@ class BubbleChart(ChartBase): extLst: Typed[ExtensionList, Literal[True]] x_axis: Typed[NumericAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, varyColors: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/chartspace.pyi b/stubs/openpyxl/openpyxl/chart/chartspace.pyi index 1568c0b2e36a..ad1da05ff6fe 100644 --- a/stubs/openpyxl/openpyxl/chart/chartspace.pyi +++ b/stubs/openpyxl/openpyxl/chart/chartspace.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal from openpyxl.chart.legend import Legend @@ -29,7 +29,7 @@ class ChartContainer(Serialisable): dispBlanksAs: Incomplete showDLblsOverMax: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, title: Title | None = None, @@ -54,7 +54,7 @@ class Protection(Serialisable): formatting: Incomplete selection: Incomplete userInterface: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, chartObject: Incomplete | None = None, @@ -91,7 +91,7 @@ class ChartSpace(Serialisable): printSettings: Typed[PrintSettings, Literal[True]] userShapes: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, diff --git a/stubs/openpyxl/openpyxl/chart/data_source.pyi b/stubs/openpyxl/openpyxl/chart/data_source.pyi index 8794ee3e141b..613f97de0f97 100644 --- a/stubs/openpyxl/openpyxl/chart/data_source.pyi +++ b/stubs/openpyxl/openpyxl/chart/data_source.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import NoReturn, overload +from typing import ClassVar, NoReturn, overload from typing_extensions import Literal from openpyxl.descriptors import Strict @@ -29,7 +29,7 @@ class NumData(Serialisable): ptCount: Incomplete pt: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, formatCode: Incomplete | None = None, ptCount: Incomplete | None = None, pt=(), extLst: Unused = None ) -> None: ... @@ -39,7 +39,7 @@ class NumRef(Serialisable): ref: Alias numCache: Typed[NumData, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, f: Incomplete | None = None, numCache: NumData | None = None, extLst: Unused = None) -> None: ... class StrVal(Serialisable): @@ -53,7 +53,7 @@ class StrData(Serialisable): ptCount: Incomplete pt: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, ptCount: Incomplete | None = None, pt=(), extLst: Unused = None) -> None: ... class StrRef(Serialisable): @@ -61,7 +61,7 @@ class StrRef(Serialisable): f: Incomplete strCache: Typed[StrData, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, f: Incomplete | None = None, strCache: StrData | None = None, extLst: Unused = None) -> None: ... class NumDataSource(Serialisable): @@ -72,7 +72,7 @@ class NumDataSource(Serialisable): class Level(Serialisable): tagname: str pt: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, pt=()) -> None: ... class MultiLevelStrData(Serialisable): @@ -80,7 +80,7 @@ class MultiLevelStrData(Serialisable): ptCount: Integer[Literal[True]] lvl: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, ptCount: _ConvertibleToInt | None = None, lvl=(), extLst: Unused = None) -> None: ... class MultiLevelStrRef(Serialisable): @@ -88,7 +88,7 @@ class MultiLevelStrRef(Serialisable): f: Incomplete multiLvlStrCache: Typed[MultiLevelStrData, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, f: Incomplete | None = None, multiLvlStrCache: MultiLevelStrData | None = None, extLst: Unused = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/error_bar.pyi b/stubs/openpyxl/openpyxl/chart/error_bar.pyi index df363952c83e..922c7ce25f97 100644 --- a/stubs/openpyxl/openpyxl/chart/error_bar.pyi +++ b/stubs/openpyxl/openpyxl/chart/error_bar.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.data_source import NumDataSource @@ -22,7 +23,7 @@ class ErrorBars(Serialisable): spPr: Typed[GraphicalProperties, Literal[True]] graphicalProperties: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, errDir: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/label.pyi b/stubs/openpyxl/openpyxl/chart/label.pyi index 3f109cd75d7e..0473048ad3a6 100644 --- a/stubs/openpyxl/openpyxl/chart/label.pyi +++ b/stubs/openpyxl/openpyxl/chart/label.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.shapes import GraphicalProperties @@ -25,7 +26,7 @@ class _DataLabelBase(Serialisable): showLeaderLines: Incomplete separator: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, numFmt: Incomplete | None = None, @@ -62,7 +63,7 @@ class DataLabel(_DataLabelBase): showLeaderLines: Incomplete separator: Incomplete extLst: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, idx: int = 0, **kw) -> None: ... class DataLabelList(_DataLabelBase): @@ -82,5 +83,5 @@ class DataLabelList(_DataLabelBase): showLeaderLines: Incomplete separator: Incomplete extLst: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, dLbl=(), delete: Incomplete | None = None, **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/layout.pyi b/stubs/openpyxl/openpyxl/chart/layout.pyi index 175ae16d55fc..0d9b6a9cc939 100644 --- a/stubs/openpyxl/openpyxl/chart/layout.pyi +++ b/stubs/openpyxl/openpyxl/chart/layout.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Typed @@ -19,7 +20,7 @@ class ManualLayout(Serialisable): h: Incomplete height: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, layoutTarget: Incomplete | None = None, @@ -38,5 +39,5 @@ class Layout(Serialisable): tagname: str manualLayout: Typed[ManualLayout, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, manualLayout: ManualLayout | None = None, extLst: Unused = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/legend.pyi b/stubs/openpyxl/openpyxl/chart/legend.pyi index 490fdf66c7b6..e7dfc21cfbe4 100644 --- a/stubs/openpyxl/openpyxl/chart/legend.pyi +++ b/stubs/openpyxl/openpyxl/chart/legend.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.layout import Layout @@ -14,7 +15,7 @@ class LegendEntry(Serialisable): delete: Incomplete txPr: Typed[RichText, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, idx: int = 0, delete: bool = False, txPr: RichText | None = None, extLst: Unused = None) -> None: ... class Legend(Serialisable): @@ -29,7 +30,7 @@ class Legend(Serialisable): txPr: Typed[RichText, Literal[True]] textProperties: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, legendPos: str = "r", diff --git a/stubs/openpyxl/openpyxl/chart/line_chart.pyi b/stubs/openpyxl/openpyxl/chart/line_chart.pyi index 853083f648f5..122b13fd7b10 100644 --- a/stubs/openpyxl/openpyxl/chart/line_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/line_chart.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import ChartLines, NumericAxis, _BaseAxis @@ -17,7 +18,7 @@ class _LineChartBase(ChartBase): dLbls: Typed[DataLabelList, Literal[True]] dataLabels: Alias dropLines: Typed[ChartLines, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, grouping: str = "standard", @@ -45,7 +46,7 @@ class LineChart(_LineChartBase): extLst: Typed[ExtensionList, Literal[True]] x_axis: Typed[_BaseAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, hiLowLines: ChartLines | None = None, @@ -72,7 +73,7 @@ class LineChart3D(_LineChartBase): x_axis: Typed[ExtensionList, Literal[False]] y_axis: Typed[ExtensionList, Literal[False]] z_axis: Typed[ExtensionList, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, gapDepth: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/marker.pyi b/stubs/openpyxl/openpyxl/chart/marker.pyi index fd8406cedeb8..1a19cf824b5f 100644 --- a/stubs/openpyxl/openpyxl/chart/marker.pyi +++ b/stubs/openpyxl/openpyxl/chart/marker.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.picture import PictureOptions @@ -14,7 +15,7 @@ class Marker(Serialisable): spPr: Typed[GraphicalProperties, Literal[True]] graphicalProperties: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, symbol: Incomplete | None = None, @@ -34,7 +35,7 @@ class DataPoint(Serialisable): graphicalProperties: Alias pictureOptions: Typed[PictureOptions, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, idx: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/picture.pyi b/stubs/openpyxl/openpyxl/chart/picture.pyi index b5638bc00e0e..ac155086d62c 100644 --- a/stubs/openpyxl/openpyxl/chart/picture.pyi +++ b/stubs/openpyxl/openpyxl/chart/picture.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from openpyxl.descriptors.serialisable import Serialisable @@ -9,7 +10,7 @@ class PictureOptions(Serialisable): applyToEnd: Incomplete pictureFormat: Incomplete pictureStackUnit: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, applyToFront: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/pie_chart.pyi b/stubs/openpyxl/openpyxl/chart/pie_chart.pyi index a5ba7cb1f9e1..ca67746110d7 100644 --- a/stubs/openpyxl/openpyxl/chart/pie_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/pie_chart.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import ChartLines @@ -15,7 +16,7 @@ class _PieChartBase(ChartBase): ser: Incomplete dLbls: Typed[DataLabelList, Literal[True]] dataLabels: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, varyColors: bool = True, ser=(), dLbls: DataLabelList | None = None) -> None: ... @property @abstractmethod @@ -28,7 +29,7 @@ class PieChart(_PieChartBase): dLbls: Incomplete firstSliceAng: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, firstSliceAng: int = 0, extLst: Unused = None, **kw) -> None: ... class PieChart3D(_PieChartBase): @@ -37,7 +38,7 @@ class PieChart3D(_PieChartBase): ser: Incomplete dLbls: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] class DoughnutChart(_PieChartBase): tagname: str @@ -47,13 +48,13 @@ class DoughnutChart(_PieChartBase): firstSliceAng: Incomplete holeSize: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, firstSliceAng: int = 0, holeSize: int = 10, extLst: Unused = None, **kw) -> None: ... class CustomSplit(Serialisable): tagname: str secondPiePt: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, secondPiePt=()) -> None: ... class ProjectedPieChart(_PieChartBase): @@ -71,7 +72,7 @@ class ProjectedPieChart(_PieChartBase): serLines: Typed[ChartLines, Literal[True]] join_lines: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, ofPieType: str = "pie", diff --git a/stubs/openpyxl/openpyxl/chart/pivot.pyi b/stubs/openpyxl/openpyxl/chart/pivot.pyi index 76dbc947b9a2..2d9ae811141e 100644 --- a/stubs/openpyxl/openpyxl/chart/pivot.pyi +++ b/stubs/openpyxl/openpyxl/chart/pivot.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.label import DataLabel as _DataLabel @@ -14,7 +15,7 @@ class PivotSource(Serialisable): name: Incomplete fmtId: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, name: str | None = None, fmtId: Incomplete | None = None, extLst: Unused = None) -> None: ... class PivotFormat(Serialisable): @@ -28,7 +29,7 @@ class PivotFormat(Serialisable): dLbl: Typed[_DataLabel, Literal[True]] DataLabel: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, idx: int = 0, diff --git a/stubs/openpyxl/openpyxl/chart/plotarea.pyi b/stubs/openpyxl/openpyxl/chart/plotarea.pyi index 13400b899629..ef67d2b57d69 100644 --- a/stubs/openpyxl/openpyxl/chart/plotarea.pyi +++ b/stubs/openpyxl/openpyxl/chart/plotarea.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.layout import Layout @@ -18,7 +19,7 @@ class DataTable(Serialisable): graphicalProperties: Alias txPr: Typed[RichText, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, showHorzBorder: Incomplete | None = None, @@ -57,7 +58,7 @@ class PlotArea(Serialisable): catAx: Incomplete dateAx: Incomplete serAx: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, layout: Layout | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/print_settings.pyi b/stubs/openpyxl/openpyxl/chart/print_settings.pyi index 2645dc438c44..c7f5ba8811fe 100644 --- a/stubs/openpyxl/openpyxl/chart/print_settings.pyi +++ b/stubs/openpyxl/openpyxl/chart/print_settings.pyi @@ -1,4 +1,4 @@ -from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Float, Typed, _ConvertibleToFloat @@ -33,7 +33,7 @@ class PrintSettings(Serialisable): headerFooter: Typed[HeaderFooter, Literal[True]] pageMargins: Typed[PageMargins, Literal[True]] pageSetup: Typed[PrintPageSetup, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, headerFooter: HeaderFooter | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/radar_chart.pyi b/stubs/openpyxl/openpyxl/chart/radar_chart.pyi index f7d835330278..93cda00014ca 100644 --- a/stubs/openpyxl/openpyxl/chart/radar_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/radar_chart.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import NumericAxis, TextAxis @@ -19,7 +20,7 @@ class RadarChart(ChartBase): extLst: Typed[ExtensionList, Literal[True]] x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, radarStyle: str = "standard", diff --git a/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi b/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi index 33125f721208..2aebe5b13b7a 100644 --- a/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/scatter_chart.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import NumericAxis, TextAxis @@ -18,7 +19,7 @@ class ScatterChart(ChartBase): extLst: Typed[ExtensionList, Literal[True]] x_axis: Typed[NumericAxis | TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, scatterStyle: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/series.pyi b/stubs/openpyxl/openpyxl/chart/series.pyi index a77006af5e52..7dcb7b7713c7 100644 --- a/stubs/openpyxl/openpyxl/chart/series.pyi +++ b/stubs/openpyxl/openpyxl/chart/series.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.data_source import AxDataSource, NumDataSource, StrRef @@ -19,7 +20,7 @@ class SeriesLabel(Serialisable): strRef: Typed[StrRef, Literal[True]] v: Incomplete value: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, strRef: StrRef | None = None, v: Incomplete | None = None) -> None: ... class Series(Serialisable): @@ -51,7 +52,7 @@ class Series(Serialisable): marker: Typed[Marker, Literal[True]] smooth: Incomplete explosion: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, idx: int = 0, diff --git a/stubs/openpyxl/openpyxl/chart/shapes.pyi b/stubs/openpyxl/openpyxl/chart/shapes.pyi index e774b93fba6f..11f1cb588689 100644 --- a/stubs/openpyxl/openpyxl/chart/shapes.pyi +++ b/stubs/openpyxl/openpyxl/chart/shapes.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Alias, NoneSet, Typed @@ -28,7 +29,7 @@ class GraphicalProperties(Serialisable): sp3d: Typed[Shape3D, Literal[True]] shape3D: Alias extLst: Typed[Incomplete, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, bwMode: _GraphicalPropertiesBwMode | Literal["none"] | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/stock_chart.pyi b/stubs/openpyxl/openpyxl/chart/stock_chart.pyi index 8b248caee578..f97cc12498cf 100644 --- a/stubs/openpyxl/openpyxl/chart/stock_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/stock_chart.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import ChartLines, NumericAxis, TextAxis @@ -20,7 +21,7 @@ class StockChart(ChartBase): extLst: Typed[ExtensionList, Literal[True]] x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, ser=(), diff --git a/stubs/openpyxl/openpyxl/chart/surface_chart.pyi b/stubs/openpyxl/openpyxl/chart/surface_chart.pyi index b5efd5951fb1..ea9d2a3bb7a3 100644 --- a/stubs/openpyxl/openpyxl/chart/surface_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/surface_chart.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete from abc import abstractmethod +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import NumericAxis, SeriesAxis, TextAxis @@ -16,20 +17,20 @@ class BandFormat(Serialisable): idx: Incomplete spPr: Typed[GraphicalProperties, Literal[True]] graphicalProperties: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, idx: int = 0, spPr: GraphicalProperties | None = None) -> None: ... class BandFormatList(Serialisable): tagname: str bandFmt: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, bandFmt=()) -> None: ... class _SurfaceChartBase(ChartBase): wireframe: Incomplete ser: Incomplete bandFmts: Typed[BandFormatList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, wireframe: Incomplete | None = None, ser=(), bandFmts: BandFormatList | None = None, **kw) -> None: ... @property @abstractmethod @@ -44,7 +45,7 @@ class SurfaceChart3D(_SurfaceChartBase, _3DBase): x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] z_axis: Typed[SeriesAxis, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, **kw) -> None: ... class SurfaceChart(SurfaceChart3D): @@ -53,5 +54,5 @@ class SurfaceChart(SurfaceChart3D): ser: Incomplete bandFmts: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chart/text.pyi b/stubs/openpyxl/openpyxl/chart/text.pyi index f371577c92a7..72edd6947b2f 100644 --- a/stubs/openpyxl/openpyxl/chart/text.pyi +++ b/stubs/openpyxl/openpyxl/chart/text.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.data_source import StrRef @@ -13,7 +14,7 @@ class RichText(Serialisable): lstStyle: Typed[ListStyle, Literal[True]] p: Incomplete paragraphs: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, bodyPr: RichTextProperties | None = None, lstStyle: ListStyle | None = None, p: Incomplete | None = None ) -> None: ... @@ -22,6 +23,6 @@ class Text(Serialisable): tagname: str strRef: Typed[StrRef, Literal[True]] rich: Typed[RichText, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, strRef: StrRef | None = None, rich: RichText | None = None) -> None: ... def to_tree(self, tagname: Incomplete | None = None, idx: Incomplete | None = None, namespace: Incomplete | None = None): ... diff --git a/stubs/openpyxl/openpyxl/chart/title.pyi b/stubs/openpyxl/openpyxl/chart/title.pyi index 9ef276e2358d..49c4f8efdac3 100644 --- a/stubs/openpyxl/openpyxl/chart/title.pyi +++ b/stubs/openpyxl/openpyxl/chart/title.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.layout import Layout @@ -20,7 +21,7 @@ class Title(Serialisable): txPr: Typed[RichText, Literal[True]] body: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, tx: Text | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/trendline.pyi b/stubs/openpyxl/openpyxl/chart/trendline.pyi index 67c0632c9d69..aff6c94730f7 100644 --- a/stubs/openpyxl/openpyxl/chart/trendline.pyi +++ b/stubs/openpyxl/openpyxl/chart/trendline.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.data_source import NumFmt @@ -19,7 +20,7 @@ class TrendlineLabel(Serialisable): txPr: Typed[RichText, Literal[True]] textProperties: Alias extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, layout: Layout | None = None, @@ -45,7 +46,7 @@ class Trendline(Serialisable): dispEq: Incomplete trendlineLbl: Typed[ExtensionList, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, name: str | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/updown_bars.pyi b/stubs/openpyxl/openpyxl/chart/updown_bars.pyi index 67f1ce5d124e..5e789b700f84 100644 --- a/stubs/openpyxl/openpyxl/chart/updown_bars.pyi +++ b/stubs/openpyxl/openpyxl/chart/updown_bars.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.axis import ChartLines @@ -12,7 +13,7 @@ class UpDownBars(Serialisable): upBars: Typed[ChartLines, Literal[True]] downBars: Typed[ChartLines, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, gapWidth: int = 150, upBars: ChartLines | None = None, downBars: ChartLines | None = None, extLst: Unused = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index 21ec433037ed..8df0c1eaaed8 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.chartsheet.custom import CustomChartsheetViews @@ -34,8 +35,8 @@ class Chartsheet(_WorkbookChild, Serialisable): sheet_state: Set[_ChartsheetSheetState] headerFooter: Typed[_HeaderFooter, Literal[False]] HeaderFooter: Alias - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, sheetPr: ChartsheetProperties | None = None, diff --git a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi index 3c3856ac72ca..657bf69b6738 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/custom.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/custom.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, Set, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -18,7 +18,7 @@ class CustomChartsheetView(Serialisable): pageMargins: Typed[PageMargins, Literal[True]] pageSetup: Typed[PrintPageSetup, Literal[True]] headerFooter: Typed[HeaderFooter, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -46,5 +46,5 @@ class CustomChartsheetView(Serialisable): class CustomChartsheetViews(Serialisable): tagname: str customSheetView: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, customSheetView: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/properties.pyi b/stubs/openpyxl/openpyxl/chartsheet/properties.pyi index 157ef88402dd..aa960694f8df 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/properties.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/properties.pyi @@ -1,4 +1,4 @@ -from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, String, Typed, _ConvertibleToBool @@ -10,7 +10,7 @@ class ChartsheetProperties(Serialisable): published: Bool[Literal[True]] codeName: String[Literal[True]] tabColor: Typed[Color, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, published: _ConvertibleToBool | None = None, codeName: str | None = None, tabColor: Color | None = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/protection.pyi b/stubs/openpyxl/openpyxl/chartsheet/protection.pyi index 0680950dd4ed..629fa3abc383 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/protection.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/protection.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, String, _ConvertibleToBool, _ConvertibleToInt @@ -13,7 +14,7 @@ class ChartsheetProtection(Serialisable, _Protected): spinCount: Integer[Literal[True]] content: Bool[Literal[True]] objects: Bool[Literal[True]] - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] password: Incomplete def __init__( self, diff --git a/stubs/openpyxl/openpyxl/chartsheet/publish.pyi b/stubs/openpyxl/openpyxl/chartsheet/publish.pyi index 7affcb79be47..667706d14a46 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/publish.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/publish.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, Set, String, _ConvertibleToBool, _ConvertibleToInt @@ -49,5 +49,5 @@ class WebPublishItems(Serialisable): tagname: str count: Integer[Literal[True]] webPublishItem: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt | None = None, webPublishItem: Incomplete | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/views.pyi b/stubs/openpyxl/openpyxl/chartsheet/views.pyi index 25d96bd643eb..5f20f7c956cb 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/views.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/views.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -12,7 +13,7 @@ class ChartsheetView(Serialisable): workbookViewId: Integer[Literal[False]] zoomToFit: Bool[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, tabSelected: _ConvertibleToBool | None = None, @@ -26,5 +27,5 @@ class ChartsheetViewList(Serialisable): tagname: str sheetView: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, sheetView: Incomplete | None = None, extLst: Unused = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi b/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi index aa84ae96de27..2fb64a3b8f33 100644 --- a/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi +++ b/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.cell.text import Text @@ -29,7 +29,7 @@ class Properties(Serialisable): autoScale: Bool[Literal[True]] rowHidden: Bool[Literal[True]] colHidden: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] anchor: ObjectAnchor | None @overload def __init__( @@ -82,8 +82,8 @@ class CommentRecord(Serialisable): text: Typed[Text, Literal[False]] commentPr: Typed[Properties, Literal[True]] author: String[Literal[True]] - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] height: Incomplete width: Incomplete def __init__( @@ -109,7 +109,7 @@ class CommentSheet(Serialisable): commentList: Incomplete extLst: Typed[ExtensionList, Literal[True]] mime_type: str - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, authors: AuthorList, commentList: Incomplete | None = None, extLst: Unused = None) -> None: ... def to_tree(self): ... @property diff --git a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi index fb0eadff2883..671ed3a82193 100644 --- a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from openpyxl.descriptors import MetaSerialisable @@ -6,10 +7,11 @@ KEYWORDS: Incomplete seq_types: Incomplete class Serialisable(metaclass=MetaSerialisable): - __attrs__: Incomplete - __nested__: Incomplete - __elements__: Incomplete - __namespaced__: Incomplete + # These dunders are always set at runtime by MetaSerialisable so they can't be None + __attrs__: ClassVar[tuple[str, ...]] + __nested__: ClassVar[tuple[str, ...]] + __elements__: ClassVar[tuple[str, ...]] + __namespaced__: ClassVar[tuple[tuple[str, str], ...]] idx_base: int @property # TODO: needs overrides in many sub-classes diff --git a/stubs/openpyxl/openpyxl/drawing/colors.pyi b/stubs/openpyxl/openpyxl/drawing/colors.pyi index 3ab0907686b0..29bba5a9052d 100644 --- a/stubs/openpyxl/openpyxl/drawing/colors.pyi +++ b/stubs/openpyxl/openpyxl/drawing/colors.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors import Strict, Typed @@ -100,7 +100,7 @@ class SystemColor(Serialisable): invGamma: Typed[Transform, Literal[True]] val: Set[_SystemColorVal] lastClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, val: _SystemColorVal = "windowText", @@ -183,7 +183,7 @@ class SchemeColor(Serialisable): gamma: Incomplete invGamma: Incomplete val: Set[_SchemeColorVal] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -263,7 +263,7 @@ class ColorChoice(Serialisable): sysClr: Typed[SystemColor, Literal[True]] schemeClr: Typed[SystemColor, Literal[True]] prstClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, scrgbClr: _RGBPercent | None = None, diff --git a/stubs/openpyxl/openpyxl/drawing/connector.pyi b/stubs/openpyxl/openpyxl/drawing/connector.pyi index 5481b58635a3..565b1b08ee52 100644 --- a/stubs/openpyxl/openpyxl/drawing/connector.pyi +++ b/stubs/openpyxl/openpyxl/drawing/connector.pyi @@ -1,5 +1,4 @@ -from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal from openpyxl.chart.shapes import GraphicalProperties @@ -36,7 +35,7 @@ class NonVisualConnectorProperties(Serialisable): class ConnectorNonVisual(Serialisable): cNvPr: Typed[NonVisualDrawingProps, Literal[False]] cNvCxnSpPr: Typed[NonVisualConnectorProperties, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, cNvPr: NonVisualDrawingProps, cNvCxnSpPr: NonVisualConnectorProperties) -> None: ... class ConnectorShape(Serialisable): diff --git a/stubs/openpyxl/openpyxl/drawing/effect.pyi b/stubs/openpyxl/openpyxl/drawing/effect.pyi index b897116347bf..130714d4894a 100644 --- a/stubs/openpyxl/openpyxl/drawing/effect.pyi +++ b/stubs/openpyxl/openpyxl/drawing/effect.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -123,7 +123,7 @@ class GlowEffect(ColorChoice): sysClr: Incomplete schemeClr: Incomplete prstClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, rad: _ConvertibleToFloat, **kw) -> None: ... class InnerShadowEffect(ColorChoice): @@ -136,7 +136,7 @@ class InnerShadowEffect(ColorChoice): sysClr: Incomplete schemeClr: Incomplete prstClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, blurRad: _ConvertibleToFloat, dist: _ConvertibleToFloat, dir: _ConvertibleToInt, **kw) -> None: ... class OuterShadow(ColorChoice): @@ -156,7 +156,7 @@ class OuterShadow(ColorChoice): sysClr: Incomplete schemeClr: Incomplete prstClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -197,7 +197,7 @@ class PresetShadowEffect(ColorChoice): sysClr: Incomplete schemeClr: Incomplete prstClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, prst: _PresetShadowEffectPrst, dist: _ConvertibleToFloat, dir: _ConvertibleToInt, **kw) -> None: ... class ReflectionEffect(Serialisable): @@ -246,7 +246,7 @@ class EffectList(Serialisable): prstShdw: Typed[PresetShadowEffect, Literal[True]] reflection: Typed[ReflectionEffect, Literal[True]] softEdge: Typed[SoftEdgesEffect, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, blur: BlurEffect | None = None, diff --git a/stubs/openpyxl/openpyxl/drawing/fill.pyi b/stubs/openpyxl/openpyxl/drawing/fill.pyi index 6f0b887f5c71..4ff6baf3da23 100644 --- a/stubs/openpyxl/openpyxl/drawing/fill.pyi +++ b/stubs/openpyxl/openpyxl/drawing/fill.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -106,7 +107,7 @@ class PatternFillProperties(Serialisable): foreground: Alias bgClr: Typed[ColorChoice, Literal[True]] background: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, prst: _PatternFillPropertiesPrst | Literal["none"] | None = None, @@ -147,7 +148,7 @@ class GradientStop(Serialisable): sysClr: Typed[SystemColor, Literal[True]] schemeClr: Typed[SchemeColor, Literal[True]] prstClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, pos: _ConvertibleToFloat | None = None, @@ -184,7 +185,7 @@ class GradientFillProperties(Serialisable): linear: Alias path: Typed[PathShadeProperties, Literal[True]] tileRect: Typed[RelativeRect, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, flip: _PropertiesFlip | Literal["none"] | None = None, @@ -205,7 +206,7 @@ class SolidColorFillProperties(Serialisable): sysClr: Typed[SystemColor, Literal[True]] schemeClr: Typed[SchemeColor, Literal[True]] prstClr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, scrgbClr: _RGBPercent | None = None, @@ -250,7 +251,7 @@ class Blip(Serialisable): hsl: Typed[HSLEffect, Literal[True]] lum: Typed[LuminanceEffect, Literal[True]] tint: Typed[TintEffect, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, cstate: _BlipCstate | Literal["none"] | None = None, @@ -312,7 +313,7 @@ class BlipFillProperties(Serialisable): srcRect: Typed[RelativeRect, Literal[True]] tile: Typed[TileInfoProperties, Literal[True]] stretch: Typed[StretchInfoProperties, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, dpi: _ConvertibleToInt | None = None, diff --git a/stubs/openpyxl/openpyxl/drawing/geometry.pyi b/stubs/openpyxl/openpyxl/drawing/geometry.pyi index f89b14eb7a03..8b9b5321526c 100644 --- a/stubs/openpyxl/openpyxl/drawing/geometry.pyi +++ b/stubs/openpyxl/openpyxl/drawing/geometry.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -363,7 +363,7 @@ class Transform2D(Serialisable): ext: Typed[PositiveSize2D, Literal[True]] chOff: Typed[Point2D, Literal[True]] chExt: Typed[PositiveSize2D, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, rot: _ConvertibleToInt | None = None, @@ -385,7 +385,7 @@ class GroupTransform2D(Serialisable): ext = Typed(expected_type=PositiveSize2D, allow_none=True) chOff = Typed(expected_type=Point2D, allow_none=True) chExt = Typed(expected_type=PositiveSize2D, allow_none=True) - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, rot: _ConvertibleToInt | None = 0, diff --git a/stubs/openpyxl/openpyxl/drawing/graphic.pyi b/stubs/openpyxl/openpyxl/drawing/graphic.pyi index a61e7562db19..4e5e5b209103 100644 --- a/stubs/openpyxl/openpyxl/drawing/graphic.pyi +++ b/stubs/openpyxl/openpyxl/drawing/graphic.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Bool, String, Typed, _ConvertibleToBool @@ -38,7 +39,7 @@ class NonVisualGraphicFrame(Serialisable): tagname: str cNvPr: Typed[ExtensionList, Literal[False]] cNvGraphicFramePr: Typed[ExtensionList, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, cNvPr: Incomplete | None = None, cNvGraphicFramePr: Incomplete | None = None) -> None: ... class GraphicData(Serialisable): @@ -61,7 +62,7 @@ class GraphicFrame(Serialisable): graphic: Typed[GraphicObject, Literal[False]] macro: String[Literal[True]] fPublished: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, nvGraphicFramePr: NonVisualGraphicFrame | None = None, @@ -77,7 +78,8 @@ class GroupShape(Serialisable): grpSpPr: Typed[GroupShapeProperties, Literal[False]] visualProperties: Alias pic: Typed[PictureFrame, Literal[True]] - __elements__: Incomplete + # Source incorrectly uses a list here instead of a tuple + __elements__: ClassVar[list[str]] # type: ignore[assignment] def __init__( self, nvGrpSpPr: NonVisualGroupShape, grpSpPr: GroupShapeProperties, pic: PictureFrame | None = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/line.pyi b/stubs/openpyxl/openpyxl/drawing/line.pyi index 457ddb7fd2c7..af2e168af425 100644 --- a/stubs/openpyxl/openpyxl/drawing/line.pyi +++ b/stubs/openpyxl/openpyxl/drawing/line.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Alias, Integer, MinMax, NoneSet, Typed, _ConvertibleToFloat, _ConvertibleToInt @@ -59,7 +60,7 @@ class LineProperties(Serialisable): headEnd: Typed[LineEndProperties, Literal[True]] tailEnd: Typed[LineEndProperties, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, w: _ConvertibleToFloat | None = None, diff --git a/stubs/openpyxl/openpyxl/drawing/picture.pyi b/stubs/openpyxl/openpyxl/drawing/picture.pyi index a54bc09bd89b..27a0ceccfac2 100644 --- a/stubs/openpyxl/openpyxl/drawing/picture.pyi +++ b/stubs/openpyxl/openpyxl/drawing/picture.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.chart.shapes import GraphicalProperties @@ -24,7 +25,7 @@ class PictureLocking(Serialisable): noChangeArrowheads: Bool[Literal[True]] noChangeShapeType: Bool[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, noCrop: _ConvertibleToBool | None = None, @@ -46,7 +47,7 @@ class NonVisualPictureProperties(Serialisable): preferRelativeResize: Bool[Literal[True]] picLocks: Typed[PictureLocking, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, preferRelativeResize: _ConvertibleToBool | None = None, picLocks: Incomplete | None = None, extLst: Unused = None ) -> None: ... @@ -55,7 +56,7 @@ class PictureNonVisual(Serialisable): tagname: str cNvPr: Typed[NonVisualDrawingProps, Literal[False]] cNvPicPr: Typed[NonVisualPictureProperties, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, cNvPr: NonVisualDrawingProps | None = None, cNvPicPr: NonVisualPictureProperties | None = None ) -> None: ... @@ -69,7 +70,7 @@ class PictureFrame(Serialisable): spPr: Typed[GraphicalProperties, Literal[False]] graphicalProperties: Alias style: Typed[ShapeStyle, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, macro: str | None = None, diff --git a/stubs/openpyxl/openpyxl/drawing/properties.pyi b/stubs/openpyxl/openpyxl/drawing/properties.pyi index 8f2effc6d35b..6addd6f8c0ce 100644 --- a/stubs/openpyxl/openpyxl/drawing/properties.pyi +++ b/stubs/openpyxl/openpyxl/drawing/properties.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, NoneSet, String, Typed, _ConvertibleToBool @@ -41,7 +41,7 @@ class GroupLocking(Serialisable): noAdjustHandles: Bool[Literal[True]] noChangeShapeType: Bool[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, noGrp: _ConvertibleToBool | None = None, @@ -62,7 +62,7 @@ class NonVisualGroupDrawingShapeProps(Serialisable): tagname: str grpSpLocks: Typed[GroupLocking, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, grpSpLocks: Incomplete | None = None, extLst: Unused = None) -> None: ... class NonVisualDrawingShapeProps(Serialisable): @@ -70,7 +70,7 @@ class NonVisualDrawingShapeProps(Serialisable): spLocks: Typed[GroupLocking, Literal[True]] txBax: Bool[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] txBox: Incomplete def __init__( self, spLocks: Incomplete | None = None, txBox: _ConvertibleToBool | None = None, extLst: Unused = None @@ -86,7 +86,8 @@ class NonVisualDrawingProps(Serialisable): hlinkClick: Typed[Hyperlink, Literal[True]] hlinkHover: Typed[Hyperlink, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + # Source incorrectly uses a list here instead of a tuple + __elements__: ClassVar[list[str]] # type: ignore[assignment] @overload def __init__( self, @@ -117,5 +118,5 @@ class NonVisualGroupShape(Serialisable): tagname: str cNvPr: Typed[NonVisualDrawingProps, Literal[False]] cNvGrpSpPr: Typed[NonVisualGroupDrawingShapeProps, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, cNvPr: NonVisualDrawingProps, cNvGrpSpPr: NonVisualGroupDrawingShapeProps) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi b/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi index a2dfbae4b999..13b70b2870d0 100644 --- a/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi +++ b/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Alias, Bool, NoneSet, Typed, _ConvertibleToBool @@ -36,7 +37,7 @@ class _AnchorBase(Serialisable): pic: Typed[PictureFrame, Literal[True]] contentPart: Incomplete clientData: Typed[AnchorClientData, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, clientData: AnchorClientData | None = None, @@ -59,7 +60,7 @@ class AbsoluteAnchor(_AnchorBase): pic: Incomplete contentPart: Incomplete clientData: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, pos: XDRPoint2D | None = None, ext: XDRPositiveSize2D | None = None, **kw) -> None: ... class OneCellAnchor(_AnchorBase): @@ -73,7 +74,7 @@ class OneCellAnchor(_AnchorBase): pic: Incomplete contentPart: Incomplete clientData: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, _from: AnchorMarker | None = None, ext: XDRPositiveSize2D | None = None, **kw) -> None: ... class TwoCellAnchor(_AnchorBase): @@ -88,7 +89,7 @@ class TwoCellAnchor(_AnchorBase): pic: Incomplete contentPart: Incomplete clientData: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, editAs: _TwoCellAnchorEditAs | Literal["none"] | None = None, @@ -104,7 +105,7 @@ class SpreadsheetDrawing(Serialisable): twoCellAnchor: Incomplete oneCellAnchor: Incomplete absoluteAnchor: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] charts: Incomplete images: Incomplete def __init__(self, twoCellAnchor=(), oneCellAnchor=(), absoluteAnchor=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/text.pyi b/stubs/openpyxl/openpyxl/drawing/text.pyi index 856f55158988..57eebdc0b2af 100644 --- a/stubs/openpyxl/openpyxl/drawing/text.pyi +++ b/stubs/openpyxl/openpyxl/drawing/text.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -156,7 +157,7 @@ class Hyperlink(Serialisable): snd: Typed[EmbeddedWAVAudioFile, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] id: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, invalidUrl: str | None = None, @@ -230,7 +231,7 @@ class CharacterProperties(Serialisable): uLn: Typed[LineProperties, Literal[True]] uFillTx: Incomplete uFill: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, kumimoji: _ConvertibleToBool | None = None, @@ -288,7 +289,7 @@ class TabStopList(Serialisable): class Spacing(Serialisable): spcPct: Incomplete spcPts: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, spcPct: Incomplete | None = None, spcPts: Incomplete | None = None) -> None: ... class AutonumberBullet(Serialisable): @@ -327,7 +328,7 @@ class ParagraphProperties(Serialisable): buAutoNum: Incomplete buChar: Incomplete buBlip: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, marL: _ConvertibleToInt | None = None, @@ -374,7 +375,7 @@ class ListStyle(Serialisable): lvl8pPr: Typed[ParagraphProperties, Literal[True]] lvl9pPr: Typed[ParagraphProperties, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, defPPr: ParagraphProperties | None = None, @@ -397,14 +398,14 @@ class RegularTextRun(Serialisable): properties: Alias t: Incomplete value: Alias - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, rPr: CharacterProperties | None = None, t: str = "") -> None: ... class LineBreak(Serialisable): tagname: str namespace: Incomplete rPr: Typed[CharacterProperties, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, rPr: CharacterProperties | None = None) -> None: ... class TextField(Serialisable): @@ -413,7 +414,7 @@ class TextField(Serialisable): rPr: Typed[CharacterProperties, Literal[True]] pPr: Typed[CharacterProperties, Literal[True]] t: String[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, id: str, @@ -433,7 +434,7 @@ class Paragraph(Serialisable): text: Alias br: Typed[LineBreak, Literal[True]] fld: Typed[TextField, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, pPr: ParagraphProperties | None = None, @@ -491,7 +492,7 @@ class RichTextProperties(Serialisable): normAutofit: Incomplete spAutoFit: Incomplete flatTx: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, rot: _ConvertibleToInt | None = None, diff --git a/stubs/openpyxl/openpyxl/formatting/rule.pyi b/stubs/openpyxl/openpyxl/formatting/rule.pyi index 4f5d8a7ebac3..ccb97c501ed6 100644 --- a/stubs/openpyxl/openpyxl/formatting/rule.pyi +++ b/stubs/openpyxl/openpyxl/formatting/rule.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors import Float, Strict @@ -75,7 +76,7 @@ class FormatObject(Serialisable): val: Incomplete gte: Bool[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, type: _FormatObjectType, val: Incomplete | None = None, gte: _ConvertibleToBool | None = None, extLst: Unused = None ) -> None: ... @@ -89,7 +90,7 @@ class IconSet(RuleType): showValue: Bool[Literal[True]] percent: Bool[Literal[True]] reverse: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] cfvo: Incomplete def __init__( self, @@ -106,7 +107,7 @@ class DataBar(RuleType): maxLength: Integer[Literal[True]] showValue: Bool[Literal[True]] color: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] cfvo: Incomplete def __init__( self, @@ -120,7 +121,7 @@ class DataBar(RuleType): class ColorScale(RuleType): tagname: str color: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] cfvo: Incomplete def __init__(self, cfvo: Incomplete | None = None, color: Incomplete | None = None) -> None: ... @@ -145,8 +146,8 @@ class Rule(Serialisable): iconSet: Typed[IconSet, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] dxf: Typed[DifferentialStyle, Literal[True]] - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, type: _RuleType, diff --git a/stubs/openpyxl/openpyxl/packaging/core.pyi b/stubs/openpyxl/openpyxl/packaging/core.pyi index 53896d9c8f83..96e68ca37e0f 100644 --- a/stubs/openpyxl/openpyxl/packaging/core.pyi +++ b/stubs/openpyxl/openpyxl/packaging/core.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from openpyxl.descriptors import DateTime from openpyxl.descriptors.base import Alias @@ -36,7 +37,7 @@ class DocumentProperties(Serialisable): language: Incomplete created: Incomplete modified: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, category: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/packaging/extended.pyi b/stubs/openpyxl/openpyxl/packaging/extended.pyi index 0ad503e1cf66..c50f9fe3f177 100644 --- a/stubs/openpyxl/openpyxl/packaging/extended.pyi +++ b/stubs/openpyxl/openpyxl/packaging/extended.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Typed @@ -7,16 +8,16 @@ from openpyxl.descriptors.serialisable import Serialisable def get_version(): ... class DigSigBlob(Serialisable): - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] class VectorLpstr(Serialisable): - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] class VectorVariant(Serialisable): - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] class ExtendedProperties(Serialisable): tagname: str @@ -47,7 +48,7 @@ class ExtendedProperties(Serialisable): Application: Incomplete AppVersion: Incomplete DocSecurity: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, Template: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/packaging/manifest.pyi b/stubs/openpyxl/openpyxl/packaging/manifest.pyi index 163fe61462a2..bcc569d4ed60 100644 --- a/stubs/openpyxl/openpyxl/packaging/manifest.pyi +++ b/stubs/openpyxl/openpyxl/packaging/manifest.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete from collections.abc import Generator +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import String @@ -27,7 +28,7 @@ class Manifest(Serialisable): Default: Incomplete Override: Incomplete path: str - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, Default=(), Override=()) -> None: ... @property def filenames(self): ... diff --git a/stubs/openpyxl/openpyxl/packaging/workbook.pyi b/stubs/openpyxl/openpyxl/packaging/workbook.pyi index e67e344fc843..4875deb6b118 100644 --- a/stubs/openpyxl/openpyxl/packaging/workbook.pyi +++ b/stubs/openpyxl/openpyxl/packaging/workbook.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Alias, Bool, Integer, NoneSet, String, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -72,7 +73,7 @@ class WorkbookPackage(Serialisable): webPublishObjects: Typed[WebPublishObjectList, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] Ignorable: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, conformance: _WorkbookPackageConformance | Literal["none"] | None = None, diff --git a/stubs/openpyxl/openpyxl/pivot/cache.pyi b/stubs/openpyxl/openpyxl/pivot/cache.pyi index d647b9c31954..2a456dc95774 100644 --- a/stubs/openpyxl/openpyxl/pivot/cache.pyi +++ b/stubs/openpyxl/openpyxl/pivot/cache.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Unused from datetime import datetime -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -56,7 +56,7 @@ class CalculatedMember(Serialisable): solveOrder: Integer[Literal[False]] set: Bool[Literal[False]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, name: str, @@ -75,7 +75,7 @@ class CalculatedItem(Serialisable): formula: String[Literal[False]] pivotArea: Typed[PivotArea, Literal[False]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, field: _ConvertibleToInt | None = None, *, formula: str, pivotArea: PivotArea, extLst: Incomplete | None = None @@ -94,8 +94,8 @@ class ServerFormat(Serialisable): class ServerFormatList(Serialisable): tagname: str serverFormat: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Incomplete | None = None, serverFormat: Incomplete | None = None) -> None: ... @property def count(self): ... @@ -104,14 +104,14 @@ class Query(Serialisable): tagname: str mdx: String[Literal[False]] tpls: Typed[TupleList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, mdx: str, tpls: TupleList | None = None) -> None: ... class QueryCache(Serialisable): tagname: str count: Integer[Literal[False]] query: Typed[Query, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, query: Query) -> None: ... class OLAPSet(Serialisable): @@ -123,7 +123,7 @@ class OLAPSet(Serialisable): queryFailed: Bool[Literal[False]] tpls: Typed[TupleList, Literal[True]] sortByTuple: Typed[TupleList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, count: _ConvertibleToInt, @@ -138,7 +138,7 @@ class OLAPSet(Serialisable): class OLAPSets(Serialisable): count: Integer[Literal[False]] set: Typed[OLAPSet, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, set: OLAPSet) -> None: ... class PCDSDTCEntries(Serialisable): @@ -148,7 +148,7 @@ class PCDSDTCEntries(Serialisable): n: Typed[Number, Literal[False]] e: Typed[Error, Literal[False]] s: Typed[Text, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, m: Missing, n: Number, e: Error, s: Text) -> None: ... class TupleCache(Serialisable): @@ -158,7 +158,7 @@ class TupleCache(Serialisable): queryCache: Typed[QueryCache, Literal[True]] serverFormats: Typed[ServerFormatList, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, entries: PCDSDTCEntries | None = None, @@ -222,7 +222,7 @@ class GroupMember(Serialisable): class GroupMembers(Serialisable): count: Integer[Literal[False]] groupMember: Typed[GroupMember, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, groupMember: GroupMember) -> None: ... class LevelGroup(Serialisable): @@ -233,7 +233,7 @@ class LevelGroup(Serialisable): uniqueParent: String[Literal[False]] id: Integer[Literal[False]] groupMembers: Typed[GroupMembers, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, name: str, uniqueName: str, caption: str, uniqueParent: str, id: _ConvertibleToInt, groupMembers: GroupMembers ) -> None: ... @@ -242,7 +242,7 @@ class Groups(Serialisable): tagname: str count: Integer[Literal[False]] group: Typed[LevelGroup, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, group: LevelGroup) -> None: ... class GroupLevel(Serialisable): @@ -253,7 +253,7 @@ class GroupLevel(Serialisable): customRollUp: Bool[Literal[False]] groups: Typed[Groups, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, uniqueName: str, @@ -267,7 +267,7 @@ class GroupLevel(Serialisable): class GroupLevels(Serialisable): count: Integer[Literal[False]] groupLevel: Typed[GroupLevel, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, groupLevel: GroupLevel) -> None: ... class FieldUsage(Serialisable): @@ -278,7 +278,7 @@ class FieldUsage(Serialisable): class FieldsUsage(Serialisable): count: Integer[Literal[False]] fieldUsage: Typed[FieldUsage, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, fieldUsage: FieldUsage | None = None) -> None: ... class CacheHierarchy(Serialisable): @@ -308,7 +308,7 @@ class CacheHierarchy(Serialisable): fieldsUsage: Typed[FieldsUsage, Literal[True]] groupLevels: Typed[GroupLevels, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -377,8 +377,8 @@ class GroupItems(Serialisable): e: Incomplete s: Incomplete d: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Incomplete | None = None, m=(), n=(), b=(), e=(), s=(), d=()) -> None: ... @property def count(self): ... @@ -387,7 +387,7 @@ class DiscretePr(Serialisable): tagname: str count: Integer[Literal[False]] x: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, x: Incomplete | None = None) -> None: ... class RangePr(Serialisable): @@ -419,7 +419,7 @@ class FieldGroup(Serialisable): rangePr: Typed[RangePr, Literal[True]] discretePr: Typed[DiscretePr, Literal[True]] groupItems: Typed[GroupItems, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, par: _ConvertibleToInt | None = None, @@ -450,7 +450,7 @@ class SharedItems(Serialisable): minDate: DateTime[Literal[True]] maxDate: DateTime[Literal[True]] longText: Bool[Literal[True]] - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, _fields=(), @@ -491,7 +491,7 @@ class CacheField(Serialisable): databaseField: Bool[Literal[True]] mappingCount: Integer[Literal[True]] memberPropertyField: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -577,7 +577,7 @@ class PageItem(Serialisable): class Page(Serialisable): tagname: str pageItem: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: Incomplete | None = None, pageItem: Incomplete | None = None) -> None: ... @property def count(self): ... @@ -587,7 +587,7 @@ class Consolidation(Serialisable): autoPage: Bool[Literal[True]] pages: Incomplete rangeSets: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, autoPage: _ConvertibleToBool | None = None, pages=(), rangeSets=()) -> None: ... class WorksheetSource(Serialisable): @@ -604,7 +604,7 @@ class CacheSource(Serialisable): worksheetSource: Typed[WorksheetSource, Literal[True]] consolidation: Typed[Consolidation, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, type: _CacheSourceType, @@ -648,7 +648,7 @@ class CacheDefinition(Serialisable): maps: Incomplete extLst: Typed[ExtensionList, Literal[True]] id: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, diff --git a/stubs/openpyxl/openpyxl/pivot/fields.pyi b/stubs/openpyxl/openpyxl/pivot/fields.pyi index 89826e60c570..536929917acf 100644 --- a/stubs/openpyxl/openpyxl/pivot/fields.pyi +++ b/stubs/openpyxl/openpyxl/pivot/fields.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete from datetime import datetime -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal from openpyxl.descriptors.base import ( @@ -30,7 +30,7 @@ class Tuple(Serialisable): class TupleList(Serialisable): c: Integer[Literal[True]] tpl: Typed[Tuple, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__(self, c: _ConvertibleToInt | None = None, *, tpl: Tuple) -> None: ... @overload @@ -51,7 +51,7 @@ class Missing(Serialisable): un: Bool[Literal[True]] st: Bool[Literal[True]] b: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, tpls=(), @@ -85,7 +85,7 @@ class Number(Serialisable): un: Bool[Literal[True]] st: Bool[Literal[True]] b: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -140,7 +140,7 @@ class Error(Serialisable): un: Bool[Literal[True]] st: Bool[Literal[True]] b: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -187,7 +187,7 @@ class Boolean(Serialisable): f: Bool[Literal[True]] c: String[Literal[True]] cp: Integer[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, x=(), @@ -214,7 +214,7 @@ class Text(Serialisable): un: Bool[Literal[True]] st: Bool[Literal[True]] b: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, tpls=(), @@ -241,7 +241,7 @@ class DateTimeField(Serialisable): f: Bool[Literal[True]] c: String[Literal[True]] cp: Integer[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, x=(), diff --git a/stubs/openpyxl/openpyxl/pivot/record.pyi b/stubs/openpyxl/openpyxl/pivot/record.pyi index a77c4d2bf4b6..cc3cb4979f44 100644 --- a/stubs/openpyxl/openpyxl/pivot/record.pyi +++ b/stubs/openpyxl/openpyxl/pivot/record.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Typed @@ -32,8 +33,8 @@ class RecordList(Serialisable): tagname: str r: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, r=(), extLst: ExtensionList | None = None) -> None: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/pivot/table.pyi b/stubs/openpyxl/openpyxl/pivot/table.pyi index b0ba4f67c105..d3d10f626605 100644 --- a/stubs/openpyxl/openpyxl/pivot/table.pyi +++ b/stubs/openpyxl/openpyxl/pivot/table.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, NoneSet, Set, String, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -113,8 +113,8 @@ class HierarchyUsage(Serialisable): class ColHierarchiesUsage(Serialisable): tagname: str colHierarchyUsage: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Incomplete | None = None, colHierarchyUsage=()) -> None: ... @property def count(self): ... @@ -122,8 +122,8 @@ class ColHierarchiesUsage(Serialisable): class RowHierarchiesUsage(Serialisable): tagname: str rowHierarchyUsage: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Incomplete | None = None, rowHierarchyUsage=()) -> None: ... @property def count(self): ... @@ -143,7 +143,7 @@ class PivotFilter(Serialisable): stringValue2: String[Literal[True]] autoFilter: Typed[AutoFilter, Literal[False]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -183,7 +183,7 @@ class PivotFilter(Serialisable): class PivotFilters(Serialisable): count: Integer[Literal[False]] filter: Typed[PivotFilter, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: _ConvertibleToInt, filter: PivotFilter | None = None) -> None: ... class PivotTableStyle(Serialisable): @@ -208,7 +208,7 @@ class MemberList(Serialisable): tagname: str level: Integer[Literal[True]] member: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: Incomplete | None = None, level: _ConvertibleToInt | None = None, member=()) -> None: ... @property def count(self): ... @@ -268,7 +268,7 @@ class PivotHierarchy(Serialisable): mps: Incomplete members: Typed[MemberList, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, outline: _ConvertibleToBool = None, @@ -307,7 +307,7 @@ class Reference(Serialisable): varPSubtotal: Bool[Literal[True]] x: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, field: _ConvertibleToInt | None = None, @@ -349,7 +349,7 @@ class PivotArea(Serialisable): collapsedLevelsAreSubtotals: Bool[Literal[True]] axis: NoneSet[_PivotAxis] fieldPosition: Integer[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, references=(), @@ -374,7 +374,7 @@ class ChartFormat(Serialisable): format: Integer[Literal[False]] series: Bool[Literal[False]] pivotArea: Typed[PivotArea, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, chart: _ConvertibleToInt, format: _ConvertibleToInt, series: _ConvertibleToBool = None, *, pivotArea: PivotArea @@ -391,7 +391,7 @@ class ConditionalFormat(Serialisable): priority: Integer[Literal[False]] pivotAreas: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -415,7 +415,7 @@ class ConditionalFormat(Serialisable): class ConditionalFormatList(Serialisable): tagname: str conditionalFormat: Incomplete - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, conditionalFormat=..., count: Incomplete | None = ...) -> None: ... def by_priority(self): ... @property @@ -428,7 +428,7 @@ class Format(Serialisable): dxfId: Integer[Literal[True]] pivotArea: Typed[PivotArea, Literal[False]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -457,7 +457,7 @@ class DataField(Serialisable): baseItem: Integer[Literal[False]] numFmtId: Integer[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -492,7 +492,7 @@ class PageField(Serialisable): name: String[Literal[True]] cap: String[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, fld: _ConvertibleToInt, @@ -509,7 +509,7 @@ class RowColItem(Serialisable): r: Integer[Literal[False]] i: Integer[Literal[False]] x: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, t: _ItemType = "data", r: _ConvertibleToInt = 0, i: _ConvertibleToInt = 0, x=()) -> None: ... class RowColField(Serialisable): @@ -519,7 +519,7 @@ class RowColField(Serialisable): class AutoSortScope(Serialisable): pivotArea: Typed[PivotArea, Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, pivotArea: PivotArea) -> None: ... class FieldItem(Serialisable): @@ -603,7 +603,7 @@ class PivotField(Serialisable): showPropTip: Bool[Literal[True]] showPropAsCaption: Bool[Literal[True]] defaultAttributeDrillState: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, items=(), @@ -768,7 +768,7 @@ class TableDefinition(Serialisable): colHierarchiesUsage: Typed[ColHierarchiesUsage, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] id: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, diff --git a/stubs/openpyxl/openpyxl/styles/borders.pyi b/stubs/openpyxl/openpyxl/styles/borders.pyi index d17da6dce202..f11117c9cd0f 100644 --- a/stubs/openpyxl/openpyxl/styles/borders.pyi +++ b/stubs/openpyxl/openpyxl/styles/borders.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Alias, Bool, NoneSet, Typed, _ConvertibleToBool @@ -50,7 +51,7 @@ class Side(Serialisable): class Border(Serialisable): tagname: str __fields__: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] start: Typed[Side, Literal[True]] end: Typed[Side, Literal[True]] left: Typed[Side, Literal[True]] diff --git a/stubs/openpyxl/openpyxl/styles/cell_style.pyi b/stubs/openpyxl/openpyxl/styles/cell_style.pyi index 6d90c7d44313..d1cd9284637c 100644 --- a/stubs/openpyxl/openpyxl/styles/cell_style.pyi +++ b/stubs/openpyxl/openpyxl/styles/cell_style.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete, Unused from array import array +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors import Strict @@ -50,8 +51,8 @@ class CellStyle(Serialisable): alignment: Typed[Alignment, Literal[True]] protection: Typed[Protection, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, numFmtId: _ConvertibleToInt = 0, @@ -81,13 +82,13 @@ class CellStyle(Serialisable): class CellStyleList(Serialisable): tagname: str - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] # Overwritten by property below # count: Integer xf: Incomplete alignment: Incomplete protection: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, xf=()) -> None: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/styles/colors.pyi b/stubs/openpyxl/openpyxl/styles/colors.pyi index 4988eaf7e7d6..67fbdd86119f 100644 --- a/stubs/openpyxl/openpyxl/styles/colors.pyi +++ b/stubs/openpyxl/openpyxl/styles/colors.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors import Strict, Typed @@ -55,7 +56,7 @@ class ColorList(Serialisable): tagname: str indexedColors: Incomplete mruColors: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, indexedColors=(), mruColors=()) -> None: ... def __bool__(self) -> bool: ... @property diff --git a/stubs/openpyxl/openpyxl/styles/differential.pyi b/stubs/openpyxl/openpyxl/styles/differential.pyi index f6bf31d29e9b..a30bf66a5876 100644 --- a/stubs/openpyxl/openpyxl/styles/differential.pyi +++ b/stubs/openpyxl/openpyxl/styles/differential.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Typed @@ -9,7 +10,7 @@ from openpyxl.styles.numbers import NumberFormat class DifferentialStyle(Serialisable): tagname: str - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] font: Typed[Font, Literal[True]] numFmt: Typed[NumberFormat, Literal[True]] fill: Typed[Fill, Literal[True]] @@ -32,7 +33,7 @@ class DifferentialStyleList(Serialisable): tagname: str dxf: Incomplete styles: Alias - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, dxf=(), count: Incomplete | None = None) -> None: ... def append(self, dxf) -> None: ... def add(self, dxf): ... diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index 1b8be961a1aa..88984480019e 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors import Sequence @@ -56,7 +57,7 @@ class Fill(Serialisable): class PatternFill(Fill): tagname: str - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] patternType: NoneSet[_FillsType] fill_type: Alias fgColor: Incomplete diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index f1b895ece5c9..88ad1e98e250 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from openpyxl.descriptors.base import Alias from openpyxl.descriptors.serialisable import Serialisable @@ -29,7 +30,7 @@ class Font(Serialisable): color: Incomplete scheme: Incomplete tagname: str - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, name: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index bf9d6cbc85d7..e029b84e0fa5 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, String, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -59,7 +60,7 @@ class _NamedCellStyle(Serialisable): hidden: Bool[Literal[True]] customBuiltin: Bool[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, name: str, @@ -76,7 +77,7 @@ class _NamedCellStyleList(Serialisable): # Overwritten by property below # count: Integer cellStyle: Incomplete - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, cellStyle=()) -> None: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index c94236cf4013..a2ad642a1aaa 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors import Strict, String @@ -67,8 +68,8 @@ class NumberFormatList(Serialisable): # Overwritten by property below # count: Integer numFmt: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, numFmt=()) -> None: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index 912afd42d5cc..ae36e48132c7 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Typed @@ -23,7 +24,7 @@ class Stylesheet(Serialisable): tableStyles: Typed[TableStyleList, Literal[True]] colors: Typed[ColorList, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] number_formats: Incomplete cell_styles: Incomplete alignments: Incomplete diff --git a/stubs/openpyxl/openpyxl/styles/table.pyi b/stubs/openpyxl/openpyxl/styles/table.pyi index c32ce1a043ed..9e83304b5d91 100644 --- a/stubs/openpyxl/openpyxl/styles/table.pyi +++ b/stubs/openpyxl/openpyxl/styles/table.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, Set, String, _ConvertibleToBool, _ConvertibleToInt @@ -51,7 +52,7 @@ class TableStyle(Serialisable): table: Bool[Literal[True]] count: Integer[Literal[True]] tableStyleElement: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, name: str, @@ -66,8 +67,8 @@ class TableStyleList(Serialisable): defaultTableStyle: String[Literal[True]] defaultPivotStyle: String[Literal[True]] tableStyle: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, count: Unused = None, diff --git a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi index 52f581b9cf78..947ebe99288b 100644 --- a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi +++ b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, NoneSet, String, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -23,24 +24,24 @@ class ExternalCell(Serialisable): class ExternalRow(Serialisable): r: Integer[Literal[False]] cell: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, r: _ConvertibleToInt, cell: Incomplete | None = None) -> None: ... class ExternalSheetData(Serialisable): sheetId: Integer[Literal[False]] refreshError: Bool[Literal[True]] row: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, sheetId: _ConvertibleToInt, refreshError: _ConvertibleToBool | None = None, row=()) -> None: ... class ExternalSheetDataSet(Serialisable): sheetData: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, sheetData: Incomplete | None = None) -> None: ... class ExternalSheetNames(Serialisable): sheetName: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, sheetName=()) -> None: ... class ExternalDefinedName(Serialisable): @@ -56,7 +57,7 @@ class ExternalBook(Serialisable): definedNames: Incomplete sheetDataSet: Typed[ExternalSheetDataSet, Literal[True]] id: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, sheetNames: ExternalSheetNames | None = None, @@ -70,7 +71,7 @@ class ExternalLink(Serialisable): mime_type: str externalBook: Typed[ExternalBook, Literal[True]] file_link: Typed[Relationship, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, externalBook: ExternalBook | None = None, ddeLink: Unused = None, oleLink: Unused = None, extLst: Unused = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/function_group.pyi b/stubs/openpyxl/openpyxl/workbook/function_group.pyi index 2b5c5f12cb5d..442a4c4b724a 100644 --- a/stubs/openpyxl/openpyxl/workbook/function_group.pyi +++ b/stubs/openpyxl/openpyxl/workbook/function_group.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Integer, String, _ConvertibleToInt @@ -13,5 +14,5 @@ class FunctionGroupList(Serialisable): tagname: str builtInGroupCount: Integer[Literal[True]] functionGroup: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, builtInGroupCount: _ConvertibleToInt | None = 16, functionGroup=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/protection.pyi b/stubs/openpyxl/openpyxl/workbook/protection.pyi index e4e37cb74d54..3e5bdb636cd2 100644 --- a/stubs/openpyxl/openpyxl/workbook/protection.pyi +++ b/stubs/openpyxl/openpyxl/workbook/protection.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Bool, Integer, String, _ConvertibleToBool, _ConvertibleToInt @@ -24,7 +25,7 @@ class WorkbookProtection(Serialisable): workbookHashValue: Incomplete workbookSaltValue: Incomplete workbookSpinCount: Integer[Literal[True]] - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, workbookPassword: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi b/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi index bb7a52901be5..3c188b2c6bdd 100644 --- a/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi +++ b/stubs/openpyxl/openpyxl/workbook/smart_tags.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, NoneSet, String, _ConvertibleToBool @@ -16,7 +17,7 @@ class SmartTag(Serialisable): class SmartTagList(Serialisable): tagname: str smartTagType: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, smartTagType=()) -> None: ... class SmartTagProperties(Serialisable): diff --git a/stubs/openpyxl/openpyxl/workbook/views.pyi b/stubs/openpyxl/openpyxl/workbook/views.pyi index 2c12d667c5d5..d9ecb97e6792 100644 --- a/stubs/openpyxl/openpyxl/workbook/views.pyi +++ b/stubs/openpyxl/openpyxl/workbook/views.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, NoneSet, String, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -26,7 +26,7 @@ class BookView(Serialisable): activeTab: Integer[Literal[True]] autoFilterDateGrouping: Bool[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, visibility: _BookViewVilibility | Literal["none"] | None = "visible", @@ -72,7 +72,7 @@ class CustomWorkbookView(Serialisable): showComments: NoneSet[_CustomWorkbookViewShowComments] showObjects: NoneSet[_CustomWorkbookViewShowObjects] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, diff --git a/stubs/openpyxl/openpyxl/workbook/web.pyi b/stubs/openpyxl/openpyxl/workbook/web.pyi index b8bd3e798c80..62bbf82c0609 100644 --- a/stubs/openpyxl/openpyxl/workbook/web.pyi +++ b/stubs/openpyxl/openpyxl/workbook/web.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, NoneSet, String, _ConvertibleToBool, _ConvertibleToInt @@ -54,7 +54,7 @@ class WebPublishObjectList(Serialisable): # Overwritten by property below # count: Integer webPublishObject: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, webPublishObject=()) -> None: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi b/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi index 2c9ae8d9aa8e..e6e2e4c95a99 100644 --- a/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/cell_watch.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import String @@ -12,5 +13,5 @@ class CellWatch(Serialisable): class CellWatches(Serialisable): tagname: str cellWatch: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, cellWatch=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/controls.pyi b/stubs/openpyxl/openpyxl/worksheet/controls.pyi index e4fddeffd8cb..33139070e270 100644 --- a/stubs/openpyxl/openpyxl/worksheet/controls.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/controls.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, String, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -24,7 +24,7 @@ class ControlProperty(Serialisable): listFillRange: String[Literal[True]] cf: String[Literal[True]] id: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, anchor: ObjectAnchor, @@ -50,7 +50,7 @@ class Control(Serialisable): controlPr: Typed[ControlProperty, Literal[True]] shapeId: Integer[Literal[False]] name: String[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, controlPr: ControlProperty | None = None, *, shapeId: _ConvertibleToInt, name: str | None = None @@ -61,5 +61,5 @@ class Control(Serialisable): class Controls(Serialisable): tagname: str control: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, control=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/custom.pyi b/stubs/openpyxl/openpyxl/worksheet/custom.pyi index b4394473b294..f091420115ea 100644 --- a/stubs/openpyxl/openpyxl/worksheet/custom.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/custom.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import String @@ -12,5 +13,5 @@ class CustomProperty(Serialisable): class CustomProperties(Serialisable): tagname: str customPr: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, customPr=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi b/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi index 6d141aaaa43d..fca6efb4f383 100644 --- a/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/datavalidation.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -87,8 +88,8 @@ class DataValidationList(Serialisable): xWindow: Integer[Literal[True]] yWindow: Integer[Literal[True]] dataValidation: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, disablePrompts: _ConvertibleToBool | None = None, diff --git a/stubs/openpyxl/openpyxl/worksheet/errors.pyi b/stubs/openpyxl/openpyxl/worksheet/errors.pyi index c768b4dc6f34..7bc9248303a2 100644 --- a/stubs/openpyxl/openpyxl/worksheet/errors.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/errors.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, String, Typed, _ConvertibleToBool @@ -12,7 +13,7 @@ class Extension(Serialisable): class ExtensionList(Serialisable): tagname: str ext: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, ext=()) -> None: ... class IgnoredError(Serialisable): @@ -45,5 +46,5 @@ class IgnoredErrors(Serialisable): tagname: str ignoredError: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, ignoredError=(), extLst: ExtensionList | None = None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/filters.pyi b/stubs/openpyxl/openpyxl/worksheet/filters.pyi index c88a5c70485f..caff87dca02d 100644 --- a/stubs/openpyxl/openpyxl/worksheet/filters.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/filters.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Unused from datetime import datetime -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -127,7 +127,7 @@ class SortState(Serialisable): ref: Incomplete sortCondition: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, columnSort: _ConvertibleToBool | None = None, @@ -179,7 +179,7 @@ class CustomFilters(Serialisable): tagname: str _and: Bool[Literal[True]] # Not private. Avoids name clash customFilter: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, _and: _ConvertibleToBool | None = False, customFilter=()) -> None: ... class Top10(Serialisable): @@ -245,7 +245,7 @@ class Filters(Serialisable): calendarType: NoneSet[_FiltersCalendarType] filter: Incomplete dateGroupItem: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, blank: _ConvertibleToBool | None = None, @@ -267,7 +267,7 @@ class FilterColumn(Serialisable): colorFilter: Typed[ColorFilter, Literal[True]] iconFilter: Typed[IconFilter, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, colId: _ConvertibleToInt, @@ -290,7 +290,7 @@ class AutoFilter(Serialisable): filterColumn: Incomplete sortState: Typed[SortState, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, ref: Incomplete | None = None, filterColumn=(), sortState: SortState | None = None, extLst: Unused = None ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi b/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi index 0a74539c1124..3128bf68432e 100644 --- a/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors import Strict @@ -51,7 +52,7 @@ class HeaderFooter(Serialisable): evenFooter: Typed[HeaderFooterItem, Literal[True]] firstHeader: Typed[HeaderFooterItem, Literal[True]] firstFooter: Typed[HeaderFooterItem, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, differentOddEven: _ConvertibleToBool | None = None, diff --git a/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi b/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi index 5b83412f768b..aaccd9a6d21b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/hyperlink.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import String @@ -12,7 +13,7 @@ class Hyperlink(Serialisable): display: String[Literal[True]] id: Incomplete target: String[Literal[True]] - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] def __init__( self, ref: str, diff --git a/stubs/openpyxl/openpyxl/worksheet/merge.pyi b/stubs/openpyxl/openpyxl/worksheet/merge.pyi index e0554fe97daa..46f9f498e21c 100644 --- a/stubs/openpyxl/openpyxl/worksheet/merge.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/merge.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from openpyxl.descriptors.serialisable import Serialisable @@ -8,7 +9,7 @@ class MergeCell(CellRange): tagname: str @property def ref(self): ... - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, ref: Incomplete | None = None) -> None: ... def __copy__(self): ... @@ -17,8 +18,8 @@ class MergeCells(Serialisable): # Overwritten by property below # count: Integer mergeCell: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, mergeCell=()) -> None: ... @property def count(self): ... diff --git a/stubs/openpyxl/openpyxl/worksheet/ole.pyi b/stubs/openpyxl/openpyxl/worksheet/ole.pyi index 4b20570fca51..21d3bbf3879d 100644 --- a/stubs/openpyxl/openpyxl/worksheet/ole.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/ole.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Integer, Set, String, Typed, _ConvertibleToBool, _ConvertibleToInt @@ -39,7 +39,7 @@ class ObjectPr(Serialisable): macro: String[Literal[False]] altText: String[Literal[True]] dde: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -83,7 +83,7 @@ class OleObject(Serialisable): oleUpdate: Set[_OleObjectOleUpdate] autoLoad: Bool[Literal[True]] shapeId: Integer[Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -111,5 +111,5 @@ class OleObject(Serialisable): class OleObjects(Serialisable): tagname: str oleObject: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, oleObject=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi b/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi index 9fd887ee2ed7..32f2d2b7e525 100644 --- a/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, _ConvertibleToBool, _ConvertibleToInt @@ -26,8 +27,8 @@ class RowBreak(Serialisable): # count: Integer # manualBreakCount: Integer brk: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, manualBreakCount: Unused = None, brk=()) -> None: ... def __bool__(self) -> bool: ... def __len__(self) -> int: ... @@ -46,4 +47,4 @@ class ColBreak(RowBreak): @property def manualBreakCount(self): ... brk: Incomplete - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] diff --git a/stubs/openpyxl/openpyxl/worksheet/properties.pyi b/stubs/openpyxl/openpyxl/worksheet/properties.pyi index 5b62da9ee5d9..0c910c98ff37 100644 --- a/stubs/openpyxl/openpyxl/worksheet/properties.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/properties.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, String, Typed, _ConvertibleToBool @@ -38,7 +39,7 @@ class WorksheetProperties(Serialisable): tabColor: Incomplete outlinePr: Typed[Outline, Literal[True]] pageSetUpPr: Typed[PageSetupProperties, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, codeName: str | None = None, diff --git a/stubs/openpyxl/openpyxl/worksheet/protection.pyi b/stubs/openpyxl/openpyxl/worksheet/protection.pyi index 69c96de9fcce..fa1e290043c2 100644 --- a/stubs/openpyxl/openpyxl/worksheet/protection.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/protection.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Bool, Integer, String, _ConvertibleToBool, _ConvertibleToInt @@ -34,7 +35,7 @@ class SheetProtection(Serialisable, _Protected): spinCount: Integer[Literal[True]] algorithmName: String[Literal[True]] hashValue: Incomplete - __attrs__: Incomplete + __attrs__: ClassVar[tuple[str, ...]] password: Incomplete def __init__( self, diff --git a/stubs/openpyxl/openpyxl/worksheet/scenario.pyi b/stubs/openpyxl/openpyxl/worksheet/scenario.pyi index 2bb4855db726..67ed74af75de 100644 --- a/stubs/openpyxl/openpyxl/worksheet/scenario.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/scenario.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal from openpyxl.descriptors.base import ( @@ -50,8 +50,8 @@ class Scenario(Serialisable): hidden: Bool[Literal[True]] user: String[Literal[True]] comment: String[Literal[True]] - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -84,7 +84,7 @@ class ScenarioList(Serialisable): current: Integer[Literal[True]] show: Integer[Literal[True]] sqref: Convertible[MultiCellRange, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, scenario=(), diff --git a/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi b/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi index aff78b599ad2..f99140e1105b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/smart_tag.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, String, _ConvertibleToBool, _ConvertibleToInt @@ -17,7 +17,7 @@ class CellSmartTag(Serialisable): type: Integer[Literal[False]] deleted: Bool[Literal[True]] xmlBased: Bool[Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -40,11 +40,11 @@ class CellSmartTags(Serialisable): tagname: str cellSmartTag: Incomplete r: String[Literal[False]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, cellSmartTag, r: str) -> None: ... class SmartTags(Serialisable): tagname: str cellSmartTags: Incomplete - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, cellSmartTags=()) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/table.pyi b/stubs/openpyxl/openpyxl/worksheet/table.pyi index c4d4f434acbc..ac50fe04deb8 100644 --- a/stubs/openpyxl/openpyxl/worksheet/table.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/table.pyi @@ -1,5 +1,5 @@ from _typeshed import Incomplete, Unused -from typing import overload +from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias from openpyxl.descriptors import Strict, String @@ -39,7 +39,7 @@ class XMLColumnProps(Serialisable): denormalized: Bool[Literal[True]] xmlDataType: String[Literal[False]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -85,7 +85,7 @@ class TableColumn(Serialisable): totalsRowFormula: Typed[TableFormula, Literal[True]] xmlColumnPr: Typed[XMLColumnProps, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] @overload def __init__( self, @@ -164,7 +164,7 @@ class Table(Serialisable): tableColumns: Incomplete tableStyleInfo: Typed[TableStyleInfo, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__( self, id: _ConvertibleToInt = 1, @@ -206,8 +206,8 @@ class TablePartList(Serialisable): # Overwritten by property below # count: Integer tablePart: Incomplete - __elements__: Incomplete - __attrs__: Incomplete + __elements__: ClassVar[tuple[str, ...]] + __attrs__: ClassVar[tuple[str, ...]] def __init__(self, count: Unused = None, tablePart=()) -> None: ... def append(self, part) -> None: ... @property diff --git a/stubs/openpyxl/openpyxl/worksheet/views.pyi b/stubs/openpyxl/openpyxl/worksheet/views.pyi index 22e7bb31745e..51c208c36a07 100644 --- a/stubs/openpyxl/openpyxl/worksheet/views.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/views.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete, Unused +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import ( @@ -102,5 +103,5 @@ class SheetViewList(Serialisable): tagname: str sheetView: Incomplete extLst: Typed[ExtensionList, Literal[True]] - __elements__: Incomplete + __elements__: ClassVar[tuple[str, ...]] def __init__(self, sheetView: Incomplete | None = None, extLst: Unused = None) -> None: ... From 4a050d903d1e68b00ddb76be2013a8a89b2973bf Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 10 May 2023 13:53:13 -0400 Subject: [PATCH 22/51] regroup __init__ in stubtest_allowlist --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 22 ++++++++------------ 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index db62bf7c5b2a..c8ffa1d9601e 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -8,16 +8,6 @@ openpyxl.xml.functions.xmlfile # Requires numpy to be installed openpyxl.utils.dataframe -# Inconsistent __init__ because -# - using the default value results in an error because of the runtime type-guards -# - or, keyword arguments are explicitly specified -openpyxl.cell.text.PhoneticProperties.__init__ -openpyxl.cell.text.PhoneticText.__init__ -openpyxl.styles.colors.RgbColor.__init__ -openpyxl.styles.named_styles._NamedCellStyle.__init__ -openpyxl.styles.numbers.NumberFormat.__init__ -openpyxl.workbook.defined_name.DefinedName.__init__ - # Type vs class stubtest issue openpyxl.chart.descriptors.NumberFormatDescriptor.expected_type @@ -42,11 +32,13 @@ openpyxl\.descriptors\.(base\.)?MinMax\.allow_none openpyxl\.descriptors\.(base\.)?String\.allow_none openpyxl\.descriptors\.(base\.)?Typed\.allow_none -# "has a default value but stub argument does not" -# Runtime has default arguments that would fail - +# Inconsistent __init__ because +# - using the default value results in an error because of the runtime type-guards +# - or, keyword arguments are explicitly specified +openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ +openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.chartspace.ChartSpace.__init__ openpyxl.chart.chartspace.ExternalData.__init__ openpyxl.chart.data_source.NumFmt.__init__ @@ -153,11 +145,15 @@ openpyxl.pivot.table.PivotFilter.__init__ openpyxl.pivot.table.PivotFilters.__init__ openpyxl.pivot.table.RowColField.__init__ openpyxl.pivot.table.TableDefinition.__init__ +openpyxl.styles.colors.RgbColor.__init__ +openpyxl.styles.named_styles._NamedCellStyle.__init__ openpyxl.styles.named_styles._NamedCellStyle.__init__ openpyxl.styles.numbers.NumberFormat.__init__ +openpyxl.styles.numbers.NumberFormat.__init__ openpyxl.styles.table.TableStyle.__init__ openpyxl.styles.table.TableStyleElement.__init__ openpyxl.workbook.defined_name.DefinedName.__init__ +openpyxl.workbook.defined_name.DefinedName.__init__ openpyxl.workbook.external_link.external.ExternalCell.__init__ openpyxl.workbook.external_link.external.ExternalDefinedName.__init__ openpyxl.workbook.external_link.external.ExternalRow.__init__ From 93c9bfce314cac1b46d64cf13df5ec499aa8f70f Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 10 May 2023 13:58:38 -0400 Subject: [PATCH 23/51] . --- stubs/openpyxl/openpyxl/styles/borders.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/openpyxl/openpyxl/styles/borders.pyi b/stubs/openpyxl/openpyxl/styles/borders.pyi index d60e365887e6..f7360d1532b3 100644 --- a/stubs/openpyxl/openpyxl/styles/borders.pyi +++ b/stubs/openpyxl/openpyxl/styles/borders.pyi @@ -38,7 +38,7 @@ _SideStyle: TypeAlias = Literal[ ] class Side(Serialisable): - __fields__: tuple[str, ...] + __fields__: ClassVar[tuple[str, ...]] color: Incomplete style: NoneSet[_SideStyle] border_style: Alias From ff8e7047e9c2cd17c90abc5d048151fab3d8240e Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 12 Jun 2023 15:36:02 -0400 Subject: [PATCH 24/51] Type openpyxl incomplete dunders --- stubs/openpyxl/openpyxl/descriptors/base.pyi | 2 +- stubs/openpyxl/openpyxl/styles/alignment.pyi | 3 ++- stubs/openpyxl/openpyxl/styles/borders.pyi | 4 ++-- stubs/openpyxl/openpyxl/worksheet/_read_only.pyi | 5 +++-- stubs/openpyxl/openpyxl/worksheet/cell_range.pyi | 8 ++++---- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/stubs/openpyxl/openpyxl/descriptors/base.pyi b/stubs/openpyxl/openpyxl/descriptors/base.pyi index 37f59fed26cc..049d2904665e 100644 --- a/stubs/openpyxl/openpyxl/descriptors/base.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/base.pyi @@ -33,7 +33,7 @@ class Typed(Descriptor[_T], Generic[_T, _N]): expected_type: type[_T] allow_none: _N nested: bool - __doc__: Incomplete + __doc__: str @overload def __init__( diff --git a/stubs/openpyxl/openpyxl/styles/alignment.pyi b/stubs/openpyxl/openpyxl/styles/alignment.pyi index d38c39286bdd..9054f336dc69 100644 --- a/stubs/openpyxl/openpyxl/styles/alignment.pyi +++ b/stubs/openpyxl/openpyxl/styles/alignment.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Alias, Bool, Min, MinMax, NoneSet, _ConvertibleToBool, _ConvertibleToFloat @@ -14,7 +15,7 @@ vertical_aligments: tuple[_VerticalAlignmentsType, ...] class Alignment(Serialisable): tagname: str - __fields__: Incomplete + __fields__: ClassVar[tuple[str, ...]] horizontal: NoneSet[_HorizontalAlignmentsType] vertical: NoneSet[_VerticalAlignmentsType] textRotation: NoneSet[int] diff --git a/stubs/openpyxl/openpyxl/styles/borders.pyi b/stubs/openpyxl/openpyxl/styles/borders.pyi index f11117c9cd0f..53ad8a5dce0c 100644 --- a/stubs/openpyxl/openpyxl/styles/borders.pyi +++ b/stubs/openpyxl/openpyxl/styles/borders.pyi @@ -37,7 +37,7 @@ BORDER_THICK: str BORDER_THIN: str class Side(Serialisable): - __fields__: Incomplete + __fields__: ClassVar[tuple[str, ...]] color: Incomplete style: NoneSet[_SideStyle] border_style: Alias @@ -50,7 +50,7 @@ class Side(Serialisable): class Border(Serialisable): tagname: str - __fields__: Incomplete + __fields__: ClassVar[tuple[str, ...]] __elements__: ClassVar[tuple[str, ...]] start: Typed[Side, Literal[True]] end: Typed[Side, Literal[True]] diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index e976e94aced0..ca71f69eb51e 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete +from openpyxl.worksheet.worksheet import Worksheet def read_dimension(source): ... @@ -9,8 +10,8 @@ class ReadOnlyWorksheet: def values(self): ... @property def rows(self): ... - __getitem__: Incomplete - __iter__: Incomplete + __getitem__ = Worksheet.__getitem__ + __iter__ = Worksheet.__iter__ parent: Incomplete title: Incomplete sheet_state: str diff --git a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi index c244ba5e8182..1c6e0f61d1c3 100644 --- a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi @@ -50,17 +50,17 @@ class CellRange(Serialisable): def __ne__(self, other): ... def __eq__(self, other): ... def issubset(self, other): ... - __le__: Incomplete + __le__ = issubset def __lt__(self, other): ... def issuperset(self, other): ... - __ge__: Incomplete + __ge__ = issuperset def __contains__(self, coord): ... def __gt__(self, other): ... def isdisjoint(self, other): ... def intersection(self, other): ... - __and__: Incomplete + __and__ = intersection def union(self, other): ... - __or__: Incomplete + __or__ = union def __iter__(self): ... def expand(self, right: int = 0, down: int = 0, left: int = 0, up: int = 0) -> None: ... def shrink(self, right: int = 0, bottom: int = 0, left: int = 0, top: int = 0) -> None: ... From ac138f81080c780ecda15b3e0c2451dc0eb4fb89 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 19:39:31 +0000 Subject: [PATCH 25/51] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/openpyxl/openpyxl/worksheet/_read_only.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index ca71f69eb51e..7814b5be237a 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -1,4 +1,5 @@ from _typeshed import Incomplete + from openpyxl.worksheet.worksheet import Worksheet def read_dimension(source): ... From 031592cf4bada9b5836349992ee09bebf60ee34d Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 12 Jun 2023 15:51:08 -0400 Subject: [PATCH 26/51] Remove redundant suppressions --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 8 -------- stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index c3815c2d1da2..70c120bbfe26 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -8,9 +8,6 @@ openpyxl.xml.functions.xmlfile # Requires numpy to be installed openpyxl.utils.dataframe -# Type vs class stubtest issue -openpyxl.chart.descriptors.NumberFormatDescriptor.expected_type - # Fake getters openpyxl\.descriptors\..*\.__get__ @@ -36,8 +33,6 @@ openpyxl\.descriptors\.(base\.)?Typed\.allow_none # - using the default value results in an error because of the runtime type-guards # - or, keyword arguments are explicitly specified openpyxl.cell.text.PhoneticProperties.__init__ -openpyxl.cell.text.PhoneticProperties.__init__ -openpyxl.cell.text.PhoneticText.__init__ openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.axis._BaseAxis.__init__ openpyxl.chart.chartspace.ChartSpace.__init__ @@ -150,13 +145,10 @@ openpyxl.pivot.table.RowColField.__init__ openpyxl.pivot.table.TableDefinition.__init__ openpyxl.styles.colors.RgbColor.__init__ openpyxl.styles.named_styles._NamedCellStyle.__init__ -openpyxl.styles.named_styles._NamedCellStyle.__init__ -openpyxl.styles.numbers.NumberFormat.__init__ openpyxl.styles.numbers.NumberFormat.__init__ openpyxl.styles.table.TableStyle.__init__ openpyxl.styles.table.TableStyleElement.__init__ openpyxl.workbook.defined_name.DefinedName.__init__ -openpyxl.workbook.defined_name.DefinedName.__init__ openpyxl.workbook.external_link.external.ExternalCell.__init__ openpyxl.workbook.external_link.external.ExternalDefinedName.__init__ openpyxl.workbook.external_link.external.ExternalRow.__init__ diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index 00408db8f390..fa5dfa834f6f 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -33,7 +33,7 @@ class Chartsheet(_WorkbookChild, Serialisable): extLst: Typed[ExtensionList, Literal[True]] sheet_state: Set[_VisibilityType] headerFooter: Typed[_HeaderFooter, Literal[False]] - HeaderFooter: Alias # type: ignore[assignment] + HeaderFooter: Alias __elements__: ClassVar[tuple[str, ...]] __attrs__: ClassVar[tuple[str, ...]] def __init__( From ce181aaa41db04d435e4cbc5cf0e60cab6dfbbcb Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 23 Jul 2023 13:11:59 -0400 Subject: [PATCH 27/51] _SerialisableTreeElement --- stubs/openpyxl/openpyxl/chart/axis.pyi | 5 ++--- stubs/openpyxl/openpyxl/chart/plotarea.pyi | 4 ++-- .../openpyxl/openpyxl/descriptors/serialisable.pyi | 13 +++++++++---- stubs/openpyxl/openpyxl/styles/fills.pyi | 4 ++-- stubs/openpyxl/openpyxl/styles/fonts.pyi | 5 ++--- stubs/openpyxl/openpyxl/styles/stylesheet.pyi | 4 ++-- stubs/openpyxl/openpyxl/workbook/protection.pyi | 4 ++-- stubs/openpyxl/openpyxl/worksheet/page.pyi | 4 ++-- stubs/openpyxl/openpyxl/worksheet/table.pyi | 4 ++-- 9 files changed, 25 insertions(+), 22 deletions(-) diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index 16dbb322d295..134b1885a1d7 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -16,8 +16,7 @@ from openpyxl.descriptors.nested import ( NestedSet, _NestedNoneSetParam, ) -from openpyxl.descriptors.serialisable import Serialisable -from openpyxl.xml.functions import Element +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement from ..xml._functions_overloads import _HasTagAndGet @@ -197,7 +196,7 @@ class NumericAxis(_BaseAxis): **kw, ) -> None: ... @classmethod - def from_tree(cls, node: Element) -> Self: ... + def from_tree(cls, node: _SerialisableTreeElement) -> Self: ... class TextAxis(_BaseAxis): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/chart/plotarea.pyi b/stubs/openpyxl/openpyxl/chart/plotarea.pyi index caaa62a0d61b..a07caa6eea1f 100644 --- a/stubs/openpyxl/openpyxl/chart/plotarea.pyi +++ b/stubs/openpyxl/openpyxl/chart/plotarea.pyi @@ -8,7 +8,7 @@ from openpyxl.chart.text import RichText from openpyxl.descriptors.base import Alias, Typed, _ConvertibleToBool from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.nested import NestedBool -from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement from ..xml._functions_overloads import _HasTagAndGet @@ -73,4 +73,4 @@ class PlotArea(Serialisable): ) -> None: ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls, node: _SerialisableTreeElement): ... diff --git a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi index d2ecf72e0081..6d45faf13b06 100644 --- a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi @@ -1,10 +1,13 @@ -from _typeshed import Incomplete -from typing import Any, ClassVar, NoReturn +from _typeshed import Incomplete, SupportsIter +from typing import Any, ClassVar, NoReturn, Protocol from typing_extensions import Final from openpyxl.descriptors import MetaSerialisable -from ..xml._functions_overloads import _HasTagAndTextAndAttrib +from ..xml._functions_overloads import _HasTagAndGet, _HasTagAndTextAndAttrib + +class _SerialisableTreeElement(_HasTagAndGet[Incomplete], _HasTagAndTextAndAttrib, SupportsIter[Incomplete], Protocol): + def find(self, __path: str) -> Incomplete | None: ... KEYWORDS: Final[frozenset[str]] seq_types: Final[tuple[type[list[Any]], type[tuple[Any, ...]]]] @@ -20,8 +23,10 @@ class Serialisable(metaclass=MetaSerialisable): @property def tagname(self) -> str | NoReturn: ... namespace: ClassVar[str | None] + # Note: To respect the Liskov substitution principle, the protocol for node includes all child class requirements + # See comment in xml/functions.pyi as to why use a protocol instead of Element @classmethod - def from_tree(cls, node: _HasTagAndTextAndAttrib): ... + def from_tree(cls, node: _SerialisableTreeElement): ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... def __iter__(self): ... def __eq__(self, other): ... diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index adc74a53add1..24af1087c7a9 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -5,7 +5,7 @@ from typing_extensions import Final, Literal, Self, TypeAlias from openpyxl.descriptors import Sequence, Strict from openpyxl.descriptors.base import Alias, Float, MinMax, NoneSet, Set, _ConvertibleToFloat -from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement from openpyxl.xml.functions import Element from .colors import Color @@ -56,7 +56,7 @@ fills: Final[tuple[_FillsType, ...]] class Fill(Serialisable): tagname: ClassVar[str] @classmethod - def from_tree(cls, el: Element) -> Self: ... + def from_tree(cls, el: _SerialisableTreeElement) -> Self: ... class PatternFill(Fill): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index 183fc438eba7..505b0d589f53 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -12,8 +12,7 @@ from openpyxl.descriptors.nested import ( NestedString, _NestedNoneSetParam, ) -from openpyxl.descriptors.serialisable import Serialisable -from openpyxl.xml.functions import Element +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement from ..xml._functions_overloads import _HasTagAndGet from .colors import Color @@ -73,6 +72,6 @@ class Font(Serialisable): extend: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, ) -> None: ... @classmethod - def from_tree(cls, node: Element) -> Self: ... + def from_tree(cls, node: _SerialisableTreeElement) -> Self: ... DEFAULT_FONT: Final[Font] diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index 1d7b2fe266b3..c5b3edf095ee 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -4,7 +4,7 @@ from typing_extensions import Literal from openpyxl.descriptors.base import Typed from openpyxl.descriptors.excel import ExtensionList -from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement from openpyxl.styles.cell_style import CellStyleList from openpyxl.styles.colors import ColorList from openpyxl.styles.named_styles import _NamedCellStyleList @@ -45,7 +45,7 @@ class Stylesheet(Serialisable): extLst: Unused = None, ) -> None: ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls, node: _SerialisableTreeElement): ... @property def custom_formats(self): ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... diff --git a/stubs/openpyxl/openpyxl/workbook/protection.pyi b/stubs/openpyxl/openpyxl/workbook/protection.pyi index 1b4c732b18d3..e93caa47752b 100644 --- a/stubs/openpyxl/openpyxl/workbook/protection.pyi +++ b/stubs/openpyxl/openpyxl/workbook/protection.pyi @@ -3,7 +3,7 @@ from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Bool, Integer, String, _ConvertibleToBool, _ConvertibleToInt -from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement class WorkbookProtection(Serialisable): tagname: ClassVar[str] @@ -55,7 +55,7 @@ class WorkbookProtection(Serialisable): @revisionsPassword.setter def revisionsPassword(self, value) -> None: ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls, node: _SerialisableTreeElement): ... DocumentSecurity = WorkbookProtection diff --git a/stubs/openpyxl/openpyxl/worksheet/page.pyi b/stubs/openpyxl/openpyxl/worksheet/page.pyi index 06a96e133408..eff88a0a3271 100644 --- a/stubs/openpyxl/openpyxl/worksheet/page.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/page.pyi @@ -3,7 +3,7 @@ from typing import ClassVar from typing_extensions import Literal, TypeAlias from openpyxl.descriptors.base import Bool, Float, Integer, NoneSet, _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt -from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement _PrintPageSetupOrientation: TypeAlias = Literal["default", "portrait", "landscape"] _PrintPageSetupPageOrder: TypeAlias = Literal["downThenOver", "overThenDown"] @@ -66,7 +66,7 @@ class PrintPageSetup(Serialisable): @autoPageBreaks.setter def autoPageBreaks(self, value) -> None: ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls, node: _SerialisableTreeElement): ... class PrintOptions(Serialisable): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/worksheet/table.pyi b/stubs/openpyxl/openpyxl/worksheet/table.pyi index 51976d6f0c7c..af178df3892c 100644 --- a/stubs/openpyxl/openpyxl/worksheet/table.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/table.pyi @@ -5,7 +5,7 @@ from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors import Strict, String from openpyxl.descriptors.base import Alias, Bool, Integer, NoneSet, Typed, _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.excel import ExtensionList -from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement from openpyxl.worksheet.filters import AutoFilter, SortState _TableColumnTotalsRowFunction: TypeAlias = Literal[ @@ -129,7 +129,7 @@ class TableColumn(Serialisable): ) -> None: ... def __iter__(self): ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls, node: _SerialisableTreeElement): ... class TableNameDescriptor(String[Incomplete]): def __set__(self, instance: Serialisable | Strict, value) -> None: ... From a4fff41de974d374f569eca505d18e879d9172ab Mon Sep 17 00:00:00 2001 From: Avasam Date: Wed, 9 Aug 2023 16:50:20 -0400 Subject: [PATCH 28/51] openpyxl: Class properties set explicitely as another class' --- stubs/openpyxl/openpyxl/cell/text.pyi | 66 +++++---- stubs/openpyxl/openpyxl/chart/area_chart.pyi | 22 +-- stubs/openpyxl/openpyxl/chart/axis.pyi | 132 +++++++++--------- stubs/openpyxl/openpyxl/chart/bar_chart.pyi | 30 ++-- stubs/openpyxl/openpyxl/chart/chartspace.pyi | 20 +-- stubs/openpyxl/openpyxl/chart/label.pyi | 54 +++---- stubs/openpyxl/openpyxl/chart/line_chart.pyi | 22 +-- stubs/openpyxl/openpyxl/chart/pie_chart.pyi | 28 ++-- stubs/openpyxl/openpyxl/chart/series.pyi | 32 +++-- .../openpyxl/openpyxl/chart/surface_chart.pyi | 14 +- stubs/openpyxl/openpyxl/drawing/effect.pyi | 53 +++---- .../openpyxl/drawing/spreadsheet_drawing.pyi | 45 +++--- stubs/openpyxl/openpyxl/drawing/xdr.pyi | 26 ++-- .../openpyxl/worksheet/_read_only.pyi | 6 +- .../openpyxl/worksheet/_write_only.pyi | 41 ++++-- stubs/openpyxl/openpyxl/worksheet/merge.pyi | 1 + .../openpyxl/openpyxl/worksheet/pagebreak.pyi | 9 +- 17 files changed, 328 insertions(+), 273 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index 5aed12bbd863..24a59d2101b2 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -2,10 +2,13 @@ from _typeshed import Incomplete from typing import ClassVar from typing_extensions import Literal, TypeAlias -from openpyxl.descriptors.base import Alias, Integer, NoneSet, Typed, _ConvertibleToInt -from openpyxl.descriptors.nested import NestedString, NestedText +from openpyxl.descriptors.base import Alias, Integer, NoneSet, Typed, _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt +from openpyxl.descriptors.nested import NestedString, NestedText, _NestedNoneSetParam from openpyxl.descriptors.serialisable import Serialisable -from openpyxl.styles.fonts import Font +from openpyxl.styles.colors import Color +from openpyxl.styles.fonts import Font, _FontScheme, _FontU, _FontVertAlign + +from ..xml._functions_overloads import _HasTagAndGet _PhoneticPropertiesType: TypeAlias = Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion"] _PhoneticPropertiesAlignment: TypeAlias = Literal["noControl", "left", "center", "distributed"] @@ -35,38 +38,39 @@ class PhoneticText(Serialisable): class InlineFont(Font): tagname: ClassVar[str] rFont: NestedString[Literal[True]] - charset: Incomplete - family: Incomplete - b: Incomplete - i: Incomplete - strike: Incomplete - outline: Incomplete - shadow: Incomplete - condense: Incomplete - extend: Incomplete - color: Incomplete - sz: Incomplete - u: Incomplete - vertAlign: Incomplete - scheme: Incomplete + # Same as parent + # charset = Font.charset + # family = Font.family + # b = Font.b + # i = Font.i + # strike = Font.strike + # outline = Font.outline + # shadow = Font.shadow + # condense = Font.condense + # extend = Font.extend + # color = Font.color + # sz = Font.sz + # u = Font.u + # vertAlign = Font.vertAlign + # scheme = Font.scheme __elements__: ClassVar[tuple[str, ...]] def __init__( self, rFont: object = None, - charset: Incomplete | None = None, - family: Incomplete | None = None, - b: Incomplete | None = None, - i: Incomplete | None = None, - strike: Incomplete | None = None, - outline: Incomplete | None = None, - shadow: Incomplete | None = None, - condense: Incomplete | None = None, - extend: Incomplete | None = None, - color: Incomplete | None = None, - sz: Incomplete | None = None, - u: Incomplete | None = None, - vertAlign: Incomplete | None = None, - scheme: Incomplete | None = None, + charset: _HasTagAndGet[_ConvertibleToInt | None] | _ConvertibleToInt | None = None, + family: _HasTagAndGet[_ConvertibleToFloat | None] | _ConvertibleToFloat | None = None, + b: _HasTagAndGet[_ConvertibleToBool] | _ConvertibleToBool = None, + i: _HasTagAndGet[_ConvertibleToBool] | _ConvertibleToBool = None, + strike: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, + outline: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, + shadow: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, + condense: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, + extend: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, + color: Color | None = None, + sz: _HasTagAndGet[_ConvertibleToFloat | None] | _ConvertibleToFloat | None = None, + u: _NestedNoneSetParam[_FontU] = None, + vertAlign: _NestedNoneSetParam[_FontVertAlign] = None, + scheme: _NestedNoneSetParam[_FontScheme] = None, ) -> None: ... class RichText(Serialisable): diff --git a/stubs/openpyxl/openpyxl/chart/area_chart.pyi b/stubs/openpyxl/openpyxl/chart/area_chart.pyi index 862739f2d9dc..1842c9011fa3 100644 --- a/stubs/openpyxl/openpyxl/chart/area_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/area_chart.pyi @@ -32,11 +32,12 @@ class _AreaChartBase(ChartBase): class AreaChart(_AreaChartBase): tagname: ClassVar[str] - grouping: Incomplete - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete - dropLines: Incomplete + # Same as parent + # grouping = _AreaChartBase.grouping + # varyColors = _AreaChartBase.varyColors + # ser = _AreaChartBase.ser + # dLbls = _AreaChartBase.dLbls + # dropLines = _AreaChartBase.dropLines x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] extLst: Typed[ExtensionList, Literal[True]] @@ -45,11 +46,12 @@ class AreaChart(_AreaChartBase): class AreaChart3D(AreaChart): tagname: ClassVar[str] - grouping: Incomplete - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete - dropLines: Incomplete + # Same as parent and grandparent + # grouping = _AreaChartBase.grouping + # varyColors = _AreaChartBase.varyColors + # ser = _AreaChartBase.ser + # dLbls = _AreaChartBase.dLbls + # dropLines = _AreaChartBase.dropLines gapDepth: Incomplete x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index 96bdb711cdb7..7f4ae41e0f01 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -164,22 +164,23 @@ class DisplayUnitsLabelList(Serialisable): class NumericAxis(_BaseAxis): tagname: ClassVar[str] - axId: Incomplete - scaling: Incomplete - delete: Incomplete - axPos: Incomplete - majorGridlines: Incomplete - minorGridlines: Incomplete - title: Incomplete - numFmt: Incomplete - majorTickMark: Incomplete - minorTickMark: Incomplete - tickLblPos: Incomplete - spPr: Incomplete - txPr: Incomplete - crossAx: Incomplete - crosses: Incomplete - crossesAt: Incomplete + # Same as parent + # axId = _BaseAxis.axId + # scaling = _BaseAxis.scaling + # delete = _BaseAxis.delete + # axPos = _BaseAxis.axPos + # majorGridlines = _BaseAxis.majorGridlines + # minorGridlines = _BaseAxis.minorGridlines + # title = _BaseAxis.title + # numFmt = _BaseAxis.numFmt + # majorTickMark = _BaseAxis.majorTickMark + # minorTickMark = _BaseAxis.minorTickMark + # tickLblPos = _BaseAxis.tickLblPos + # spPr = _BaseAxis.spPr + # txPr = _BaseAxis.txPr + # crossAx = _BaseAxis.crossAx + # crosses = _BaseAxis.crosses + # crossesAt = _BaseAxis.crossesAt crossBetween: NestedNoneSet[_NumericAxisCrossBetween] majorUnit: NestedFloat[Literal[True]] minorUnit: NestedFloat[Literal[True]] @@ -200,22 +201,23 @@ class NumericAxis(_BaseAxis): class TextAxis(_BaseAxis): tagname: ClassVar[str] - axId: Incomplete - scaling: Incomplete - delete: Incomplete - axPos: Incomplete - majorGridlines: Incomplete - minorGridlines: Incomplete - title: Incomplete - numFmt: Incomplete - majorTickMark: Incomplete - minorTickMark: Incomplete - tickLblPos: Incomplete - spPr: Incomplete - txPr: Incomplete - crossAx: Incomplete - crosses: Incomplete - crossesAt: Incomplete + # Same as parent + # axId = _BaseAxis.axId + # scaling = _BaseAxis.scaling + # delete = _BaseAxis.delete + # axPos = _BaseAxis.axPos + # majorGridlines = _BaseAxis.majorGridlines + # minorGridlines = _BaseAxis.minorGridlines + # title = _BaseAxis.title + # numFmt = _BaseAxis.numFmt + # majorTickMark = _BaseAxis.majorTickMark + # minorTickMark = _BaseAxis.minorTickMark + # tickLblPos = _BaseAxis.tickLblPos + # spPr = _BaseAxis.spPr + # txPr = _BaseAxis.txPr + # crossAx = _BaseAxis.crossAx + # crosses = _BaseAxis.crosses + # crossesAt = _BaseAxis.crossesAt auto: NestedBool[Literal[True]] lblAlgn: NestedNoneSet[_TextAxisLblAlgn] lblOffset: NestedMinMax[float, Literal[False]] @@ -238,22 +240,23 @@ class TextAxis(_BaseAxis): class DateAxis(TextAxis): tagname: ClassVar[str] - axId: Incomplete - scaling: Incomplete - delete: Incomplete - axPos: Incomplete - majorGridlines: Incomplete - minorGridlines: Incomplete - title: Incomplete - numFmt: Incomplete - majorTickMark: Incomplete - minorTickMark: Incomplete - tickLblPos: Incomplete - spPr: Incomplete - txPr: Incomplete - crossAx: Incomplete - crosses: Incomplete - crossesAt: Incomplete + # Same as parent and grandparent + # axId = _BaseAxis.axId + # scaling = _BaseAxis.scaling + # delete = _BaseAxis.delete + # axPos = _BaseAxis.axPos + # majorGridlines = _BaseAxis.majorGridlines + # minorGridlines = _BaseAxis.minorGridlines + # title = _BaseAxis.title + # numFmt = _BaseAxis.numFmt + # majorTickMark = _BaseAxis.majorTickMark + # minorTickMark = _BaseAxis.minorTickMark + # tickLblPos = _BaseAxis.tickLblPos + # spPr = _BaseAxis.spPr + # txPr = _BaseAxis.txPr + # crossAx = _BaseAxis.crossAx + # crosses = _BaseAxis.crosses + # crossesAt = _BaseAxis.crossesAt auto: NestedBool[Literal[True]] lblOffset: NestedInteger[Literal[True]] # type: ignore[assignment] baseTimeUnit: NestedNoneSet[_DateAxisTimeUnit] @@ -278,22 +281,23 @@ class DateAxis(TextAxis): class SeriesAxis(_BaseAxis): tagname: ClassVar[str] - axId: Incomplete - scaling: Incomplete - delete: Incomplete - axPos: Incomplete - majorGridlines: Incomplete - minorGridlines: Incomplete - title: Incomplete - numFmt: Incomplete - majorTickMark: Incomplete - minorTickMark: Incomplete - tickLblPos: Incomplete - spPr: Incomplete - txPr: Incomplete - crossAx: Incomplete - crosses: Incomplete - crossesAt: Incomplete + # Same as parent + # axId = _BaseAxis.axId + # scaling = _BaseAxis.scaling + # delete = _BaseAxis.delete + # axPos = _BaseAxis.axPos + # majorGridlines = _BaseAxis.majorGridlines + # minorGridlines = _BaseAxis.minorGridlines + # title = _BaseAxis.title + # numFmt = _BaseAxis.numFmt + # majorTickMark = _BaseAxis.majorTickMark + # minorTickMark = _BaseAxis.minorTickMark + # tickLblPos = _BaseAxis.tickLblPos + # spPr = _BaseAxis.spPr + # txPr = _BaseAxis.txPr + # crossAx = _BaseAxis.crossAx + # crosses = _BaseAxis.crosses + # crossesAt = _BaseAxis.crossesAt tickLblSkip: NestedInteger[Literal[True]] tickMarkSkip: NestedInteger[Literal[True]] extLst: Typed[ExtensionList, Literal[True]] diff --git a/stubs/openpyxl/openpyxl/chart/bar_chart.pyi b/stubs/openpyxl/openpyxl/chart/bar_chart.pyi index 416d58031c29..9663fbd089c4 100644 --- a/stubs/openpyxl/openpyxl/chart/bar_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/bar_chart.pyi @@ -37,11 +37,12 @@ class _BarChartBase(ChartBase): class BarChart(_BarChartBase): tagname: ClassVar[str] - barDir: Incomplete - grouping: Incomplete - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete + # Same as parent + # barDir = _BarChartBase.barDir + # grouping = _BarChartBase.grouping + # varyColors = _BarChartBase.varyColors + # ser = _BarChartBase.ser + # dLbls = _BarChartBase.dLbls gapWidth: Incomplete overlap: Incomplete serLines: Typed[ChartLines, Literal[True]] @@ -61,15 +62,16 @@ class BarChart(_BarChartBase): class BarChart3D(_BarChartBase, _3DBase): tagname: ClassVar[str] - barDir: Incomplete - grouping: Incomplete - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete - view3D: Incomplete - floor: Incomplete - sideWall: Incomplete - backWall: Incomplete + # Same as parents + # barDir = _BarChartBase.barDir + # grouping = _BarChartBase.grouping + # varyColors = _BarChartBase.varyColors + # ser = _BarChartBase.ser + # dLbls = _BarChartBase.dLbls + # view3D = _3DBase.view3D + # floor = _3DBase.floor + # sideWall = _3DBase.sideWall + # backWall = _3DBase.backWall gapWidth: Incomplete gapDepth: Incomplete shape: NestedNoneSet[_BarChart3DShape] diff --git a/stubs/openpyxl/openpyxl/chart/chartspace.pyi b/stubs/openpyxl/openpyxl/chart/chartspace.pyi index 1d8505dcee3a..a3b5a025598d 100644 --- a/stubs/openpyxl/openpyxl/chart/chartspace.pyi +++ b/stubs/openpyxl/openpyxl/chart/chartspace.pyi @@ -2,6 +2,7 @@ from _typeshed import Incomplete, Unused from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias +from openpyxl.chart._3d import Surface, View3D from openpyxl.chart.legend import Legend from openpyxl.chart.pivot import PivotSource from openpyxl.chart.plotarea import PlotArea @@ -24,10 +25,13 @@ class ChartContainer(Serialisable): title: Typed[Title, Literal[True]] autoTitleDeleted: NestedBool[Literal[True]] pivotFmts: Incomplete - view3D: Incomplete - floor: Incomplete - sideWall: Incomplete - backWall: Incomplete + + # Same as _3DBase + view3D: Typed[View3D, Literal[True]] + floor: Typed[Surface, Literal[True]] + sideWall: Typed[Surface, Literal[True]] + backWall: Typed[Surface, Literal[True]] + plotArea: Typed[PlotArea, Literal[False]] legend: Typed[Legend, Literal[True]] plotVisOnly: NestedBool[Literal[False]] @@ -40,10 +44,10 @@ class ChartContainer(Serialisable): title: Title | None = None, autoTitleDeleted: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, pivotFmts=(), - view3D: Incomplete | None = None, - floor: Incomplete | None = None, - sideWall: Incomplete | None = None, - backWall: Incomplete | None = None, + view3D: View3D | None = None, + floor: Surface | None = None, + sideWall: Surface | None = None, + backWall: Surface | None = None, plotArea: PlotArea | None = None, legend: Legend | None = None, plotVisOnly: _HasTagAndGet[_ConvertibleToBool] | _ConvertibleToBool = True, diff --git a/stubs/openpyxl/openpyxl/chart/label.pyi b/stubs/openpyxl/openpyxl/chart/label.pyi index 492be13e5a50..de3cfd45f673 100644 --- a/stubs/openpyxl/openpyxl/chart/label.pyi +++ b/stubs/openpyxl/openpyxl/chart/label.pyi @@ -51,19 +51,20 @@ class _DataLabelBase(Serialisable): class DataLabel(_DataLabelBase): tagname: ClassVar[str] idx: NestedInteger[Literal[False]] - numFmt: Incomplete - spPr: Incomplete - txPr: Incomplete - dLblPos: Incomplete - showLegendKey: Incomplete - showVal: Incomplete - showCatName: Incomplete - showSerName: Incomplete - showPercent: Incomplete - showBubbleSize: Incomplete - showLeaderLines: Incomplete - separator: Incomplete - extLst: Incomplete + # Same as parent + # numFmt = _DataLabelBase.numFmt + # spPr = _DataLabelBase.spPr + # txPr = _DataLabelBase.txPr + # dLblPos = _DataLabelBase.dLblPos + # showLegendKey = _DataLabelBase.showLegendKey + # showVal = _DataLabelBase.showVal + # showCatName = _DataLabelBase.showCatName + # showSerName = _DataLabelBase.showSerName + # showPercent = _DataLabelBase.showPercent + # showBubbleSize = _DataLabelBase.showBubbleSize + # showLeaderLines = _DataLabelBase.showLeaderLines + # separator = _DataLabelBase.separator + # extLst = _DataLabelBase.extLst __elements__: ClassVar[tuple[str, ...]] def __init__(self, idx: _HasTagAndGet[_ConvertibleToInt] | _ConvertibleToInt = 0, **kw) -> None: ... @@ -71,19 +72,20 @@ class DataLabelList(_DataLabelBase): tagname: ClassVar[str] dLbl: Incomplete delete: NestedBool[Literal[True]] - numFmt: Incomplete - spPr: Incomplete - txPr: Incomplete - dLblPos: Incomplete - showLegendKey: Incomplete - showVal: Incomplete - showCatName: Incomplete - showSerName: Incomplete - showPercent: Incomplete - showBubbleSize: Incomplete - showLeaderLines: Incomplete - separator: Incomplete - extLst: Incomplete + # Same as parent + # numFmt = _DataLabelBase.numFmt + # spPr = _DataLabelBase.spPr + # txPr = _DataLabelBase.txPr + # dLblPos = _DataLabelBase.dLblPos + # showLegendKey = _DataLabelBase.showLegendKey + # showVal = _DataLabelBase.showVal + # showCatName = _DataLabelBase.showCatName + # showSerName = _DataLabelBase.showSerName + # showPercent = _DataLabelBase.showPercent + # showBubbleSize = _DataLabelBase.showBubbleSize + # showLeaderLines = _DataLabelBase.showLeaderLines + # separator = _DataLabelBase.separator + # extLst = _DataLabelBase.extLst __elements__: ClassVar[tuple[str, ...]] def __init__( self, dLbl=(), delete: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, **kw diff --git a/stubs/openpyxl/openpyxl/chart/line_chart.pyi b/stubs/openpyxl/openpyxl/chart/line_chart.pyi index 0e45dd0a4bbd..ee5efbb39efc 100644 --- a/stubs/openpyxl/openpyxl/chart/line_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/line_chart.pyi @@ -34,11 +34,12 @@ class _LineChartBase(ChartBase): class LineChart(_LineChartBase): tagname: ClassVar[str] - grouping: Incomplete - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete - dropLines: Incomplete + # Same as parent + # grouping = _LineChartBase.grouping + # varyColors = _LineChartBase.varyColors + # ser = _LineChartBase.ser + # dLbls = _LineChartBase.dLbls + # dropLines = _LineChartBase.dropLines hiLowLines: Typed[ChartLines, Literal[True]] upDownBars: Typed[UpDownBars, Literal[True]] marker: NestedBool[Literal[True]] @@ -59,11 +60,12 @@ class LineChart(_LineChartBase): class LineChart3D(_LineChartBase): tagname: ClassVar[str] - grouping: Incomplete - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete - dropLines: Incomplete + # Same as parent + # grouping = _LineChartBase.grouping + # varyColors = _LineChartBase.varyColors + # ser = _LineChartBase.ser + # dLbls = _LineChartBase.dLbls + # dropLines = _LineChartBase.dropLines gapDepth: Incomplete hiLowLines: Typed[ChartLines, Literal[True]] upDownBars: Typed[UpDownBars, Literal[True]] diff --git a/stubs/openpyxl/openpyxl/chart/pie_chart.pyi b/stubs/openpyxl/openpyxl/chart/pie_chart.pyi index dedc0f82622d..9c47276df9ba 100644 --- a/stubs/openpyxl/openpyxl/chart/pie_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/pie_chart.pyi @@ -30,9 +30,10 @@ class _PieChartBase(ChartBase): class PieChart(_PieChartBase): tagname: ClassVar[str] - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete + # Same as parent + # varyColors = _PieChartBase.varyColors + # ser = _PieChartBase.ser + # dLbls = _PieChartBase.dLbls firstSliceAng: NestedMinMax[float, Literal[False]] extLst: Typed[ExtensionList, Literal[True]] __elements__: ClassVar[tuple[str, ...]] @@ -42,17 +43,19 @@ class PieChart(_PieChartBase): class PieChart3D(_PieChartBase): tagname: ClassVar[str] - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete + # Same as parent + # varyColors = _PieChartBase.varyColors + # ser = _PieChartBase.ser + # dLbls = _PieChartBase.dLbls extLst: Typed[ExtensionList, Literal[True]] __elements__: ClassVar[tuple[str, ...]] class DoughnutChart(_PieChartBase): tagname: ClassVar[str] - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete + # Same as parent + # varyColors = _PieChartBase.varyColors + # ser = _PieChartBase.ser + # dLbls = _PieChartBase.dLbls firstSliceAng: NestedMinMax[float, Literal[False]] holeSize: NestedMinMax[float, Literal[True]] extLst: Typed[ExtensionList, Literal[True]] @@ -73,9 +76,10 @@ class CustomSplit(Serialisable): class ProjectedPieChart(_PieChartBase): tagname: ClassVar[str] - varyColors: Incomplete - ser: Incomplete - dLbls: Incomplete + # Same as parent + # varyColors = _PieChartBase.varyColors + # ser = _PieChartBase.ser + # dLbls = _PieChartBase.dLbls ofPieType: NestedSet[_ProjectedPieChartOfPieType] type: Alias gapWidth: Incomplete diff --git a/stubs/openpyxl/openpyxl/chart/series.pyi b/stubs/openpyxl/openpyxl/chart/series.pyi index 1e26d34ba5a6..d81a6e398003 100644 --- a/stubs/openpyxl/openpyxl/chart/series.pyi +++ b/stubs/openpyxl/openpyxl/chart/series.pyi @@ -85,18 +85,20 @@ class Series(Serialisable): def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None): ... # type: ignore[override] class XYSeries(Series): - idx: Incomplete - order: Incomplete - tx: Incomplete - spPr: Incomplete - dPt: Incomplete - dLbls: Incomplete - trendline: Incomplete - errBars: Incomplete - xVal: Incomplete - yVal: Incomplete - invertIfNegative: Incomplete - bubbleSize: Incomplete - bubble3D: Incomplete - marker: Incomplete - smooth: Incomplete + # Same as parent + # idx = Series.idx + # order = Series.order + # tx = Series.tx + # spPr = Series.spPr + # dPt = Series.dPt + # dLbls = Series.dLbls + # trendline = Series.trendline + # errBars = Series.errBars + # xVal = Series.xVal + # yVal = Series.yVal + # invertIfNegative = Series.invertIfNegative + # bubbleSize = Series.bubbleSize + # bubble3D = Series.bubble3D + # marker = Series.marker + # smooth = Series.smooth + ... diff --git a/stubs/openpyxl/openpyxl/chart/surface_chart.pyi b/stubs/openpyxl/openpyxl/chart/surface_chart.pyi index 8653f0033e0f..a3189d0f7b69 100644 --- a/stubs/openpyxl/openpyxl/chart/surface_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/surface_chart.pyi @@ -44,9 +44,10 @@ class _SurfaceChartBase(ChartBase): class SurfaceChart3D(_SurfaceChartBase, _3DBase): tagname: ClassVar[str] - wireframe: Incomplete - ser: Incomplete - bandFmts: Incomplete + # Same as parent + # wireframe = _SurfaceChartBase.wireframe + # ser = _SurfaceChartBase.ser + # bandFmts = _SurfaceChartBase.bandFmts extLst: Typed[ExtensionList, Literal[True]] x_axis: Typed[TextAxis, Literal[False]] y_axis: Typed[NumericAxis, Literal[False]] @@ -56,9 +57,10 @@ class SurfaceChart3D(_SurfaceChartBase, _3DBase): class SurfaceChart(SurfaceChart3D): tagname: ClassVar[str] - wireframe: Incomplete - ser: Incomplete - bandFmts: Incomplete + # Same as parent and grandparent + # wireframe = _SurfaceChartBase.wireframe + # ser = _SurfaceChartBase.ser + # bandFmts = _SurfaceChartBase.bandFmts extLst: Typed[ExtensionList, Literal[True]] __elements__: ClassVar[tuple[str, ...]] def __init__(self, **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/effect.pyi b/stubs/openpyxl/openpyxl/drawing/effect.pyi index 98cd790bff8f..9ce30a634b57 100644 --- a/stubs/openpyxl/openpyxl/drawing/effect.pyi +++ b/stubs/openpyxl/openpyxl/drawing/effect.pyi @@ -1,4 +1,3 @@ -from _typeshed import Incomplete from typing import ClassVar, overload from typing_extensions import Literal, TypeAlias @@ -117,12 +116,13 @@ class AlphaBiLevelEffect(Serialisable): class GlowEffect(ColorChoice): rad: Float[Literal[False]] - scrgbClr: Incomplete - srgbClr: Incomplete - hslClr: Incomplete - sysClr: Incomplete - schemeClr: Incomplete - prstClr: Incomplete + # Same as parent + # scrgbClr = ColorChoice.scrgbClr + # srgbClr = ColorChoice.srgbClr + # hslClr = ColorChoice.hslClr + # sysClr = ColorChoice.sysClr + # schemeClr = ColorChoice.schemeClr + # prstClr = ColorChoice.prstClr __elements__: ClassVar[tuple[str, ...]] def __init__(self, rad: _ConvertibleToFloat, **kw) -> None: ... @@ -130,12 +130,13 @@ class InnerShadowEffect(ColorChoice): blurRad: Float[Literal[False]] dist: Float[Literal[False]] dir: Integer[Literal[False]] - scrgbClr: Incomplete - srgbClr: Incomplete - hslClr: Incomplete - sysClr: Incomplete - schemeClr: Incomplete - prstClr: Incomplete + # Same as parent + # scrgbClr = ColorChoice.scrgbClr + # srgbClr = ColorChoice.srgbClr + # hslClr = ColorChoice.hslClr + # sysClr = ColorChoice.sysClr + # schemeClr = ColorChoice.schemeClr + # prstClr = ColorChoice.prstClr __elements__: ClassVar[tuple[str, ...]] def __init__(self, blurRad: _ConvertibleToFloat, dist: _ConvertibleToFloat, dir: _ConvertibleToInt, **kw) -> None: ... @@ -150,12 +151,13 @@ class OuterShadow(ColorChoice): ky: Integer[Literal[True]] algn: Set[_Algn] rotWithShape: Bool[Literal[True]] - scrgbClr: Incomplete - srgbClr: Incomplete - hslClr: Incomplete - sysClr: Incomplete - schemeClr: Incomplete - prstClr: Incomplete + # Same as parent + # scrgbClr = ColorChoice.scrgbClr + # srgbClr = ColorChoice.srgbClr + # hslClr = ColorChoice.hslClr + # sysClr = ColorChoice.sysClr + # schemeClr = ColorChoice.schemeClr + # prstClr = ColorChoice.prstClr __elements__: ClassVar[tuple[str, ...]] @overload def __init__( @@ -191,12 +193,13 @@ class PresetShadowEffect(ColorChoice): prst: Set[_PresetShadowEffectPrst] dist: Float[Literal[False]] dir: Integer[Literal[False]] - scrgbClr: Incomplete - srgbClr: Incomplete - hslClr: Incomplete - sysClr: Incomplete - schemeClr: Incomplete - prstClr: Incomplete + # Same as parent + # scrgbClr = ColorChoice.scrgbClr + # srgbClr = ColorChoice.srgbClr + # hslClr = ColorChoice.hslClr + # sysClr = ColorChoice.sysClr + # schemeClr = ColorChoice.schemeClr + # prstClr = ColorChoice.prstClr __elements__: ClassVar[tuple[str, ...]] def __init__(self, prst: _PresetShadowEffectPrst, dist: _ConvertibleToFloat, dir: _ConvertibleToInt, **kw) -> None: ... diff --git a/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi b/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi index 127666b66726..cb0f7762af76 100644 --- a/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi +++ b/stubs/openpyxl/openpyxl/drawing/spreadsheet_drawing.pyi @@ -56,13 +56,14 @@ class AbsoluteAnchor(_AnchorBase): tagname: ClassVar[str] pos: Typed[XDRPoint2D, Literal[False]] ext: Typed[XDRPositiveSize2D, Literal[False]] - sp: Incomplete - grpSp: Incomplete - graphicFrame: Incomplete - cxnSp: Incomplete - pic: Incomplete - contentPart: Incomplete - clientData: Incomplete + # Same as parent + # sp = _AnchorBase.sp + # grpSp = _AnchorBase.grpSp + # graphicFrame = _AnchorBase.graphicFrame + # cxnSp = _AnchorBase.cxnSp + # pic = _AnchorBase.pic + # contentPart = _AnchorBase.contentPart + # clientData = _AnchorBase.clientData __elements__: ClassVar[tuple[str, ...]] def __init__(self, pos: XDRPoint2D | None = None, ext: XDRPositiveSize2D | None = None, **kw) -> None: ... @@ -70,13 +71,14 @@ class OneCellAnchor(_AnchorBase): tagname: ClassVar[str] _from: Typed[AnchorMarker, Literal[False]] # Not private. Avoids name clash ext: Typed[XDRPositiveSize2D, Literal[False]] - sp: Incomplete - grpSp: Incomplete - graphicFrame: Incomplete - cxnSp: Incomplete - pic: Incomplete - contentPart: Incomplete - clientData: Incomplete + # Same as parent + # sp = _AnchorBase.sp + # grpSp = _AnchorBase.grpSp + # graphicFrame = _AnchorBase.graphicFrame + # cxnSp = _AnchorBase.cxnSp + # pic = _AnchorBase.pic + # contentPart = _AnchorBase.contentPart + # clientData = _AnchorBase.clientData __elements__: ClassVar[tuple[str, ...]] def __init__(self, _from: AnchorMarker | None = None, ext: XDRPositiveSize2D | None = None, **kw) -> None: ... @@ -85,13 +87,14 @@ class TwoCellAnchor(_AnchorBase): editAs: NoneSet[_TwoCellAnchorEditAs] _from: Typed[AnchorMarker, Literal[False]] # Not private. Avoids name clash to: Typed[AnchorMarker, Literal[False]] - sp: Incomplete - grpSp: Incomplete - graphicFrame: Incomplete - cxnSp: Incomplete - pic: Incomplete - contentPart: Incomplete - clientData: Incomplete + # Same as parent + # sp = _AnchorBase.sp + # grpSp = _AnchorBase.grpSp + # graphicFrame = _AnchorBase.graphicFrame + # cxnSp = _AnchorBase.cxnSp + # pic = _AnchorBase.pic + # contentPart = _AnchorBase.contentPart + # clientData = _AnchorBase.clientData __elements__: ClassVar[tuple[str, ...]] def __init__( self, diff --git a/stubs/openpyxl/openpyxl/drawing/xdr.pyi b/stubs/openpyxl/openpyxl/drawing/xdr.pyi index fb67f3eda7c8..771f8dec9653 100644 --- a/stubs/openpyxl/openpyxl/drawing/xdr.pyi +++ b/stubs/openpyxl/openpyxl/drawing/xdr.pyi @@ -1,24 +1,26 @@ -from _typeshed import Incomplete from typing import ClassVar from .geometry import Point2D, PositiveSize2D, Transform2D class XDRPoint2D(Point2D): namespace: ClassVar[None] # type:ignore[assignment] - x: Incomplete - y: Incomplete + # Same as parent + # x = Point2D.x + # y = Point2D.y class XDRPositiveSize2D(PositiveSize2D): namespace: ClassVar[None] # type:ignore[assignment] - cx: Incomplete - cy: Incomplete + # Same as parent + # cx = PositiveSize2D.cx + # cy = PositiveSize2D.cy class XDRTransform2D(Transform2D): namespace: ClassVar[None] # type:ignore[assignment] - rot: Incomplete - flipH: Incomplete - flipV: Incomplete - off: Incomplete - ext: Incomplete - chOff: Incomplete - chExt: Incomplete + # Same as parent + # rot = Transform2D.rot + # flipH = Transform2D.flipH + # flipV = Transform2D.flipV + # off = Transform2D.off + # ext = Transform2D.ext + # chOff = Transform2D.chOff + # chExt = Transform2D.chExt diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index 7814b5be237a..b71cacc0521d 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -5,10 +5,12 @@ from openpyxl.worksheet.worksheet import Worksheet def read_dimension(source): ... class ReadOnlyWorksheet: - cell: Incomplete - iter_rows: Incomplete + cell = Worksheet.cell + iter_rows = Worksheet.iter_rows + # Same as Worksheet.values @property def values(self): ... + # Same as Worksheet.rows @property def rows(self): ... __getitem__ = Worksheet.__getitem__ diff --git a/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi index d2c5195e62dd..f6b5d1cdb795 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi @@ -1,20 +1,37 @@ from _typeshed import Incomplete +from collections.abc import Iterable from openpyxl.workbook.child import _WorkbookChild +from openpyxl.worksheet.table import TableList +from openpyxl.worksheet.worksheet import Worksheet class WriteOnlyWorksheet(_WorkbookChild): - mime_type: Incomplete - add_chart: Incomplete - add_image: Incomplete - add_table: Incomplete - @property - def tables(self): ... - @property - def print_titles(self): ... - print_title_cols: Incomplete - print_title_rows: Incomplete - freeze_panes: Incomplete - print_area: Incomplete + mime_type = Worksheet.mime_type + add_chart = Worksheet.add_chart + add_image = Worksheet.add_image + add_table = Worksheet.add_table + + # Same properties as Worksheet + @property + def tables(self) -> TableList: ... + @property + def print_titles(self) -> str | None: ... + @property + def print_title_cols(self) -> str | None: ... + @print_title_cols.setter + def print_title_cols(self, cols: str | None) -> None: ... + @property + def print_title_rows(self) -> str | None: ... + @print_title_rows.setter + def print_title_rows(self, rows: str | None) -> None: ... + @property + def freeze_panes(self) -> str | None: ... + @freeze_panes.setter + def freeze_panes(self, topLeftCell: Incomplete | None = ...) -> None: ... + @property + def print_area(self) -> list[str]: ... + @print_area.setter + def print_area(self, value: str | Iterable[str]) -> None: ... @property def sheet_view(self): ... def __init__(self, parent, title) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/merge.pyi b/stubs/openpyxl/openpyxl/worksheet/merge.pyi index 7df3faaa56d7..491fb7d10a39 100644 --- a/stubs/openpyxl/openpyxl/worksheet/merge.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/merge.pyi @@ -7,6 +7,7 @@ from .cell_range import CellRange class MergeCell(CellRange): tagname: ClassVar[str] + # Same as CellRange.coord @property def ref(self): ... __attrs__: ClassVar[tuple[str, ...]] diff --git a/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi b/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi index d995cabe5cb7..aaa8b55d44a6 100644 --- a/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/pagebreak.pyi @@ -42,9 +42,8 @@ PageBreak = RowBreak class ColBreak(RowBreak): tagname: ClassVar[str] - @property - def count(self): ... - @property - def manualBreakCount(self): ... - brk: Incomplete + # Same as parent + # count = RowBreak.count + # manualBreakCount = RowBreak.manualBreakCount + # brk = RowBreak.brk __attrs__: ClassVar[tuple[str, ...]] From aac6860269a852ab317ed17dbfeb0106a47fb861 Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 11 Aug 2023 19:43:52 -0400 Subject: [PATCH 29/51] Complete openpyxl title type annotations --- stubs/openpyxl/openpyxl/__init__.pyi | 6 ++++++ stubs/openpyxl/openpyxl/chart/_chart.pyi | 3 ++- stubs/openpyxl/openpyxl/chart/axis.pyi | 7 ++++--- stubs/openpyxl/openpyxl/chart/reference.pyi | 4 ++-- stubs/openpyxl/openpyxl/chart/series_factory.pyi | 2 +- stubs/openpyxl/openpyxl/chart/title.pyi | 8 ++++---- stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi | 3 ++- stubs/openpyxl/openpyxl/workbook/child.pyi | 6 ++++-- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 5 +++-- stubs/openpyxl/openpyxl/worksheet/_read_only.pyi | 4 ++-- stubs/openpyxl/openpyxl/worksheet/_write_only.pyi | 3 ++- stubs/openpyxl/openpyxl/worksheet/cell_range.pyi | 10 ++++++---- stubs/openpyxl/openpyxl/worksheet/print_settings.pyi | 4 ++-- stubs/openpyxl/openpyxl/worksheet/worksheet.pyi | 3 ++- 14 files changed, 42 insertions(+), 26 deletions(-) diff --git a/stubs/openpyxl/openpyxl/__init__.pyi b/stubs/openpyxl/openpyxl/__init__.pyi index c252e6d9c018..0fcabe2f3baf 100644 --- a/stubs/openpyxl/openpyxl/__init__.pyi +++ b/stubs/openpyxl/openpyxl/__init__.pyi @@ -1,3 +1,5 @@ +from typing import Protocol + from openpyxl.compat.numbers import NUMPY as NUMPY from openpyxl.reader.excel import load_workbook as load_workbook from openpyxl.workbook import Workbook as Workbook @@ -13,3 +15,7 @@ from ._constants import ( ) open = load_workbook + +# Utility types reused elsewhere +class _Decodable(Protocol): # noqa: Y046 + def decode(self, __encoding: str) -> str: ... diff --git a/stubs/openpyxl/openpyxl/chart/_chart.pyi b/stubs/openpyxl/openpyxl/chart/_chart.pyi index 51ac0ab5d7de..d59f5e108d5b 100644 --- a/stubs/openpyxl/openpyxl/chart/_chart.pyi +++ b/stubs/openpyxl/openpyxl/chart/_chart.pyi @@ -5,6 +5,7 @@ from typing_extensions import Literal, TypeAlias from openpyxl.chart.layout import Layout from openpyxl.chart.legend import Legend from openpyxl.chart.shapes import GraphicalProperties +from openpyxl.chart.title import TitleDescriptor from openpyxl.descriptors.base import Alias, Bool, Integer, MinMax, Set, Typed, _ConvertibleToInt from openpyxl.descriptors.serialisable import Serialisable @@ -25,7 +26,7 @@ class ChartBase(Serialisable): display_blanks: Set[_ChartBaseDisplayBlanks] ser: Incomplete series: Alias - title: Incomplete + title: TitleDescriptor anchor: str width: int height: float diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index 96bdb711cdb7..ba9becd45893 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -5,6 +5,7 @@ from typing_extensions import Literal, TypeAlias from openpyxl.chart.layout import Layout from openpyxl.chart.shapes import GraphicalProperties from openpyxl.chart.text import RichText, Text +from openpyxl.chart.title import Title, TitleDescriptor from openpyxl.descriptors.base import Alias, Typed, _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.nested import ( @@ -70,7 +71,7 @@ class _BaseAxis(Serialisable): axPos: NestedSet[_BaseAxisAxPos] majorGridlines: Typed[ChartLines, Literal[True]] minorGridlines: Typed[ChartLines, Literal[True]] - title: Incomplete + title: TitleDescriptor numFmt: Incomplete number_format: Alias majorTickMark: NestedNoneSet[_BaseAxisTickMark] @@ -93,7 +94,7 @@ class _BaseAxis(Serialisable): axPos: _HasTagAndGet[_BaseAxisAxPos] | _BaseAxisAxPos, majorGridlines: ChartLines | None, minorGridlines: ChartLines | None, - title: Incomplete | None, + title: str | Title | None, numFmt: Incomplete | None, majorTickMark: _NestedNoneSetParam[_BaseAxisTickMark], minorTickMark: _NestedNoneSetParam[_BaseAxisTickMark], @@ -113,7 +114,7 @@ class _BaseAxis(Serialisable): axPos: _HasTagAndGet[_BaseAxisAxPos] | _BaseAxisAxPos = "l", majorGridlines: ChartLines | None = None, minorGridlines: ChartLines | None = None, - title: Incomplete | None = None, + title: str | Title | None = None, numFmt: Incomplete | None = None, majorTickMark: Incomplete | None = None, minorTickMark: Incomplete | None = None, diff --git a/stubs/openpyxl/openpyxl/chart/reference.pyi b/stubs/openpyxl/openpyxl/chart/reference.pyi index b36ab67669c6..72d0a106f803 100644 --- a/stubs/openpyxl/openpyxl/chart/reference.pyi +++ b/stubs/openpyxl/openpyxl/chart/reference.pyi @@ -7,8 +7,8 @@ from openpyxl.descriptors import Strict from openpyxl.descriptors.base import MinMax, String, _ConvertibleToInt class DummyWorksheet: - title: Incomplete - def __init__(self, title) -> None: ... + title: str + def __init__(self, title: str) -> None: ... class Reference(Strict): min_row: MinMax[int, Literal[False]] diff --git a/stubs/openpyxl/openpyxl/chart/series_factory.pyi b/stubs/openpyxl/openpyxl/chart/series_factory.pyi index a23b006064ea..93bc957ff400 100644 --- a/stubs/openpyxl/openpyxl/chart/series_factory.pyi +++ b/stubs/openpyxl/openpyxl/chart/series_factory.pyi @@ -4,6 +4,6 @@ def SeriesFactory( values, xvalues: Incomplete | None = None, zvalues: Incomplete | None = None, - title: Incomplete | None = None, + title: object = None, title_from_data: bool = False, ): ... diff --git a/stubs/openpyxl/openpyxl/chart/title.pyi b/stubs/openpyxl/openpyxl/chart/title.pyi index 0ba2a1f9b8d4..4876baffb972 100644 --- a/stubs/openpyxl/openpyxl/chart/title.pyi +++ b/stubs/openpyxl/openpyxl/chart/title.pyi @@ -1,4 +1,4 @@ -from _typeshed import Incomplete, Unused +from _typeshed import Unused from typing import ClassVar from typing_extensions import Literal @@ -35,9 +35,9 @@ class Title(Serialisable): extLst: Unused = None, ) -> None: ... -def title_maker(text): ... +def title_maker(text) -> Title: ... -class TitleDescriptor(Typed[Title, Incomplete]): +class TitleDescriptor(Typed[Title, Literal[True]]): expected_type: type[Title] allow_none: Literal[True] - def __set__(self, instance: Serialisable | Strict, value) -> None: ... + def __set__(self, instance: Serialisable | Strict, value: str | Title | None) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index d174f5ffab9e..bdb7c7756107 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -2,6 +2,7 @@ from _typeshed import Incomplete, Unused from typing import ClassVar from typing_extensions import Literal, TypeAlias +from openpyxl import _Decodable from openpyxl.chartsheet.custom import CustomChartsheetViews from openpyxl.chartsheet.properties import ChartsheetProperties from openpyxl.chartsheet.protection import ChartsheetProtection @@ -52,7 +53,7 @@ class Chartsheet(_WorkbookChild, Serialisable): webPublishItems: WebPublishItems | None = None, extLst: Unused = None, parent: Incomplete | None = None, - title: str = "", + title: str | _Decodable | None = "", sheet_state: _ChartsheetSheetState = "visible", ) -> None: ... def add_chart(self, chart) -> None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/child.pyi b/stubs/openpyxl/openpyxl/workbook/child.pyi index fa39d2e42bba..827361215c48 100644 --- a/stubs/openpyxl/openpyxl/workbook/child.pyi +++ b/stubs/openpyxl/openpyxl/workbook/child.pyi @@ -2,13 +2,15 @@ from _typeshed import Incomplete from re import Pattern from typing_extensions import Final +from openpyxl import _Decodable + INVALID_TITLE_REGEX: Final[Pattern[str]] def avoid_duplicate_name(names, value): ... class _WorkbookChild: HeaderFooter: Incomplete - def __init__(self, parent: Incomplete | None = None, title: Incomplete | None = None) -> None: ... + def __init__(self, parent: Incomplete | None = None, title: str | _Decodable | None = None) -> None: ... @property def parent(self): ... @property @@ -16,7 +18,7 @@ class _WorkbookChild: @property def title(self) -> str: ... @title.setter - def title(self, value: str | bytes) -> None: ... + def title(self, value: str | _Decodable) -> None: ... @property def oddHeader(self): ... @oddHeader.setter diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index c609d6b3e5d5..831e57d106a4 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -4,6 +4,7 @@ from datetime import datetime from typing import IO from typing_extensions import Final +from openpyxl import _Decodable from openpyxl.chartsheet.chartsheet import Chartsheet from openpyxl.styles.named_styles import NamedStyle from openpyxl.workbook.child import _WorkbookChild @@ -45,11 +46,11 @@ class Workbook: def active(self) -> _WorkbookChild | None: ... @active.setter def active(self, value: _WorkbookChild | int) -> None: ... - def create_sheet(self, title: str | None = None, index: int | None = None): ... + def create_sheet(self, title: str | _Decodable | None = None, index: int | None = None): ... def move_sheet(self, sheet: Worksheet | str, offset: int = 0) -> None: ... def remove(self, worksheet: Worksheet) -> None: ... def remove_sheet(self, worksheet: Worksheet) -> None: ... - def create_chartsheet(self, title: str | None = None, index: int | None = None) -> Chartsheet: ... + def create_chartsheet(self, title: str | _Decodable | None = None, index: int | None = None) -> Chartsheet: ... def get_sheet_by_name(self, name: str) -> Worksheet: ... def __contains__(self, key: str) -> bool: ... def index(self, worksheet: Worksheet) -> int: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index 7814b5be237a..eb7b02950136 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -14,9 +14,9 @@ class ReadOnlyWorksheet: __getitem__ = Worksheet.__getitem__ __iter__ = Worksheet.__iter__ parent: Incomplete - title: Incomplete + title: str sheet_state: str - def __init__(self, parent_workbook, title, worksheet_path, shared_strings) -> None: ... + def __init__(self, parent_workbook, title: str, worksheet_path, shared_strings) -> None: ... def calculate_dimension(self, force: bool = False): ... def reset_dimensions(self) -> None: ... @property diff --git a/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi index d2c5195e62dd..add4c2cae15a 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_write_only.pyi @@ -1,5 +1,6 @@ from _typeshed import Incomplete +from openpyxl import _Decodable from openpyxl.workbook.child import _WorkbookChild class WriteOnlyWorksheet(_WorkbookChild): @@ -17,7 +18,7 @@ class WriteOnlyWorksheet(_WorkbookChild): print_area: Incomplete @property def sheet_view(self): ... - def __init__(self, parent, title) -> None: ... + def __init__(self, parent, title: str | _Decodable | None) -> None: ... @property def closed(self): ... def close(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi index 1c6e0f61d1c3..4680fc585142 100644 --- a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi @@ -12,17 +12,19 @@ class CellRange(Serialisable): min_row: MinMax[int, Literal[False]] max_col: MinMax[int, Literal[False]] max_row: MinMax[int, Literal[False]] - title: Incomplete + # Could be None if the caller forgot to set title and range_string doesn't contain "!" + # but that's not intended and will lead to errors (ie: can't be None in __str__) + title: str @overload def __init__( self, - range_string: Incomplete, + range_string: str | None, min_col: Unused = None, min_row: Unused = None, max_col: Unused = None, max_row: Unused = None, - title: Incomplete | None = None, + title: str | None = None, ) -> None: ... @overload def __init__( @@ -33,7 +35,7 @@ class CellRange(Serialisable): min_row: _ConvertibleToInt, max_col: _ConvertibleToInt, max_row: _ConvertibleToInt, - title: Incomplete | None = None, + title: str, ) -> None: ... @property def bounds(self): ... diff --git a/stubs/openpyxl/openpyxl/worksheet/print_settings.pyi b/stubs/openpyxl/openpyxl/worksheet/print_settings.pyi index 91aeee4361e7..772fa379864b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/print_settings.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/print_settings.pyi @@ -40,12 +40,12 @@ class PrintTitles(Strict): title: String[Literal[False]] def __init__(self, cols: ColRange | None = None, rows: RowRange | None = None, title: str = "") -> None: ... @classmethod - def from_string(cls, value) -> Self: ... + def from_string(cls, value: str) -> Self: ... def __eq__(self, other: object) -> bool: ... class PrintArea(MultiCellRange): title: str @classmethod def from_string(cls, value) -> Self: ... - def __init__(self, ranges=(), title: str = "") -> None: ... + def __init__(self, ranges=(), title: Unused = "") -> None: ... def __eq__(self, other): ... diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index d59e9c424cd0..57523e284807 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -4,6 +4,7 @@ from datetime import datetime from typing import Any, overload from typing_extensions import Final, Literal +from openpyxl import _Decodable from openpyxl.cell.cell import Cell, _CellValue from openpyxl.formatting.formatting import ConditionalFormattingList from openpyxl.workbook.child import _WorkbookChild @@ -66,7 +67,7 @@ class Worksheet(_WorkbookChild): sheet_format: SheetFormatProperties scenarios: ScenarioList - def __init__(self, parent: Workbook, title: str | None = None) -> None: ... + def __init__(self, parent: Workbook, title: str | _Decodable | None = None) -> None: ... @property def sheet_view(self) -> SheetView: ... @property From 50a27a8fe543eed1655b520b520f13f048e988d7 Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 18 Aug 2023 13:59:04 -0400 Subject: [PATCH 30/51] Fixes post merge --- stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index 85db811fb2b3..415fe9ed4683 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -33,7 +33,7 @@ class Chartsheet(_WorkbookChild, Serialisable): extLst: Typed[ExtensionList, Literal[True]] sheet_state: Set[_VisibilityType] headerFooter: Typed[_HeaderFooter, Literal[False]] - HeaderFooter: Alias # type: ignore[assignment] + HeaderFooter: Alias # type: ignore[assignment] # Different from parent class __elements__: ClassVar[tuple[str, ...]] __attrs__: ClassVar[tuple[str, ...]] def __init__( From 8c43a40f9f2b75642e65b97bf1edbaf9a8f47878 Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 18 Aug 2023 14:08:50 -0400 Subject: [PATCH 31/51] Complete `from_tree` --- stubs/openpyxl/openpyxl/chart/axis.pyi | 6 +++--- stubs/openpyxl/openpyxl/chart/plotarea.pyi | 6 +++--- .../openpyxl/openpyxl/descriptors/nested.pyi | 8 ++++---- .../openpyxl/descriptors/sequence.pyi | 19 +++++++++++++++---- .../openpyxl/descriptors/serialisable.pyi | 10 ++++------ stubs/openpyxl/openpyxl/packaging/custom.pyi | 3 ++- stubs/openpyxl/openpyxl/styles/fills.pyi | 11 +++++++---- stubs/openpyxl/openpyxl/styles/fonts.pyi | 6 +++--- stubs/openpyxl/openpyxl/styles/stylesheet.pyi | 4 ++-- .../openpyxl/openpyxl/workbook/protection.pyi | 8 +++++--- .../openpyxl/worksheet/header_footer.pyi | 6 ++++-- stubs/openpyxl/openpyxl/worksheet/page.pyi | 6 +++--- stubs/openpyxl/openpyxl/worksheet/table.pyi | 6 +++--- .../openpyxl/xml/_functions_overloads.pyi | 17 +++++++++++++++-- 14 files changed, 73 insertions(+), 43 deletions(-) diff --git a/stubs/openpyxl/openpyxl/chart/axis.pyi b/stubs/openpyxl/openpyxl/chart/axis.pyi index b7c24312b301..229080a5eccc 100644 --- a/stubs/openpyxl/openpyxl/chart/axis.pyi +++ b/stubs/openpyxl/openpyxl/chart/axis.pyi @@ -17,9 +17,9 @@ from openpyxl.descriptors.nested import ( NestedSet, _NestedNoneSetParam, ) -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable -from ..xml._functions_overloads import _HasTagAndGet +from ..xml._functions_overloads import _HasTagAndGet, _SupportsFindAndIterAndAttribAndText _ScalingOrientation: TypeAlias = Literal["maxMin", "minMax"] _BaseAxisAxPos: TypeAlias = Literal["b", "l", "r", "t"] @@ -198,7 +198,7 @@ class NumericAxis(_BaseAxis): **kw, ) -> None: ... @classmethod - def from_tree(cls, node: _SerialisableTreeElement) -> Self: ... + def from_tree(cls, node: _SupportsFindAndIterAndAttribAndText) -> Self: ... class TextAxis(_BaseAxis): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/chart/plotarea.pyi b/stubs/openpyxl/openpyxl/chart/plotarea.pyi index a07caa6eea1f..3e80697ac28d 100644 --- a/stubs/openpyxl/openpyxl/chart/plotarea.pyi +++ b/stubs/openpyxl/openpyxl/chart/plotarea.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Unused from typing import ClassVar -from typing_extensions import Literal +from typing_extensions import Literal, Self from openpyxl.chart.layout import Layout from openpyxl.chart.shapes import GraphicalProperties @@ -8,7 +8,7 @@ from openpyxl.chart.text import RichText from openpyxl.descriptors.base import Alias, Typed, _ConvertibleToBool from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.nested import NestedBool -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable, _ChildSerialisableTreeElement from ..xml._functions_overloads import _HasTagAndGet @@ -73,4 +73,4 @@ class PlotArea(Serialisable): ) -> None: ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... @classmethod - def from_tree(cls, node: _SerialisableTreeElement): ... + def from_tree(cls, node: _ChildSerialisableTreeElement) -> Self: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/nested.pyi b/stubs/openpyxl/openpyxl/descriptors/nested.pyi index caabf89d758a..8a7af3be8d5f 100644 --- a/stubs/openpyxl/openpyxl/descriptors/nested.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/nested.pyi @@ -9,7 +9,7 @@ from openpyxl.descriptors.serialisable import Serialisable from openpyxl.drawing.fill import Blip from openpyxl.xml.functions import Element -from ..xml._functions_overloads import _HasTagAndGet, _HasTagAndText +from ..xml._functions_overloads import _HasGet, _HasTagAndGet, _HasText from .base import _M, _N, _T, _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt, _ExpectedTypeParam _NestedNoneSetParam: TypeAlias = _HasTagAndGet[_T | Literal["none"] | None] | _T | Literal["none"] | None @@ -35,7 +35,7 @@ class Nested(Descriptor[_T]): ) -> None: ... def __get__(self, instance: Serialisable | Strict, cls: type | None) -> _T: ... def __set__(self, instance: Serialisable | Strict, value: _HasTagAndGet[_T] | _T) -> None: ... - def from_tree(self, node: _HasTagAndGet[_T]) -> _T: ... + def from_tree(self, node: _HasGet[_T]) -> _T: ... def to_tree(self, tagname: str | None = None, value: Incomplete | None = None, namespace: str | None = None) -> Element: ... class NestedValue(Nested[_T], Convertible[_T, _N]): # type: ignore[misc] @@ -150,7 +150,7 @@ class NestedText(NestedValue[_T, _N]): # Anything else @overload def __set__(self: NestedText[_T, Literal[True]], instance: Serialisable | Strict, value: _T | int | Any | None) -> None: ... - def from_tree(self, node: _HasTagAndText) -> str: ... # type: ignore[override] + def from_tree(self, node: _HasText) -> str: ... # type: ignore[override] def to_tree(self, tagname: str | None = None, value: Incomplete | None = None, namespace: str | None = None) -> Element: ... class NestedFloat(NestedValue[float, _N], Float[_N]): # type: ignore[misc] @@ -179,7 +179,7 @@ class NestedBool(NestedValue[bool, _N], Bool[_N]): # type: ignore[misc] def __set__( # type:ignore[override] # Different restrictions self, instance: Serialisable | Strict, value: _HasTagAndGet[_ConvertibleToBool] | _ConvertibleToBool ) -> None: ... - def from_tree(self, node) -> bool: ... # type: ignore[override] # Actual overriden return type + def from_tree(self, node: _HasGet[bool]) -> bool: ... # type: ignore[override] # Actual overriden return type class NestedNoneSet(Nested[_T | None], NoneSet[_T]): # type: ignore[misc] def __init__(self, name: str | None = None, *, values: Iterable[_T | None]) -> None: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi index ff2176f257f9..5776357a656b 100644 --- a/stubs/openpyxl/openpyxl/descriptors/sequence.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/sequence.pyi @@ -1,12 +1,20 @@ from _typeshed import Incomplete, Unused -from collections.abc import Generator +from collections.abc import Generator, Iterable +from typing import Any, Protocol, TypeVar from typing_extensions import Self from openpyxl.descriptors import Strict -from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.xml._functions_overloads import _HasGet from .base import Alias, Descriptor +_T = TypeVar("_T") + +class _SupportsFromTree(Protocol): + @classmethod + def from_tree(cls, node: _SerialisableTreeElement) -> Any: ... + class Sequence(Descriptor[Incomplete]): expected_type: type[Incomplete] seq_types: tuple[type, ...] @@ -23,12 +31,15 @@ class UniqueSequence(Sequence): class ValueSequence(Sequence): attribute: str def to_tree(self, tagname, obj, namespace: str | None = None) -> Generator[Incomplete, None, None]: ... - def from_tree(self, node): ... + def from_tree(self, node: _HasGet[_T]) -> _T: ... class NestedSequence(Sequence): count: bool + expected_type: type[_SupportsFromTree] def to_tree(self, tagname, obj, namespace: str | None = None): ... - def from_tree(self, node): ... + # returned list generic type should be same as the return type of expected_type.from_tree(node) + # Which can really be anything given the wildly different, and sometimes generic, from_tree return types + def from_tree(self, node: Iterable[_SerialisableTreeElement]) -> list[Any]: ... class MultiSequence(Sequence): def __set__(self, instance: Serialisable | Strict, seq) -> None: ... diff --git a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi index 3afff355f1cf..19ff3baea612 100644 --- a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi @@ -1,16 +1,14 @@ from _typeshed import Incomplete, SupportsIter from typing import Any, ClassVar, NoReturn, Protocol -from typing_extensions import Final +from typing_extensions import Final, Self from openpyxl.descriptors import MetaSerialisable -from ..xml._functions_overloads import _HasAttrib, _HasTagAndGet, _HasText +from ..xml._functions_overloads import _HasAttrib, _HasGet, _HasText, _SupportsFind # For any override directly re-using Serialisable.from_tree class _ChildSerialisableTreeElement(_HasAttrib, _HasText, SupportsIter[Incomplete], Protocol): ... - -class _SerialisableTreeElement(_HasTagAndGet[Incomplete], _ChildSerialisableTreeElement, Protocol): - def find(self, __path: str) -> Incomplete | None: ... +class _SerialisableTreeElement(_HasGet[object], _SupportsFind, _ChildSerialisableTreeElement, Protocol): ... KEYWORDS: Final[frozenset[str]] seq_types: Final[tuple[type[list[Any]], type[tuple[Any, ...]]]] @@ -31,7 +29,7 @@ class Serialisable(metaclass=MetaSerialisable): # Child classes should be more precise than _SerialisableTreeElement ! # Use _ChildSerialisableTreeElement instead for child classes that reuse Serialisable.from_tree directly. @classmethod - def from_tree(cls, node: _SerialisableTreeElement): ... + def from_tree(cls, node: _SerialisableTreeElement) -> Self: ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... def __iter__(self): ... def __eq__(self, other): ... diff --git a/stubs/openpyxl/openpyxl/packaging/custom.pyi b/stubs/openpyxl/openpyxl/packaging/custom.pyi index 9aadb179cd35..048329b9414f 100644 --- a/stubs/openpyxl/openpyxl/packaging/custom.pyi +++ b/stubs/openpyxl/openpyxl/packaging/custom.pyi @@ -16,6 +16,7 @@ from openpyxl.descriptors.base import ( _ConvertibleToInt, ) from openpyxl.descriptors.nested import NestedText +from openpyxl.descriptors.serialisable import _ChildSerialisableTreeElement _T = TypeVar("_T") @@ -57,7 +58,7 @@ class CustomPropertyList(Strict): props: Sequence def __init__(self) -> None: ... @classmethod - def from_tree(cls, tree) -> Self: ... + def from_tree(cls, tree: _ChildSerialisableTreeElement) -> Self: ... def append(self, prop) -> None: ... def to_tree(self): ... def __len__(self) -> int: ... diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index 24af1087c7a9..071ddd15ac8c 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -1,13 +1,14 @@ from _typeshed import Incomplete, Unused -from collections.abc import Generator +from collections.abc import Generator, Iterable, Sequence as ABCSequence from typing import ClassVar -from typing_extensions import Final, Literal, Self, TypeAlias +from typing_extensions import Final, Literal, TypeAlias from openpyxl.descriptors import Sequence, Strict from openpyxl.descriptors.base import Alias, Float, MinMax, NoneSet, Set, _ConvertibleToFloat -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable from openpyxl.xml.functions import Element +from ..xml._functions_overloads import _SupportsIterAndAttribAndTextAndTag from .colors import Color FILL_NONE: Final = "none" @@ -56,7 +57,9 @@ fills: Final[tuple[_FillsType, ...]] class Fill(Serialisable): tagname: ClassVar[str] @classmethod - def from_tree(cls, el: _SerialisableTreeElement) -> Self: ... + def from_tree( # type: ignore[override] + cls, el: Iterable[ABCSequence[_SupportsIterAndAttribAndTextAndTag]] + ) -> PatternFill | GradientFill | None: ... class PatternFill(Fill): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/styles/fonts.pyi b/stubs/openpyxl/openpyxl/styles/fonts.pyi index 505b0d589f53..b0f8484df682 100644 --- a/stubs/openpyxl/openpyxl/styles/fonts.pyi +++ b/stubs/openpyxl/openpyxl/styles/fonts.pyi @@ -12,9 +12,9 @@ from openpyxl.descriptors.nested import ( NestedString, _NestedNoneSetParam, ) -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable -from ..xml._functions_overloads import _HasTagAndGet +from ..xml._functions_overloads import _HasTagAndGet, _SupportsFindAndIterAndAttribAndText from .colors import Color _FontU: TypeAlias = Literal["single", "double", "singleAccounting", "doubleAccounting"] @@ -72,6 +72,6 @@ class Font(Serialisable): extend: _HasTagAndGet[_ConvertibleToBool | None] | _ConvertibleToBool | None = None, ) -> None: ... @classmethod - def from_tree(cls, node: _SerialisableTreeElement) -> Self: ... + def from_tree(cls, node: _SupportsFindAndIterAndAttribAndText) -> Self: ... DEFAULT_FONT: Final[Font] diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index c5b3edf095ee..8852b06899c6 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -4,7 +4,7 @@ from typing_extensions import Literal from openpyxl.descriptors.base import Typed from openpyxl.descriptors.excel import ExtensionList -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable, _ChildSerialisableTreeElement from openpyxl.styles.cell_style import CellStyleList from openpyxl.styles.colors import ColorList from openpyxl.styles.named_styles import _NamedCellStyleList @@ -45,7 +45,7 @@ class Stylesheet(Serialisable): extLst: Unused = None, ) -> None: ... @classmethod - def from_tree(cls, node: _SerialisableTreeElement): ... + def from_tree(cls, node: _ChildSerialisableTreeElement): ... @property def custom_formats(self): ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... diff --git a/stubs/openpyxl/openpyxl/workbook/protection.pyi b/stubs/openpyxl/openpyxl/workbook/protection.pyi index e93caa47752b..236dfceb6bee 100644 --- a/stubs/openpyxl/openpyxl/workbook/protection.pyi +++ b/stubs/openpyxl/openpyxl/workbook/protection.pyi @@ -1,9 +1,11 @@ from _typeshed import Incomplete from typing import ClassVar -from typing_extensions import Literal +from typing_extensions import Literal, Self from openpyxl.descriptors.base import Alias, Bool, Integer, String, _ConvertibleToBool, _ConvertibleToInt -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable + +from ..xml._functions_overloads import _SupportsIterAndAttribAndTextAndGet class WorkbookProtection(Serialisable): tagname: ClassVar[str] @@ -55,7 +57,7 @@ class WorkbookProtection(Serialisable): @revisionsPassword.setter def revisionsPassword(self, value) -> None: ... @classmethod - def from_tree(cls, node: _SerialisableTreeElement): ... + def from_tree(cls, node: _SupportsIterAndAttribAndTextAndGet) -> Self: ... DocumentSecurity = WorkbookProtection diff --git a/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi b/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi index e8066e0231c4..714e6ef6c956 100644 --- a/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/header_footer.pyi @@ -1,11 +1,13 @@ from re import Pattern from typing import ClassVar -from typing_extensions import Final, Literal +from typing_extensions import Final, Literal, Self from openpyxl.descriptors import Strict from openpyxl.descriptors.base import Alias, Bool, Integer, MatchPattern, String, Typed, _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.serialisable import Serialisable +from ..xml._functions_overloads import _HasText + FONT_PATTERN: Final = '&"(?P.+)"' COLOR_PATTERN: Final = "&K(?P[A-F0-9]{6})" SIZE_REGEX: Final = r"&(?P\d+\s?)" @@ -38,7 +40,7 @@ class HeaderFooterItem(Strict): def __bool__(self) -> bool: ... def to_tree(self, tagname): ... @classmethod - def from_tree(cls, node): ... + def from_tree(cls, node: _HasText) -> Self: ... class HeaderFooter(Serialisable): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/worksheet/page.pyi b/stubs/openpyxl/openpyxl/worksheet/page.pyi index eff88a0a3271..2538cabf076b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/page.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/page.pyi @@ -1,9 +1,9 @@ from _typeshed import Incomplete from typing import ClassVar -from typing_extensions import Literal, TypeAlias +from typing_extensions import Literal, Self, TypeAlias from openpyxl.descriptors.base import Bool, Float, Integer, NoneSet, _ConvertibleToBool, _ConvertibleToFloat, _ConvertibleToInt -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable, _ChildSerialisableTreeElement _PrintPageSetupOrientation: TypeAlias = Literal["default", "portrait", "landscape"] _PrintPageSetupPageOrder: TypeAlias = Literal["downThenOver", "overThenDown"] @@ -66,7 +66,7 @@ class PrintPageSetup(Serialisable): @autoPageBreaks.setter def autoPageBreaks(self, value) -> None: ... @classmethod - def from_tree(cls, node: _SerialisableTreeElement): ... + def from_tree(cls, node: _ChildSerialisableTreeElement) -> Self: ... class PrintOptions(Serialisable): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/worksheet/table.pyi b/stubs/openpyxl/openpyxl/worksheet/table.pyi index af178df3892c..137d987ee58f 100644 --- a/stubs/openpyxl/openpyxl/worksheet/table.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/table.pyi @@ -1,11 +1,11 @@ from _typeshed import Incomplete, Unused from typing import ClassVar, overload -from typing_extensions import Final, Literal, TypeAlias +from typing_extensions import Final, Literal, Self, TypeAlias from openpyxl.descriptors import Strict, String from openpyxl.descriptors.base import Alias, Bool, Integer, NoneSet, Typed, _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.excel import ExtensionList -from openpyxl.descriptors.serialisable import Serialisable, _SerialisableTreeElement +from openpyxl.descriptors.serialisable import Serialisable, _ChildSerialisableTreeElement from openpyxl.worksheet.filters import AutoFilter, SortState _TableColumnTotalsRowFunction: TypeAlias = Literal[ @@ -129,7 +129,7 @@ class TableColumn(Serialisable): ) -> None: ... def __iter__(self): ... @classmethod - def from_tree(cls, node: _SerialisableTreeElement): ... + def from_tree(cls, node: _ChildSerialisableTreeElement) -> Self: ... class TableNameDescriptor(String[Incomplete]): def __set__(self, instance: Serialisable | Strict, value) -> None: ... diff --git a/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi b/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi index 06437d35f977..fbba48fbc0e1 100644 --- a/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi +++ b/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi @@ -1,12 +1,14 @@ # This file does not exist at runtime. It is a helper file to overload imported functions in openpyxl.xml.functions import sys -from _typeshed import Incomplete, ReadableBuffer +from _typeshed import Incomplete, ReadableBuffer, SupportsIter from collections.abc import Iterable, Iterator, Mapping, Sequence from typing import Any, Protocol, TypeVar, overload from typing_extensions import TypeAlias from xml.etree.ElementTree import Element, ElementTree, QName, XMLParser, _FileRead +from openpyxl.chart.axis import ChartLines + _T = TypeVar("_T") _T_co = TypeVar("_T_co", covariant=True) @@ -23,11 +25,22 @@ class _HasText(Protocol): class _HasAttrib(Protocol): attrib: Iterable[Any] # AnyOf[dict[str, str], Iterable[tuple[str, str]]] -class _HasTagAndGet(_HasTag, Protocol[_T_co]): +class _HasGet(Protocol[_T_co]): def get(self, __value: str) -> _T_co | None: ... +class _SupportsFind(Protocol): + def find(self, __path: str) -> ChartLines | None: ... + +class _HasTagAndGet(_HasTag, _HasGet[_T_co], Protocol[_T_co]): ... class _HasTagAndText(_HasTag, _HasText, Protocol): ... # noqa: Y046 class _HasTagAndTextAndAttrib(_HasTag, _HasText, _HasAttrib, Protocol): ... # noqa: Y046 +class _SupportsFindAndIterAndAttribAndText( # noqa: Y046 + _SupportsFind, SupportsIter[Incomplete], _HasAttrib, _HasText, Protocol +): ... +class _SupportsIterAndAttribAndTextAndTag(SupportsIter[Incomplete], _HasAttrib, _HasText, _HasTag, Protocol): ... # noqa: Y046 +class _SupportsIterAndAttribAndTextAndGet( # noqa: Y046 + SupportsIter[Incomplete], _HasAttrib, _HasText, _HasGet[Incomplete], Protocol +): ... class _ParentElement(Protocol[_T]): def makeelement(self, __tag: str, __attrib: dict[str, str]) -> _T: ... From 491efaf0d854511cedcf06d0a305192d1f186df8 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 21 Aug 2023 18:58:58 -0400 Subject: [PATCH 32/51] Serialisable.from_tree improvement to avoid override issues --- stubs/openpyxl/openpyxl/descriptors/serialisable.pyi | 5 +++-- stubs/openpyxl/openpyxl/styles/fills.pyi | 4 +--- stubs/openpyxl/openpyxl/styles/stylesheet.pyi | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi index 19ff3baea612..9493a985e485 100644 --- a/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi +++ b/stubs/openpyxl/openpyxl/descriptors/serialisable.pyi @@ -24,12 +24,13 @@ class Serialisable(metaclass=MetaSerialisable): @property def tagname(self) -> str | NoReturn: ... namespace: ClassVar[str | None] - # Note: To respect the Liskov substitution principle, the protocol for node includes all child class requirements + # Note: To respect the Liskov substitution principle, the protocol for node includes all child class requirements. + # Same with the return type to avoid override issues. # See comment in xml/functions.pyi as to why use a protocol instead of Element # Child classes should be more precise than _SerialisableTreeElement ! # Use _ChildSerialisableTreeElement instead for child classes that reuse Serialisable.from_tree directly. @classmethod - def from_tree(cls, node: _SerialisableTreeElement) -> Self: ... + def from_tree(cls, node: _SerialisableTreeElement) -> Self | None: ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... def __iter__(self): ... def __eq__(self, other): ... diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index 071ddd15ac8c..78d3cda6c42e 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -57,9 +57,7 @@ fills: Final[tuple[_FillsType, ...]] class Fill(Serialisable): tagname: ClassVar[str] @classmethod - def from_tree( # type: ignore[override] - cls, el: Iterable[ABCSequence[_SupportsIterAndAttribAndTextAndTag]] - ) -> PatternFill | GradientFill | None: ... + def from_tree(cls, el: Iterable[ABCSequence[_SupportsIterAndAttribAndTextAndTag]]) -> PatternFill | GradientFill | None: ... class PatternFill(Fill): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index 8852b06899c6..b3c1465ad6ad 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Unused from typing import ClassVar -from typing_extensions import Literal +from typing_extensions import Literal, Self from openpyxl.descriptors.base import Typed from openpyxl.descriptors.excel import ExtensionList @@ -45,7 +45,7 @@ class Stylesheet(Serialisable): extLst: Unused = None, ) -> None: ... @classmethod - def from_tree(cls, node: _ChildSerialisableTreeElement): ... + def from_tree(cls, node: _ChildSerialisableTreeElement) -> Self: ... @property def custom_formats(self): ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... From a2e8d1519a8a64f92dbc10b33160670915832bd2 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 12 Sep 2023 15:10:43 -0400 Subject: [PATCH 33/51] Type usages of PIL and zipfile --- stubs/openpyxl/openpyxl/drawing/image.pyi | 21 ++++++++++++++----- .../openpyxl/packaging/relationship.pyi | 16 +++++++++++--- stubs/openpyxl/openpyxl/reader/drawings.pyi | 7 ++++++- stubs/openpyxl/openpyxl/reader/excel.pyi | 7 ++++--- stubs/openpyxl/openpyxl/reader/workbook.pyi | 5 +++-- stubs/openpyxl/openpyxl/styles/stylesheet.pyi | 8 +++++-- .../workbook/external_link/external.pyi | 3 ++- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 3 ++- stubs/openpyxl/openpyxl/writer/excel.pyi | 13 +++++++----- 9 files changed, 60 insertions(+), 23 deletions(-) diff --git a/stubs/openpyxl/openpyxl/drawing/image.pyi b/stubs/openpyxl/openpyxl/drawing/image.pyi index 3864d30df85b..3bd545df3254 100644 --- a/stubs/openpyxl/openpyxl/drawing/image.pyi +++ b/stubs/openpyxl/openpyxl/drawing/image.pyi @@ -1,9 +1,20 @@ -from _typeshed import Incomplete +from _typeshed import SupportsRead +from pathlib import Path +from types import ModuleType +from typing import Any +from typing_extensions import Literal, TypeAlias + +# Is actually PIL.Image.Image +_PILImageImage: TypeAlias = Any +# same as first parameter of PIL.Image.open +_PILImageFilePath: TypeAlias = str | bytes | Path | SupportsRead[bytes] + +PILImage: ModuleType | Literal[False] class Image: anchor: str - ref: Incomplete - format: Incomplete - def __init__(self, img) -> None: ... + ref: _PILImageImage | _PILImageFilePath + format: str + def __init__(self, img: _PILImageImage | _PILImageFilePath) -> None: ... @property - def path(self): ... + def path(self) -> str: ... diff --git a/stubs/openpyxl/openpyxl/packaging/relationship.pyi b/stubs/openpyxl/openpyxl/packaging/relationship.pyi index 09165e7bb179..f3cbb359e4cf 100644 --- a/stubs/openpyxl/openpyxl/packaging/relationship.pyi +++ b/stubs/openpyxl/openpyxl/packaging/relationship.pyi @@ -1,11 +1,14 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator -from typing import ClassVar, overload +from typing import ClassVar, TypeVar, overload from typing_extensions import Literal +from zipfile import ZipFile from openpyxl.descriptors.base import Alias, String from openpyxl.descriptors.serialisable import Serialisable +_SerialisableT = TypeVar("_SerialisableT", bound=Serialisable) + class Relationship(Serialisable): tagname: ClassVar[str] Type: String[Literal[False]] @@ -37,5 +40,12 @@ class RelationshipList(Serialisable): def to_tree(self): ... def get_rels_path(path): ... -def get_dependents(archive, filename): ... -def get_rel(archive, deps, id: Incomplete | None = None, cls: Incomplete | None = None): ... +def get_dependents(archive: ZipFile, filename: str) -> RelationshipList: ... +@overload +def get_rel( + archive: ZipFile, deps: RelationshipList, id: str, cls: type[_SerialisableT] +) -> _SerialisableT: ... # incomplete: this could be restricted further from "Serialisable" +@overload +def get_rel( + archive: ZipFile, deps: RelationshipList, id: str | None = None, *, cls: type[_SerialisableT] +) -> _SerialisableT: ... # incomplete: this could be restricted further from "Serialisable" diff --git a/stubs/openpyxl/openpyxl/reader/drawings.pyi b/stubs/openpyxl/openpyxl/reader/drawings.pyi index 4334877fc2b0..f2bf8cd0863f 100644 --- a/stubs/openpyxl/openpyxl/reader/drawings.pyi +++ b/stubs/openpyxl/openpyxl/reader/drawings.pyi @@ -1 +1,6 @@ -def find_images(archive, path): ... +from zipfile import ZipFile + +from openpyxl.chart._chart import ChartBase +from openpyxl.drawing.image import Image + +def find_images(archive: ZipFile, path: str) -> tuple[list[ChartBase], list[Image]]: ... diff --git a/stubs/openpyxl/openpyxl/reader/excel.pyi b/stubs/openpyxl/openpyxl/reader/excel.pyi index 7464059aa03a..894b397a972e 100644 --- a/stubs/openpyxl/openpyxl/reader/excel.pyi +++ b/stubs/openpyxl/openpyxl/reader/excel.pyi @@ -1,4 +1,5 @@ -from _typeshed import Incomplete, StrPath, SupportsRead +from _typeshed import Incomplete, StrPath +from typing import IO from typing_extensions import Final, Literal, TypeAlias from zipfile import ZipFile @@ -26,7 +27,7 @@ class ExcelReader: def __init__( self, - fn: SupportsRead[bytes] | str, + fn: StrPath | IO[bytes], read_only: bool = False, keep_vba: bool = False, data_only: bool = False, @@ -44,7 +45,7 @@ class ExcelReader: def read(self) -> None: ... def load_workbook( - filename: SupportsRead[bytes] | StrPath, + filename: StrPath | IO[bytes], read_only: bool = False, keep_vba: bool = False, data_only: bool = False, diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index 7ef1b85e4c09..8e6e5c3d8d5e 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -1,15 +1,16 @@ from _typeshed import Incomplete from collections.abc import Generator +from zipfile import ZipFile from openpyxl.workbook import Workbook class WorkbookParser: - archive: Incomplete + archive: ZipFile workbook_part_name: Incomplete wb: Workbook keep_links: Incomplete sheets: Incomplete - def __init__(self, archive, workbook_part_name, keep_links: bool = True) -> None: ... + def __init__(self, archive: ZipFile, workbook_part_name, keep_links: bool = True) -> None: ... @property def rels(self): ... caches: Incomplete diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index b3c1465ad6ad..3141a3c2b944 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, Unused -from typing import ClassVar +from typing import ClassVar, TypeVar from typing_extensions import Literal, Self +from zipfile import ZipFile from openpyxl.descriptors.base import Typed from openpyxl.descriptors.excel import ExtensionList @@ -10,6 +11,9 @@ from openpyxl.styles.colors import ColorList from openpyxl.styles.named_styles import _NamedCellStyleList from openpyxl.styles.numbers import NumberFormatList from openpyxl.styles.table import TableStyleList +from openpyxl.workbook.workbook import Workbook + +_WorkbookT = TypeVar("_WorkbookT", bound=Workbook) class Stylesheet(Serialisable): tagname: ClassVar[str] @@ -50,5 +54,5 @@ class Stylesheet(Serialisable): def custom_formats(self): ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... -def apply_stylesheet(archive, wb): ... +def apply_stylesheet(archive: ZipFile, wb: _WorkbookT) -> _WorkbookT | None: ... def write_stylesheet(wb): ... diff --git a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi index fcd66e68bdff..ad7cdcca4def 100644 --- a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi +++ b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, Unused from typing import ClassVar from typing_extensions import Literal, TypeAlias +from zipfile import ZipFile from openpyxl.descriptors.base import Bool, Integer, NoneSet, String, Typed, _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.nested import NestedText @@ -76,4 +77,4 @@ class ExternalLink(Serialisable): @property def path(self): ... -def read_external_link(archive, book_path): ... +def read_external_link(archive: ZipFile, book_path: str) -> ExternalLink: ... diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index 831e57d106a4..cf953d48f346 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -3,6 +3,7 @@ from collections.abc import Iterator from datetime import datetime from typing import IO from typing_extensions import Final +from zipfile import ZipFile from openpyxl import _Decodable from openpyxl.chartsheet.chartsheet import Chartsheet @@ -21,7 +22,7 @@ class Workbook: security: Incomplete shared_strings: Incomplete loaded_theme: Incomplete - vba_archive: Incomplete + vba_archive: ZipFile | None is_template: bool code_name: Incomplete encoding: str diff --git a/stubs/openpyxl/openpyxl/writer/excel.pyi b/stubs/openpyxl/openpyxl/writer/excel.pyi index 624a3c4c05bd..0565c778e89b 100644 --- a/stubs/openpyxl/openpyxl/writer/excel.pyi +++ b/stubs/openpyxl/openpyxl/writer/excel.pyi @@ -1,10 +1,13 @@ -from _typeshed import Incomplete +from zipfile import ZipFile + +from openpyxl.packaging.manifest import Manifest +from openpyxl.workbook.workbook import Workbook class ExcelWriter: - workbook: Incomplete - manifest: Incomplete - vba_modified: Incomplete - def __init__(self, workbook, archive) -> None: ... + workbook: Workbook + manifest: Manifest + vba_modified: set[str | None] + def __init__(self, workbook: Workbook, archive: ZipFile) -> None: ... def write_data(self) -> None: ... def write_worksheet(self, ws) -> None: ... def save(self) -> None: ... From f08c6f1ace14ab82ef61855677553f9322307ab1 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 12 Sep 2023 15:38:16 -0400 Subject: [PATCH 34/51] Update stubtest_allowlist --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index f40d00628006..714149bfd477 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -41,8 +41,9 @@ openpyxl\.descriptors\.(base\.)?MinMax\.allow_none openpyxl\.descriptors\.(base\.)?String\.allow_none openpyxl\.descriptors\.(base\.)?Typed\.allow_none -# "has a default value but stub argument does not" -# Runtime has default arguments that would fail +# Inconsistent methods because +# - using the default value results in an error because of the runtime type-guards +# - or, keyword arguments are explicitly specified openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.axis._BaseAxis.__init__ @@ -109,6 +110,7 @@ openpyxl.drawing.text.GeomGuide.__init__ openpyxl.drawing.text.PresetTextShape.__init__ openpyxl.drawing.text.TextField.__init__ openpyxl.drawing.text.TextNormalAutofit.__init__ +openpyxl.packaging.relationship.get_rel openpyxl.packaging.relationship.Relationship.__init__ openpyxl.packaging.workbook.ChildSheet.__init__ openpyxl.packaging.workbook.PivotCache.__init__ From 29c92189da99bb8c18c8c02727fdd78c0b4e9bb6 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 12 Sep 2023 15:59:58 -0400 Subject: [PATCH 35/51] Update `get_rel` --- .../openpyxl/packaging/relationship.pyi | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/stubs/openpyxl/openpyxl/packaging/relationship.pyi b/stubs/openpyxl/openpyxl/packaging/relationship.pyi index f3cbb359e4cf..8a0aea2f71e3 100644 --- a/stubs/openpyxl/openpyxl/packaging/relationship.pyi +++ b/stubs/openpyxl/openpyxl/packaging/relationship.pyi @@ -6,8 +6,12 @@ from zipfile import ZipFile from openpyxl.descriptors.base import Alias, String from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.pivot.cache import CacheDefinition +from openpyxl.pivot.record import RecordList +from openpyxl.pivot.table import TableDefinition _SerialisableT = TypeVar("_SerialisableT", bound=Serialisable) +_SerialisableRelTypeT = TypeVar("_SerialisableRelTypeT", bound=CacheDefinition | RecordList | TableDefinition) class Relationship(Serialisable): tagname: ClassVar[str] @@ -41,11 +45,19 @@ class RelationshipList(Serialisable): def get_rels_path(path): ... def get_dependents(archive: ZipFile, filename: str) -> RelationshipList: ... + +# If `id` is None, `cls` needs to have ClassVar `rel_type`. +# The `deps` attribute used at runtime is for internal use immediatly after the return. +# `cls` cannot be None @overload def get_rel( - archive: ZipFile, deps: RelationshipList, id: str, cls: type[_SerialisableT] -) -> _SerialisableT: ... # incomplete: this could be restricted further from "Serialisable" + archive: ZipFile, deps: RelationshipList, id: None = None, *, cls: type[_SerialisableRelTypeT] +) -> _SerialisableRelTypeT | None: ... @overload def get_rel( - archive: ZipFile, deps: RelationshipList, id: str | None = None, *, cls: type[_SerialisableT] -) -> _SerialisableT: ... # incomplete: this could be restricted further from "Serialisable" + archive: ZipFile, deps: RelationshipList, id: None, cls: type[_SerialisableRelTypeT] +) -> _SerialisableRelTypeT | None: ... +@overload +def get_rel(archive: ZipFile, deps: RelationshipList, id: str, *, cls: type[_SerialisableT]) -> _SerialisableT: ... +@overload +def get_rel(archive: ZipFile, deps: RelationshipList, id: str, cls: type[_SerialisableT]) -> _SerialisableT: ... From 5a284d6846b7d5395f64d7e62831d5965274140b Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 19 Sep 2023 16:45:08 -0400 Subject: [PATCH 36/51] Extract PIL and zipfile to #10706 --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 6 ++-- stubs/openpyxl/openpyxl/drawing/image.pyi | 21 ++++---------- .../openpyxl/packaging/relationship.pyi | 28 ++----------------- stubs/openpyxl/openpyxl/reader/drawings.pyi | 7 +---- stubs/openpyxl/openpyxl/reader/excel.pyi | 7 ++--- stubs/openpyxl/openpyxl/reader/workbook.pyi | 6 ++-- stubs/openpyxl/openpyxl/styles/stylesheet.pyi | 8 ++---- .../workbook/external_link/external.pyi | 3 +- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 3 +- stubs/openpyxl/openpyxl/writer/excel.pyi | 17 ++++------- 10 files changed, 27 insertions(+), 79 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index ff101fde030a..30fed9019b14 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -41,9 +41,8 @@ openpyxl\.descriptors\.(base\.)?MinMax\.allow_none openpyxl\.descriptors\.(base\.)?String\.allow_none openpyxl\.descriptors\.(base\.)?Typed\.allow_none -# Inconsistent methods because -# - using the default value results in an error because of the runtime type-guards -# - or, keyword arguments are explicitly specified +# "has a default value but stub argument does not" +# Runtime has default arguments that would fail openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.axis._BaseAxis.__init__ @@ -110,7 +109,6 @@ openpyxl.drawing.text.GeomGuide.__init__ openpyxl.drawing.text.PresetTextShape.__init__ openpyxl.drawing.text.TextField.__init__ openpyxl.drawing.text.TextNormalAutofit.__init__ -openpyxl.packaging.relationship.get_rel openpyxl.packaging.relationship.Relationship.__init__ openpyxl.packaging.workbook.ChildSheet.__init__ openpyxl.packaging.workbook.PivotCache.__init__ diff --git a/stubs/openpyxl/openpyxl/drawing/image.pyi b/stubs/openpyxl/openpyxl/drawing/image.pyi index 3bd545df3254..3864d30df85b 100644 --- a/stubs/openpyxl/openpyxl/drawing/image.pyi +++ b/stubs/openpyxl/openpyxl/drawing/image.pyi @@ -1,20 +1,9 @@ -from _typeshed import SupportsRead -from pathlib import Path -from types import ModuleType -from typing import Any -from typing_extensions import Literal, TypeAlias - -# Is actually PIL.Image.Image -_PILImageImage: TypeAlias = Any -# same as first parameter of PIL.Image.open -_PILImageFilePath: TypeAlias = str | bytes | Path | SupportsRead[bytes] - -PILImage: ModuleType | Literal[False] +from _typeshed import Incomplete class Image: anchor: str - ref: _PILImageImage | _PILImageFilePath - format: str - def __init__(self, img: _PILImageImage | _PILImageFilePath) -> None: ... + ref: Incomplete + format: Incomplete + def __init__(self, img) -> None: ... @property - def path(self) -> str: ... + def path(self): ... diff --git a/stubs/openpyxl/openpyxl/packaging/relationship.pyi b/stubs/openpyxl/openpyxl/packaging/relationship.pyi index 8a0aea2f71e3..09165e7bb179 100644 --- a/stubs/openpyxl/openpyxl/packaging/relationship.pyi +++ b/stubs/openpyxl/openpyxl/packaging/relationship.pyi @@ -1,17 +1,10 @@ from _typeshed import Incomplete, Unused from collections.abc import Generator -from typing import ClassVar, TypeVar, overload +from typing import ClassVar, overload from typing_extensions import Literal -from zipfile import ZipFile from openpyxl.descriptors.base import Alias, String from openpyxl.descriptors.serialisable import Serialisable -from openpyxl.pivot.cache import CacheDefinition -from openpyxl.pivot.record import RecordList -from openpyxl.pivot.table import TableDefinition - -_SerialisableT = TypeVar("_SerialisableT", bound=Serialisable) -_SerialisableRelTypeT = TypeVar("_SerialisableRelTypeT", bound=CacheDefinition | RecordList | TableDefinition) class Relationship(Serialisable): tagname: ClassVar[str] @@ -44,20 +37,5 @@ class RelationshipList(Serialisable): def to_tree(self): ... def get_rels_path(path): ... -def get_dependents(archive: ZipFile, filename: str) -> RelationshipList: ... - -# If `id` is None, `cls` needs to have ClassVar `rel_type`. -# The `deps` attribute used at runtime is for internal use immediatly after the return. -# `cls` cannot be None -@overload -def get_rel( - archive: ZipFile, deps: RelationshipList, id: None = None, *, cls: type[_SerialisableRelTypeT] -) -> _SerialisableRelTypeT | None: ... -@overload -def get_rel( - archive: ZipFile, deps: RelationshipList, id: None, cls: type[_SerialisableRelTypeT] -) -> _SerialisableRelTypeT | None: ... -@overload -def get_rel(archive: ZipFile, deps: RelationshipList, id: str, *, cls: type[_SerialisableT]) -> _SerialisableT: ... -@overload -def get_rel(archive: ZipFile, deps: RelationshipList, id: str, cls: type[_SerialisableT]) -> _SerialisableT: ... +def get_dependents(archive, filename): ... +def get_rel(archive, deps, id: Incomplete | None = None, cls: Incomplete | None = None): ... diff --git a/stubs/openpyxl/openpyxl/reader/drawings.pyi b/stubs/openpyxl/openpyxl/reader/drawings.pyi index f2bf8cd0863f..4334877fc2b0 100644 --- a/stubs/openpyxl/openpyxl/reader/drawings.pyi +++ b/stubs/openpyxl/openpyxl/reader/drawings.pyi @@ -1,6 +1 @@ -from zipfile import ZipFile - -from openpyxl.chart._chart import ChartBase -from openpyxl.drawing.image import Image - -def find_images(archive: ZipFile, path: str) -> tuple[list[ChartBase], list[Image]]: ... +def find_images(archive, path): ... diff --git a/stubs/openpyxl/openpyxl/reader/excel.pyi b/stubs/openpyxl/openpyxl/reader/excel.pyi index 894b397a972e..7464059aa03a 100644 --- a/stubs/openpyxl/openpyxl/reader/excel.pyi +++ b/stubs/openpyxl/openpyxl/reader/excel.pyi @@ -1,5 +1,4 @@ -from _typeshed import Incomplete, StrPath -from typing import IO +from _typeshed import Incomplete, StrPath, SupportsRead from typing_extensions import Final, Literal, TypeAlias from zipfile import ZipFile @@ -27,7 +26,7 @@ class ExcelReader: def __init__( self, - fn: StrPath | IO[bytes], + fn: SupportsRead[bytes] | str, read_only: bool = False, keep_vba: bool = False, data_only: bool = False, @@ -45,7 +44,7 @@ class ExcelReader: def read(self) -> None: ... def load_workbook( - filename: StrPath | IO[bytes], + filename: SupportsRead[bytes] | StrPath, read_only: bool = False, keep_vba: bool = False, data_only: bool = False, diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index eadcf9402b49..0638a3b2b461 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -1,5 +1,5 @@ +from _typeshed import Incomplete from collections.abc import Generator, Iterable -from zipfile import ZipFile from openpyxl.packaging.relationship import Relationship, RelationshipList from openpyxl.packaging.workbook import ChildSheet, PivotCache @@ -7,12 +7,12 @@ from openpyxl.pivot.cache import CacheDefinition from openpyxl.workbook import Workbook class WorkbookParser: - archive: ZipFile + archive: Incomplete workbook_part_name: str wb: Workbook keep_links: bool sheets: list[ChildSheet] - def __init__(self, archive: ZipFile, workbook_part_name: str, keep_links: bool = True) -> None: ... + def __init__(self, archive, workbook_part_name: str, keep_links: bool = True) -> None: ... @property def rels(self) -> RelationshipList: ... caches: Iterable[PivotCache] diff --git a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi index 3141a3c2b944..b3c1465ad6ad 100644 --- a/stubs/openpyxl/openpyxl/styles/stylesheet.pyi +++ b/stubs/openpyxl/openpyxl/styles/stylesheet.pyi @@ -1,7 +1,6 @@ from _typeshed import Incomplete, Unused -from typing import ClassVar, TypeVar +from typing import ClassVar from typing_extensions import Literal, Self -from zipfile import ZipFile from openpyxl.descriptors.base import Typed from openpyxl.descriptors.excel import ExtensionList @@ -11,9 +10,6 @@ from openpyxl.styles.colors import ColorList from openpyxl.styles.named_styles import _NamedCellStyleList from openpyxl.styles.numbers import NumberFormatList from openpyxl.styles.table import TableStyleList -from openpyxl.workbook.workbook import Workbook - -_WorkbookT = TypeVar("_WorkbookT", bound=Workbook) class Stylesheet(Serialisable): tagname: ClassVar[str] @@ -54,5 +50,5 @@ class Stylesheet(Serialisable): def custom_formats(self): ... def to_tree(self, tagname: str | None = None, idx: Incomplete | None = None, namespace: str | None = None): ... -def apply_stylesheet(archive: ZipFile, wb: _WorkbookT) -> _WorkbookT | None: ... +def apply_stylesheet(archive, wb): ... def write_stylesheet(wb): ... diff --git a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi index ad7cdcca4def..fcd66e68bdff 100644 --- a/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi +++ b/stubs/openpyxl/openpyxl/workbook/external_link/external.pyi @@ -1,7 +1,6 @@ from _typeshed import Incomplete, Unused from typing import ClassVar from typing_extensions import Literal, TypeAlias -from zipfile import ZipFile from openpyxl.descriptors.base import Bool, Integer, NoneSet, String, Typed, _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.nested import NestedText @@ -77,4 +76,4 @@ class ExternalLink(Serialisable): @property def path(self): ... -def read_external_link(archive: ZipFile, book_path: str) -> ExternalLink: ... +def read_external_link(archive, book_path): ... diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index 06cd0794f177..f6c2571d2395 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -3,7 +3,6 @@ from _typeshed import Incomplete, StrPath from collections.abc import Iterator from typing import IO from typing_extensions import Final -from zipfile import ZipFile from openpyxl import _Decodable from openpyxl.chartsheet.chartsheet import Chartsheet @@ -23,7 +22,7 @@ class Workbook: security: Incomplete shared_strings: Incomplete loaded_theme: Incomplete - vba_archive: ZipFile | None + vba_archive: Incomplete is_template: bool code_name: Incomplete encoding: str diff --git a/stubs/openpyxl/openpyxl/writer/excel.pyi b/stubs/openpyxl/openpyxl/writer/excel.pyi index 24ec70d874d0..624a3c4c05bd 100644 --- a/stubs/openpyxl/openpyxl/writer/excel.pyi +++ b/stubs/openpyxl/openpyxl/writer/excel.pyi @@ -1,17 +1,12 @@ -from _typeshed import StrPath -from typing import IO -from zipfile import ZipFile - -from openpyxl.packaging.manifest import Manifest -from openpyxl.workbook.workbook import Workbook +from _typeshed import Incomplete class ExcelWriter: - workbook: Workbook - manifest: Manifest - vba_modified: set[str | None] - def __init__(self, workbook: Workbook, archive: ZipFile) -> None: ... + workbook: Incomplete + manifest: Incomplete + vba_modified: Incomplete + def __init__(self, workbook, archive) -> None: ... def write_data(self) -> None: ... def write_worksheet(self, ws) -> None: ... def save(self) -> None: ... -def save_workbook(workbook, filename: StrPath | IO[bytes]): ... +def save_workbook(workbook, filename): ... From 200c0960afc7452234f9ed0c9c8dd100177ca2f8 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 19 Sep 2023 17:13:52 -0400 Subject: [PATCH 37/51] datetime and _FileRead changes and fixes --- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 8 ++++---- stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 19 +++++++------------ 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index f6c2571d2395..200751eddbac 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -1,6 +1,6 @@ -import datetime from _typeshed import Incomplete, StrPath from collections.abc import Iterator +from datetime import datetime from typing import IO from typing_extensions import Final @@ -35,9 +35,9 @@ class Workbook: _sheets: list[Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet] def __init__(self, write_only: bool = False, iso_dates: bool = False) -> None: ... @property - def epoch(self) -> datetime.datetime: ... + def epoch(self) -> datetime: ... @epoch.setter - def epoch(self, value: datetime.datetime) -> None: ... + def epoch(self, value: datetime) -> None: ... @property def read_only(self) -> bool: ... @property @@ -45,7 +45,7 @@ class Workbook: @property def write_only(self) -> bool: ... @property - def excel_base_date(self) -> datetime.datetime: ... + def excel_base_date(self) -> datetime: ... @property def active(self) -> Worksheet | WriteOnlyWorksheet | Chartsheet | ReadOnlyWorksheet | None: ... @active.setter diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index 85d3e2bc8a6b..0cc832b89cee 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -1,9 +1,9 @@ -import datetime from _typeshed import Incomplete from collections.abc import Container, Generator, Sequence +from datetime import datetime from typing import Any from typing_extensions import Final -from zipfile import ZipExtFile +from xml.etree.ElementTree import _FileRead from openpyxl.cell.cell import Cell from openpyxl.cell.rich_text import CellRichText @@ -49,8 +49,8 @@ def parse_richtext_string(element: _ChildSerialisableTreeElement) -> CellRichTex class WorkSheetParser: min_row: Incomplete | None min_col: Incomplete | None - epoch: datetime.datetime - source: ZipExtFile | str + epoch: datetime + source: _FileRead shared_strings: Sequence[str] data_only: bool shared_formulae: dict[Incomplete, Incomplete] @@ -73,10 +73,10 @@ class WorkSheetParser: protection: SheetProtection # initialized after call to parse_sheet_protection() def __init__( self, - src: ZipExtFile | str, + src: _FileRead, shared_strings: Sequence[str], data_only: bool = False, - epoch: datetime.datetime = ..., + epoch: datetime = ..., date_formats: Container[int] = ..., timedelta_formats: Container[int] = ..., rich_text: bool = False, @@ -102,12 +102,7 @@ class WorksheetReader: parser: WorkSheetParser tables: list[Incomplete] def __init__( - self, - ws: Worksheet, - xml_source: ZipExtFile | str, - shared_strings: Sequence[str] | None, - data_only: bool | None, - rich_text: bool, + self, ws: Worksheet, xml_source: _FileRead, shared_strings: Sequence[str] | None, data_only: bool | None, rich_text: bool ) -> None: ... def bind_cells(self) -> None: ... def bind_formatting(self) -> None: ... From b957b79b59d19c408c808f28b183ee811a20403a Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 16 Oct 2023 13:28:53 -0400 Subject: [PATCH 38/51] Revert some import changes to reduce changes --- stubs/openpyxl/openpyxl/styles/named_styles.pyi | 13 ++++++------- stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 11 ++++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index 0497750fa254..e7a2b51c6bf5 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -6,15 +6,14 @@ from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, String, Typed, _ConvertibleToBool, _ConvertibleToInt from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.serialisable import Serialisable +from openpyxl.styles.alignment import Alignment +from openpyxl.styles.borders import Border +from openpyxl.styles.cell_style import CellStyle, StyleArray +from openpyxl.styles.fills import Fill +from openpyxl.styles.fonts import Font +from openpyxl.styles.protection import Protection from openpyxl.workbook.workbook import Workbook -from .alignment import Alignment -from .borders import Border -from .cell_style import CellStyle, StyleArray -from .fills import Fill -from .fonts import Font -from .protection import Protection - class NamedStyle(Serialisable): font: Typed[Font, Literal[False]] fill: Typed[Fill, Literal[False]] diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index 0cc832b89cee..02d5ecf603a5 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -8,13 +8,14 @@ from xml.etree.ElementTree import _FileRead from openpyxl.cell.cell import Cell from openpyxl.cell.rich_text import CellRichText from openpyxl.descriptors.serialisable import _ChildSerialisableTreeElement -from openpyxl.worksheet.hyperlink import HyperlinkList -from openpyxl.worksheet.pagebreak import ColBreak, RowBreak -from openpyxl.worksheet.protection import SheetProtection -from openpyxl.worksheet.table import TablePartList -from openpyxl.worksheet.worksheet import Worksheet from openpyxl.xml.functions import Element +from .hyperlink import HyperlinkList +from .pagebreak import ColBreak, RowBreak +from .protection import SheetProtection +from .table import TablePartList +from .worksheet import Worksheet + CELL_TAG: Final[str] VALUE_TAG: Final[str] FORMULA_TAG: Final[str] From ae8101cc05501c0905c2c55ef45ffecc8260231c Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 16 Oct 2023 13:34:17 -0400 Subject: [PATCH 39/51] Generator send actually unknown --- stubs/openpyxl/openpyxl/worksheet/_writer.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi index d2ce4656c985..f01bd3ed9243 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi @@ -23,7 +23,7 @@ def create_temporary_file(suffix: str = "") -> str: ... class WorksheetWriter: ws: Worksheet | WriteOnlyWorksheet out: _OutType - xf: Generator[Incomplete | None, None, None] + xf: Generator[Incomplete | None, Incomplete, None] def __init__(self, ws: Worksheet | WriteOnlyWorksheet, out: _OutType | None = None) -> None: ... def write_properties(self) -> None: ... def write_dimensions(self) -> None: ... @@ -50,7 +50,7 @@ class WorksheetWriter: def write_drawings(self) -> None: ... def write_legacy(self) -> None: ... def write_tables(self) -> None: ... - def get_stream(self) -> Generator[Incomplete | None, None, None]: ... + def get_stream(self) -> Generator[Incomplete | None, Incomplete, None]: ... def write_tail(self) -> None: ... def write(self) -> None: ... def close(self) -> None: ... From 6f408a6293655a8d8f7a91b3f4cc42f97260a91a Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 16 Oct 2023 14:43:24 -0400 Subject: [PATCH 40/51] avoid backref --- stubs/openpyxl/openpyxl/cell/text.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stubs/openpyxl/openpyxl/cell/text.pyi b/stubs/openpyxl/openpyxl/cell/text.pyi index bc1459e6a67f..56ee76b30e62 100644 --- a/stubs/openpyxl/openpyxl/cell/text.pyi +++ b/stubs/openpyxl/openpyxl/cell/text.pyi @@ -12,7 +12,6 @@ from ..xml._functions_overloads import _HasTagAndGet _PhoneticPropertiesType: TypeAlias = Literal["halfwidthKatakana", "fullwidthKatakana", "Hiragana", "noConversion"] _PhoneticPropertiesAlignment: TypeAlias = Literal["noControl", "left", "center", "distributed"] -_PhoneticProperties: TypeAlias = PhoneticProperties class PhoneticProperties(Serialisable): tagname: ClassVar[str] @@ -26,6 +25,8 @@ class PhoneticProperties(Serialisable): alignment: _PhoneticPropertiesAlignment | Literal["none"] | None = None, ) -> None: ... +_PhoneticProperties: TypeAlias = PhoneticProperties + class PhoneticText(Serialisable): tagname: ClassVar[str] sb: Integer[Literal[False]] From 11446be1cb245d54afc3ed691e15eca4c5f4b494 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 16 Oct 2023 14:44:48 -0400 Subject: [PATCH 41/51] tagname stays classvar --- stubs/openpyxl/openpyxl/styles/protection.pyi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stubs/openpyxl/openpyxl/styles/protection.pyi b/stubs/openpyxl/openpyxl/styles/protection.pyi index 21c54bcb094c..d317a5d46acf 100644 --- a/stubs/openpyxl/openpyxl/styles/protection.pyi +++ b/stubs/openpyxl/openpyxl/styles/protection.pyi @@ -1,10 +1,11 @@ +from typing import ClassVar from typing_extensions import Literal from openpyxl.descriptors.base import Bool, _ConvertibleToBool from openpyxl.descriptors.serialisable import Serialisable class Protection(Serialisable): - tagname: str + tagname: ClassVar[str] locked: Bool[Literal[False]] hidden: Bool[Literal[False]] def __init__(self, locked: _ConvertibleToBool = True, hidden: _ConvertibleToBool = False) -> None: ... From 5fc62cce67295c76a4df8252bff61e5cd86589a1 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 30 Nov 2023 19:10:44 -0500 Subject: [PATCH 42/51] non-complex extraction from 9511 --- stubs/openpyxl/@tests/stubtest_allowlist.txt | 2 + stubs/openpyxl/openpyxl/cell/cell.pyi | 5 +- .../openpyxl/chartsheet/chartsheet.pyi | 2 +- stubs/openpyxl/openpyxl/reader/workbook.pyi | 16 +++--- .../openpyxl/openpyxl/styles/differential.pyi | 12 ++-- .../openpyxl/openpyxl/styles/named_styles.pyi | 21 ++++--- stubs/openpyxl/openpyxl/styles/numbers.pyi | 6 +- stubs/openpyxl/openpyxl/utils/cell.pyi | 18 +++--- stubs/openpyxl/openpyxl/utils/escape.pyi | 4 +- stubs/openpyxl/openpyxl/workbook/child.pyi | 8 +-- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 13 ++--- .../openpyxl/worksheet/_read_only.pyi | 3 +- stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 55 ++++++++++--------- stubs/openpyxl/openpyxl/worksheet/_writer.pyi | 8 +-- .../openpyxl/worksheet/cell_range.pyi | 10 ++++ stubs/openpyxl/openpyxl/worksheet/copier.pyi | 8 +-- .../openpyxl/worksheet/dimensions.pyi | 5 +- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 53 ++++++++++++++---- .../openpyxl/xml/_functions_overloads.pyi | 9 +-- 19 files changed, 158 insertions(+), 100 deletions(-) diff --git a/stubs/openpyxl/@tests/stubtest_allowlist.txt b/stubs/openpyxl/@tests/stubtest_allowlist.txt index 8ef8dbb7e49b..a1cce8213fab 100644 --- a/stubs/openpyxl/@tests/stubtest_allowlist.txt +++ b/stubs/openpyxl/@tests/stubtest_allowlist.txt @@ -44,6 +44,8 @@ openpyxl\.descriptors\.(base\.)?Typed\.allow_none # Inconsistent methods because # - using the default value results in an error because of the runtime type-guards # - or, keyword arguments are explicitly specified +openpyxl.cell.Cell.__init__ +openpyxl.cell.cell.Cell.__init__ openpyxl.cell.text.PhoneticProperties.__init__ openpyxl.cell.text.PhoneticText.__init__ openpyxl.chart.axis._BaseAxis.__init__ diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index e92a5b5ee4df..5c961240b880 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -39,11 +39,12 @@ class Cell(StyleableObject): row: int column: int data_type: str + # row and column are never meant to be None and would lead to errors def __init__( self, worksheet: Worksheet, - row: int | None = None, - column: int | None = None, + row: int, + column: int, value: str | float | datetime | None = None, style_array: StyleArray | None = None, ) -> None: ... diff --git a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi index 2f87d4d1ee34..415fe9ed4683 100644 --- a/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi +++ b/stubs/openpyxl/openpyxl/chartsheet/chartsheet.pyi @@ -33,7 +33,7 @@ class Chartsheet(_WorkbookChild, Serialisable): extLst: Typed[ExtensionList, Literal[True]] sheet_state: Set[_VisibilityType] headerFooter: Typed[_HeaderFooter, Literal[False]] - HeaderFooter: Alias + HeaderFooter: Alias # type: ignore[assignment] # Different from parent class __elements__: ClassVar[tuple[str, ...]] __attrs__: ClassVar[tuple[str, ...]] def __init__( diff --git a/stubs/openpyxl/openpyxl/reader/workbook.pyi b/stubs/openpyxl/openpyxl/reader/workbook.pyi index 2b6e03d5b9eb..d27a6deb9e59 100644 --- a/stubs/openpyxl/openpyxl/reader/workbook.pyi +++ b/stubs/openpyxl/openpyxl/reader/workbook.pyi @@ -2,22 +2,24 @@ from _typeshed import Incomplete from collections.abc import Generator from zipfile import ZipFile -from openpyxl.packaging.relationship import RelationshipList +from openpyxl.packaging.relationship import Relationship, RelationshipList +from openpyxl.packaging.workbook import PivotCache from openpyxl.pivot.cache import CacheDefinition from openpyxl.workbook import Workbook class WorkbookParser: archive: ZipFile - workbook_part_name: Incomplete + workbook_part_name: str wb: Workbook - keep_links: Incomplete - sheets: Incomplete - def __init__(self, archive: ZipFile, workbook_part_name, keep_links: bool = True) -> None: ... + keep_links: bool + sheets: list[Incomplete] + def __init__(self, archive: ZipFile, workbook_part_name: str, keep_links: bool = True) -> None: ... @property def rels(self) -> RelationshipList: ... - caches: Incomplete + # Errors if "parse" is never called. + caches: list[PivotCache] def parse(self) -> None: ... - def find_sheets(self) -> Generator[Incomplete, None, None]: ... + def find_sheets(self) -> Generator[tuple[Incomplete, Relationship], None, None]: ... def assign_names(self) -> None: ... @property def pivot_caches(self) -> dict[int, CacheDefinition]: ... diff --git a/stubs/openpyxl/openpyxl/styles/differential.pyi b/stubs/openpyxl/openpyxl/styles/differential.pyi index 7fac40e0f49a..95b0c38a0ba2 100644 --- a/stubs/openpyxl/openpyxl/styles/differential.pyi +++ b/stubs/openpyxl/openpyxl/styles/differential.pyi @@ -1,5 +1,5 @@ -from _typeshed import Incomplete -from typing import ClassVar +from _typeshed import Incomplete, Unused +from typing import ClassVar, SupportsIndex from typing_extensions import Literal from openpyxl.descriptors.base import Alias, Typed @@ -34,10 +34,10 @@ class DifferentialStyleList(Serialisable): dxf: Incomplete styles: Alias __attrs__: ClassVar[tuple[str, ...]] - def __init__(self, dxf=(), count: Incomplete | None = None) -> None: ... - def append(self, dxf) -> None: ... - def add(self, dxf): ... + def __init__(self, dxf=(), count: Unused = None) -> None: ... + def append(self, dxf: DifferentialStyle) -> None: ... + def add(self, dxf: DifferentialStyle): ... def __bool__(self) -> bool: ... - def __getitem__(self, idx): ... + def __getitem__(self, idx: SupportsIndex) -> DifferentialStyle: ... @property def count(self) -> int: ... diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index 59267539993b..961ac894f4aa 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -1,6 +1,6 @@ from _typeshed import ConvertibleToInt, Incomplete, Unused from collections.abc import Iterator -from typing import ClassVar +from typing import ClassVar, overload from typing_extensions import Literal from openpyxl.descriptors.base import Bool, Integer, String, Typed, _ConvertibleToBool @@ -8,9 +8,11 @@ from openpyxl.descriptors.excel import ExtensionList from openpyxl.descriptors.serialisable import Serialisable from openpyxl.styles.alignment import Alignment from openpyxl.styles.borders import Border +from openpyxl.styles.cell_style import CellStyle, StyleArray from openpyxl.styles.fills import Fill from openpyxl.styles.fonts import Font from openpyxl.styles.protection import Protection +from openpyxl.workbook.workbook import Workbook class NamedStyle(Serialisable): font: Typed[Font, Literal[False]] @@ -41,16 +43,19 @@ class NamedStyle(Serialisable): def __iter__(self) -> Iterator[tuple[str, str]]: ... @property def xfId(self) -> int | None: ... - def bind(self, wb) -> None: ... - def as_tuple(self): ... - def as_xf(self): ... - def as_name(self): ... + def bind(self, wb: Workbook) -> None: ... + def as_tuple(self) -> StyleArray: ... + def as_xf(self) -> CellStyle: ... + def as_name(self) -> _NamedCellStyle: ... -class NamedStyleList(list[Incomplete]): +class NamedStyleList(list[NamedStyle]): @property def names(self) -> list[str]: ... - def __getitem__(self, key): ... - def append(self, style) -> None: ... + @overload # type: ignore[override] + def __getitem__(self, key: int) -> NamedStyle: ... + @overload + def __getitem__(self, key: str) -> Incomplete | None: ... + def append(self, style: NamedStyle) -> None: ... class _NamedCellStyle(Serialisable): tagname: ClassVar[str] diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index b9856cc155c3..79901420186d 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -1,6 +1,6 @@ from _typeshed import ConvertibleToInt, Incomplete, Unused from re import Pattern -from typing import ClassVar, overload +from typing import ClassVar, SupportsIndex, overload from typing_extensions import Final, Literal, TypeGuard from openpyxl.descriptors import Strict, String @@ -58,7 +58,7 @@ def is_datetime(fmt: None) -> None: ... @overload def is_datetime(fmt: str) -> Literal["datetime", "date", "time"] | None: ... def is_builtin(fmt: str | None) -> TypeGuard[str]: ... -def builtin_format_code(index): ... +def builtin_format_code(index: int) -> str | None: ... @overload def builtin_format_id(fmt: None) -> None: ... @overload @@ -81,4 +81,4 @@ class NumberFormatList(Serialisable): def __init__(self, count: Unused = None, numFmt=()) -> None: ... @property def count(self) -> int: ... - def __getitem__(self, idx): ... + def __getitem__(self, idx: SupportsIndex) -> NumberFormat: ... diff --git a/stubs/openpyxl/openpyxl/utils/cell.pyi b/stubs/openpyxl/openpyxl/utils/cell.pyi index 5b15e29f355e..bc6408534247 100644 --- a/stubs/openpyxl/openpyxl/utils/cell.pyi +++ b/stubs/openpyxl/openpyxl/utils/cell.pyi @@ -1,11 +1,13 @@ -from _typeshed import Incomplete from collections.abc import Generator from re import Pattern -from typing_extensions import Final +from typing_extensions import Final, TypeAlias + +# "1:1" | "A1:A1" | "A:A" +_RangeBoundariesTuple: TypeAlias = tuple[None, int, None, int] | tuple[int, int, int, int] | tuple[int, None, int, None] COORD_RE: Final[Pattern[str]] -COL_RANGE: Final = """[A-Z]{1,3}:[A-Z]{1,3}:""" -ROW_RANGE: Final = r"""\d+:\d+:""" +COL_RANGE: Final = "[A-Z]{1,3}:[A-Z]{1,3}:" +ROW_RANGE: Final = r"\d+:\d+:" RANGE_EXPR: Final[str] ABSOLUTE_RE: Final[Pattern[str]] SHEET_TITLE: Final[str] @@ -16,9 +18,9 @@ def coordinate_from_string(coord_string: str) -> tuple[str, int]: ... def absolute_coordinate(coord_string: str) -> str: ... def get_column_letter(idx: int) -> str: ... def column_index_from_string(str_col: str) -> int: ... -def range_boundaries(range_string: str) -> tuple[int, int, int, int]: ... -def rows_from_range(range_string) -> Generator[Incomplete, None, None]: ... -def cols_from_range(range_string) -> Generator[Incomplete, None, None]: ... +def range_boundaries(range_string: str) -> _RangeBoundariesTuple: ... +def rows_from_range(range_string) -> Generator[tuple[str, ...], None, None]: ... +def cols_from_range(range_string) -> Generator[tuple[str, ...], None, None]: ... def coordinate_to_tuple(coordinate: str) -> tuple[int, int]: ... -def range_to_tuple(range_string: str) -> tuple[str, tuple[int, int, int, int]]: ... +def range_to_tuple(range_string: str) -> tuple[str, _RangeBoundariesTuple]: ... def quote_sheetname(sheetname: str) -> str: ... diff --git a/stubs/openpyxl/openpyxl/utils/escape.pyi b/stubs/openpyxl/openpyxl/utils/escape.pyi index 3e182f450ba6..0ad3a1008f0a 100644 --- a/stubs/openpyxl/openpyxl/utils/escape.pyi +++ b/stubs/openpyxl/openpyxl/utils/escape.pyi @@ -1,2 +1,2 @@ -def escape(value): ... -def unescape(value): ... +def escape(value: str) -> str: ... +def unescape(value: str) -> str: ... diff --git a/stubs/openpyxl/openpyxl/workbook/child.pyi b/stubs/openpyxl/openpyxl/workbook/child.pyi index 678dcbb1a264..c4e07c6e6383 100644 --- a/stubs/openpyxl/openpyxl/workbook/child.pyi +++ b/stubs/openpyxl/openpyxl/workbook/child.pyi @@ -1,17 +1,17 @@ -from _typeshed import Incomplete +from collections.abc import Iterable from re import Pattern from typing_extensions import Final from openpyxl import _Decodable from openpyxl.workbook.workbook import Workbook -from openpyxl.worksheet.header_footer import HeaderFooterItem +from openpyxl.worksheet.header_footer import HeaderFooter, HeaderFooterItem INVALID_TITLE_REGEX: Final[Pattern[str]] -def avoid_duplicate_name(names, value): ... +def avoid_duplicate_name(names: Iterable[str], value: str) -> str: ... class _WorkbookChild: - HeaderFooter: Incomplete + HeaderFooter: HeaderFooter def __init__(self, parent: Workbook | None = None, title: str | _Decodable | None = None) -> None: ... @property def parent(self) -> Workbook | None: ... diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index d418f46a5f66..d9461f479950 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -1,4 +1,4 @@ -from _typeshed import Incomplete +from _typeshed import Incomplete, Unused from collections.abc import Iterator from datetime import datetime from typing_extensions import Final @@ -8,6 +8,7 @@ from openpyxl import _Decodable, _ZipFileFileProtocol from openpyxl.chartsheet.chartsheet import Chartsheet from openpyxl.styles.named_styles import NamedStyle from openpyxl.workbook.child import _WorkbookChild +from openpyxl.worksheet._read_only import ReadOnlyWorksheet from openpyxl.worksheet._write_only import WriteOnlyWorksheet from openpyxl.worksheet.worksheet import Worksheet @@ -46,7 +47,7 @@ class Workbook: def active(self) -> _WorkbookChild | None: ... @active.setter def active(self, value: _WorkbookChild | int) -> None: ... - def create_sheet(self, title: str | _Decodable | None = None, index: int | None = None): ... + def create_sheet(self, title: str | _Decodable | None = None, index: int | None = None) -> WriteOnlyWorksheet | Worksheet: ... def move_sheet(self, sheet: Worksheet | str, offset: int = 0) -> None: ... def remove(self, worksheet: Worksheet) -> None: ... def remove_sheet(self, worksheet: Worksheet) -> None: ... @@ -60,17 +61,13 @@ class Workbook: def __iter__(self) -> Iterator[Worksheet]: ... def get_sheet_names(self) -> list[Worksheet]: ... @property - def worksheets(self) -> list[Worksheet]: ... + def worksheets(self) -> list[Worksheet | ReadOnlyWorksheet | WriteOnlyWorksheet]: ... @property def chartsheets(self) -> list[Chartsheet]: ... @property def sheetnames(self) -> list[str]: ... def create_named_range( - self, - name: str, - worksheet: Worksheet | None = None, - value: str | Incomplete | None = None, - scope: Incomplete | None = None, + self, name: str, worksheet: Worksheet | None = None, value: str | Incomplete | None = None, scope: Unused = None ) -> None: ... def add_named_style(self, style: NamedStyle) -> None: ... @property diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index 8eba59e181a5..224bc864eac6 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -4,9 +4,10 @@ from collections.abc import Generator from openpyxl import _VisibilityType from openpyxl.cell import _CellValue from openpyxl.cell.cell import Cell +from openpyxl.utils.cell import _RangeBoundariesTuple from openpyxl.worksheet.worksheet import Worksheet -def read_dimension(source): ... +def read_dimension(source) -> _RangeBoundariesTuple | None: ... class ReadOnlyWorksheet: cell = Worksheet.cell diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index d5e0d4169697..c5568abfdc85 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -1,11 +1,14 @@ -from _typeshed import Incomplete +from _typeshed import Incomplete, SupportsGetItem, Unused from collections.abc import Container, Generator from datetime import datetime from typing_extensions import Final +from xml.etree.ElementTree import _FileRead from openpyxl.cell.rich_text import CellRichText -from openpyxl.descriptors.serialisable import _ChildSerialisableTreeElement +from openpyxl.descriptors.serialisable import _ChildSerialisableTreeElement, _SerialisableTreeElement +from openpyxl.utils.cell import _RangeBoundariesTuple +from ..xml._functions_overloads import _HasAttrib, _SupportsIterAndAttrib from .hyperlink import HyperlinkList from .pagebreak import ColBreak, RowBreak from .protection import SheetProtection @@ -46,15 +49,15 @@ class WorkSheetParser: min_row: Incomplete | None min_col: Incomplete | None epoch: datetime - source: Incomplete - shared_strings: Incomplete + source: _FileRead + shared_strings: SupportsGetItem[int, Incomplete] data_only: bool shared_formulae: dict[Incomplete, Incomplete] row_counter: int col_counter: int tables: TablePartList - date_formats: Container[Incomplete] - timedelta_formats: Container[Incomplete] + date_formats: Container[int] + timedelta_formats: Container[int] row_dimensions: dict[Incomplete, Incomplete] column_dimensions: dict[Incomplete, Incomplete] number_formats: list[Incomplete] @@ -70,39 +73,41 @@ class WorkSheetParser: def __init__( self, - src, - shared_strings, + src: _FileRead, + shared_strings: SupportsGetItem[int, Incomplete], data_only: bool = False, epoch: datetime = ..., - date_formats: Container[Incomplete] = ..., - timedelta_formats: Container[Incomplete] = ..., + date_formats: Container[int] = ..., + timedelta_formats: Container[int] = ..., rich_text: bool = False, ) -> None: ... def parse(self) -> Generator[Incomplete, None, None]: ... - def parse_dimensions(self): ... - def parse_cell(self, element): ... + def parse_dimensions(self) -> _RangeBoundariesTuple | None: ... + def parse_cell(self, element) -> dict[str, Incomplete]: ... def parse_formula(self, element): ... - def parse_column_dimensions(self, col) -> None: ... - def parse_row(self, row): ... - def parse_formatting(self, element) -> None: ... - def parse_sheet_protection(self, element) -> None: ... - def parse_extensions(self, element) -> None: ... - def parse_legacy(self, element) -> None: ... - def parse_row_breaks(self, element) -> None: ... - def parse_col_breaks(self, element) -> None: ... - def parse_custom_views(self, element) -> None: ... + def parse_column_dimensions(self, col: _HasAttrib) -> None: ... + def parse_row(self, row: _SupportsIterAndAttrib) -> tuple[int, list[dict[str, Incomplete]]]: ... + def parse_formatting(self, element: _ChildSerialisableTreeElement) -> None: ... + def parse_sheet_protection(self, element: _SerialisableTreeElement) -> None: ... + def parse_extensions(self, element: _ChildSerialisableTreeElement) -> None: ... + def parse_legacy(self, element: _ChildSerialisableTreeElement) -> None: ... + def parse_row_breaks(self, element: _ChildSerialisableTreeElement) -> None: ... + def parse_col_breaks(self, element: _ChildSerialisableTreeElement) -> None: ... + def parse_custom_views(self, element: Unused) -> None: ... class WorksheetReader: ws: Incomplete - parser: Incomplete - tables: Incomplete - def __init__(self, ws, xml_source, shared_strings, data_only, rich_text: bool) -> None: ... + parser: WorkSheetParser + tables: list[Incomplete] + def __init__( + self, ws, xml_source: _FileRead, shared_strings: SupportsGetItem[int, Incomplete], data_only: bool, rich_text: bool + ) -> None: ... def bind_cells(self) -> None: ... def bind_formatting(self) -> None: ... def bind_tables(self) -> None: ... def bind_merged_cells(self) -> None: ... def bind_hyperlinks(self) -> None: ... - def normalize_merged_cell_link(self, coord): ... + def normalize_merged_cell_link(self, coord: str) -> Incomplete | None: ... def bind_col_dimensions(self) -> None: ... def bind_row_dimensions(self) -> None: ... def bind_properties(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi index 841132661d44..1515119354e3 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi @@ -14,12 +14,12 @@ _OutType: TypeAlias = _SupportsCloseAndWrite | StrPath ALL_TEMP_FILES: list[str] -def create_temporary_file(suffix: str = ""): ... +def create_temporary_file(suffix: str = "") -> str: ... class WorksheetWriter: ws: Incomplete out: _OutType - xf: Incomplete + xf: Generator[Incomplete | None, Incomplete, None] def __init__(self, ws, out: _OutType | None = None) -> None: ... def write_properties(self) -> None: ... def write_dimensions(self) -> None: ... @@ -27,7 +27,7 @@ class WorksheetWriter: def write_views(self) -> None: ... def write_cols(self) -> None: ... def write_top(self) -> None: ... - def rows(self): ... + def rows(self) -> list[tuple[int, list[Incomplete]]]: ... def write_rows(self) -> None: ... def write_row(self, xf, row, row_idx) -> None: ... def write_protection(self) -> None: ... @@ -50,5 +50,5 @@ class WorksheetWriter: def write_tail(self) -> None: ... def write(self) -> None: ... def close(self) -> None: ... - def read(self): ... + def read(self) -> bytes: ... def cleanup(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi index b970a970aac4..3f79e30c6481 100644 --- a/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/cell_range.pyi @@ -36,6 +36,16 @@ class CellRange(Serialisable): max_row: ConvertibleToInt, title: str | None = None, ) -> None: ... + @overload + def __init__( + self, + range_string: None, + min_col: ConvertibleToInt, + min_row: ConvertibleToInt, + max_col: ConvertibleToInt, + max_row: ConvertibleToInt, + title: str | None = None, + ) -> None: ... @property def bounds(self) -> tuple[int, int, int, int]: ... @property diff --git a/stubs/openpyxl/openpyxl/worksheet/copier.pyi b/stubs/openpyxl/openpyxl/worksheet/copier.pyi index 5e8886fd781f..e32d38c5747b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/copier.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/copier.pyi @@ -1,7 +1,7 @@ -from _typeshed import Incomplete +from openpyxl.worksheet.worksheet import Worksheet class WorksheetCopy: - source: Incomplete - target: Incomplete - def __init__(self, source_worksheet, target_worksheet) -> None: ... + source: Worksheet + target: Worksheet + def __init__(self, source_worksheet: Worksheet, target_worksheet: Worksheet) -> None: ... def copy_worksheet(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi b/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi index 230a41d72253..442d8415d02b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/dimensions.pyi @@ -8,6 +8,7 @@ from openpyxl.descriptors.base import Alias, Bool, Float, Integer, String, _Conv from openpyxl.descriptors.serialisable import Serialisable from openpyxl.styles.styleable import StyleableObject from openpyxl.utils.bound_dictionary import BoundDictionary +from openpyxl.utils.cell import _RangeBoundariesTuple from openpyxl.worksheet.worksheet import Worksheet from openpyxl.xml.functions import Element @@ -21,7 +22,7 @@ class Dimension(Strict, StyleableObject): outlineLevel: Integer[Literal[True]] outline_level: Alias collapsed: Bool[Literal[False]] - style: Alias + style: Alias # type: ignore[assignment] def __init__( self, @@ -139,4 +140,4 @@ class SheetDimension(Serialisable): ref: String[Literal[False]] def __init__(self, ref: str) -> None: ... @property - def boundaries(self) -> tuple[int, int, int, int]: ... + def boundaries(self) -> _RangeBoundariesTuple: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 3ce24862b711..ab906df22fb9 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -1,12 +1,15 @@ -from _typeshed import Incomplete +from _typeshed import ConvertibleToInt, Incomplete, Unused from collections.abc import Generator, Iterable, Iterator from datetime import datetime +from types import GeneratorType from typing import Any, NoReturn, overload from typing_extensions import Final, Literal from openpyxl import _Decodable, _VisibilityType from openpyxl.cell import _CellValue from openpyxl.cell.cell import Cell +from openpyxl.chart._chart import ChartBase +from openpyxl.drawing.image import Image from openpyxl.formatting.formatting import ConditionalFormattingList from openpyxl.workbook.child import _WorkbookChild from openpyxl.workbook.defined_name import DefinedNameDict @@ -68,7 +71,7 @@ class Worksheet(_WorkbookChild): sheet_format: SheetFormatProperties scenarios: ScenarioList - def __init__(self, parent: Workbook, title: str | _Decodable | None = None) -> None: ... + def __init__(self, parent: Workbook | None, title: str | _Decodable | None = None) -> None: ... @property def sheet_view(self) -> SheetView: ... @property @@ -183,22 +186,43 @@ class Worksheet(_WorkbookChild): @property def columns(self) -> Generator[tuple[Cell, ...], None, None]: ... def set_printer_settings( - self, paper_size: int | None, orientation: None | Literal["default", "portrait", "landscape"] + self, paper_size: int | None, orientation: Literal["default", "portrait", "landscape"] | None ) -> None: ... def add_data_validation(self, data_validation: DataValidation) -> None: ... - def add_chart(self, chart, anchor: Incomplete | None = None) -> None: ... - def add_image(self, img, anchor: Incomplete | None = None) -> None: ... + def add_chart(self, chart: ChartBase, anchor: str | None = None) -> None: ... + def add_image(self, img: Image, anchor: str | None = None) -> None: ... def add_table(self, table: Table) -> None: ... @property def tables(self) -> TableList: ... def add_pivot(self, pivot) -> None: ... + # Same overload as CellRange.__init__ + @overload def merge_cells( self, - range_string: str | None = None, - start_row: int | None = None, - start_column: int | None = None, - end_row: int | None = None, - end_column: int | None = None, + range_string: str, + start_row: Unused = None, + start_column: Unused = None, + end_row: Unused = None, + end_column: Unused = None, + ) -> None: ... + @overload + def merge_cells( + self, + range_string: None = None, + *, + start_row: ConvertibleToInt, + start_column: ConvertibleToInt, + end_row: ConvertibleToInt, + end_column: ConvertibleToInt, + ) -> None: ... + @overload + def merge_cells( + self, + range_string: None, + start_row: ConvertibleToInt, + start_column: ConvertibleToInt, + end_row: ConvertibleToInt, + end_column: ConvertibleToInt, ) -> None: ... # deprecated: Will always raise: TypeError: 'set' object is not subscriptable @property @@ -211,7 +235,14 @@ class Worksheet(_WorkbookChild): end_row: int | None = None, end_column: int | None = None, ) -> None: ... - def append(self, iterable: Iterable[Incomplete]) -> None: ... + def append( + self, + iterable: list[Incomplete] + | tuple[Incomplete, ...] + | range + | GeneratorType[Incomplete, object, object] + | dict[int | str, Incomplete], + ) -> None: ... def insert_rows(self, idx: int, amount: int = 1) -> None: ... def insert_cols(self, idx: int, amount: int = 1) -> None: ... def delete_rows(self, idx: int, amount: int = 1) -> None: ... diff --git a/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi b/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi index e99694d1a5a3..4583f01a8240 100644 --- a/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi +++ b/stubs/openpyxl/openpyxl/xml/_functions_overloads.pyi @@ -1,7 +1,7 @@ # This file does not exist at runtime. It is a helper file to overload imported functions in openpyxl.xml.functions import sys -from _typeshed import Incomplete, ReadableBuffer, SupportsIter +from _typeshed import Incomplete, ReadableBuffer from collections.abc import Iterable, Iterator, Mapping, Sequence from typing import Any, Protocol, TypeVar, overload from typing_extensions import TypeAlias @@ -38,11 +38,12 @@ class _SupportsFindChartLines(Protocol): def find(self, __path: str) -> ChartLines | None: ... class _SupportsFindAndIterAndAttribAndText( # noqa: Y046 - _SupportsFindChartLines, SupportsIter[Incomplete], _HasAttrib, _HasText, Protocol + _SupportsFindChartLines, Iterable[Incomplete], _HasAttrib, _HasText, Protocol ): ... -class _SupportsIterAndAttribAndTextAndTag(SupportsIter[Incomplete], _HasAttrib, _HasText, _HasTag, Protocol): ... # noqa: Y046 +class _SupportsIterAndAttrib(Iterable[Incomplete], _HasAttrib, Protocol): ... # noqa: Y046 +class _SupportsIterAndAttribAndTextAndTag(Iterable[Incomplete], _HasAttrib, _HasText, _HasTag, Protocol): ... # noqa: Y046 class _SupportsIterAndAttribAndTextAndGet( # noqa: Y046 - SupportsIter[Incomplete], _HasAttrib, _HasText, _HasGet[Incomplete], Protocol + Iterable[Incomplete], _HasAttrib, _HasText, _HasGet[Incomplete], Protocol ): ... class _ParentElement(Protocol[_T]): From cc96eb41635f8efc744ad567cbdb0db2f037c5b5 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 30 Nov 2023 19:47:30 -0500 Subject: [PATCH 43/51] Fix CI failures --- stubs/openpyxl/openpyxl/styles/differential.pyi | 4 ++-- stubs/openpyxl/openpyxl/styles/numbers.pyi | 4 ++-- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/stubs/openpyxl/openpyxl/styles/differential.pyi b/stubs/openpyxl/openpyxl/styles/differential.pyi index 95b0c38a0ba2..45e3cca290fe 100644 --- a/stubs/openpyxl/openpyxl/styles/differential.pyi +++ b/stubs/openpyxl/openpyxl/styles/differential.pyi @@ -1,6 +1,6 @@ from _typeshed import Incomplete, Unused -from typing import ClassVar, SupportsIndex -from typing_extensions import Literal +from typing import ClassVar +from typing_extensions import Literal, SupportsIndex from openpyxl.descriptors.base import Alias, Typed from openpyxl.descriptors.excel import ExtensionList diff --git a/stubs/openpyxl/openpyxl/styles/numbers.pyi b/stubs/openpyxl/openpyxl/styles/numbers.pyi index 79901420186d..1fdf97202126 100644 --- a/stubs/openpyxl/openpyxl/styles/numbers.pyi +++ b/stubs/openpyxl/openpyxl/styles/numbers.pyi @@ -1,7 +1,7 @@ from _typeshed import ConvertibleToInt, Incomplete, Unused from re import Pattern -from typing import ClassVar, SupportsIndex, overload -from typing_extensions import Final, Literal, TypeGuard +from typing import ClassVar, overload +from typing_extensions import Final, Literal, SupportsIndex, TypeGuard from openpyxl.descriptors import Strict, String from openpyxl.descriptors.base import Integer diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index d9461f479950..7378ac39508e 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -8,7 +8,6 @@ from openpyxl import _Decodable, _ZipFileFileProtocol from openpyxl.chartsheet.chartsheet import Chartsheet from openpyxl.styles.named_styles import NamedStyle from openpyxl.workbook.child import _WorkbookChild -from openpyxl.worksheet._read_only import ReadOnlyWorksheet from openpyxl.worksheet._write_only import WriteOnlyWorksheet from openpyxl.worksheet.worksheet import Worksheet @@ -47,7 +46,8 @@ class Workbook: def active(self) -> _WorkbookChild | None: ... @active.setter def active(self, value: _WorkbookChild | int) -> None: ... - def create_sheet(self, title: str | _Decodable | None = None, index: int | None = None) -> WriteOnlyWorksheet | Worksheet: ... + # Should return WriteOnlyWorksheet or Worksheet based on generic write_only + def create_sheet(self, title: str | _Decodable | None = None, index: int | None = None) -> Worksheet: ... def move_sheet(self, sheet: Worksheet | str, offset: int = 0) -> None: ... def remove(self, worksheet: Worksheet) -> None: ... def remove_sheet(self, worksheet: Worksheet) -> None: ... @@ -61,7 +61,7 @@ class Workbook: def __iter__(self) -> Iterator[Worksheet]: ... def get_sheet_names(self) -> list[Worksheet]: ... @property - def worksheets(self) -> list[Worksheet | ReadOnlyWorksheet | WriteOnlyWorksheet]: ... + def worksheets(self) -> list[Worksheet]: ... @property def chartsheets(self) -> list[Chartsheet]: ... @property From 169ea2040bdfc91995c12234f7cd4ef459c2fb45 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 30 Nov 2023 21:17:03 -0500 Subject: [PATCH 44/51] create_sheet return type --- stubs/openpyxl/openpyxl/workbook/workbook.pyi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/stubs/openpyxl/openpyxl/workbook/workbook.pyi b/stubs/openpyxl/openpyxl/workbook/workbook.pyi index 7378ac39508e..515010b243d0 100644 --- a/stubs/openpyxl/openpyxl/workbook/workbook.pyi +++ b/stubs/openpyxl/openpyxl/workbook/workbook.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, Unused from collections.abc import Iterator from datetime import datetime +from typing import Any from typing_extensions import Final from zipfile import ZipFile @@ -46,8 +47,10 @@ class Workbook: def active(self) -> _WorkbookChild | None: ... @active.setter def active(self, value: _WorkbookChild | int) -> None: ... - # Should return WriteOnlyWorksheet or Worksheet based on generic write_only - def create_sheet(self, title: str | _Decodable | None = None, index: int | None = None) -> Worksheet: ... + # Could be generic based on write_only + def create_sheet( + self, title: str | _Decodable | None = None, index: int | None = None + ) -> Any: ... # AnyOf[WriteOnlyWorksheet, Worksheet] def move_sheet(self, sheet: Worksheet | str, offset: int = 0) -> None: ... def remove(self, worksheet: Worksheet) -> None: ... def remove_sheet(self, worksheet: Worksheet) -> None: ... From a74c7efec6d0cdcdff13d4ead76caa7d164a46fe Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 1 Dec 2023 11:21:30 -0500 Subject: [PATCH 45/51] Post-merge fix missing Element --- stubs/openpyxl/openpyxl/styles/fills.pyi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stubs/openpyxl/openpyxl/styles/fills.pyi b/stubs/openpyxl/openpyxl/styles/fills.pyi index fd993ed8e107..b56b9d9562e4 100644 --- a/stubs/openpyxl/openpyxl/styles/fills.pyi +++ b/stubs/openpyxl/openpyxl/styles/fills.pyi @@ -113,4 +113,6 @@ class GradientFill(Fill): stop=(), ) -> None: ... def __iter__(self) -> Iterator[tuple[str, str]]: ... - def to_tree(self, tagname: Unused = None, namespace: Unused = None, idx: Unused = None): ... # type: ignore[override] + def to_tree( # type: ignore[override] + self, tagname: Unused = None, namespace: Unused = None, idx: Unused = None + ) -> Element: ... From 17ff8a0c8cb787b641f354ad7f1fe01a49d52bc2 Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 1 Dec 2023 11:46:50 -0500 Subject: [PATCH 46/51] . --- stubs/openpyxl/openpyxl/styles/named_styles.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stubs/openpyxl/openpyxl/styles/named_styles.pyi b/stubs/openpyxl/openpyxl/styles/named_styles.pyi index e601c0714dea..805034cff490 100644 --- a/stubs/openpyxl/openpyxl/styles/named_styles.pyi +++ b/stubs/openpyxl/openpyxl/styles/named_styles.pyi @@ -51,7 +51,7 @@ class NamedStyle(Serialisable): class NamedStyleList(list[NamedStyle]): @property def names(self) -> list[str]: ... - def __getitem__(self, key: int) -> NamedStyle: ... + def __getitem__(self, key: int | str) -> NamedStyle: ... # type: ignore[override] def append(self, style: NamedStyle) -> None: ... class _NamedCellStyle(Serialisable): From 3b0034b02bb6f8738ccb9a260c546388765cad5f Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 5 Mar 2024 22:52:44 -0500 Subject: [PATCH 47/51] Update stubs/openpyxl/openpyxl/worksheet/_reader.pyi --- stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index 6a45fab26b07..be0e2b27c7d1 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -72,6 +72,7 @@ class WorkSheetParser: col_breaks: ColBreak rich_text: bool protection: SheetProtection # initialized after call to parse_sheet_protection() + def __init__( self, src: _FileRead, From 9cd6ffef70fd9e4376125b42c451a2e927ccc130 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 24 Nov 2024 23:34:12 -0500 Subject: [PATCH 48/51] openpyxl: `Cell | MergedCell` annotations --- stubs/openpyxl/openpyxl/cell/__init__.pyi | 2 + stubs/openpyxl/openpyxl/cell/_writer.pyi | 6 ++- stubs/openpyxl/openpyxl/cell/cell.pyi | 4 +- .../openpyxl/comments/comment_sheet.pyi | 3 +- .../openpyxl/worksheet/_read_only.pyi | 19 +++------ stubs/openpyxl/openpyxl/worksheet/_reader.pyi | 5 +-- stubs/openpyxl/openpyxl/worksheet/_writer.pyi | 7 ++-- stubs/openpyxl/openpyxl/worksheet/merge.pyi | 3 +- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 39 ++++++++++--------- 9 files changed, 43 insertions(+), 45 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/__init__.pyi b/stubs/openpyxl/openpyxl/cell/__init__.pyi index 725383e2bcd1..bcb27330276c 100644 --- a/stubs/openpyxl/openpyxl/cell/__init__.pyi +++ b/stubs/openpyxl/openpyxl/cell/__init__.pyi @@ -22,3 +22,5 @@ _CellValue: TypeAlias = ( # noqa: Y047 # Used in other modules | ArrayFormula ) _AnyCellValue: TypeAlias = Any # Any of _CellValue # noqa: Y047 # Used in other modules + +_CellOrMergedCell: TypeAlias = Cell | MergedCell diff --git a/stubs/openpyxl/openpyxl/cell/_writer.pyi b/stubs/openpyxl/openpyxl/cell/_writer.pyi index a546a3241df0..742b2c718317 100644 --- a/stubs/openpyxl/openpyxl/cell/_writer.pyi +++ b/stubs/openpyxl/openpyxl/cell/_writer.pyi @@ -1,7 +1,9 @@ from _typeshed import Incomplete, Unused -def etree_write_cell(xf, worksheet: Unused, cell, styled: Incomplete | None = None) -> None: ... -def lxml_write_cell(xf, worksheet: Unused, cell, styled: bool = False) -> None: ... +from openpyxl.cell import _CellOrMergedCell + +def etree_write_cell(xf, worksheet: Unused, cell: _CellOrMergedCell, styled: Incomplete | None = None) -> None: ... +def lxml_write_cell(xf, worksheet: Unused, cell:_CellOrMergedCell, styled: bool = False) -> None: ... write_cell = lxml_write_cell write_cell = etree_write_cell diff --git a/stubs/openpyxl/openpyxl/cell/cell.pyi b/stubs/openpyxl/openpyxl/cell/cell.pyi index 9eb5ebc07178..dea71e03d8a8 100644 --- a/stubs/openpyxl/openpyxl/cell/cell.pyi +++ b/stubs/openpyxl/openpyxl/cell/cell.pyi @@ -3,7 +3,7 @@ from datetime import datetime from re import Pattern from typing import Final, Literal, overload -from openpyxl.cell import _CellValue, _TimeTypes +from openpyxl.cell import _CellOrMergedCell, _CellValue, _TimeTypes from openpyxl.comments.comments import Comment from openpyxl.compat.numbers import NUMERIC_TYPES as NUMERIC_TYPES # cell numeric types from openpyxl.styles.cell_style import StyleArray @@ -75,7 +75,7 @@ class Cell(StyleableObject): def hyperlink(self, val: Hyperlink | str | None) -> None: ... @property def is_date(self) -> bool: ... - def offset(self, row: int = 0, column: int = 0) -> Cell: ... + def offset(self, row: int = 0, column: int = 0) -> _CellOrMergedCell: ... @property def comment(self) -> Comment | None: ... @comment.setter diff --git a/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi b/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi index f7fd4b59ee50..f7069a43bd03 100644 --- a/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi +++ b/stubs/openpyxl/openpyxl/comments/comment_sheet.pyi @@ -3,6 +3,7 @@ from collections.abc import Generator from typing import ClassVar, Literal, overload from typing_extensions import TypeAlias +from openpyxl.cell import _CellOrMergedCell from openpyxl.cell.text import Text from openpyxl.comments.author import AuthorList from openpyxl.comments.comments import Comment @@ -101,7 +102,7 @@ class CommentRecord(Serialisable): width: int = 144, ) -> None: ... @classmethod - def from_cell(cls, cell): ... + def from_cell(cls, cell: _CellOrMergedCell): ... @property def content(self) -> str: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi index d5a32d36a8e7..0579afc366a4 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_read_only.pyi @@ -1,10 +1,8 @@ from _typeshed import SupportsGetItem -from collections.abc import Generator, Iterator -from typing import Any, overload +from collections.abc import Generator from openpyxl import _VisibilityType -from openpyxl.cell import _CellValue -from openpyxl.cell.cell import Cell +from openpyxl.cell import _CellOrMergedCell, _CellValue from openpyxl.utils.cell import _RangeBoundariesTuple from openpyxl.workbook.workbook import Workbook from openpyxl.worksheet.worksheet import Worksheet @@ -21,16 +19,9 @@ class ReadOnlyWorksheet: # Same as Worksheet.rows # https://github.com/python/mypy/issues/6700 @property - def rows(self) -> Generator[tuple[Cell, ...], None, None]: ... - # From Worksheet.__getitem__ - @overload - def __getitem__(self, key: int) -> tuple[Cell, ...]: ... - @overload - def __getitem__(self, key: slice) -> tuple[Any, ...]: ... # tuple[AnyOf[Cell, tuple[Cell, ...]]] - @overload - def __getitem__(self, key: str) -> Any: ... # AnyOf[Cell, tuple[Cell, ...], tuple[tuple[Cell, ...], ...]] - # From Worksheet.__iter__ - def __iter__(self) -> Iterator[tuple[Cell, ...]]: ... + def rows(self) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... + __getitem__ = Worksheet.__getitem__ + __iter__ = Worksheet.__iter__ parent: Workbook title: str sheet_state: _VisibilityType diff --git a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi index feec1c6c5dcc..420fc3dac2d9 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_reader.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_reader.pyi @@ -4,8 +4,7 @@ from datetime import datetime from typing import Final from xml.etree.ElementTree import _FileRead -from openpyxl.cell import _AnyCellValue -from openpyxl.cell.cell import Cell +from openpyxl.cell import _AnyCellValue, _CellOrMergedCell from openpyxl.cell.rich_text import CellRichText from openpyxl.descriptors.serialisable import _ChildSerialisableTreeElement, _SerialisableTreeElement from openpyxl.formula.translate import Translator @@ -111,7 +110,7 @@ class WorksheetReader: def bind_tables(self) -> None: ... def bind_merged_cells(self) -> None: ... def bind_hyperlinks(self) -> None: ... - def normalize_merged_cell_link(self, coord: str) -> Cell | None: ... + def normalize_merged_cell_link(self, coord: str) -> _CellOrMergedCell | None: ... def bind_col_dimensions(self) -> None: ... def bind_row_dimensions(self) -> None: ... def bind_properties(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi index 06059186e2c8..6261170ee21d 100644 --- a/stubs/openpyxl/openpyxl/worksheet/_writer.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/_writer.pyi @@ -1,8 +1,9 @@ from _typeshed import Incomplete, ReadableBuffer, StrPath, Unused -from collections.abc import Generator +from collections.abc import Generator, Iterable from typing import Protocol from typing_extensions import TypeAlias +from openpyxl.cell import _CellOrMergedCell from openpyxl.worksheet._write_only import WriteOnlyWorksheet from openpyxl.worksheet.worksheet import Worksheet @@ -30,9 +31,9 @@ class WorksheetWriter: def write_views(self) -> None: ... def write_cols(self) -> None: ... def write_top(self) -> None: ... - def rows(self) -> list[tuple[int, list[Incomplete]]]: ... + def rows(self) -> list[tuple[int, list[_CellOrMergedCell]]]: ... def write_rows(self) -> None: ... - def write_row(self, xf, row, row_idx) -> None: ... + def write_row(self, xf, row: Iterable[_CellOrMergedCell], row_idx) -> None: ... def write_protection(self) -> None: ... def write_scenarios(self) -> None: ... def write_filter(self) -> None: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/merge.pyi b/stubs/openpyxl/openpyxl/worksheet/merge.pyi index bbf8c225be9e..7faa6cfaea71 100644 --- a/stubs/openpyxl/openpyxl/worksheet/merge.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/merge.pyi @@ -1,6 +1,7 @@ from _typeshed import Incomplete, Unused from typing import ClassVar +from openpyxl.cell import _CellOrMergedCell from openpyxl.descriptors.serialisable import Serialisable from openpyxl.worksheet.worksheet import Worksheet @@ -29,7 +30,7 @@ class MergeCells(Serialisable): class MergedCellRange(CellRange): ws: Worksheet - start_cell: Incomplete + start_cell: _CellOrMergedCell def __init__(self, worksheet: Worksheet, coord) -> None: ... def format(self) -> None: ... def __contains__(self, coord: str) -> bool: ... diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 0fd8a84ef379..251bf37620c2 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -6,7 +6,7 @@ from typing import Any, Final, Literal, NoReturn, overload from typing_extensions import deprecated from openpyxl import _Decodable, _VisibilityType -from openpyxl.cell import _CellValue +from openpyxl.cell import _CellOrMergedCell, _CellValue from openpyxl.cell.cell import Cell from openpyxl.chart._chart import ChartBase from openpyxl.drawing.image import Image @@ -51,6 +51,7 @@ class Worksheet(_WorkbookChild): ORIENTATION_PORTRAIT: Final = "portrait" ORIENTATION_LANDSCAPE: Final = "landscape" + _cells: dict[tuple[int, int], _CellOrMergedCell] # private but very useful to understand typing row_dimensions: DimensionHolder[int, RowDimension] column_dimensions: DimensionHolder[str, ColumnDimension] row_breaks: RowBreak @@ -85,19 +86,19 @@ class Worksheet(_WorkbookChild): @property def freeze_panes(self) -> str | None: ... @freeze_panes.setter - def freeze_panes(self, topLeftCell: str | Cell | None = ...) -> None: ... - def cell(self, row: int, column: int, value: _CellValue | None = None) -> Cell: ... + def freeze_panes(self, topLeftCell: str | Cell | None = None) -> None: ... + def cell(self, row: int, column: int, value: _CellValue | None = None) -> _CellOrMergedCell: ... # An int is necessarily a row selection @overload - def __getitem__(self, key: int) -> tuple[Cell, ...]: ... + def __getitem__(self, key: int) -> tuple[_CellOrMergedCell, ...]: ... # A slice is necessarily a row or rows, even if targetting a single cell @overload - def __getitem__(self, key: slice) -> tuple[Any, ...]: ... # tuple[AnyOf[Cell, tuple[Cell, ...]]] + def __getitem__(self, key: slice) -> tuple[Any, ...]: ... # tuple[AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...]]] # A str could be an individual cell, row, column or full range @overload - def __getitem__(self, key: str) -> Any: ... # AnyOf[Cell, tuple[Cell, ...], tuple[tuple[Cell, ...], ...]] + def __getitem__(self, key: str) -> Any: ... # AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...], tuple[tuple[_CellOrMergedCell, ...], ...]] # noqa: E501 def __setitem__(self, key: str, value: _CellValue) -> None: ... - def __iter__(self) -> Iterator[tuple[Cell, ...]]: ... + def __iter__(self) -> Iterator[tuple[_CellOrMergedCell, ...]]: ... def __delitem__(self, key: str) -> None: ... @property def min_row(self) -> int: ... @@ -132,11 +133,11 @@ class Worksheet(_WorkbookChild): min_col: int | None = None, max_col: int | None = None, values_only: Literal[False] = False, - ) -> Generator[tuple[Cell, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @overload def iter_rows( self, min_row: int | None, max_row: int | None, min_col: int | None, max_col: int | None, values_only: bool - ) -> Generator[tuple[Cell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... @overload def iter_rows( self, @@ -146,9 +147,9 @@ class Worksheet(_WorkbookChild): max_col: int | None = None, *, values_only: bool, - ) -> Generator[tuple[Cell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... @property - def rows(self) -> Generator[tuple[Cell, ...], None, None]: ... + def rows(self) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @property def values(self) -> Generator[tuple[_CellValue | None, ...]]: ... @overload @@ -173,11 +174,11 @@ class Worksheet(_WorkbookChild): min_row: int | None = None, max_row: int | None = None, values_only: Literal[False] = False, - ) -> Generator[tuple[Cell, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @overload def iter_cols( self, min_col: int | None, max_col: int | None, min_row: int | None, max_row: int | None, values_only: bool - ) -> Generator[tuple[Cell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... @overload def iter_cols( self, @@ -187,9 +188,9 @@ class Worksheet(_WorkbookChild): max_row: int | None = None, *, values_only: bool, - ) -> Generator[tuple[Cell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... @property - def columns(self) -> Generator[tuple[Cell, ...], None, None]: ... + def columns(self) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @property def column_groups(self) -> list[str]: ... def set_printer_settings( @@ -241,11 +242,11 @@ class Worksheet(_WorkbookChild): def append( self, iterable: ( - list[Incomplete] - | tuple[Incomplete, ...] + list[Any] # lists are invariant, but any subtype or union will do + | tuple[_CellOrMergedCell | str | float | datetime | None, ...] | range - | GeneratorType[Incomplete, object, object] - | dict[int | str, Incomplete] + | GeneratorType[_CellOrMergedCell | str | float | datetime | None, object, object] + | dict[int | str, _CellOrMergedCell | str | float | datetime | None] ), ) -> None: ... def insert_rows(self, idx: int, amount: int = 1) -> None: ... From 82b5fccc10043251f9f5473bf26d8f8558387ce6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 04:45:07 +0000 Subject: [PATCH 49/51] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stubs/openpyxl/openpyxl/cell/_writer.pyi | 2 +- .../openpyxl/openpyxl/worksheet/worksheet.pyi | 26 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/_writer.pyi b/stubs/openpyxl/openpyxl/cell/_writer.pyi index 742b2c718317..da72488a1370 100644 --- a/stubs/openpyxl/openpyxl/cell/_writer.pyi +++ b/stubs/openpyxl/openpyxl/cell/_writer.pyi @@ -3,7 +3,7 @@ from _typeshed import Incomplete, Unused from openpyxl.cell import _CellOrMergedCell def etree_write_cell(xf, worksheet: Unused, cell: _CellOrMergedCell, styled: Incomplete | None = None) -> None: ... -def lxml_write_cell(xf, worksheet: Unused, cell:_CellOrMergedCell, styled: bool = False) -> None: ... +def lxml_write_cell(xf, worksheet: Unused, cell: _CellOrMergedCell, styled: bool = False) -> None: ... write_cell = lxml_write_cell write_cell = etree_write_cell diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 251bf37620c2..0662c14fffe2 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -51,7 +51,7 @@ class Worksheet(_WorkbookChild): ORIENTATION_PORTRAIT: Final = "portrait" ORIENTATION_LANDSCAPE: Final = "landscape" - _cells: dict[tuple[int, int], _CellOrMergedCell] # private but very useful to understand typing + _cells: dict[tuple[int, int], _CellOrMergedCell] # private but very useful to understand typing row_dimensions: DimensionHolder[int, RowDimension] column_dimensions: DimensionHolder[str, ColumnDimension] row_breaks: RowBreak @@ -96,7 +96,11 @@ class Worksheet(_WorkbookChild): def __getitem__(self, key: slice) -> tuple[Any, ...]: ... # tuple[AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...]]] # A str could be an individual cell, row, column or full range @overload - def __getitem__(self, key: str) -> Any: ... # AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...], tuple[tuple[_CellOrMergedCell, ...], ...]] # noqa: E501 + def __getitem__( + self, key: str + ) -> ( + Any + ): ... # AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...], tuple[tuple[_CellOrMergedCell, ...], ...]] # noqa: E501 def __setitem__(self, key: str, value: _CellValue) -> None: ... def __iter__(self) -> Iterator[tuple[_CellOrMergedCell, ...]]: ... def __delitem__(self, key: str) -> None: ... @@ -137,7 +141,9 @@ class Worksheet(_WorkbookChild): @overload def iter_rows( self, min_row: int | None, max_row: int | None, min_col: int | None, max_col: int | None, values_only: bool - ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> ( + Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None] + ): ... @overload def iter_rows( self, @@ -147,7 +153,9 @@ class Worksheet(_WorkbookChild): max_col: int | None = None, *, values_only: bool, - ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> ( + Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None] + ): ... @property def rows(self) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @property @@ -178,7 +186,9 @@ class Worksheet(_WorkbookChild): @overload def iter_cols( self, min_col: int | None, max_col: int | None, min_row: int | None, max_row: int | None, values_only: bool - ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> ( + Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None] + ): ... @overload def iter_cols( self, @@ -188,7 +198,9 @@ class Worksheet(_WorkbookChild): max_row: int | None = None, *, values_only: bool, - ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None]: ... + ) -> ( + Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[str | float | datetime | None, ...], None, None] + ): ... @property def columns(self) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @property @@ -242,7 +254,7 @@ class Worksheet(_WorkbookChild): def append( self, iterable: ( - list[Any] # lists are invariant, but any subtype or union will do + list[Any] # lists are invariant, but any subtype or union will do | tuple[_CellOrMergedCell | str | float | datetime | None, ...] | range | GeneratorType[_CellOrMergedCell | str | float | datetime | None, object, object] From e0d6119b5988e21cce954d266c6063db06ef60b6 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 24 Nov 2024 23:51:25 -0500 Subject: [PATCH 50/51] lint fixes --- stubs/openpyxl/openpyxl/cell/__init__.pyi | 2 +- stubs/openpyxl/openpyxl/worksheet/worksheet.pyi | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/__init__.pyi b/stubs/openpyxl/openpyxl/cell/__init__.pyi index bcb27330276c..54641897e49a 100644 --- a/stubs/openpyxl/openpyxl/cell/__init__.pyi +++ b/stubs/openpyxl/openpyxl/cell/__init__.pyi @@ -23,4 +23,4 @@ _CellValue: TypeAlias = ( # noqa: Y047 # Used in other modules ) _AnyCellValue: TypeAlias = Any # Any of _CellValue # noqa: Y047 # Used in other modules -_CellOrMergedCell: TypeAlias = Cell | MergedCell +_CellOrMergedCell: TypeAlias = Cell | MergedCell # noqa: Y047 # Used in other modules diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 0662c14fffe2..4437f14bb30b 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -98,9 +98,7 @@ class Worksheet(_WorkbookChild): @overload def __getitem__( self, key: str - ) -> ( - Any - ): ... # AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...], tuple[tuple[_CellOrMergedCell, ...], ...]] # noqa: E501 + ) -> Any: ... # AnyOf[_CellOrMergedCell, tuple[_CellOrMergedCell, ...], tuple[tuple[_CellOrMergedCell, ...], ...]] def __setitem__(self, key: str, value: _CellValue) -> None: ... def __iter__(self) -> Iterator[tuple[_CellOrMergedCell, ...]]: ... def __delitem__(self, key: str) -> None: ... From 0b0b50131771453b32f2c22908eb312ebde35697 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 25 Nov 2024 00:02:17 -0500 Subject: [PATCH 51/51] Rename _Cell to _CellOrMergedCell --- stubs/openpyxl/openpyxl/cell/__init__.pyi | 2 ++ .../openpyxl/openpyxl/worksheet/worksheet.pyi | 24 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/stubs/openpyxl/openpyxl/cell/__init__.pyi b/stubs/openpyxl/openpyxl/cell/__init__.pyi index 725383e2bcd1..bcb27330276c 100644 --- a/stubs/openpyxl/openpyxl/cell/__init__.pyi +++ b/stubs/openpyxl/openpyxl/cell/__init__.pyi @@ -22,3 +22,5 @@ _CellValue: TypeAlias = ( # noqa: Y047 # Used in other modules | ArrayFormula ) _AnyCellValue: TypeAlias = Any # Any of _CellValue # noqa: Y047 # Used in other modules + +_CellOrMergedCell: TypeAlias = Cell | MergedCell diff --git a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi index 746cf30386df..c489f845dc4a 100644 --- a/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi +++ b/stubs/openpyxl/openpyxl/worksheet/worksheet.pyi @@ -2,11 +2,11 @@ from _typeshed import ConvertibleToInt, Incomplete from collections.abc import Generator, Iterable, Iterator from types import GeneratorType from typing import Any, Final, Literal, NoReturn, overload -from typing_extensions import TypeAlias, deprecated +from typing_extensions import deprecated from openpyxl import _Decodable, _VisibilityType -from openpyxl.cell import _CellValue -from openpyxl.cell.cell import Cell, MergedCell +from openpyxl.cell import _CellOrMergedCell, _CellValue +from openpyxl.cell.cell import Cell from openpyxl.chart._chart import ChartBase from openpyxl.drawing.image import Image from openpyxl.formatting.formatting import ConditionalFormattingList @@ -25,8 +25,6 @@ from openpyxl.worksheet.scenario import ScenarioList from openpyxl.worksheet.table import Table, TableList from openpyxl.worksheet.views import SheetView, SheetViewList -_Cell: TypeAlias = Cell | MergedCell - class Worksheet(_WorkbookChild): mime_type: str BREAK_NONE: Final = 0 @@ -52,7 +50,7 @@ class Worksheet(_WorkbookChild): ORIENTATION_PORTRAIT: Final = "portrait" ORIENTATION_LANDSCAPE: Final = "landscape" - _cells: dict[tuple[int, int], _Cell] + _cells: dict[tuple[int, int], _CellOrMergedCell] row_dimensions: DimensionHolder[int, RowDimension] column_dimensions: DimensionHolder[str, ColumnDimension] row_breaks: RowBreak @@ -134,11 +132,11 @@ class Worksheet(_WorkbookChild): min_col: int | None = None, max_col: int | None = None, values_only: Literal[False] = False, - ) -> Generator[tuple[_Cell, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @overload def iter_rows( self, min_row: int | None, max_row: int | None, min_col: int | None, max_col: int | None, values_only: bool - ) -> Generator[tuple[_Cell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... @overload def iter_rows( self, @@ -148,7 +146,7 @@ class Worksheet(_WorkbookChild): max_col: int | None = None, *, values_only: bool, - ) -> Generator[tuple[_Cell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... @property def rows(self) -> Generator[tuple[Cell, ...], None, None]: ... @property @@ -175,11 +173,11 @@ class Worksheet(_WorkbookChild): min_row: int | None = None, max_row: int | None = None, values_only: Literal[False] = False, - ) -> Generator[tuple[_Cell, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @overload def iter_cols( self, min_col: int | None, max_col: int | None, min_row: int | None, max_row: int | None, values_only: bool - ) -> Generator[tuple[_Cell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... @overload def iter_cols( self, @@ -189,9 +187,9 @@ class Worksheet(_WorkbookChild): max_row: int | None = None, *, values_only: bool, - ) -> Generator[tuple[_Cell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... + ) -> Generator[tuple[_CellOrMergedCell, ...], None, None] | Generator[tuple[_CellValue, ...], None, None]: ... @property - def columns(self) -> Generator[tuple[_Cell, ...], None, None]: ... + def columns(self) -> Generator[tuple[_CellOrMergedCell, ...], None, None]: ... @property def column_groups(self) -> list[str]: ... def set_printer_settings(