Skip to content

Remove datetime generic tzinfo typeshed patch - #22376

Draft
cdce8p wants to merge 3 commits into
python:masterfrom
cdce8p:sync-typeshed
Draft

cdce8p wants to merge 3 commits into
python:masterfrom
cdce8p:sync-typeshed

Conversation

@cdce8p

@cdce8p cdce8p commented Nov 5, 2026

Copy link
Copy Markdown
Collaborator

Followup to #22372

@cdce8p
cdce8p requested a review from hauntsaninja November 5, 2026 21:20
@github-actions

This comment has been minimized.

@hauntsaninja

Copy link
Copy Markdown
Collaborator

Looked through a little of primer, some of the "need type annotation" ones seem bad:

import datetime as dt
a = dt.datetime.fromisoformat("2026-01-02")
b = dt.datetime.fromisoformat("2026-01-01")
reveal_type(a - b)  # Never

@cdce8p
cdce8p marked this pull request as draft November 6, 2026 10:09
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Diff from mypy_primer, showing the effect of this PR on open source code:

psycopg (https://github.com/psycopg/psycopg)
+ psycopg/psycopg/types/datetime.py:574: error: Incompatible types in assignment (expression has type "datetime[None]", variable has type "datetime[tzinfo]")  [assignment]

prefect (https://github.com/PrefectHQ/prefect)
- src/prefect/_internal/schemas/validators.py:231: error: Incompatible return value type (got "datetime", expected "DateTime")  [return-value]
+ src/prefect/_internal/schemas/validators.py:231: error: Incompatible return value type (got "datetime[Any]", expected "DateTime")  [return-value]
- src/prefect/_internal/schemas/validators.py:264: error: Item "None" of "tzinfo | None" has no attribute "name"  [union-attr]
- src/prefect/server/schemas/schedules.py:539: error: Argument 1 to "_next_date" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/schemas/schedules.py:539: error: Argument 1 to "_next_date" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/schemas/schedules.py:552: error: Incompatible types in "yield" (actual type "datetime", expected type "DateTime")  [misc]
+ src/prefect/server/schemas/schedules.py:552: error: Incompatible types in "yield" (actual type "datetime[Any]", expected type "DateTime")  [misc]
- src/prefect/server/schemas/schedules.py:560: error: Argument 1 to "_next_date" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/schemas/schedules.py:560: error: Argument 1 to "_next_date" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/schemas/schedules.py:727: error: Incompatible types in "yield" (actual type "datetime", expected type "DateTime")  [misc]
+ src/prefect/server/schemas/schedules.py:727: error: Incompatible types in "yield" (actual type "datetime[Any]", expected type "DateTime")  [misc]
- src/prefect/server/schemas/schedules.py:881: error: Incompatible default for parameter "start" (default has type "None", parameter has type "datetime")  [assignment]
+ src/prefect/server/schemas/schedules.py:881: error: Incompatible default for parameter "start" (default has type "None", parameter has type "datetime[Any]")  [assignment]
- src/prefect/server/schemas/schedules.py:882: error: Incompatible default for parameter "end" (default has type "None", parameter has type "datetime")  [assignment]
+ src/prefect/server/schemas/schedules.py:882: error: Incompatible default for parameter "end" (default has type "None", parameter has type "datetime[Any]")  [assignment]
- src/prefect/server/schemas/schedules.py:952: error: Incompatible types in "yield" (actual type "datetime", expected type "DateTime")  [misc]
+ src/prefect/server/schemas/schedules.py:952: error: Incompatible types in "yield" (actual type "datetime[tzinfo]", expected type "DateTime")  [misc]
- src/prefect/client/schemas/objects.py:416: error: Incompatible types in assignment (expression has type "datetime", variable has type "DateTime | None")  [assignment]
+ src/prefect/client/schemas/objects.py:416: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "DateTime | None")  [assignment]
- src/prefect/states.py:358: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime | None"; expected "DateTime | None"  [arg-type]
+ src/prefect/states.py:358: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime[Any] | None"; expected "DateTime | None"  [arg-type]
- src/prefect/states.py:407: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime | None"; expected "DateTime | None"  [arg-type]
+ src/prefect/states.py:407: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime[Any] | None"; expected "DateTime | None"  [arg-type]
- src/prefect/states.py:436: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime | None"; expected "DateTime | None"  [arg-type]
+ src/prefect/states.py:436: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime[Any] | None"; expected "DateTime | None"  [arg-type]
- src/prefect/server/schemas/states.py:182: error: Incompatible types in assignment (expression has type "datetime", variable has type "DateTime | None")  [assignment]
+ src/prefect/server/schemas/states.py:182: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "DateTime | None")  [assignment]
- src/prefect/server/schemas/states.py:329: error: Incompatible types in assignment (expression has type "datetime", variable has type "DateTime | None")  [assignment]
+ src/prefect/server/schemas/states.py:329: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "DateTime | None")  [assignment]
- src/prefect/events/related.py:212: error: Incompatible types in assignment (expression has type "tuple[dict[str, str | ObjectBaseModel | None], datetime]", target has type "tuple[dict[str, str | ObjectBaseModel | None], DateTime]")  [assignment]
+ src/prefect/events/related.py:212: error: Incompatible types in assignment (expression has type "tuple[dict[str, str | ObjectBaseModel | None], datetime[Any]]", target has type "tuple[dict[str, str | ObjectBaseModel | None], DateTime]")  [assignment]
- src/prefect/events/clients.py:849: error: Incompatible types in assignment (expression has type "datetime", variable has type "DateTime | None")  [assignment]
+ src/prefect/events/clients.py:849: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "DateTime | None")  [assignment]
- src/prefect/_internal/states.py:228: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime | None"; expected "DateTime | None"  [arg-type]
+ src/prefect/_internal/states.py:228: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime[Any] | None"; expected "DateTime | None"  [arg-type]
- src/prefect/_internal/states.py:277: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime | None"; expected "DateTime | None"  [arg-type]
+ src/prefect/_internal/states.py:277: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime[Any] | None"; expected "DateTime | None"  [arg-type]
- src/prefect/_internal/states.py:306: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime | None"; expected "DateTime | None"  [arg-type]
+ src/prefect/_internal/states.py:306: error: Argument "expiration" to "create_result_record" of "ResultStore" has incompatible type "datetime[Any] | None"; expected "DateTime | None"  [arg-type]
- src/prefect/server/schemas/responses.py:146: error: Incompatible types in assignment (expression has type "datetime", target has type "None")  [assignment]
+ src/prefect/server/schemas/responses.py:146: error: Incompatible types in assignment (expression has type "datetime[Any]", target has type "None")  [assignment]
- src/prefect/server/events/actions.py:861: error: Argument "scheduled_time" to "Scheduled" has incompatible type "datetime"; expected "DateTime | None"  [arg-type]
+ src/prefect/server/events/actions.py:861: error: Argument "scheduled_time" to "Scheduled" has incompatible type "datetime[tzinfo]"; expected "DateTime | None"  [arg-type]
- src/prefect/deployments/runner.py:1005: error: Argument 1 to "construct_schedule" has incompatible type "**dict[str, str | Any | int | float | timedelta | datetime | None]"; expected "int | float | timedelta | None"  [arg-type]
+ src/prefect/deployments/runner.py:1005: error: Argument 1 to "construct_schedule" has incompatible type "**dict[str, str | Any | int | float | timedelta | datetime[Any] | None]"; expected "int | float | timedelta | None"  [arg-type]
- src/prefect/deployments/runner.py:1005: error: Argument 1 to "construct_schedule" has incompatible type "**dict[str, str | Any | int | float | timedelta | datetime | None]"; expected "datetime | str | None"  [arg-type]
+ src/prefect/deployments/runner.py:1005: error: Argument 1 to "construct_schedule" has incompatible type "**dict[str, str | Any | int | float | timedelta | datetime[Any] | None]"; expected "datetime[Any] | str | None"  [arg-type]
- src/prefect/deployments/runner.py:1005: error: Argument 1 to "construct_schedule" has incompatible type "**dict[str, str | Any | int | float | timedelta | datetime | None]"; expected "str | None"  [arg-type]
+ src/prefect/deployments/runner.py:1005: error: Argument 1 to "construct_schedule" has incompatible type "**dict[str, str | Any | int | float | timedelta | datetime[Any] | None]"; expected "str | None"  [arg-type]
- src/prefect/server/models/variables.py:18: error: Argument 2 to "variable_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/variables.py:18: error: Argument 2 to "variable_created_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/variables.py:24: error: Argument 2 to "variable_updated_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/variables.py:24: error: Argument 2 to "variable_updated_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/variables.py:30: error: Argument 2 to "variable_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/variables.py:30: error: Argument 2 to "variable_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/flows.py:26: error: Argument 2 to "flow_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/flows.py:26: error: Argument 2 to "flow_created_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/flows.py:32: error: Argument 2 to "flow_updated_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/flows.py:32: error: Argument 2 to "flow_updated_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/flows.py:38: error: Argument 2 to "flow_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/flows.py:38: error: Argument 2 to "flow_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/concurrency_limits_v2.py:23: error: Argument 2 to "concurrency_limit_v2_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/concurrency_limits_v2.py:23: error: Argument 2 to "concurrency_limit_v2_created_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/concurrency_limits_v2.py:33: error: Argument 2 to "concurrency_limit_v2_updated_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/concurrency_limits_v2.py:33: error: Argument 2 to "concurrency_limit_v2_updated_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/concurrency_limits_v2.py:43: error: Argument 2 to "concurrency_limit_v2_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/concurrency_limits_v2.py:43: error: Argument 2 to "concurrency_limit_v2_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/concurrency_limits.py:29: error: Argument 2 to "concurrency_limit_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/concurrency_limits.py:29: error: Argument 2 to "concurrency_limit_created_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/concurrency_limits.py:39: error: Argument 2 to "concurrency_limit_updated_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/concurrency_limits.py:39: error: Argument 2 to "concurrency_limit_updated_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/concurrency_limits.py:49: error: Argument 2 to "concurrency_limit_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/concurrency_limits.py:49: error: Argument 2 to "concurrency_limit_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/artifacts.py:25: error: Argument 2 to "artifact_collection_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/artifacts.py:25: error: Argument 2 to "artifact_collection_created_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/artifacts.py:35: error: Argument 2 to "artifact_collection_updated_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/artifacts.py:35: error: Argument 2 to "artifact_collection_updated_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/artifacts.py:45: error: Argument 2 to "artifact_collection_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/artifacts.py:45: error: Argument 2 to "artifact_collection_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/events/counting.py:103: error: Unsupported operand types for + ("datetime" and "int")  [operator]
+ src/prefect/server/events/counting.py:103: error: Unsupported operand types for + ("datetime[tzinfo]" and "int")  [operator]
- src/prefect/server/models/block_types.py:30: error: Argument 2 to "block_type_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/block_types.py:30: error: Argument 2 to "block_type_created_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/block_types.py:38: error: Argument 2 to "block_type_updated_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/block_types.py:38: error: Argument 2 to "block_type_updated_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/block_types.py:46: error: Argument 2 to "block_type_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/block_types.py:46: error: Argument 2 to "block_type_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/block_documents.py:36: error: Argument 2 to "block_document_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/block_documents.py:36: error: Argument 2 to "block_document_created_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/block_documents.py:46: error: Argument 2 to "block_document_updated_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/block_documents.py:46: error: Argument 2 to "block_document_updated_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/block_documents.py:56: error: Argument 2 to "block_document_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/block_documents.py:56: error: Argument 2 to "block_document_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/workers.py:455: error: Argument "occurred" to "work_queue_deleted_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]
+ src/prefect/server/models/workers.py:455: error: Argument "occurred" to "work_queue_deleted_event" has incompatible type "datetime[Any]"; expected "DateTime"  [arg-type]
- src/prefect/server/models/workers.py:575: error: Argument "occurred" to "work_queue_created_event" has incompatible type "datetime"; expected "DateTime"  [arg-type]

