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)()