From 1ded5cf06f45431ae319b1957d660ac22b426068 Mon Sep 17 00:00:00 2001 From: Antti Kaihola <13725+akaihola@users.noreply.github.com> Date: Tue, 24 Sep 2024 08:45:46 +0300 Subject: [PATCH] fix: py38/39 typing compatibility --- constraints-oldest.txt | 1 + setup.cfg | 1 + src/darker/config.py | 10 ++++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/constraints-oldest.txt b/constraints-oldest.txt index fc3d5b986..70d16afb2 100644 --- a/constraints-oldest.txt +++ b/constraints-oldest.txt @@ -20,4 +20,5 @@ ruamel.yaml==0.17.21 toml==0.10.0 twine==2.0.0 types-toml==0.10.4 +typing_extensions==4.0.1 wheel==0.21.0 diff --git a/setup.cfg b/setup.cfg index 191d76a96..154679f94 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,6 +31,7 @@ install_requires = black>=22.3.0 darkgraylib~=2.0.1 toml>=0.10.0 + typing_extensions>=4.0.1 # NOTE: remember to keep `.github/workflows/python-package.yml` in sync # with the minimum required Python version python_requires = >=3.8 diff --git a/src/darker/config.py b/src/darker/config.py index 561dc38bb..0e143591d 100644 --- a/src/darker/config.py +++ b/src/darker/config.py @@ -2,16 +2,22 @@ from __future__ import annotations +import sys from dataclasses import dataclass, field from pathlib import Path -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Union from darkgraylib.config import BaseConfig, ConfigurationError +if sys.version_info < (3, 10): + from typing_extensions import TypeAlias +else: + from typing import TypeAlias + if TYPE_CHECKING: from argparse import Namespace -UnvalidatedConfig = dict[str, list[str] | str | bool | int] +UnvalidatedConfig: TypeAlias = dict[str, Union[list[str], str, bool, int]] REMOVED_CONFIG_OPTIONS = {