commit: 45aab3976aa9b7f3c17d6a41e93554e0c4cbd9ab
Author: Brian Harring <ferringb <AT> gmail <DOT> com>
AuthorDate: Fri Nov 28 21:42:05 2025 +0000
Commit: Brian Harring <ferringb <AT> gmail <DOT> com>
CommitDate: Fri Nov 28 21:46:31 2025 +0000
URL:
https://gitweb.gentoo.org/proj/pkgcore/snakeoil.git/commit/?id=45aab397
feat!: remove klass.aliased
I already marked it deprecated, but in tracing, nothing uses it,
so remove it fully now.
Signed-off-by: Brian Harring <ferringb <AT> gmail.com>
src/snakeoil/klass/__init__.py | 4 ----
src/snakeoil/klass/properties.py | 46 ----------------------------------------
2 files changed, 50 deletions(-)
diff --git a/src/snakeoil/klass/__init__.py b/src/snakeoil/klass/__init__.py
index 15102e2..1e5516a 100644
--- a/src/snakeoil/klass/__init__.py
+++ b/src/snakeoil/klass/__init__.py
@@ -27,8 +27,6 @@ __all__ = (
"immutable_instance",
"inject_immutable_instance",
"alias_method",
- "aliased",
- "alias",
"SlotsPicklingMixin",
"DirProxy",
"GetAttrProxy",
@@ -54,10 +52,8 @@ from .deprecated import (
)
from .properties import (
_uncached_singleton, # noqa: F401 . This exists purely due to a stupid
usage of pkgcore.ebuild.profile which is being removed.
- alias,
alias_attr,
alias_method,
- aliased,
cached_property,
cached_property_named,
jit_attr,
diff --git a/src/snakeoil/klass/properties.py b/src/snakeoil/klass/properties.py
index 0ebc373..82e471f 100644
--- a/src/snakeoil/klass/properties.py
+++ b/src/snakeoil/klass/properties.py
@@ -302,49 +302,3 @@ def alias_method(attr, name=None, doc=None):
if name:
_asecond_level_call.__name__ = name
return _asecond_level_call
-
-
-@deprecated("snakeoil.klass.alias will be removed in future versions")
-class alias:
- """Decorator for making methods callable through aliases.
-
- This decorator must be used inside a class decorated with @aliased.
-
- Example usage:
-
- >>> from snakeoil.klass import aliased, alias
- >>> @aliased
- >>> class Speak:
- ... @alias('yell', 'scream')
- ... def shout(message):
- ... return message.upper()
- >>>
- >>> speak = Speak()
- >>> assert speak.shout('foo') == speak.yell('foo') == speak.scream('foo')
- """
-
- def __init__(self, *aliases):
- self.aliases = set(aliases)
-
- def __call__(self, func):
- func._aliases = self.aliases
- return func
-
-
-def aliased(cls):
- """Class decorator used in combination with @alias method decorator."""
- orig_methods = cls.__dict__.copy()
- seen_aliases = set()
- for _name, method in orig_methods.items():
- if hasattr(method, "_aliases"):
- collisions = method._aliases.intersection(
- orig_methods.keys() | seen_aliases
- )
- if collisions:
- raise ValueError(
- f"aliases collide with existing attributes: {',
'.join(collisions)}"
- )
- seen_aliases |= method._aliases
- for alias in method._aliases:
- setattr(cls, alias, method)
- return cls