about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/PIL/_deprecate.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/PIL/_deprecate.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are here HEAD master
Diffstat (limited to '.venv/lib/python3.12/site-packages/PIL/_deprecate.py')
-rw-r--r--.venv/lib/python3.12/site-packages/PIL/_deprecate.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/PIL/_deprecate.py b/.venv/lib/python3.12/site-packages/PIL/_deprecate.py
new file mode 100644
index 00000000..83952b39
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/PIL/_deprecate.py
@@ -0,0 +1,69 @@
+from __future__ import annotations
+
+import warnings
+
+from . import __version__
+
+
+def deprecate(
+    deprecated: str,
+    when: int | None,
+    replacement: str | None = None,
+    *,
+    action: str | None = None,
+    plural: bool = False,
+) -> None:
+    """
+    Deprecations helper.
+
+    :param deprecated: Name of thing to be deprecated.
+    :param when: Pillow major version to be removed in.
+    :param replacement: Name of replacement.
+    :param action: Instead of "replacement", give a custom call to action
+        e.g. "Upgrade to new thing".
+    :param plural: if the deprecated thing is plural, needing "are" instead of "is".
+
+    Usually of the form:
+
+        "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd).
+        Use [replacement] instead."
+
+    You can leave out the replacement sentence:
+
+        "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd)"
+
+    Or with another call to action:
+
+        "[deprecated] is deprecated and will be removed in Pillow [when] (yyyy-mm-dd).
+        [action]."
+    """
+
+    is_ = "are" if plural else "is"
+
+    if when is None:
+        removed = "a future version"
+    elif when <= int(__version__.split(".")[0]):
+        msg = f"{deprecated} {is_} deprecated and should be removed."
+        raise RuntimeError(msg)
+    elif when == 12:
+        removed = "Pillow 12 (2025-10-15)"
+    else:
+        msg = f"Unknown removal version: {when}. Update {__name__}?"
+        raise ValueError(msg)
+
+    if replacement and action:
+        msg = "Use only one of 'replacement' and 'action'"
+        raise ValueError(msg)
+
+    if replacement:
+        action = f". Use {replacement} instead."
+    elif action:
+        action = f". {action.rstrip('.')}."
+    else:
+        action = ""
+
+    warnings.warn(
+        f"{deprecated} {is_} deprecated and will be removed in {removed}{action}",
+        DeprecationWarning,
+        stacklevel=3,
+    )