diff --git a/stubs/python-dateutil/@tests/test_cases/check_inheritance.py b/stubs/python-dateutil/@tests/test_cases/check_inheritance.py new file mode 100644 index 000000000..716881c6f --- /dev/null +++ b/stubs/python-dateutil/@tests/test_cases/check_inheritance.py @@ -0,0 +1,22 @@ +from datetime import date, datetime +from typing_extensions import assert_type + +from dateutil.relativedelta import relativedelta + + +class MyDateTime(datetime): + pass + + +d = MyDateTime.now() +x = d - relativedelta(days=1) +# https://github.com/python/typeshed/pull/11463 +# assert_type(x, MyDateTime) + +d3 = datetime.today() +x3 = d3 - relativedelta(days=1) +assert_type(x3, datetime) + +d2 = date.today() +x2 = d2 - relativedelta(days=1) +assert_type(x2, date) diff --git a/stubs/python-dateutil/dateutil/relativedelta.pyi b/stubs/python-dateutil/dateutil/relativedelta.pyi index f46d505b4..394713db0 100644 --- a/stubs/python-dateutil/dateutil/relativedelta.pyi +++ b/stubs/python-dateutil/dateutil/relativedelta.pyi @@ -1,11 +1,11 @@ -from datetime import date, datetime, timedelta +from datetime import date, timedelta from typing import SupportsFloat, TypeVar, overload from typing_extensions import Self, TypeAlias # See #9817 for why we reexport this here from ._common import weekday as weekday -_DateT = TypeVar("_DateT", date, datetime) +_DateT = TypeVar("_DateT", bound=date) # Work around attribute and type having the same name. _Weekday: TypeAlias = weekday