commit:     074aa036306e90725fc31b7791cce970ff1d623b
Author:     Brian Harring <ferringb <AT> gmail <DOT> com>
AuthorDate: Sat Dec 13 22:17:31 2025 +0000
Commit:     Brian Harring <ferringb <AT> gmail <DOT> com>
CommitDate: Mon Dec 15 12:42:09 2025 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/snakeoil.git/commit/?id=074aa036

chore: add a very shitty python -m snakeoil.deprecations tool for outputting 
all deprecations

Signed-off-by: Brian Harring <ferringb <AT> gmail.com>

 src/snakeoil/deprecation/__main__.py | 42 ++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/src/snakeoil/deprecation/__main__.py 
b/src/snakeoil/deprecation/__main__.py
new file mode 100644
index 0000000..057b1f2
--- /dev/null
+++ b/src/snakeoil/deprecation/__main__.py
@@ -0,0 +1,42 @@
+import importlib
+import typing
+
+from snakeoil.cli import arghparse
+from snakeoil.cli.tool import Tool
+from snakeoil.deprecation import Registry
+
+
+def parse_import(value):
+    l = value.rsplit(".", 1)
+    if len(l) <= 1:
+        raise ValueError("import path must be <module>.<registry_name>")
+    mod = importlib.import_module(l[0])
+    return getattr(mod, l[1])
+
+
+parser = arghparse.ArgumentParser(
+    description="tool for outputing the deprecations of a given a registry"
+)
+parser.add_argument(
+    "registry",
+    type=parse_import,
+    help="the python qualified name of where to find the registry",
+)
+
+
[email protected]_main_func
+def main(options, out, _err) -> int:
+    registry = typing.cast(Registry, options.registry)
+    for deprecation in sorted(
+        registry.expired_deprecations(
+            python_version=(1000, 0, 0), project_version=(1000, 0, 0)
+        ),
+        key=lambda x: str(x),
+    ):
+        out.write(f"{deprecation}")
+
+    return 0
+
+
+if __name__ == "__main__":
+    Tool(parser)()

Reply via email to