23 lines
583 B
Python
23 lines
583 B
Python
# 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
|