Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add basic support for PEP 702 (@deprecated). #17476

Merged
merged 40 commits into from
Oct 6, 2024

Conversation

tyralla
Copy link
Collaborator

@tyralla tyralla commented Jul 3, 2024

Closes #16111

This PR provides only basic support. Many special cases might need additional attention (descriptors, some special methods like __int__, etc.). Other open issues are code comments, eventual documentation updates, the deprecation message style, etc.). But I wanted to offer these first steps before going on vacation (so I cannot respond to possible reviews too soon).

Maybe someone wants to extend the list of (test) cases the basic support should address?

This comment has been minimized.

This comment has been minimized.

@JelleZijlstra JelleZijlstra self-requested a review July 3, 2024 21:35
@JelleZijlstra
Copy link
Member

Thank you! I'll review this soon.

mypy/checker.py Outdated Show resolved Hide resolved
Copy link
Member

@JelleZijlstra JelleZijlstra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, this is looking pretty good!

mypy/checker.py Outdated Show resolved Hide resolved
mypy/checker.py Outdated Show resolved Hide resolved
mypy/errorcodes.py Show resolved Hide resolved
test-data/unit/check-deprecated.test Outdated Show resolved Hide resolved
mypy/checker.py Outdated Show resolved Hide resolved
@JelleZijlstra
Copy link
Member

