diff options
Diffstat (limited to 'mesonbuild/modules/__init__.py')
| -rw-r--r-- | mesonbuild/modules/__init__.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py index 56370d17f..068194026 100644 --- a/mesonbuild/modules/__init__.py +++ b/mesonbuild/modules/__init__.py @@ -15,6 +15,7 @@ # This file contains the base representation for import('modname') from __future__ import annotations +import dataclasses import typing as T from .. import mesonlib @@ -163,6 +164,17 @@ class ModuleObject(HoldableObject): class MutableModuleObject(ModuleObject): pass + +@dataclasses.dataclass +class ModuleInfo: + + """Metadata about a Module.""" + + name: str + added: T.Optional[str] = None + deprecated: T.Optional[str] = None + + class NewExtensionModule(ModuleObject): """Class for modern modules @@ -170,6 +182,8 @@ class NewExtensionModule(ModuleObject): provides the found method. """ + INFO: ModuleInfo + def __init__(self) -> None: super().__init__() self.methods.update({ @@ -203,6 +217,10 @@ class NotFoundExtensionModule(NewExtensionModule): provides the found method. """ + def __init__(self, name: str) -> None: + super().__init__() + self.INFO = ModuleInfo(name) + @staticmethod def found() -> bool: return False |
