Exemple #1
0
 def __init__(self, widget_dict, form_view):
     self.form_view = form_view
     self.widgets = {} 
     for k, v in widget_dict.items():
         try:
             self.widgets[
                 load_entry_point('anthrax.widget', k, 'widget')
             ] = v
         except ValueError:
             pass
Exemple #2
0
 def _load_frontend(self):
     if isinstance(self.__frontend__, Frontend):
         self._frontend = self.__frontend__
     elif self._frontend_name_cache != self.__frontend__:
         self._frontend_name_cache = self.__frontend__
         self._frontend = load_entry_point(
             'anthrax.frontend', self.__frontend__, 'frontend'
         )
     else:
         return
     self._negotiate_widgets()
Exemple #3
0
 def __init__(cls, clsname, bases, dict_):
     subcontainers = []
     fields = None
     for base in bases:
         if hasattr(base, '__fields__'):
             if fields is None:
                 fields = base.__fields__.copy()
             else:
                 raise AttributeError(
                     "Sorry, can't handle this multiple inheritance"
                 )
     reflector = dict_.pop('__reflect__', None)
     if reflector is not None:
         if fields:
             raise AttributeError(
                 "Sorry, can't use both inheritance and reflection"
             )
         if isinstance(reflector, tuple):
             name, source = reflector
             ReflectorClass = load_entry_point(
                 'anthrax.reflector', name, 'reflector'
             )
             reflector = ReflectorClass(source)
         fields = reflector.get_fields(cls)
     if fields is None:
         fields = OrderedDict()
     
     for itemname, item in dict_.items():
         if item is None and itemname in fields:
             del fields[itemname]
         if isinstance(item, Field):
             item.name = itemname
             if itemname in fields:
                 item.place = (AFTER, itemname)
             add_child(fields, itemname, item, 'field')
         if isinstance(item, ContainerMeta):
             item = ContainerMeta(
                 itemname, (item,), {
                     '__name__': itemname
                 }
             )
             add_child(fields, itemname, item, 'container')
             subcontainers.append(item)
         if isinstance(item, Mapping) and not isinstance(item, Container):
             # This is a configuration for a reflected or inherited field.
             field = fields[itemname]
             for k, v in item.items():
                 setattr(field, k, v)
     cls.__fields__ = fields
     cls.__subcontainers__ = subcontainers
     super(ContainerMeta, cls).__init__(clsname, bases, dict_)
Exemple #4
0
 def _load_validators(self):
     self._validators = []
     for validator in self.__validators__:
         if isinstance(validator, tuple):
             validator_name = validator[0]
             if isinstance(validator[-1], Mapping):
                 kwargs = validator[-1]
                 fields = validator[1:-1]
             else:
                 kwargs = {}
                 fields = validator[1:]
             validator_callable = load_entry_point(
                 'anthrax.validator', validator_name, 'validator'
             )
             validator_wrapper = self._get_validator_wrapper(
                 validator_name, validator_callable, fields, kwargs
             )
             self._validators.append(validator_wrapper)
         else:
             self._validators.append(validator)