Ejemplo n.º 1
0
 def _generate_property_info(self, prop_name, lom_object):
     try:
         real_prop = getattr(lom_object, prop_name)
         if not isinstance(real_prop,
                           HIDDEN_TYPES) and not is_class(real_prop):
             prop_type = real_prop.__class__.__name__
             if prop_name in TUPLE_TYPES:
                 type_name = TUPLE_TYPES[prop_name].__name__
                 self._lists_of_children.append((prop_name, type_name))
             elif prop_name in PROPERTY_TYPES.keys():
                 type_name = (real_prop.__class__ if real_prop != None else
                              PROPERTY_TYPES[prop_name]).__name__
                 self._children.append((prop_name, type_name))
             elif prop_name == 'canonical_parent':
                 if real_prop != None:
                     self._children.append((prop_name, prop_type))
             elif callable(real_prop):
                 if not prop_name.endswith('_listener'):
                     self._functions.append((prop_name, ))
             elif prop_type not in ('type', 'Enum'):
                 info_type = 'int' if isinstance(real_prop,
                                                 ENUM_TYPES) else prop_type
                 self._properties.append((prop_name, info_type))
     except (AssertionError, RuntimeError):
         pass
    def _generate_property_info(self, prop_name, lom_object, epii_version):
        try:
            real_prop = getattr(lom_object, prop_name)
            if not is_class(real_prop):
                prop_info = get_exposed_property_info(type(lom_object),
                                                      prop_name, epii_version)
                prop_type = real_prop.__class__.__name__
                if prop_info and prop_info.format == MFLPropertyFormats.JSON:
                    self._properties.append((prop_name, 'dict'))
                elif prop_name in TUPLE_TYPES:
                    self._add_list_of_children(prop_name)
                elif prop_name in PROPERTY_TYPES.keys():
                    self._add_child(real_prop, prop_name)
                elif prop_name == 'canonical_parent':
                    if real_prop != None:
                        self._children.append((prop_name, prop_type))
                elif callable(real_prop):
                    if not prop_name.endswith('_listener'):
                        self._functions.append((prop_name, ))
                elif prop_type not in ('type', 'Enum'):
                    info_type = 'int' if isinstance(real_prop,
                                                    ENUM_TYPES) else prop_type
                    self._properties.append((prop_name, info_type))
        except (AssertionError, RuntimeError):
            pass

        return
Ejemplo n.º 3
0
 def _create_introspection_for_dir(self, directory):
     for attr_name in list(dir(directory)):
         try:
             attribute = getattr(directory, attr_name)
             if attribute not in self._excluded:
                 if self._process_module(attribute) or is_class(attribute):
                     self._create_introspection_for_module_or_class(attribute)
         except:
             pass
Ejemplo n.º 4
0
 def _create_introspection_for_dir(self, directory):
     for attr_name in list(dir(directory)):
         try:
             attribute = getattr(directory, attr_name)
             if attribute not in self._excluded:
                 if self._process_module(attribute) or is_class(attribute):
                     self._create_introspection_for_module_or_class(attribute)
         except:
             pass
 def _generate_property_info(self, prop_name, lom_object):
     try:
         real_prop = getattr(lom_object, prop_name)
         if not is_class(real_prop):
             prop_type = real_prop.__class__.__name__
             if prop_name in TUPLE_TYPES:
                 self._add_list_of_children(prop_name)
             elif prop_name in PROPERTY_TYPES.keys():
                 self._add_child(real_prop, prop_name)
             elif prop_name == 'canonical_parent':
                 if real_prop != None:
                     self._children.append((prop_name, prop_type))
             elif callable(real_prop):
                 if not prop_name.endswith('_listener'):
                     self._functions.append((prop_name,))
             elif prop_type not in ('type', 'Enum'):
                 info_type = 'int' if isinstance(real_prop, ENUM_TYPES) else prop_type
                 self._properties.append((prop_name, info_type))
     except (AssertionError, RuntimeError):
         pass
Ejemplo n.º 6
0
 def _is_relevant_class(self, class_object):
     return is_class(class_object) and hasattr(class_object, '__module__') and sys.modules.get(class_object.__module__) in self._lom_modules and class_object not in self._lom_classes and class_object not in self._excluded
Ejemplo n.º 7
0
 def _is_relevant_class(self, class_object):
     return is_class(class_object) and hasattr(class_object, '__module__') and sys.modules.get(class_object.__module__) in self._lom_modules and class_object not in self._lom_classes and class_object not in self._excluded