Exemple #1
0
    def _do_get_field_widgets(self, fields):

        metadata_keys = self.__metadata__.keys()
        widgets = {}
        for field_name in fields:
            if field_name in self.__field_widgets__:
                widgets[field_name] = self.__field_widgets__[field_name]
                continue
            if field_name in self.__add_fields__:
                widget = self.__add_fields__[field_name]
                if widget is None:
                    widget = Widget(field_name)
                widgets[field_name] = widget
                continue
            if field_name in self.__ignore_field_names__:
                continue
            if field_name in self.__hide_fields__:
                continue
            if field_name not in metadata_keys:
                continue
            field = self.__metadata__[field_name]

            if inspect.isclass(field):
                identifier = ClassViewer(field)

            field_widget_type = self.__field_widget_types__.get(
                field_name, self.__widget_selector__.select(field))
            field_widget_args = self._do_get_field_widget_args(
                field_name, field)

            if field_name in self._do_get_disabled_fields():
                # in this case, we display the current field, disabling it, and also add
                # a hidden field into th emix
                field_widget_args['disabled'] = True
                widgets[field_name] = (HiddenField(id=field_name.replace(
                    '.', '_'),
                                                   identifier=field_name),
                                       field_widget_type(**field_widget_args))
            else:
                widgets[field_name] = field_widget_type(**field_widget_args)

        widgets.update(self.__create_hidden_fields())
        return widgets
    #pprint.pprint(stats.get_sort_arg_defs())
    stats = stats.strip_dirs().sort_stats('time', 'call')\
        .print_stats(50)
    if PRINT_CALLERS:
        stats.print_callers(5)


### Start profiling output

print("*"*78)
print("Profiling ToscaWidgets %s in with NCALLS = %d" % (VERSION, NCALLS))
if MSG: print(MSG)

print("*"*78)
print_stats("Widget initialization", Widget, "test_widget")
w = Widget("test_widget")
print_stats("Widget.prepare_dict", w.prepare_dict, "value", {})

print("*"*78)
print_stats("TestForm initialization", TestForm, "test_widget")
w = TestForm("test_widget")
w.display() # preload template
print_stats("TestForm.display", w.display, data)

print("*"*78)
print_stats("AddUserForm initialization", AddUserForm, "test_widget")
w = AddUserForm("test_widget")
w.display() # preload template
print_stats("AddUserForm.display", w.display, data)

try: