diff --git a/mssql_python/cursor.py b/mssql_python/cursor.py index ba5065d5..bd0e37ed 100644 --- a/mssql_python/cursor.py +++ b/mssql_python/cursor.py @@ -15,7 +15,7 @@ import uuid import datetime import warnings -from typing import List, Union, Any, Optional, Tuple, Sequence, TYPE_CHECKING, Iterable +from typing import List, Mapping, Union, Any, Optional, Tuple, Sequence, TYPE_CHECKING, Iterable from mssql_python.constants import ConstantsDDBC as ddbc_sql_const, SQLTypes from mssql_python.helpers import check_error, connstr_to_pycore_params from mssql_python.logging import logger @@ -2063,7 +2063,7 @@ def _compute_column_type(self, column): return sample_value, None, None def executemany( # pylint: disable=too-many-locals,too-many-branches,too-many-statements - self, operation: str, seq_of_parameters: List[Sequence[Any]] + self, operation: str, seq_of_parameters: Union[List[Sequence[Any]], List[Mapping[str, Any]]] ) -> None: """ Prepare a database operation and execute it against all parameter sequences. diff --git a/mssql_python/mssql_python.pyi b/mssql_python/mssql_python.pyi index 4dc87405..9b08913d 100644 --- a/mssql_python/mssql_python.pyi +++ b/mssql_python/mssql_python.pyi @@ -4,7 +4,7 @@ Licensed under the MIT license. Type stubs for mssql_python package - based on actual public API """ -from typing import Any, Dict, List, Optional, Union, Tuple, Sequence, Callable, Iterator +from typing import Any, Dict, List, Mapping, Optional, Union, Tuple, Sequence, Callable, Iterator import datetime import logging import pyarrow @@ -192,7 +192,9 @@ class Cursor: use_prepare: bool = True, reset_cursor: bool = True, ) -> "Cursor": ... - def executemany(self, operation: str, seq_of_parameters: List[Sequence[Any]]) -> None: ... + def executemany( + self, operation: str, seq_of_parameters: Union[List[Sequence[Any]], List[Mapping[str, Any]]] + ) -> None: ... def fetchone(self) -> Optional[Row]: ... def fetchmany(self, size: Optional[int] = None) -> List[Row]: ... def fetchall(self) -> List[Row]: ...