| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
This is copied from python/typing_extensions#105. |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM.
Sorry, something went wrong.
There was a problem hiding this comment.
Waiting for the other reviewers to pipe in? This seems pretty straightforward.
Sorry, something went wrong.
The PEP hasn't been accepted yet! |
Sorry, something went wrong.
|
Planning to hit the merge button the moment the PEP is accepted :) |
Sorry, something went wrong.
|
PEP 702 has been accepted, but it's changed since this PR. I'll update the PR soon to put the decorator in warnings and sync the implementation from typing-extensions. |
Sorry, something went wrong.
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
|
Doesn't seem to be get_origin's primary use (maybe docs should be updated), but that would avoid completely refactoring the current implementation! |
Sorry, something went wrong.
It's already sorta awkwardly overloaded in what it means tbh — the __origin__ attribute of ParamSpecArgs instances doesn't really have the same semantics as the __origin__ attribute of generic aliases :) |
Sorry, something went wrong.
|
A class seems somewhat more elegant to me, but yeah, that would work. |
Sorry, something went wrong.
|
I'm OK with making it a class. It's not what the object is meant for, but it's a reasonable extension. Using __origin__ feels hacky and wouldn't provide an easy way to get the deprecation message out. |
Sorry, something went wrong.
| * The new :func:`warnings.deprecated` decorator provides a way to communicate | ||
| deprecations to :term:`static type checkers <static type checker>` and | ||
| to warn on usage of deprecated classes and functions. |
There was a problem hiding this comment.
Despite static typing being the original motivation for the feature, I would actually put the runtime effect first here:
| * The new :func:`warnings.deprecated` decorator provides a way to communicate | |
| deprecations to :term:`static type checkers <static type checker>` and | |
| to warn on usage of deprecated classes and functions. | |
| * The new :func:`warnings.deprecated` decorator provides an ergonomic way to | |
| mark a class or function as deprecated. A deprecation warning will be | |
| emitted whenever a decorated function or class is used at runtime. The | |
| decorator is also understood by | |
| :term:`static type checkers <static type checker>`, which will emit warnings | |
| if they identify a decorated function or class being used. |
Sorry, something went wrong.
There was a problem hiding this comment.
I still want to put the type checker effect first because that's the unique part. You can write a decorator that generates runtime warnings yourself; the new and exciting part is that this decorator is also understood by static type checkers.
Sorry, something went wrong.
There was a problem hiding this comment.
You can do, sure, but do people? It was possible to reimplement itertools.batched in a few lines of code before Python 3.12, but lots of people were still very excited by its inclusion in the stdlib in Python 3.12.
I think this new decorator here could prove pretty popular with people who don't use static typing! But, I don't feel strongly; it looks fine to me now :)
Sorry, something went wrong.
There was a problem hiding this comment.
Sure, there are lots of third-party deprecation decorators. The Deprecated library, I think Flask has one internally (David Lord mentioned it in PEP 702 discussions), I know at Quora we have one internally.
Sorry, something went wrong.
There was a problem hiding this comment.
I'm not sure if that's meant to be a point in agreement or in disagreement with the point I'm making that this decorator could prove pretty popular with people who don't use static typing. Anyway, as I say, I'm happy with the docs now!
Sorry, something went wrong.
|
Thanks @AlexWaygood for the review! I pushed some changes. |
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
| Back | FazBrowse Home | New Git URL |
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.