Source code for djwebdapp.normalizers

"""
Normalizer classes are optionnal helpers to easy contract indexation.
"""


[docs]class Normalizer: """ Base Normalizer class. """ _registry = {} deploy_method_name = 'deploy' def __init_subclass__(cls, /, **kwargs): super().__init_subclass__(**kwargs) cls._registry[cls.__name__] = cls @classmethod def normalize(cls, transaction, contract): normalizer = cls() if transaction.kind == 'function': callback_name = transaction.function elif transaction.kind == 'contract': callback_name = cls.deploy_method_name callback = getattr(normalizer, callback_name, None) if callback: callback(transaction, contract)