Source code for mucho.comparison.comparator.dimension.meta

from collections import OrderedDict

from .property import DimensionProperty


[docs]class DimensionComparatorMeta(type): def __new__(mcs, name, bases, attrs): """ Add a 'properties' attribute to the created class, containing a dict with its DimensionProperty attributes. """ instance = super().__new__(mcs, name, bases, attrs) properties = OrderedDict() for attr, value in attrs.items(): if isinstance(value, DimensionProperty): if not value.resolver: value.resolver = 'resolve_'+attr properties[attr] = value instance._properties = properties return instance