diff options
Diffstat (limited to 'mesonbuild/interpreterbase')
-rw-r--r-- | mesonbuild/interpreterbase/__init__.py | 2 | ||||
-rw-r--r-- | mesonbuild/interpreterbase/baseobjects.py | 7 | ||||
-rw-r--r-- | mesonbuild/interpreterbase/disabler.py | 4 |
3 files changed, 9 insertions, 4 deletions
diff --git a/mesonbuild/interpreterbase/__init__.py b/mesonbuild/interpreterbase/__init__.py index d5ef367..1d5c75f 100644 --- a/mesonbuild/interpreterbase/__init__.py +++ b/mesonbuild/interpreterbase/__init__.py @@ -14,6 +14,7 @@ __all__ = [ 'InterpreterObject', + 'MesonInterpreterObject', 'ObjectHolder', 'RangeHolder', 'MesonVersionString', @@ -64,6 +65,7 @@ __all__ = [ from .baseobjects import ( InterpreterObject, + MesonInterpreterObject, ObjectHolder, RangeHolder, MutableInterpreterObject, diff --git a/mesonbuild/interpreterbase/baseobjects.py b/mesonbuild/interpreterbase/baseobjects.py index 3e3963f..511a146 100644 --- a/mesonbuild/interpreterbase/baseobjects.py +++ b/mesonbuild/interpreterbase/baseobjects.py @@ -51,12 +51,15 @@ class InterpreterObject: return method(args, kwargs) raise InvalidCode('Unknown method "%s" in object.' % method_name) +class MesonInterpreterObject(InterpreterObject): + ''' All non-elementary objects should be derived from this ''' + class MutableInterpreterObject: ''' Dummy class to mark the object type as mutable ''' TV_InterpreterObject = T.TypeVar('TV_InterpreterObject') -class ObjectHolder(InterpreterObject, T.Generic[TV_InterpreterObject]): +class ObjectHolder(MesonInterpreterObject, T.Generic[TV_InterpreterObject]): def __init__(self, obj: TV_InterpreterObject, *, subproject: T.Optional[str] = None) -> None: super().__init__(subproject=subproject) self.held_object = obj @@ -64,7 +67,7 @@ class ObjectHolder(InterpreterObject, T.Generic[TV_InterpreterObject]): def __repr__(self) -> str: return f'<Holder: {self.held_object!r}>' -class RangeHolder(InterpreterObject): +class RangeHolder(MesonInterpreterObject): def __init__(self, start: int, stop: int, step: int, *, subproject: T.Optional[str] = None) -> None: super().__init__(subproject=subproject) self.range = range(start, stop, step) diff --git a/mesonbuild/interpreterbase/disabler.py b/mesonbuild/interpreterbase/disabler.py index 50bc5bb..81f5264 100644 --- a/mesonbuild/interpreterbase/disabler.py +++ b/mesonbuild/interpreterbase/disabler.py @@ -12,10 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from .baseobjects import InterpreterObject +from .baseobjects import MesonInterpreterObject import typing as T -class Disabler(InterpreterObject): +class Disabler(MesonInterpreterObject): def __init__(self) -> None: super().__init__() self.methods.update({'found': self.found_method}) |