commit:     1a0f3aa7dcbc1464c56c16ac85ffb3d9ebdd5acb
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  2 10:21:33 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Dec 18 18:58:27 2022 +0000
URL:        
https://gitweb.gentoo.org/proj/pkgcore/pkgcore.git/commit/?id=1a0f3aa7

remove builtin_configurables plugins

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 src/pkgcore/plugins/builtin_configurables.py | 23 -----------------------
 src/pkgcore/scripts/pconfig.py               | 25 +++++++++++++++++++++++--
 2 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/src/pkgcore/plugins/builtin_configurables.py 
b/src/pkgcore/plugins/builtin_configurables.py
deleted file mode 100644
index 801b0eb59..000000000
--- a/src/pkgcore/plugins/builtin_configurables.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from snakeoil.test.mixins import PythonNamespaceWalker
-
-
-class walker(PythonNamespaceWalker):
-
-    ignore_all_import_failures = True
-
-    def _default_module_blacklister(self, target):
-        if target.startswith("pkgcore.test.") or 
target.startswith('pkgcore.plugins.') \
-                or 'pkgcore.test' == target:
-            return True
-        return PythonNamespaceWalker._default_module_blacklister(self, target)
-
-targets = []
-for module in walker().walk_namespace('pkgcore'):
-    for name in dir(module):
-        obj = getattr(module, name)
-        if getattr(obj, 'pkgcore_config_type', None) is not None:
-            targets.append(f'{module.__name__}.{name}')
-
-pkgcore_plugins = {
-    'configurable': targets
-}

diff --git a/src/pkgcore/scripts/pconfig.py b/src/pkgcore/scripts/pconfig.py
index 37fb008db..95f00bb36 100644
--- a/src/pkgcore/scripts/pconfig.py
+++ b/src/pkgcore/scripts/pconfig.py
@@ -5,10 +5,10 @@ import traceback
 from functools import partial
 
 from snakeoil.errors import dump_error
+from snakeoil.test.mixins import PythonNamespaceWalker
 
 from ..config import basics, errors
 from ..ebuild import atom
-from ..plugin import get_plugins
 from ..util import commandline
 
 
@@ -207,6 +207,27 @@ def dump_main(options, out, err):
         out.write('}')
 
 
+def all_configurables():
+    class walker(PythonNamespaceWalker):
+
+        ignore_all_import_failures = True
+
+        def _default_module_blacklister(self, target):
+            if target.startswith(("pkgcore.test.", 'pkgcore.plugins.')) \
+                    or 'pkgcore.test' == target:
+                return True
+            return super()._default_module_blacklister(target)
+
+    return (
+        obj
+        for module in walker().walk_namespace('pkgcore')
+        for name in dir(module)
+        if getattr(obj := getattr(module, name), 'pkgcore_config_type', None) 
is not None
+        if not getattr(obj, 'disabled', False)
+        if not getattr(obj, '_plugin_disabled_check', lambda: False)()
+    )
+
+
 configurables = subparsers.add_parser(
     "configurables", parents=shared_options,
     description='list registered configurables (may not be complete)')
@@ -223,7 +244,7 @@ def configurables_main(options, out, err):
         return "%s.%s" % (getattr(obj, '__module__', ''),
                           getattr(obj, '__name__', ''))
 
-    for configurable in sorted(get_plugins('configurable'), key=key_func):
+    for configurable in sorted(all_configurables(), key=key_func):
         type_obj = basics.ConfigType(configurable)
         if options.typename is not None and type_obj.name != options.typename:
             continue

Reply via email to