Skip to content

refactor: ♻️ Use typing_extensions.deprecated instead of own implementation #2655

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

Conversation

Paillat-dev
Copy link
Member

@Paillat-dev Paillat-dev commented Nov 27, 2024

Summary

Information

  • This PR fixes an issue.
    fixes: Update utils.deprecated to use PEP 702 #1917
  • This PR adds something new (e.g. new method or parameters).
  • This PR is a breaking change (e.g. methods or parameters removed/renamed).
  • This PR is not a code change (e.g. documentation, README, typehinting,
    examples, ...).

Checklist

  • I have searched the open pull requests for duplicates.
  • If code changes were made then they have been tested.
    • I have updated the documentation to reflect the changes.
  • If type: ignore comments were used, a comment is also left explaining why.
  • I have updated the changelog to include these changes.

@@ -340,12 +375,11 @@ def deprecated(
since: str | None = None,
removed: str | None = None,
reference: str | None = None,
stacklevel: int = 3,
stacklevel: int = 1,
Copy link
Member

Choose a reason for hiding this comment

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

Why

Copy link
Member Author

Choose a reason for hiding this comment

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

Typing's thing for some reason changes the levels in some way and to keep a correct stacktrace I had to change it. Admittedly I just tried and see.

@Paillat-dev
Copy link
Member Author

Could smbd rerun readthedocs pls ?

@Lulalaby
Copy link
Member

Done

@Paillat-dev Paillat-dev requested a review from Dorukyum February 16, 2025 17:09
) -> Callable[[Callable[[P], T]], Callable[[P], T]]:
"""A decorator implementation of :func:`warn_deprecated`. This will automatically call :func:`warn_deprecated` when
the decorated function is called.
) -> _typing_deprecated:
Copy link
Member Author

Choose a reason for hiding this comment

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

I should test if this is actually detected correctly by type checkers

Copy link
Member

Choose a reason for hiding this comment

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

And?

Copy link
Member Author

Choose a reason for hiding this comment

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

I forgot to check

Copy link
Member Author

Choose a reason for hiding this comment

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

So it is not apparently, at least basedpyright. But in general imo this solution in this pr was kinda hacky. The thing is to solve #1917 we either have to give up the custom message thing, or give up it being picked up by type checkers.

Additionally, things like cached_slot_property make it not be picked up by type checkers too.

@Paillat-dev
Copy link
Member Author

I am going to rework this one differently because this doesn't work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update utils.deprecated to use PEP 702
3 participants