Current mypy version probably doesn't do anything with it at the moment.
else:
from typing_extensions import TypeAlias, TypeGuard
+if sys.version_info >= (3, 11):
+ from typing import LiteralString
+else:
+ from typing_extensions import LiteralString
+
__all__ = [
"Counter",
"Deque",
+ "LiteralString",
"Protocol",
"TypeAlias",
"TypeGuard",
from . import pq
from ._enums import PyFormat as PyFormat
-from ._compat import Protocol, TypeAlias
+from ._compat import Protocol, TypeAlias, LiteralString
if TYPE_CHECKING:
from .sql import Composable
# An object implementing the buffer protocol
Buffer: TypeAlias = Union[bytes, bytearray, memoryview]
-Query: TypeAlias = Union[str, bytes, "Composable"]
+Query: TypeAlias = Union[LiteralString, bytes, "Composable"]
Params: TypeAlias = Union[Sequence[Any], Mapping[str, Any]]
ConnectionType = TypeVar("ConnectionType", bound="BaseConnection[Any]")
PipelineCommand: TypeAlias = Callable[[], None]
from .pq import Escaping
from .abc import AdaptContext
from .adapt import Transformer, PyFormat
+from ._compat import LiteralString
from ._encodings import conn_encoding
_obj: str
_formatter = string.Formatter()
- def __init__(self, obj: str):
+ def __init__(self, obj: LiteralString):
super().__init__(obj)
if not isinstance(obj, str):
raise TypeError(f"SQL values must be strings, got {obj!r} instead")
zip_safe = False
install_requires =
backports.zoneinfo >= 0.2.0; python_version < "3.9"
- typing-extensions >= 3.10; python_version < "3.10"
+ typing-extensions >= 4.1; python_version < "3.11"
tzdata; sys_platform == "win32"
[options.package_data]
# From install_requires
backports.zoneinfo == 0.2.0
-typing-extensions == 3.10.0.0
+typing-extensions == 4.1.0
# From the 'test' extra
mypy == 0.940