mkosi (https://github.com/systemd/mkosi)
+ mkosi/log.py:92:34: error: logging.getLevelName is deprecated - The str -> int case is considered a mistake.  [deprecated]

This is a case where just one overload is deprecated, so I think logging.getLevelName is deprecated is misleading.

For reference, pyright has the same issue:

  /Users/jelle/py/tmp/deproverl.py:18:1 - error: The function "f" is deprecated
    no more floats (reportDeprecated)

Pyanalyze prints the affected overload (but appears to have a bug where the signature degenerates to (*Any, **Any) -> Any:

Use of deprecated overload (*args: Any[inference], **kwargs: Any[inference]) -> Any[unannotated]: no more floats (code: deprecated)
In /Users/jelle/py/tmp/deproverl.py at line 18

I would want it to either print the actual deprecated signature (like pyanalyze) or say something like "Deprecated call to logging.getLevelName", indicating that the function isn't fully deprecated, just this way of calling it is deprecated.

JelleZijlstra added a commit to python/typeshed that referenced this pull request Jul 4, 2024
Noticed this in primer output from python/mypy#17476.

This comment has been minimized.

This comment has been minimized.

AlexWaygood pushed a commit to python/typeshed that referenced this pull request Jul 4, 2024
Noticed this in primer output from python/mypy#17476.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@tyralla
Copy link
Collaborator Author

tyralla commented Sep 29, 2024

Hm, I don't see anything obviously wrong with the test. As a guess, you need to update this part to include the new flag https://github.com/python/mypy/blob/master/mypy/server/astdiff.py#L228-L256 (since currently you effectively rely on node kind switching from function to decorator to trigger the update).

My first attempt to include the new flag into the returned tuple made no difference. While thinking about it, I came across the snapshot_symbol_table function. After the change proposed by commit 09a53d5, all tests passed. However, I have no idea about the further implications of this change (performance?). I could investigate further next week, but maybe it is directly clear to you whether the proposed change is a good or bad idea.

Copy link
Contributor

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

parso (https://github.com/davidhalter/parso)
+ parso/tree.py:1: note: class abc.abstractproperty is deprecated: Use 'property' with 'abstractmethod' instead  [deprecated]

SinbadCogs (https://github.com/mikeshardmind/SinbadCogs)
+ rolemanagement/events.py:41: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ embedmaker/serialize.py:81: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ antimentionspam/antimentionspam.py:239: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ scheduler/time_utils.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ embedmaker/time_utils.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ scheduler/message.py:82: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ modnotes/modnotes.py:148: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

spack (https://github.com/spack/spack)
+ lib/spack/spack/util/package_hash.py:30: note: class ast.Str is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]

pydantic (https://github.com/pydantic/pydantic)
+ pydantic/deprecated/parse.py:78: note: function pydantic.deprecated.parse.load_str_bytes is deprecated: `load_str_bytes` is deprecated.  [deprecated]
+ pydantic/__init__.py:59: note: function pydantic.deprecated.class_validators.root_validator is deprecated: Pydantic V1 style `@root_validator` validators are deprecated. You should migrate to Pydantic V2 style `@model_validator` validators, see the migration guide for more details  [deprecated]
+ pydantic/__init__.py:59: note: function pydantic.deprecated.class_validators.validator is deprecated: Pydantic V1 style `@validator` validators are deprecated. You should migrate to Pydantic V2 style `@field_validator` validators, see the migration guide for more details  [deprecated]
+ pydantic/__init__.py:60: note: class pydantic.deprecated.config.BaseConfig is deprecated: BaseConfig is deprecated. Use the `pydantic.ConfigDict` instead.  [deprecated]
+ pydantic/__init__.py:60: note: class pydantic.deprecated.config.Extra is deprecated: Extra is deprecated. Use literal values instead (e.g. `extra='allow'`)  [deprecated]
+ pydantic/color.py:252: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/deprecated/json.py:16: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/deprecated/json.py:132: note: function pydantic.deprecated.json.pydantic_encoder is deprecated: `pydantic_encoder` is deprecated, use `pydantic_core.to_jsonable_python` instead.  [deprecated]
+ pydantic/main.py:1219: note: function pydantic.deprecated.parse.load_str_bytes is deprecated: `load_str_bytes` is deprecated.  [deprecated]
+ pydantic/main.py:1271: note: function pydantic.deprecated.parse.load_file is deprecated: `load_file` is deprecated.  [deprecated]
+ pydantic/main.py:1278: note: function pydantic.main.BaseModel.parse_obj is deprecated: The `parse_obj` method is deprecated; use `model_validate` instead.  [deprecated]
+ pydantic/deprecated/tools.py:101: note: function pydantic.deprecated.tools.schema_of is deprecated: `schema_of` is deprecated. Use `pydantic.TypeAdapter.json_schema` instead.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:105: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:126: note: class pydantic.types.PaymentCardNumber is deprecated: The `PaymentCardNumber` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_payment/#pydantic_extra_types.payment.PaymentCardNumber.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:139: note: class pydantic.types.PaymentCardNumber is deprecated: The `PaymentCardNumber` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_payment/#pydantic_extra_types.payment.PaymentCardNumber.  [deprecated]
+ pydantic/deprecated/decorator.py:84: note: function pydantic.deprecated.decorator.validate_arguments is deprecated: The `validate_arguments` method is deprecated; use `validate_call` instead.  [deprecated]

Tanjun (https://github.com/FasterSpeeding/Tanjun)
+ tanjun/injecting.py:106: note: class alluka._self_injecting.AsyncSelfInjecting is deprecated: Use Client.auto_inject_async  [deprecated]
+ tanjun/context/base.py:58: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/base.py:133: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/base.py:136: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:321: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1042: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1077: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1085: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:114: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:184: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:189: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/autocomplete.py:95: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:98: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:153: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:156: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/annotations.py:1699: note: @overload should be placed before @deprecated

cloud-init (https://github.com/canonical/cloud-init)
+ cloudinit/reporting/handlers.py:378: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ tests/integration_tests/clouds.py:328: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ cloudinit/sources/azure/errors.py:55: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ cloudinit/sources/azure/kvp.py:52: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ tests/unittests/sources/azure/test_kvp.py:14: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ tests/integration_tests/test_paths.py:69: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ tests/integration_tests/test_paths.py:101: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

pywin32 (https://github.com/mhammond/pywin32)
+ AutoDuck/fixHelpCompression.py:16:1: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ win32/Lib/win32serviceutil.py:140:19: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/sgrepmdi.py:615:20: note: function win32.win32api.GetProfileSection is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/sgrepmdi.py:629:21: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/mdi_pychecker.py:703:20: note: function win32.win32api.GetProfileSection is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/mdi_pychecker.py:717:21: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/editor/vss.py:45:20: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/editor/vss.py:46:19: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]

pwndbg (https://github.com/pwndbg/pwndbg)
+ pwndbg/commands/__init__.py: note: In function "OnlyWithResolvedHeapSyms":
+ pwndbg/commands/__init__.py:453: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

dd-trace-py (https://github.com/DataDog/dd-trace-py)
+ ddtrace/internal/debug.py:121: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:228: note: class ast.Bytes is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:238: note: class ast.Num is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:390: note: class ast.NameConstant is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/profiling/exporter/http.py:219: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ ddtrace/profiling/exporter/http.py:220: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]

alerta (https://github.com/alerta/alerta)
+ alerta/dev.py:4: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/utils/audit.py:94: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/note.py:25: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:31: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:164: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:56: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:59: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:61: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/blackout.py:37: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/blackout.py:60: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:66: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:75: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:282: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:335: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:379: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:430: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:574: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:609: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:637: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/auth/utils.py:52: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/user.py:41: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/user.py:44: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:250: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:252: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:254: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:345: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:347: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

scrapy (https://github.com/scrapy/scrapy)
+ scrapy/utils/misc.py:279: note: class ast.NameConstant is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]

openlibrary (https://github.com/internetarchive/openlibrary)
+ openlibrary/core/yearly_reading_goals.py: note: In member "update_current_count" of class "YearlyReadingGoals":
+ openlibrary/core/yearly_reading_goals.py:103: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/yearly_reading_goals.py: note: In member "update_target" of class "YearlyReadingGoals":
+ openlibrary/core/yearly_reading_goals.py:121: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "assign_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:231: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "unassign_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:251: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "update_request_status" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:280: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "comment_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:296: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "create_comment" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:322: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "is_loaned_out":
+ openlibrary/plugins/upstream/borrow.py:609: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "_update_loan_status":
+ openlibrary/plugins/upstream/borrow.py:635: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "get_ia_auth_dict":
+ openlibrary/plugins/upstream/borrow.py:826: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/addbook.py: note: In function "get_recaptcha":
+ openlibrary/plugins/upstream/addbook.py:50: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

discord.py (https://github.com/Rapptz/discord.py)
+ discord/member.py:946: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ discord/member.py:1002: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ discord/ext/tasks/__init__.py:227: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

comtypes (https://github.com/enthought/comtypes)
+ comtypes/test/__init__.py:140: note: function unittest.loader.makeSuite is deprecated: Deprecated in Python 3.11; removal scheduled for Python 3.13  [deprecated]
+ comtypes/test/__init__.py:210: note: function unittest.loader.makeSuite is deprecated: Deprecated in Python 3.11; removal scheduled for Python 3.13  [deprecated]

speedrun.com_global_scoreboard_webapp (https://github.com/Avasam/speedrun.com_global_scoreboard_webapp)
+ backend/api/api_wrappers.py:56: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/services/user_updater.py:78: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/core_api.py:36: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/core_api.py:37: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/global_scoreboard_api.py:76: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

dragonchain (https://github.com/dragonchain/dragonchain)
+ dragonchain/lib/dto/smart_contract_model.py:100:86: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/lib/dto/smart_contract_model.py:300:112: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/lib/authorization.py:51:12: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/scheduler/scheduler.py:65:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

freqtrade (https://github.com/freqtrade/freqtrade)
+ freqtrade/data/history/history_utils.py:125: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ freqtrade/rpc/api_server/api_ws.py:42: note: function pydantic.main.BaseModel.dict is deprecated: The `dict` method is deprecated; use `model_dump` instead.  [deprecated]

pytest-robotframework (https://github.com/detachhead/pytest-robotframework)
+ pytest_robotframework/__init__.py:471: note: @overload should be placed before @deprecated

sockeye (https://github.com/awslabs/sockeye)
+ sockeye/utils.py:843: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ sockeye/model.py:183: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ sockeye/model.py:187: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

paasta (https://github.com/yelp/paasta)
+ paasta_tools/utils.py:1496: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3673: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3680: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3688: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/spark_tools.py:136: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/spark_tools.py:204: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/setup_istio_mesh.py:106: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/smartstack_tools.py:476: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/smartstack_tools.py:533: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:809: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:824: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:829: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1020: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1024: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1310: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1317: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1329: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

bandersnatch (https://github.com/pypa/bandersnatch)
+ src/bandersnatch/utils.py: note: In function "make_time_stamp":
+ src/bandersnatch/utils.py:54: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ src/bandersnatch/mirror.py: note: In member "synchronize" of class "Mirror":
+ src/bandersnatch/mirror.py:58: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

optuna (https://github.com/optuna/optuna)
+ optuna/_gp/gp.py:260: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

typeshed-stats (https://github.com/AlexWaygood/typeshed-stats)
+ website_macros.py:101: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

tornado (https://github.com/tornadoweb/tornado)
+ tornado/autoreload.py:339: note: function pkgutil.get_loader is deprecated: Use importlib.util.find_spec() instead. Will be removed in Python 3.14.  [deprecated]
+ tornado/test/httputil_test.py:444: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]

... (truncated 25 lines) ...```

@tyralla
Copy link
Collaborator Author

tyralla commented Sep 29, 2024

Hm, docstring of module astdiff seems to suggest it is a bad idea.

@tyralla
Copy link
Collaborator Author

tyralla commented Sep 30, 2024

@ilevkivskyi

I am now quite sure that testDeprecatedAddFunctionDeprecationIndirectImport-only_when_nocache fails due to a more general problem (or my misunderstanding of only_when_nocache). Mypy does not report any of the two obvious errors, no matter which of the four decorator definitions I select:

[case testReplaceFunctionWithDecoratedFunction-only_when_nocache]
from b import f
x: int = f()
import b
y: int = b.f()

[file b.py]
from a import f

[file a.py]
def f() -> int: ...

[file a.py.2]
from typing import Callable, TypeVar

T = TypeVar("T")

# def d(t: str, /) -> Callable[[T], T]: ...  # version 1
# def d(t: str, /) -> Callable[[Callable[[], str]], Callable[[], str]]: ...  # version 2
# def d(t: T, /) -> T: ...  # version 3
def d(t: Callable[[], str], /) -> Callable[[], str]: ...  # version 4

# @d("deprecated")  # version 1 or 2
@d  # version 3 or 4
def f() -> str: ...

[builtins fixtures/tuple.pyi]
[out]
==
main:2: error: Incompatible types in assignment (expression has type "str", variable has type "int")
main:4: error: Incompatible types in assignment (expression has type "str", variable has type "int")

@tyralla
Copy link
Collaborator Author

tyralla commented Oct 3, 2024

I now had time for some debugging but did not come to a helpful conclusion.

The already mentioned docstring seems to suggest that snapshots and fine-grained dependencies have nothing to do with each other. I thought that snapshots would be used to determine the triggers that are used in combination with the fine-grained dependency mappings for determining targets that need reprocessing.

Another confusion comes from the fact that Mypy does not fail the following test cast:

[case testReplaceFunctionWithDecoratedFunction-only_when_nocache]
from b import f
x: int = f()

[file b.py]
from a import f

[file a.py]
def f() -> int: ...

[file a.py.2]
def f() -> str: ...

[builtins fixtures/tuple.pyi]
[out]
==
main:2: error: Incompatible types in assignment (expression has type "str", variable has type "int")

It seems to me that Mypy does not handle this test well because of processing the modules in the right order (a -> b -> main) but because of storing the same FuncDef instance in the symbol tables of the three modules. Hence, if a.f is updated when reanalysing a, b and main know this at once. So, Mypy can detect the error also for the processing order a -> main -> b and then starts another iteration step so that the complete processing order becomes a -> main -> b -> main (it actually finds the same error twice).

Again, all this seems to apply only for only_when_nocache.

I suspect those familiar with Mypy's server functionalities will find it much easier to solve this puzzle (or see, where I am thinking in the wrong direction), so I will wait for help.

@ilevkivskyi
Copy link
Member

I will try to look at this on the weekend, there indeed may be a deeper problem.

ilevkivskyi added a commit that referenced this pull request Oct 6, 2024
This is quite a bad bug. Currently we rely on `SymbolNode` being updated
in-place for all indirect references, but this is not the case when node
kind (`FuncDef`, `Decorator`, etc.) changes, in this case a _new_
`SymbolNode` is created. I fix this by forcing reprocessing if the node
kind changes.

This currently blocks support for PEP 702, see
#17476, so I will not wait for long
before merging.
@ilevkivskyi
Copy link
Member

@tyralla I think I fixed the bug in #17883. Please undo your CrossRef change. Also please add a test like this:

[case testDeprecateFunctionAlreadyDecorated]
from b import f
x: str = f()
import b
y: str = b.f()

[file b.py]
from a import f

[file a.py]
from typing import Callable

def d(t: Callable[[], str]) -> Callable[[], str]: ...

@d
def f() -> str: ...

[file a.py.2]
from typing import Callable
from typing_extensions import deprecated

def d(t: Callable[[], str]) -> Callable[[], str]: ...

@deprecated("deprecated decorated function")
@d
def f() -> str: ...

[builtins fixtures/tuple.pyi]
[out]
==
main:2: note: deprecated decorated function
main:4: note: deprecated decorated function

I am 95% sure this will fail unless you add the flag to Decorator snapshot as I suggested a while ago.

@tyralla
Copy link
Collaborator Author

tyralla commented Oct 6, 2024

Okay, I'm glad to hear my analysis was correct. Thank you for applying and merging the fix into the master branch so soon. I reverted my fix, merged your one, and added the suggested test case testDeprecateFunctionAlreadyDecorated. However, I would have been a little surprised if it failed with the current implementation because there is already a similar test (testDeprecatedChangeFunctionDeprecationIndirectImport) that passes. Should I, nevertheless, add the attribute deprecated to the snapshot?

Due to all the refactoring and bug searching, I haven't thought about PEP 702 for a while now. I could consider some additional special cases (you mentioned one above) and the override topic soon. Do you intend to include PEP 702 support in Mypy 1.12?

@ilevkivskyi
Copy link
Member

Mypy always reprocesses targets with errors. So the existing test case is not testing what I want.

Do you intend to include PEP 702 support in Mypy 1.12?

It's up to @JukkaL, but IIUC release branch has been cut few days ago, so normally only low-risk bug fixes are accepted.

@ilevkivskyi
Copy link
Member

@tyralla As you see it failed as expected, so yes, you need to add deprecated to the snapshot. Btw I just noticed the error message I put in the test is wrong, it should start with function a.f is deprecated: (you can locally using pytest -k testDeprecateFunctionAlreadyDecorated to avoid waiting for CI).

Copy link
Contributor

github-actions bot commented Oct 6, 2024

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

parso (https://github.com/davidhalter/parso)
+ parso/tree.py:1: note: class abc.abstractproperty is deprecated: Use 'property' with 'abstractmethod' instead  [deprecated]

optuna (https://github.com/optuna/optuna)
+ optuna/_gp/gp.py:260: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

pydantic (https://github.com/pydantic/pydantic)
+ pydantic/deprecated/parse.py:78: note: function pydantic.deprecated.parse.load_str_bytes is deprecated: `load_str_bytes` is deprecated.  [deprecated]
+ pydantic/__init__.py:59: note: function pydantic.deprecated.class_validators.root_validator is deprecated: Pydantic V1 style `@root_validator` validators are deprecated. You should migrate to Pydantic V2 style `@model_validator` validators, see the migration guide for more details  [deprecated]
+ pydantic/__init__.py:59: note: function pydantic.deprecated.class_validators.validator is deprecated: Pydantic V1 style `@validator` validators are deprecated. You should migrate to Pydantic V2 style `@field_validator` validators, see the migration guide for more details  [deprecated]
+ pydantic/__init__.py:60: note: class pydantic.deprecated.config.BaseConfig is deprecated: BaseConfig is deprecated. Use the `pydantic.ConfigDict` instead.  [deprecated]
+ pydantic/__init__.py:60: note: class pydantic.deprecated.config.Extra is deprecated: Extra is deprecated. Use literal values instead (e.g. `extra='allow'`)  [deprecated]
+ pydantic/color.py:252: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/deprecated/json.py:16: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/deprecated/json.py:132: note: function pydantic.deprecated.json.pydantic_encoder is deprecated: `pydantic_encoder` is deprecated, use `pydantic_core.to_jsonable_python` instead.  [deprecated]
+ pydantic/main.py:1231: note: function pydantic.deprecated.parse.load_str_bytes is deprecated: `load_str_bytes` is deprecated.  [deprecated]
+ pydantic/main.py:1284: note: function pydantic.deprecated.parse.load_file is deprecated: `load_file` is deprecated.  [deprecated]
+ pydantic/main.py:1291: note: function pydantic.main.BaseModel.parse_obj is deprecated: The `parse_obj` method is deprecated; use `model_validate` instead.  [deprecated]
+ pydantic/deprecated/tools.py:101: note: function pydantic.deprecated.tools.schema_of is deprecated: `schema_of` is deprecated. Use `pydantic.TypeAdapter.json_schema` instead.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:105: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:126: note: class pydantic.types.PaymentCardNumber is deprecated: The `PaymentCardNumber` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_payment/#pydantic_extra_types.payment.PaymentCardNumber.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:139: note: class pydantic.types.PaymentCardNumber is deprecated: The `PaymentCardNumber` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_payment/#pydantic_extra_types.payment.PaymentCardNumber.  [deprecated]
+ pydantic/deprecated/decorator.py:84: note: function pydantic.deprecated.decorator.validate_arguments is deprecated: The `validate_arguments` method is deprecated; use `validate_call` instead.  [deprecated]

Tanjun (https://github.com/FasterSpeeding/Tanjun)
+ tanjun/injecting.py:106: note: class alluka._self_injecting.AsyncSelfInjecting is deprecated: Use Client.auto_inject_async  [deprecated]
+ tanjun/context/base.py:58: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/base.py:133: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/base.py:136: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:321: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1042: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1077: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1085: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:114: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:184: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:189: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/autocomplete.py:95: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:98: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:153: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:156: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/annotations.py:1699: note: @overload should be placed before @deprecated

SinbadCogs (https://github.com/mikeshardmind/SinbadCogs)
+ rolemanagement/events.py:41: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ embedmaker/serialize.py:81: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ antimentionspam/antimentionspam.py:239: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ scheduler/time_utils.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ embedmaker/time_utils.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ scheduler/message.py:82: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ modnotes/modnotes.py:148: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

prefect (https://github.com/PrefectHQ/prefect)
+ src/prefect/_internal/concurrency/api.py:49: note: class abc.abstractstaticmethod is deprecated: Use 'staticmethod' with 'abstractmethod' instead  [deprecated]
+ src/prefect/_internal/concurrency/api.py:62: note: class abc.abstractstaticmethod is deprecated: Use 'staticmethod' with 'abstractmethod' instead  [deprecated]
+ src/prefect/results.py:1176: note: class abc.abstractclassmethod is deprecated: Use 'classmethod' with 'abstractmethod' instead  [deprecated]
+ src/prefect/server/database/query_components.py:2: note: class abc.abstractproperty is deprecated: Use 'property' with 'abstractmethod' instead  [deprecated]

python-sop (https://gitlab.com/dkg/python-sop)
+ sop/__init__.py:424: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

pywin32 (https://github.com/mhammond/pywin32)
+ AutoDuck/fixHelpCompression.py:16:1: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ win32/Lib/win32serviceutil.py:140:19: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/sgrepmdi.py:615:20: note: function win32.win32api.GetProfileSection is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/sgrepmdi.py:629:21: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/mdi_pychecker.py:703:20: note: function win32.win32api.GetProfileSection is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/mdi_pychecker.py:717:21: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/editor/vss.py:45:20: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/editor/vss.py:46:19: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]

dd-trace-py (https://github.com/DataDog/dd-trace-py)
+ ddtrace/internal/debug.py:121: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:228: note: class ast.Bytes is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:238: note: class ast.Num is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:390: note: class ast.NameConstant is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/profiling/exporter/http.py:219: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ ddtrace/profiling/exporter/http.py:220: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]

alerta (https://github.com/alerta/alerta)
+ alerta/dev.py:4: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/utils/audit.py:94: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/note.py:25: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:31: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:164: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:56: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:59: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:61: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/blackout.py:37: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/blackout.py:60: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:66: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:75: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:282: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:335: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:379: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:430: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:574: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:609: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:637: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/auth/utils.py:52: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/user.py:41: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/user.py:44: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:250: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:252: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:254: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:345: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:347: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

openlibrary (https://github.com/internetarchive/openlibrary)
+ openlibrary/core/edits.py: note: In member "assign_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:231: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "unassign_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:251: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "update_request_status" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:280: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "comment_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:296: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "create_comment" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:322: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "is_loaned_out":
+ openlibrary/plugins/upstream/borrow.py:609: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "_update_loan_status":
+ openlibrary/plugins/upstream/borrow.py:635: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "get_ia_auth_dict":
+ openlibrary/plugins/upstream/borrow.py:826: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/addbook.py: note: In function "get_recaptcha":
+ openlibrary/plugins/upstream/addbook.py:50: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

paasta (https://github.com/yelp/paasta)
+ paasta_tools/utils.py:1496: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3673: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3680: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3688: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/spark_tools.py:136: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/spark_tools.py:204: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/setup_istio_mesh.py:106: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/smartstack_tools.py:476: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/smartstack_tools.py:533: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:809: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:824: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:829: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1020: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1024: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1310: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1317: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1329: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

comtypes (https://github.com/enthought/comtypes)
+ comtypes/test/__init__.py:140: note: function unittest.loader.makeSuite is deprecated: Deprecated in Python 3.11; removal scheduled for Python 3.13  [deprecated]
+ comtypes/test/__init__.py:210: note: function unittest.loader.makeSuite is deprecated: Deprecated in Python 3.11; removal scheduled for Python 3.13  [deprecated]

speedrun.com_global_scoreboard_webapp (https://github.com/Avasam/speedrun.com_global_scoreboard_webapp)
+ backend/api/api_wrappers.py:56: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/services/user_updater.py:78: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/core_api.py:36: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/core_api.py:37: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/global_scoreboard_api.py:76: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

freqtrade (https://github.com/freqtrade/freqtrade)
+ freqtrade/data/history/history_utils.py:125: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ freqtrade/rpc/api_server/api_ws.py:42: note: function pydantic.main.BaseModel.dict is deprecated: The `dict` method is deprecated; use `model_dump` instead.  [deprecated]

dragonchain (https://github.com/dragonchain/dragonchain)
+ dragonchain/lib/dto/smart_contract_model.py:100:86: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/lib/dto/smart_contract_model.py:300:112: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/lib/authorization.py:51:12: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/scheduler/scheduler.py:65:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

scrapy (https://github.com/scrapy/scrapy)
+ scrapy/utils/misc.py:279: note: class ast.NameConstant is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]

materialize (https://github.com/MaterializeInc/materialize)
+ misc/python/materialize/buildkite_insights/util/data_io.py:75: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ ci/cleanup/launchdarkly.py:32: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ misc/python/materialize/scratch.py:388: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ misc/python/materialize/cli/cloudbench.py:290: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ misc/python/materialize/cli/scratch/create.py:148: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ci/load/periodic.py:31: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ci/load/periodic.py:36: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ci/cleanup/aws.py:105: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

pytest-robotframework (https://github.com/detachhead/pytest-robotframework)
+ pytest_robotframework/__init__.py:471: note: @overload should be placed before @deprecated

sockeye (https://github.com/awslabs/sockeye)
+ sockeye/utils.py:843: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ sockeye/model.py:183: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ sockeye/model.py:187: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

bandersnatch (https://github.com/pypa/bandersnatch)
+ src/bandersnatch/utils.py: note: In function "make_time_stamp":
+ src/bandersnatch/utils.py:54: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ src/bandersnatch/mirror.py: note: In member "synchronize" of class "Mirror":
+ src/bandersnatch/mirror.py:58: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

typeshed-stats (https://github.com/AlexWaygood/typeshed-stats)
+ website_macros.py:101: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

pwndbg (https://github.com/pwndbg/pwndbg)
+ pwndbg/commands/__init__.py: note: In function "OnlyWithResolvedHeapSyms":
+ pwndbg/commands/__init__.py:453: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

discord.py (https://github.com/Rapptz/discord.py)
+ discord/member.py:946: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ discord/member.py:1002: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ discord/ext/tasks/__init__.py:227: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

tornado (https://github.com/tornadoweb/tornado)

... (truncated 20 lines) ...```

@tyralla
Copy link
Collaborator Author

tyralla commented Oct 6, 2024

My fault. I did not execute the test at all because it had a slightly different prefix (testDeprecate... instead of testDeprecated...). Too lazy...

I finally added deprecated to the snapshot, adjusted the test results, and split testDeprecatedFunctionAlreadyDecorated into two versions because of different result orders for the cache and the nocache case.

Copy link
Contributor

github-actions bot commented Oct 6, 2024

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

parso (https://github.com/davidhalter/parso)
+ parso/tree.py:1: note: class abc.abstractproperty is deprecated: Use 'property' with 'abstractmethod' instead  [deprecated]

prefect (https://github.com/PrefectHQ/prefect)
+ src/prefect/_internal/concurrency/api.py:49: note: class abc.abstractstaticmethod is deprecated: Use 'staticmethod' with 'abstractmethod' instead  [deprecated]
+ src/prefect/_internal/concurrency/api.py:62: note: class abc.abstractstaticmethod is deprecated: Use 'staticmethod' with 'abstractmethod' instead  [deprecated]
+ src/prefect/results.py:1176: note: class abc.abstractclassmethod is deprecated: Use 'classmethod' with 'abstractmethod' instead  [deprecated]
+ src/prefect/server/database/query_components.py:2: note: class abc.abstractproperty is deprecated: Use 'property' with 'abstractmethod' instead  [deprecated]

pydantic (https://github.com/pydantic/pydantic)
+ pydantic/deprecated/parse.py:78: note: function pydantic.deprecated.parse.load_str_bytes is deprecated: `load_str_bytes` is deprecated.  [deprecated]
+ pydantic/__init__.py:59: note: function pydantic.deprecated.class_validators.root_validator is deprecated: Pydantic V1 style `@root_validator` validators are deprecated. You should migrate to Pydantic V2 style `@model_validator` validators, see the migration guide for more details  [deprecated]
+ pydantic/__init__.py:59: note: function pydantic.deprecated.class_validators.validator is deprecated: Pydantic V1 style `@validator` validators are deprecated. You should migrate to Pydantic V2 style `@field_validator` validators, see the migration guide for more details  [deprecated]
+ pydantic/__init__.py:60: note: class pydantic.deprecated.config.BaseConfig is deprecated: BaseConfig is deprecated. Use the `pydantic.ConfigDict` instead.  [deprecated]
+ pydantic/__init__.py:60: note: class pydantic.deprecated.config.Extra is deprecated: Extra is deprecated. Use literal values instead (e.g. `extra='allow'`)  [deprecated]
+ pydantic/color.py:252: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/deprecated/json.py:16: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/deprecated/json.py:132: note: function pydantic.deprecated.json.pydantic_encoder is deprecated: `pydantic_encoder` is deprecated, use `pydantic_core.to_jsonable_python` instead.  [deprecated]
+ pydantic/main.py:1231: note: function pydantic.deprecated.parse.load_str_bytes is deprecated: `load_str_bytes` is deprecated.  [deprecated]
+ pydantic/main.py:1284: note: function pydantic.deprecated.parse.load_file is deprecated: `load_file` is deprecated.  [deprecated]
+ pydantic/main.py:1291: note: function pydantic.main.BaseModel.parse_obj is deprecated: The `parse_obj` method is deprecated; use `model_validate` instead.  [deprecated]
+ pydantic/deprecated/tools.py:101: note: function pydantic.deprecated.tools.schema_of is deprecated: `schema_of` is deprecated. Use `pydantic.TypeAdapter.json_schema` instead.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:105: note: class pydantic.color.Color is deprecated: The `Color` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_color/.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:126: note: class pydantic.types.PaymentCardNumber is deprecated: The `PaymentCardNumber` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_payment/#pydantic_extra_types.payment.PaymentCardNumber.  [deprecated]
+ pydantic/v1/_hypothesis_plugin.py:139: note: class pydantic.types.PaymentCardNumber is deprecated: The `PaymentCardNumber` class is deprecated, use `pydantic_extra_types` instead. See https://docs.pydantic.dev/latest/api/pydantic_extra_types_payment/#pydantic_extra_types.payment.PaymentCardNumber.  [deprecated]
+ pydantic/deprecated/decorator.py:84: note: function pydantic.deprecated.decorator.validate_arguments is deprecated: The `validate_arguments` method is deprecated; use `validate_call` instead.  [deprecated]

Tanjun (https://github.com/FasterSpeeding/Tanjun)
+ tanjun/injecting.py:106: note: class alluka._self_injecting.AsyncSelfInjecting is deprecated: Use Client.auto_inject_async  [deprecated]
+ tanjun/context/base.py:58: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/base.py:133: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/base.py:136: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:321: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1042: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1077: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/slash.py:1085: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:114: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:184: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/message.py:189: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/autocomplete.py:95: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:98: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:153: note: function alluka._context.BasicContext._set_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/context/menu.py:156: note: function alluka._context.BasicContext._remove_type_special_case is deprecated: Use ContextOverride  [deprecated]
+ tanjun/annotations.py:1699: note: @overload should be placed before @deprecated

optuna (https://github.com/optuna/optuna)
+ optuna/_gp/gp.py:260: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

SinbadCogs (https://github.com/mikeshardmind/SinbadCogs)
+ rolemanagement/events.py:41: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ embedmaker/serialize.py:81: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ antimentionspam/antimentionspam.py:239: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ scheduler/time_utils.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ embedmaker/time_utils.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ scheduler/message.py:82: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ modnotes/modnotes.py:148: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

python-sop (https://gitlab.com/dkg/python-sop)
+ sop/__init__.py:424: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

pywin32 (https://github.com/mhammond/pywin32)
+ AutoDuck/fixHelpCompression.py:16:1: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ win32/Lib/win32serviceutil.py:140:19: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/sgrepmdi.py:615:20: note: function win32.win32api.GetProfileSection is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/sgrepmdi.py:629:21: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/mdi_pychecker.py:703:20: note: function win32.win32api.GetProfileSection is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/mdi_pychecker.py:717:21: note: function win32.win32api.WriteProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/editor/vss.py:45:20: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]
+ Pythonwin/pywin/framework/editor/vss.py:46:19: note: function win32.win32api.GetProfileVal is deprecated: This function is obsolete, applications should use the registry instead.  [deprecated]

dd-trace-py (https://github.com/DataDog/dd-trace-py)
+ ddtrace/internal/debug.py:121: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:228: note: class ast.Bytes is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:238: note: class ast.Num is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/appsec/_iast/_ast/visitor.py:390: note: class ast.NameConstant is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]
+ ddtrace/profiling/exporter/http.py:219: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ ddtrace/profiling/exporter/http.py:220: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]

alerta (https://github.com/alerta/alerta)
+ alerta/dev.py:4: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/utils/audit.py:94: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/note.py:25: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:31: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/key.py:164: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:56: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:59: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/heartbeat.py:61: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/blackout.py:37: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/blackout.py:60: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:66: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:75: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:282: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:335: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:379: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:430: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:574: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:609: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/alert.py:637: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/auth/utils.py:52: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/user.py:41: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/models/user.py:44: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:250: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:252: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:254: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:345: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ alerta/database/backends/mongodb/utils.py:347: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

openlibrary (https://github.com/internetarchive/openlibrary)
+ openlibrary/core/edits.py: note: In member "assign_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:231: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "unassign_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:251: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "update_request_status" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:280: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "comment_request" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:296: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/core/edits.py: note: In member "create_comment" of class "CommunityEditsQueue":
+ openlibrary/core/edits.py:322: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "is_loaned_out":
+ openlibrary/plugins/upstream/borrow.py:609: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "_update_loan_status":
+ openlibrary/plugins/upstream/borrow.py:635: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/borrow.py: note: In function "get_ia_auth_dict":
+ openlibrary/plugins/upstream/borrow.py:826: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ openlibrary/plugins/upstream/addbook.py: note: In function "get_recaptcha":
+ openlibrary/plugins/upstream/addbook.py:50: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

comtypes (https://github.com/enthought/comtypes)
+ comtypes/test/__init__.py:140: note: function unittest.loader.makeSuite is deprecated: Deprecated in Python 3.11; removal scheduled for Python 3.13  [deprecated]
+ comtypes/test/__init__.py:210: note: function unittest.loader.makeSuite is deprecated: Deprecated in Python 3.11; removal scheduled for Python 3.13  [deprecated]

paasta (https://github.com/yelp/paasta)
+ paasta_tools/utils.py:1496: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3673: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3680: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/utils.py:3688: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/spark_tools.py:136: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/spark_tools.py:204: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/setup_istio_mesh.py:106: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/smartstack_tools.py:476: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/smartstack_tools.py:533: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:809: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:824: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:829: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1020: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1024: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1310: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1317: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ paasta_tools/cli/cmds/logs.py:1329: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

speedrun.com_global_scoreboard_webapp (https://github.com/Avasam/speedrun.com_global_scoreboard_webapp)
+ backend/api/api_wrappers.py:56: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/services/user_updater.py:78: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/core_api.py:36: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/core_api.py:37: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ backend/api/global_scoreboard_api.py:76: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

freqtrade (https://github.com/freqtrade/freqtrade)
+ freqtrade/data/history/history_utils.py:125: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ freqtrade/rpc/api_server/api_ws.py:42: note: function pydantic.main.BaseModel.dict is deprecated: The `dict` method is deprecated; use `model_dump` instead.  [deprecated]

dragonchain (https://github.com/dragonchain/dragonchain)
+ dragonchain/lib/dto/smart_contract_model.py:100:86: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/lib/dto/smart_contract_model.py:300:112: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/lib/authorization.py:51:12: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ dragonchain/scheduler/scheduler.py:65:42: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

scrapy (https://github.com/scrapy/scrapy)
+ scrapy/utils/misc.py:279: note: class ast.NameConstant is deprecated: Replaced by ast.Constant; removed in Python 3.14  [deprecated]

materialize (https://github.com/MaterializeInc/materialize)
+ misc/python/materialize/buildkite_insights/util/data_io.py:75: note: function datetime.datetime.utcfromtimestamp is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .fromtimestamp(datetime.timezone.utc)  [deprecated]
+ ci/cleanup/launchdarkly.py:32: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ misc/python/materialize/scratch.py:388: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ misc/python/materialize/cli/cloudbench.py:290: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ misc/python/materialize/cli/scratch/create.py:148: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ci/load/periodic.py:31: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ci/load/periodic.py:36: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ ci/cleanup/aws.py:105: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

pytest-robotframework (https://github.com/detachhead/pytest-robotframework)
+ pytest_robotframework/__init__.py:471: note: @overload should be placed before @deprecated

sockeye (https://github.com/awslabs/sockeye)
+ sockeye/utils.py:843: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ sockeye/model.py:183: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]
+ sockeye/model.py:187: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

bandersnatch (https://github.com/pypa/bandersnatch)
+ src/bandersnatch/utils.py: note: In function "make_time_stamp":
+ src/bandersnatch/utils.py:54: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ src/bandersnatch/mirror.py: note: In member "synchronize" of class "Mirror":
+ src/bandersnatch/mirror.py:58: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

typeshed-stats (https://github.com/AlexWaygood/typeshed-stats)
+ website_macros.py:101: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]

discord.py (https://github.com/Rapptz/discord.py)
+ discord/member.py:946: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ discord/member.py:1002: note: function datetime.datetime.utcnow is deprecated: Use timezone-aware objects to represent datetimes in UTC; e.g. by calling .now(datetime.timezone.utc)  [deprecated]
+ discord/ext/tasks/__init__.py:227: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

pwndbg (https://github.com/pwndbg/pwndbg)
+ pwndbg/commands/__init__.py: note: In function "OnlyWithResolvedHeapSyms":
+ pwndbg/commands/__init__.py:453: note: function logging.Logger.warn is deprecated: Deprecated; use warning() instead.  [deprecated]

tornado (https://github.com/tornadoweb/tornado)

... (truncated 20 lines) ...```

@tyralla
Copy link
Collaborator Author

tyralla commented Oct 6, 2024

If the development of Mypy 1.12 is in such a late stage, it is probably better to wait, as this PR's title ("basic support") is really true.

I played a little, and the first missing feature I encountered (besides the nesting cases you mentioned) is:

from typing_extensions import deprecated

@deprecated("use C2 instead")
class C1: ...

def f(c: C1) -> None: ...  # no response

@ilevkivskyi
Copy link
Member

Yeah, you can create follow up PRs and/or issues.

@ilevkivskyi ilevkivskyi merged commit 94c49a8 into python:master Oct 6, 2024
20 checks passed
JukkaL pushed a commit that referenced this pull request Oct 7, 2024
This is quite a bad bug. Currently we rely on `SymbolNode` being updated
in-place for all indirect references, but this is not the case when node
kind (`FuncDef`, `Decorator`, etc.) changes, in this case a _new_
`SymbolNode` is created. I fix this by forcing reprocessing if the node
kind changes.

This currently blocks support for PEP 702, see
#17476, so I will not wait for long
before merging.
@tyralla tyralla added the topic-pep-702 PEP 702, @deprecated label Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic-pep-702 PEP 702, @deprecated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for PEP 702 (@deprecated)
5 participants