Warn that *name* is deprecated or should be removed. RuntimeError is raised if *remove* specifies a major/minor tuple older than the current Python version or the same version but past the alpha. The *message* argument is formatted with *name* and *remove* as a Python version
(name, message=_DEPRECATED_MSG, *, remove, _version=sys.version_info)
| 497 | _DEPRECATED_MSG = "{name!r} is deprecated and slated for removal in Python {remove}" |
| 498 | |
| 499 | def _deprecated(name, message=_DEPRECATED_MSG, *, remove, _version=sys.version_info): |
| 500 | """Warn that *name* is deprecated or should be removed. |
| 501 | |
| 502 | RuntimeError is raised if *remove* specifies a major/minor tuple older than |
| 503 | the current Python version or the same version but past the alpha. |
| 504 | |
| 505 | The *message* argument is formatted with *name* and *remove* as a Python |
| 506 | version (e.g. "3.11"). |
| 507 | |
| 508 | """ |
| 509 | remove_formatted = f"{remove[0]}.{remove[1]}" |
| 510 | if (_version[:2] > remove) or (_version[:2] == remove and _version[3] != "alpha"): |
| 511 | msg = f"{name!r} was slated for removal after Python {remove_formatted} alpha" |
| 512 | raise RuntimeError(msg) |
| 513 | else: |
| 514 | msg = message.format(name=name, remove=remove_formatted) |
| 515 | warn(msg, DeprecationWarning, stacklevel=3) |
| 516 | |
| 517 | |
| 518 | # Private utility function called by _PyErr_WarnUnawaitedCoroutine |
no test coverage detected