jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/981611 )
Change subject: [IMPR] Add Namespace attributes during class creation ......................................................................
[IMPR] Add Namespace attributes during class creation
Add class attributes during class creation and not during import.
Change-Id: I32783800dc1aec0e0823fa8dc6bc5309dea93ca7 --- M pywikibot/site/_namespace.py 1 file changed, 22 insertions(+), 6 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/site/_namespace.py b/pywikibot/site/_namespace.py index 44114ec..8c0c46a 100644 --- a/pywikibot/site/_namespace.py +++ b/pywikibot/site/_namespace.py @@ -6,6 +6,7 @@ # from __future__ import annotations
+from abc import ABCMeta from collections.abc import Iterable, Mapping from enum import IntEnum from typing import Union @@ -51,7 +52,16 @@ return name.replace('Mediawiki', 'MediaWiki')
-class Namespace(Iterable, ComparableMixin): +class MetaNamespace(ABCMeta): + """Metaclass for Namespace attribute settings.""" + + def __new__(cls, name, bases, dic): + """Set Namespace.FOO to BuiltinNamespace.FOO for each builtin ns.""" + dic.update(BuiltinNamespace.__members__) + return super().__new__(cls, name, bases, dic) + + +class Namespace(Iterable, ComparableMixin, metaclass=MetaNamespace):
""" Namespace site data object. @@ -305,11 +315,6 @@ return False
-# Set Namespace.FOO to be BuiltinNamespace.FOO for each builtin namespace -for item in BuiltinNamespace: - setattr(Namespace, item.name, item) - - class NamespacesDict(Mapping, SelfCallMixin):
"""
pywikibot-commits@lists.wikimedia.org