# Copyright (c) PARRRATE T&V 2021. All rights reserved. from abc import ABC from typing import TypeVar from bu4.parsing.abstractparser import AbstractParser from bu4.parsing.extensions.abstractextension import AbstractExtension __all__ = ('Extension',) T = TypeVar('T') class Extension(AbstractExtension[T], ABC): def __init_subclass__(cls, /, code: int = None, **kwargs): super().__init_subclass__(**kwargs) if code is None: raise TypeError cls.code = code def __init__(self, parser: AbstractParser): self.parser = parser