... (truncated 127 lines) ...

steam.py (https://github.com/Gobot1234/steam.py)
- steam/app.py:463: error: Incompatible types in assignment (expression has type "None", variable has type "datetime")  [assignment]
+ steam/app.py:463: error: Incompatible types in assignment (expression has type "None", variable has type "datetime[Any]")  [assignment]

openlibrary (https://github.com/internetarchive/openlibrary)
+ openlibrary/tests/core/test_unmarshal.py:32: error: Unused "type: ignore" comment  [unused-ignore]
+ openlibrary/tests/core/test_unmarshal.py: note: In function "parse_datetime":
+ openlibrary/tests/core/test_unmarshal.py:32: error: No overload variant of "datetime" matches argument type "Generator[int, None, None]"  [call-overload]
+ openlibrary/tests/core/test_unmarshal.py:32: note: Error code "call-overload" not covered by "type: ignore[arg-type]" comment
+ openlibrary/tests/core/test_unmarshal.py:32: note: Possible overload variants:
+ openlibrary/tests/core/test_unmarshal.py:32: note:     def [_TzInfoT: tzinfo | None] datetime(year: SupportsIndex, month: SupportsIndex, day: SupportsIndex, hour: SupportsIndex = ..., minute: SupportsIndex = ..., second: SupportsIndex = ..., microsecond: SupportsIndex = ..., tzinfo: None = ..., *, fold: int = ...) -> datetime[None]
+ openlibrary/tests/core/test_unmarshal.py:32: note:     def [_TzInfoT: tzinfo | None] datetime(year: SupportsIndex, month: SupportsIndex, day: SupportsIndex, hour: SupportsIndex = ..., minute: SupportsIndex = ..., second: SupportsIndex = ..., microsecond: SupportsIndex = ..., *, tzinfo: tzinfo, fold: int = ...) -> datetime[tzinfo]
+ openlibrary/tests/core/test_unmarshal.py:32: note:     def [_TzInfoT: tzinfo | None] datetime(year: SupportsIndex, month: SupportsIndex, day: SupportsIndex, hour: SupportsIndex, minute: SupportsIndex, second: SupportsIndex, microsecond: SupportsIndex, tzinfo: tzinfo, *, fold: int = ...) -> datetime[tzinfo]
- openlibrary/tests/core/test_layout.py:32: error: Argument 1 to "ShellUser" has incompatible type "**dict[str, int | bool | str | Any | None]"; expected "datetime | None"  [arg-type]
+ openlibrary/tests/core/test_layout.py:32: error: Argument 1 to "ShellUser" has incompatible type "**dict[str, int | bool | str | Any | None]"; expected "datetime[Any] | None"  [arg-type]

aiohttp (https://github.com/aio-libs/aiohttp)
+ aiohttp/web_request.py:542:5: error: Type of decorated function contains type "Any" ("under_cached_property[datetime[Any] | None]")  [misc]
+ aiohttp/web_request.py:550:5: error: Type of decorated function contains type "Any" ("under_cached_property[datetime[Any] | None]")  [misc]
+ aiohttp/web_request.py:604:5: error: Type of decorated function contains type "Any" ("under_cached_property[datetime[Any] | ETag | None]")  [misc]

zulip (https://github.com/zulip/zulip)
+ zerver/tests/test_timestamp.py:80: error: Incompatible types in assignment (expression has type "datetime[None]", variable has type "datetime[tzinfo]")  [assignment]

core (https://github.com/home-assistant/core)
+ homeassistant/components/tibber/coordinator.py:340: error: Incompatible types in assignment (expression has type "datetime[tzinfo]", variable has type "datetime[None]")  [assignment]
- homeassistant/components/xbox/coordinator.py:318: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
+ homeassistant/components/xbox/coordinator.py:318: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
- homeassistant/components/xbox/coordinator.py:320: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
+ homeassistant/components/xbox/coordinator.py:320: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
+ homeassistant/components/recorder/models/state.py:73: error: Unused "type: ignore" comment  [unused-ignore]
+ homeassistant/components/recorder/models/state.py:81: error: Unused "type: ignore" comment  [unused-ignore]
+ homeassistant/components/ubus/coordinator.py:100: error: Incompatible types in assignment (expression has type "datetime[None]", variable has type "datetime[tzinfo]")  [assignment]
- homeassistant/components/data_grand_lyon/sensor.py:44: error: Returning Any from function declared to return "datetime"  [no-any-return]
+ homeassistant/components/data_grand_lyon/sensor.py:44: error: Returning Any from function declared to return "datetime[Any]"  [no-any-return]
- homeassistant/components/data_grand_lyon/sensor.py:45: error: Returning Any from function declared to return "datetime"  [no-any-return]
+ homeassistant/components/data_grand_lyon/sensor.py:45: error: Returning Any from function declared to return "datetime[Any]"  [no-any-return]
- homeassistant/components/jewish_calendar/sensor.py:305: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
+ homeassistant/components/jewish_calendar/sensor.py:305: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
- homeassistant/components/alexa_devices/media_player.py:209: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
+ homeassistant/components/alexa_devices/media_player.py:209: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
- homeassistant/components/easyenergy/services.py:161: error: Returning Any from function declared to return "list[dict[str, float | datetime]]"  [no-any-return]
+ homeassistant/components/easyenergy/services.py:161: error: Returning Any from function declared to return "list[dict[str, float | datetime[Any]]]"  [no-any-return]
- homeassistant/components/russound_rio/media_player.py:197: error: Returning Any from function declared to return "datetime"  [no-any-return]
+ homeassistant/components/russound_rio/media_player.py:197: error: Returning Any from function declared to return "datetime[Any]"  [no-any-return]
+ homeassistant/components/statistics/sensor.py:1078: error: Incompatible types in assignment (expression has type "datetime[tzinfo]", variable has type "datetime[None]")  [assignment]
+ homeassistant/components/unifiprotect/sensor.py:100: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
+ homeassistant/components/unifiprotect/sensor.py:610: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
- homeassistant/components/unifiprotect/sensor.py:100: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/unifiprotect/sensor.py:610: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/hortimax/sensor.py:276: error: Returning Any from function declared to return "float | str | datetime | None"  [no-any-return]
- homeassistant/components/cambridge_audio/media_player.py:188: error: Returning Any from function declared to return "datetime"  [no-any-return]
+ homeassistant/components/cambridge_audio/media_player.py:188: error: Returning Any from function declared to return "datetime[Any]"  [no-any-return]
+ homeassistant/components/hortimax/sensor.py:276: error: Returning Any from function declared to return "float | str | datetime[Any] | None"  [no-any-return]
+ homeassistant/components/discovergy/sensor.py:37: error: Returning Any from function declared to return "datetime[Any] | float | None"  [no-any-return]
- homeassistant/components/discovergy/sensor.py:37: error: Returning Any from function declared to return "datetime | float | None"  [no-any-return]
- homeassistant/components/my_pv/sensor.py:258: error: Returning Any from function declared to return "str | int | float | None | date | datetime | Decimal"  [no-any-return]
+ homeassistant/components/my_pv/sensor.py:258: error: Returning Any from function declared to return "str | int | float | None | date | datetime[Any] | Decimal"  [no-any-return]
+ homeassistant/components/ecowitt/sensor.py:368: error: Returning Any from function declared to return "str | int | float | None | datetime[Any]"  [no-any-return]
- homeassistant/components/ecowitt/sensor.py:368: error: Returning Any from function declared to return "str | int | float | None | datetime"  [no-any-return]
- homeassistant/components/roku/media_player.py:235: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
+ homeassistant/components/roku/media_player.py:235: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
- homeassistant/components/local_calendar/calendar.py:283: note:     def __sub__(self, datetime, /) -> timedelta
+ homeassistant/components/local_calendar/calendar.py:283: note:     def __sub__(self, datetime[tzinfo] | datetime[tzinfo | None], /) -> timedelta
+ homeassistant/components/local_calendar/calendar.py:283: note:     def __sub__(self, datetime[None] | datetime[tzinfo | None], /) -> timedelta
- homeassistant/components/local_calendar/calendar.py:283: note:     def __sub__(self, timedelta, /) -> datetime
+ homeassistant/components/local_calendar/calendar.py:283: note:     def __sub__(self, datetime[Any], /) -> timedelta
+ homeassistant/components/local_calendar/calendar.py:283: note:     def __sub__(self, timedelta, /) -> datetime[Any]
+ homeassistant/components/wattwaechter/sensor.py:697: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
+ homeassistant/components/vallox/sensor.py:69: error: Returning Any from function declared to return "str | int | float | None | datetime[Any]"  [no-any-return]
- homeassistant/components/wattwaechter/sensor.py:697: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/vallox/sensor.py:69: error: Returning Any from function declared to return "str | int | float | None | datetime"  [no-any-return]
+ homeassistant/components/habitica/calendar.py:100: error: Returning Any from function declared to return "list[datetime[Any]]"  [no-any-return]
- homeassistant/components/habitica/calendar.py:100: error: Returning Any from function declared to return "list[datetime]"  [no-any-return]
- homeassistant/components/esphome/sensor.py:119: error: Returning Any from function declared to return "datetime | int | float | None"  [no-any-return]
- homeassistant/components/esphome/sensor.py:150: error: Returning Any from function declared to return "str | datetime | date | None"  [no-any-return]
+ homeassistant/components/esphome/sensor.py:119: error: Returning Any from function declared to return "datetime[Any] | int | float | None"  [no-any-return]
+ homeassistant/components/esphome/sensor.py:150: error: Returning Any from function declared to return "str | datetime[Any] | date | None"  [no-any-return]
+ homeassistant/components/yoto/media_player.py:128: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
+ homeassistant/components/nest/camera.py:236: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
+ homeassistant/components/nest/camera.py:283: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
+ homeassistant/components/nest/sensor.py:143: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
- homeassistant/components/yoto/media_player.py:128: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/nest/camera.py:236: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/nest/camera.py:283: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/knx/datetime.py:97: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/nest/sensor.py:143: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
- homeassistant/components/dlna_dmr/media_player.py:987: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
+ homeassistant/components/dlna_dmr/media_player.py:987: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
+ homeassistant/components/knx/datetime.py:97: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]
- homeassistant/components/lyngdorf/media_player.py:414: error: Returning Any from function declared to return "datetime | None"  [no-any-return]
+ homeassistant/components/lyngdorf/media_player.py:414: error: Returning Any from function declared to return "datetime[Any] | None"  [no-any-return]

discord.py (https://github.com/Rapptz/discord.py)
- discord/embeds.py:362: error: Incompatible types in assignment (expression has type "None", variable has type "datetime")  [assignment]
+ discord/embeds.py:362: error: Incompatible types in assignment (expression has type "None", variable has type "datetime[tzinfo] | datetime[Any]")  [assignment]
- discord/member.py:154: note:     def parse_time(timestamp: str) -> datetime
+ discord/member.py:154: note:     def parse_time(timestamp: str) -> datetime[Any]
- discord/member.py:154: note:     def parse_time(timestamp: str | None) -> datetime | None
+ discord/member.py:154: note:     def parse_time(timestamp: str | None) -> datetime[Any] | None
- discord/guild.py:4712: note:     def parse_time(timestamp: str) -> datetime
+ discord/guild.py:4712: note:     def parse_time(timestamp: str) -> datetime[Any]
- discord/guild.py:4712: note:     def parse_time(timestamp: str | None) -> datetime | None
+ discord/guild.py:4712: note:     def parse_time(timestamp: str | None) -> datetime[Any] | None
- discord/guild.py:4723: note:     def parse_time(timestamp: str) -> datetime
+ discord/guild.py:4723: note:     def parse_time(timestamp: str) -> datetime[Any]
- discord/guild.py:4723: note:     def parse_time(timestamp: str | None) -> datetime | None
+ discord/guild.py:4723: note:     def parse_time(timestamp: str | None) -> datetime[Any] | None
- discord/ext/tasks/__init__.py:213: error: Incompatible types in assignment (expression has type "datetime", variable has type "None")  [assignment]
+ discord/ext/tasks/__init__.py:213: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "None")  [assignment]
- discord/ext/tasks/__init__.py:215: error: Incompatible types in assignment (expression has type "datetime", variable has type "None")  [assignment]
+ discord/ext/tasks/__init__.py:215: error: Incompatible types in assignment (expression has type "datetime[tzinfo]", variable has type "None")  [assignment]
- discord/ext/tasks/__init__.py:223: error: Argument 1 to "_try_sleep_until" of "Loop" has incompatible type "None"; expected "datetime"  [arg-type]
+ discord/ext/tasks/__init__.py:223: error: Argument 1 to "_try_sleep_until" of "Loop" has incompatible type "None"; expected "datetime[Any]"  [arg-type]
- discord/ext/tasks/__init__.py:225: error: Incompatible types in assignment (expression has type "None", variable has type "datetime")  [assignment]
+ discord/ext/tasks/__init__.py:225: error: Incompatible types in assignment (expression has type "None", variable has type "datetime[Any]")  [assignment]
- discord/ext/tasks/__init__.py:226: error: Incompatible types in assignment (expression has type "datetime", variable has type "None")  [assignment]
+ discord/ext/tasks/__init__.py:226: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "None")  [assignment]
- discord/ext/tasks/__init__.py:232: error: Unsupported operand types for >= ("datetime" and "None")  [operator]
+ discord/ext/tasks/__init__.py:232: error: No overload variant of "__ge__" of "datetime" matches argument type "None"  [operator]
+ discord/ext/tasks/__init__.py:232: note: Possible overload variants:
+ discord/ext/tasks/__init__.py:232: note:     def __ge__(self, datetime[tzinfo] | datetime[tzinfo | None], /) -> bool
+ discord/ext/tasks/__init__.py:232: note:     def __ge__(self, datetime[None] | datetime[tzinfo | None], /) -> bool
+ discord/ext/tasks/__init__.py:232: note:     def __ge__(self, datetime[Any], /) -> bool
- discord/ext/tasks/__init__.py:243: error: Argument 1 to "_try_sleep_until" of "Loop" has incompatible type "None"; expected "datetime"  [arg-type]
+ discord/ext/tasks/__init__.py:243: error: Argument 1 to "_try_sleep_until" of "Loop" has incompatible type "None"; expected "datetime[Any]"  [arg-type]
- discord/ext/tasks/__init__.py:244: error: Incompatible types in assignment (expression has type "datetime", variable has type "None")  [assignment]
+ discord/ext/tasks/__init__.py:244: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "None")  [assignment]
- discord/ext/tasks/__init__.py:267: error: Argument 1 to "_try_sleep_until" of "Loop" has incompatible type "None"; expected "datetime"  [arg-type]
+ discord/ext/tasks/__init__.py:267: error: Argument 1 to "_try_sleep_until" of "Loop" has incompatible type "None"; expected "datetime[Any]"  [arg-type]
- discord/ext/tasks/__init__.py:791: error: Incompatible types in assignment (expression has type "datetime", variable has type "None")  [assignment]
+ discord/ext/tasks/__init__.py:791: error: Incompatible types in assignment (expression has type "datetime[Any]", variable has type "None")  [assignment]
- discord/ext/tasks/__init__.py:794: error: Argument 1 to "recalculate" of "SleepHandle" has incompatible type "None"; expected "datetime"  [arg-type]
+ discord/ext/tasks/__init__.py:794: error: Argument 1 to "recalculate" of "SleepHandle" has incompatible type "None"; expected "datetime[Any]"  [arg-type]

pandera (https://github.com/pandera-dev/pandera)
- pandera/engines/pandas_engine.py:171: note:     def array(data: Sequence[Just[float] | str | datetime | datetime64[Any] | NaTType | None] | ndarray[tuple[Any, ...], dtype[Any]] | DatetimeArray, dtype: DatetimeTZDtype | Literal['datetime64[s, UTC]', 'datetime64[ms, UTC]', 'datetime64[us, UTC]', 'datetime64[ns, UTC]'] | dtype[datetime64[Any]] | Literal['datetime64[s]', 'datetime64[ms]', 'datetime64[us]', 'datetime64[ns]', 'M8[s]', 'M8[ms]', 'M8[us]', 'M8[ns]', '<M8[s]', '<M8[ms]', '<M8[us]', '<M8[ns]'] | dtype[datetime64[Any]], copy: bool = ...) -> DatetimeArray
+ pandera/engines/pandas_engine.py:171: note:     def array(data: Sequence[Just[float] | str | datetime[Any] | datetime64[Any] | NaTType | None] | ndarray[tuple[Any, ...], dtype[Any]] | DatetimeArray, dtype: DatetimeTZDtype | Literal['datetime64[s, UTC]', 'datetime64[ms, UTC]', 'datetime64[us, UTC]', 'datetime64[ns, UTC]'] | dtype[datetime64[Any]] | Literal['datetime64[s]', 'datetime64[ms]', 'datetime64[us]', 'datetime64[ns]', 'M8[s]', 'M8[ms]', 'M8[us]', 'M8[ns]', '<M8[s]', '<M8[ms]', '<M8[us]', '<M8[ns]'] | dtype[datetime64[Any]], copy: bool = ...) -> DatetimeArray
- pandera/engines/pandas_engine.py:171: note:     def array(data: Sequence[datetime | datetime64[Any] | NaTType | None] | ndarray[tuple[Any, ...], dtype[datetime64[Any]]] | DatetimeArray, dtype: None = ..., copy: bool = ...) -> DatetimeArray
+ pandera/engines/pandas_engine.py:171: note:     def array(data: Sequence[datetime[Any] | datetime64[Any] | NaTType | None] | ndarray[tuple[Any, ...], dtype[datetime64[Any]]] | DatetimeArray, dtype: None = ..., copy: bool = ...) -> DatetimeArray
- pandera/engines/pandas_engine.py:171: note:     def array(data: Sequence[datetime | datetime64[Any] | NaTType | None] | ndarray[tuple[Any, ...], dtype[datetime64[Any]]] | DatetimeArray | DatetimeIndex | Series[Timestamp], dtype: Literal['datetime64[s, UTC]', 'datetime64[ms, UTC]', 'datetime64[us, UTC]', 'datetime64[ns, UTC]'] | Literal['datetime64[s]', 'datetime64[ms]', 'datetime64[us]', 'datetime64[ns]', 'M8[s]', 'M8[ms]', 'M8[us]', 'M8[ns]', '<M8[s]', '<M8[ms]', '<M8[us]', '<M8[ns]'] | dtype[datetime64[Any]] | None = ..., copy: bool = ...) -> DatetimeArray
+ pandera/engines/pandas_engine.py:171: note:     def array(data: Sequence[datetime[Any] | datetime64[Any] | NaTType | None] | ndarray[tuple[Any, ...], dtype[datetime64[Any]]] | DatetimeArray | DatetimeIndex | Series[Timestamp], dtype: Literal['datetime64[s, UTC]', 'datetime64[ms, UTC]', 'datetime64[us, UTC]', 'datetime64[ns, UTC]'] | Literal['datetime64[s]', 'datetime64[ms]', 'datetime64[us]', 'datetime64[ns]', 'M8[s]', 'M8[ms]', 'M8[us]', 'M8[ns]', '<M8[s]', '<M8[ms]', '<M8[us]', '<M8[ns]'] | dtype[datetime64[Any]] | None = ..., copy: bool = ...) -> DatetimeArray
- pandera/strategies/pandas_strategies.py:74: note:     def mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: str | bytes | date | datetime | timedelta | <14 more items> | None = ..., *, inplace: Literal[True], axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> None
+ pandera/strategies/pandas_strategies.py:74: note:     def mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: str | bytes | date | datetime[Any] | timedelta | <14 more items> | None = ..., *, inplace: Literal[True], axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> None
- pandera/strategies/pandas_strategies.py:74: note:     def [S2: str | bytes | bool | int | float | complex | <6 more items> | type[str] | list[str] | date | time | datetime | timedelta] mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: S2 | Series[S2] | Callable[..., S2], *, inplace: Literal[False] = ..., axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> Series[S2]
+ pandera/strategies/pandas_strategies.py:74: note:     def [S2: str | bytes | bool | int | float | complex | <6 more items> | type[str] | list[str] | date | time | datetime[Any] | timedelta] mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: S2 | Series[S2] | Callable[..., S2], *, inplace: Literal[False] = ..., axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> Series[S2]
- pandera/strategies/pandas_strategies.py:76: note:     def mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: str | bytes | date | datetime | timedelta | <14 more items> | None = ..., *, inplace: Literal[True], axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> None
+ pandera/strategies/pandas_strategies.py:76: note:     def mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: str | bytes | date | datetime[Any] | timedelta | <14 more items> | None = ..., *, inplace: Literal[True], axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> None
- pandera/strategies/pandas_strategies.py:76: note:     def [S2: str | bytes | bool | int | float | complex | <6 more items> | type[str] | list[str] | date | time | datetime | timedelta] mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: S2 | Series[S2] | Callable[..., S2], *, inplace: Literal[False] = ..., axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> Series[S2]
+ pandera/strategies/pandas_strategies.py:76: note:     def [S2: str | bytes | bool | int | float | complex | <6 more items> | type[str] | list[str] | date | time | datetime[Any] | timedelta] mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: S2 | Series[S2] | Callable[..., S2], *, inplace: Literal[False] = ..., axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> Series[S2]
- pandera/strategies/pandas_strategies.py:77: note:     def mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: str | bytes | date | datetime | timedelta | <14 more items> | None = ..., *, inplace: Literal[True], axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> None
+ pandera/strategies/pandas_strategies.py:77: note:     def mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: str | bytes | date | datetime[Any] | timedelta | <14 more items> | None = ..., *, inplace: Literal[True], axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> None
- pandera/strategies/pandas_strategies.py:77: note:     def [S2: str | bytes | bool | int | float | complex | <6 more items> | type[str] | list[str] | date | time | datetime | timedelta] mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: S2 | Series[S2] | Callable[..., S2], *, inplace: Literal[False] = ..., axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> Series[S2]
+ pandera/strategies/pandas_strategies.py:77: note:     def [S2: str | bytes | bool | int | float | complex | <6 more items> | type[str] | list[str] | date | time | datetime[Any] | timedelta] mask(self, cond: Series[Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | Callable[[Series[Any]], Series[builtins.bool]] | Callable[[Any], builtins.bool], other: S2 | Series[S2] | Callable[..., S2], *, inplace: Literal[False] = ..., axis: Literal['index', 0] | None = ..., level: Hashable | None = ...) -> Series[S2]

pandas-stubs (https://github.com/pandas-dev/pandas-stubs)
- tests/frame/test_indexing.py:907: error: Invalid index type "tuple[slice[None, None, None], set[str]]" for "_LocIndexerFrame[DataFrame]"; expected type "tuple[tuple[IndexOpsMixin[Any, Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | list[builtins.bool] | str | bytes | date | datetime | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any] | Sequence[str | bytes | date | datetime | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any]] | slice[Any, Any, Any], ...], Hashable]"  [index]
+ tests/frame/test_indexing.py:907: error: Invalid index type "tuple[slice[None, None, None], set[str]]" for "_LocIndexerFrame[DataFrame]"; expected type "tuple[tuple[IndexOpsMixin[Any, Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | list[builtins.bool] | str | bytes | date | datetime[Any] | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any] | Sequence[str | bytes | date | datetime[Any] | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any]] | slice[Any, Any, Any], ...], Hashable]"  [index]
- tests/frame/test_indexing.py:908: error: Invalid index type "tuple[slice[None, None, None], dict[str, int]]" for "_LocIndexerFrame[DataFrame]"; expected type "tuple[tuple[IndexOpsMixin[Any, Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | list[builtins.bool] | str | bytes | date | datetime | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any] | Sequence[str | bytes | date | datetime | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any]] | slice[Any, Any, Any], ...], Hashable]"  [index]
+ tests/frame/test_indexing.py:908: error: Invalid index type "tuple[slice[None, None, None], dict[str, int]]" for "_LocIndexerFrame[DataFrame]"; expected type "tuple[tuple[IndexOpsMixin[Any, Any] | Series[builtins.bool] | ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]] | list[builtins.bool] | str | bytes | date | datetime[Any] | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any] | Sequence[str | bytes | date | datetime[Any] | timedelta | <7 more items> | complex | integer[Any] | floating[Any] | complexfloating[Any, Any]] | slice[Any, Any, Any], ...], Hashable]"  [index]
+ tests/test_timefuncs.py:907: error: Expression is of type "datetime[None]", not "datetime[Any]"  [assert-type]
+ tests/scalars/test_scalars.py:555: error: Expression is of type "datetime[None]", not "datetime[Any]"  [assert-type]
+ tests/scalars/test_scalars.py:596: error: Expression is of type "datetime[None]", not "datetime[Any]"  [assert-type]
+ tests/scalars/test_scalars.py:1062: error: Expression is of type "Any", not "tzinfo | None"  [assert-type]
+ tests/arrays/test_datetime_array.py:94: error: Expression is of type "Any", not "DatetimeArray"  [assert-type]
+ tests/arrays/test_datetime_array.py:321: error: Expression is of type "Any", not "DatetimeArray"  [assert-type]
+ tests/arrays/test_datetime_array.py:326: error: Expression is of type "Any", not "DatetimeArray"  [assert-type]
+ tests/arrays/test_datetime_array.py:327: error: Expression is of type "Any", not "DatetimeArray"  [assert-type]

bokeh (https://github.com/bokeh/bokeh)
- src/bokeh/util/serialization.py:177:1: error: Argument 1 to "convert_datetime_type" becomes "Any | Any | Any | datetime | date | time | datetime64[Any]" due to an unfollowed import  [no-any-unimported]
+ src/bokeh/util/serialization.py:177:1: error: Argument 1 to "convert_datetime_type" becomes "Any | Any | Any | datetime[Any] | date | time | datetime64[Any]" due to an unfollowed import  [no-any-unimported]

tornado (https://github.com/tornadoweb/tornado)
+ tornado/test/locale_test.py:103: error: Unsupported operand types for - ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:103: error: Argument 1 to "format_date" of "Locale" has incompatible type "timedelta"; expected "int | float | datetime[Any]"  [arg-type]
+ tornado/test/locale_test.py:109: error: Unsupported operand types for - ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:109: error: Argument 1 to "format_date" of "Locale" has incompatible type "timedelta"; expected "int | float | datetime[Any]"  [arg-type]
+ tornado/test/locale_test.py:115: error: Unsupported operand types for - ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:115: error: Argument 1 to "format_date" of "Locale" has incompatible type "timedelta"; expected "int | float | datetime[Any]"  [arg-type]
+ tornado/test/locale_test.py:122: error: Unsupported operand types for - ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:122: error: Argument 1 to "format_date" of "Locale" has incompatible type "timedelta"; expected "int | float | datetime[Any]"  [arg-type]
+ tornado/test/locale_test.py:129: error: Unsupported operand types for - ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:129: error: Incompatible types in assignment (expression has type "timedelta", variable has type "datetime[None]")  [assignment]
+ tornado/test/locale_test.py:135: error: Unsupported operand types for - ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:135: error: Incompatible types in assignment (expression has type "timedelta", variable has type "datetime[None]")  [assignment]
+ tornado/test/locale_test.py:141: error: Unsupported operand types for - ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:141: error: Incompatible types in assignment (expression has type "timedelta", variable has type "datetime[None]")  [assignment]
+ tornado/test/locale_test.py:147: error: Unsupported operand types for + ("object" and "timedelta")  [operator]
+ tornado/test/locale_test.py:147: error: Incompatible types in assignment (expression has type "timedelta", variable has type "datetime[None]")  [assignment]

pandas (https://github.com/pandas-dev/pandas)

... (truncated 171 lines) ...```

@cdce8p

cdce8p commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator Author

Looked through a little of primer, some of the "need type annotation" ones seem bad:

import datetime as dt
a = dt.datetime.fromisoformat("2026-01-02")
b = dt.datetime.fromisoformat("2026-01-01")
reveal_type(a - b)  # Never

I modified the stubs in 004ce09 to check if that would be better -- maybe it is?

How do we want to continue here? This feels like it needs another revision in typeshed, so I'd be inclined to close the PR. Or is the latest primer output acceptable in which case I can add a patch for my changes?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants