From 2b9d262b9ff875bf68baf0895c6ae1bc3a655a9a Mon Sep 17 00:00:00 2001 From: Fangchen Li Date: Sun, 30 Aug 2020 12:17:20 -0500 Subject: [PATCH 1/3] TYP: typing errors in _xlsxwriter.py #35994 --- pandas/io/excel/_xlsxwriter.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pandas/io/excel/_xlsxwriter.py b/pandas/io/excel/_xlsxwriter.py index 85a1bb031f457..7bbc7a9b513a4 100644 --- a/pandas/io/excel/_xlsxwriter.py +++ b/pandas/io/excel/_xlsxwriter.py @@ -1,3 +1,5 @@ +from typing import Dict + import pandas._libs.json as json from pandas.io.excel._base import ExcelWriter @@ -8,7 +10,7 @@ class _XlsxStyler: # Map from openpyxl-oriented styles to flatter xlsxwriter representation # Ordering necessary for both determinism and because some are keyed by # prefixes of others. - STYLE_MAPPING = { + STYLE_MAPPING: Dict[str, list] = { "font": [ (("name",), "font_name"), (("sz",), "font_size"), @@ -170,7 +172,7 @@ def __init__( **engine_kwargs, ): # Use the xlsxwriter module as the Excel writer. - import xlsxwriter + from xlsxwriter import Workbook if mode == "a": raise ValueError("Append mode is not supported with xlsxwriter!") @@ -184,7 +186,7 @@ def __init__( **engine_kwargs, ) - self.book = xlsxwriter.Workbook(path, **engine_kwargs) + self.book: Workbook = Workbook(path, **engine_kwargs) def save(self): """ From f21a1890ca1e3ff89cbdfdf79269424a5b58b098 Mon Sep 17 00:00:00 2001 From: Fangchen Li Date: Sun, 30 Aug 2020 15:43:47 -0500 Subject: [PATCH 2/3] TYP: add param type --- pandas/io/excel/_xlsxwriter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/io/excel/_xlsxwriter.py b/pandas/io/excel/_xlsxwriter.py index 7bbc7a9b513a4..a29a243f91543 100644 --- a/pandas/io/excel/_xlsxwriter.py +++ b/pandas/io/excel/_xlsxwriter.py @@ -1,4 +1,4 @@ -from typing import Dict +from typing import Dict, List, Tuple import pandas._libs.json as json @@ -10,7 +10,7 @@ class _XlsxStyler: # Map from openpyxl-oriented styles to flatter xlsxwriter representation # Ordering necessary for both determinism and because some are keyed by # prefixes of others. - STYLE_MAPPING: Dict[str, list] = { + STYLE_MAPPING: Dict[str, List[Tuple[Tuple[str, ...], str]]] = { "font": [ (("name",), "font_name"), (("sz",), "font_size"), From 5b5f5e042c26b744dde73febec1d197257a5e1c1 Mon Sep 17 00:00:00 2001 From: Fangchen Li Date: Mon, 31 Aug 2020 08:06:42 -0500 Subject: [PATCH 3/3] TYP: remove book=None in base class --- pandas/io/excel/_base.py | 1 - pandas/io/excel/_odswriter.py | 2 +- pandas/io/excel/_xlsxwriter.py | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pandas/io/excel/_base.py b/pandas/io/excel/_base.py index 3cd0d721bbdc6..ead36c95556b1 100644 --- a/pandas/io/excel/_base.py +++ b/pandas/io/excel/_base.py @@ -653,7 +653,6 @@ def __new__(cls, path, engine=None, **kwargs): return object.__new__(cls) # declare external properties you can count on - book = None curr_sheet = None path = None diff --git a/pandas/io/excel/_odswriter.py b/pandas/io/excel/_odswriter.py index 72f3d81b1c662..f39391ae1fe7f 100644 --- a/pandas/io/excel/_odswriter.py +++ b/pandas/io/excel/_odswriter.py @@ -25,7 +25,7 @@ def __init__( super().__init__(path, mode=mode, **engine_kwargs) - self.book: OpenDocumentSpreadsheet = OpenDocumentSpreadsheet() + self.book = OpenDocumentSpreadsheet() self._style_dict: Dict[str, str] = {} def save(self) -> None: diff --git a/pandas/io/excel/_xlsxwriter.py b/pandas/io/excel/_xlsxwriter.py index a29a243f91543..bdbb006ae93dc 100644 --- a/pandas/io/excel/_xlsxwriter.py +++ b/pandas/io/excel/_xlsxwriter.py @@ -186,7 +186,7 @@ def __init__( **engine_kwargs, ) - self.book: Workbook = Workbook(path, **engine_kwargs) + self.book = Workbook(path, **engine_kwargs) def save(self): """