def __init__(self, cls_name, cls_bases, cls_dict): type_info = cls_dict['_type_info'] for k, v in type_info.items(): if issubclass(v, SelfReference): type_info[k] = self if issubclass(v, XmlAttribute): a_of = v.attribute_of if a_of is not None: type_info.attributes[k] = type_info[a_of] tn = self.Attributes.table_name meta = self.Attributes.sqla_metadata t = self.Attributes.sqla_table # for spyne objects reflecting an existing db table if tn is None: if t is not None and len(self._type_info) == 0: self.Attributes.sqla_metadata = t.metadata from spyne.util.sqlalchemy import gen_spyne_info gen_spyne_info(self) # for spyne objects being converted to a sqlalchemy table elif meta is not None and (tn is not None or t is not None) and \ len(self._type_info) > 0: from spyne.util.sqlalchemy import gen_sqla_info gen_sqla_info(self, cls_bases) type(ModelBase).__init__(self, cls_name, cls_bases, cls_dict)
def __init__(self, cls_name, cls_bases, cls_dict): type_info = cls_dict['_type_info'] for k,v in type_info.items(): if issubclass(v, SelfReference): type_info[k] = self if issubclass(v, XmlAttribute): a_of = v.attribute_of if a_of is not None: type_info.attributes[k] = type_info[a_of] tn = self.Attributes.table_name meta = self.Attributes.sqla_metadata t = self.Attributes.sqla_table # for spyne objects reflecting an existing db table if tn is None: if t is not None and len(self._type_info) == 0: self.Attributes.sqla_metadata = t.metadata from spyne.util.sqlalchemy import gen_spyne_info gen_spyne_info(self) # for spyne objects being converted to a sqlalchemy table elif meta is not None and (tn is not None or t is not None) and \ len(self._type_info) > 0: from spyne.util.sqlalchemy import gen_sqla_info gen_sqla_info(self, cls_bases) type(ModelBase).__init__(self, cls_name, cls_bases, cls_dict)
def __init__(self, cls_name, cls_bases, cls_dict): type_info = self._type_info for k,v in type_info.items(): if issubclass(v, SelfReference): type_info[k] = self elif issubclass(v, XmlData): self.Attributes._xml_tag_body_as = k, v elif issubclass(v, XmlAttribute): a_of = v.attribute_of if a_of is not None: type_info.attributes[k] = type_info[a_of] elif issubclass(v, Array): v2, = v._type_info.values() while issubclass(v2, Array): v = v2 v2, = v2._type_info.values() if issubclass(v2, SelfReference): v._set_serializer(self) tn = self.Attributes.table_name meta = self.Attributes.sqla_metadata t = self.Attributes.sqla_table methods = self.Attributes.methods if methods is not None: methods.sanitize(self) # For spyne objects reflecting an existing db table if tn is None: if t is not None: self.Attributes.sqla_metadata = t.metadata from spyne.util.sqlalchemy import gen_spyne_info gen_spyne_info(self) # For spyne objects being converted to a sqlalchemy table elif meta is not None and (tn is not None or t is not None) and \ len(self._type_info) > 0: from spyne.util.sqlalchemy import gen_sqla_info gen_sqla_info(self, cls_bases) super(ComplexModelMeta, self).__init__(cls_name, cls_bases, cls_dict)
def __init__(self, cls_name, cls_bases, cls_dict): type_info = cls_dict['_type_info'] for k in type_info: if issubclass(type_info[k], SelfReference): type_info[k] = self if self.Attributes.table_name is None: if self.Attributes.sqla_table is not None and len(self._type_info) == 0: from spyne.util.sqlalchemy import gen_spyne_info gen_spyne_info(self) elif self.Attributes.sqla_metadata is not None and len(self._type_info) > 0: from spyne.util.sqlalchemy import gen_sqla_info gen_sqla_info(self, cls_bases) type(ModelBase).__init__(self, cls_name, cls_bases, cls_dict)
def __init__(self, cls_name, cls_bases, cls_dict): type_info = self._type_info extends = self.__extends__ if extends is not None and self.__orig__ is None: eattr = extends.Attributes; if eattr._subclasses is None: eattr._subclasses = [] eattr._subclasses.append(self) if self.Attributes._subclasses is eattr._subclasses: self.Attributes._subclasses = None for k,v in type_info.items(): if issubclass(v, SelfReference): type_info[k] = self elif issubclass(v, XmlData): self.Attributes._xml_tag_body_as = k, v elif issubclass(v, XmlAttribute): a_of = v.attribute_of if a_of is not None: type_info.attributes[k] = type_info[a_of] elif issubclass(v, Array): v2, = v._type_info.values() while issubclass(v2, Array): v = v2 v2, = v2._type_info.values() if issubclass(v2, SelfReference): v._set_serializer(self) # FIXME: Implement this better new_type_info = [] for k, v in self._type_info.items(): if v.Attributes.order == None: new_type_info.append(k) for k, v in self._type_info.items(): if v.Attributes.order is not None: new_type_info.insert(v.Attributes.order, k) assert len(self._type_info) == len(new_type_info) self._type_info.keys()[:] = new_type_info tn = self.Attributes.table_name meta = self.Attributes.sqla_metadata t = self.Attributes.sqla_table methods = self.Attributes.methods if methods is not None: assert isinstance(methods, _MethodsDict) methods.sanitize(self) # For spyne objects reflecting an existing db table if tn is None: if t is not None: self.Attributes.sqla_metadata = t.metadata from spyne.util.sqlalchemy import gen_spyne_info gen_spyne_info(self) # For spyne objects being converted to a sqlalchemy table elif meta is not None and (tn is not None or t is not None) and \ len(self._type_info) > 0: from spyne.util.sqlalchemy import gen_sqla_info gen_sqla_info(self, cls_bases) super(ComplexModelMeta, self).__init__(cls_name, cls_bases, cls_dict)
def __init__(self, cls_name, cls_bases, cls_dict): type_info = self._type_info extends = self.__extends__ if extends is not None and self.__orig__ is None: eattr = extends.Attributes; if eattr._subclasses is None: eattr._subclasses = [] eattr._subclasses.append(self) if self.Attributes._subclasses is eattr._subclasses: self.Attributes._subclasses = None for k, v in type_info.items(): if issubclass(v, SelfReference): self.replace_field(k, self.customize(*v.customize_args, **v.customize_kwargs)) elif issubclass(v, XmlData): self.Attributes._xml_tag_body_as = k, v elif issubclass(v, XmlAttribute): a_of = v.attribute_of if a_of is not None: type_info.attributes[k] = type_info[a_of] elif issubclass(v, Array): v2, = v._type_info.values() while issubclass(v2, Array): v = v2 v2, = v2._type_info.values() if issubclass(v2, SelfReference): v._set_serializer(self) # FIXME: Implement this better new_type_info = [] for k, v in self._type_info.items(): if v.Attributes.order == None: new_type_info.append(k) for k, v in self._type_info.items(): if v.Attributes.order is not None: new_type_info.insert(v.Attributes.order, k) assert len(self._type_info) == len(new_type_info) self._type_info.keys()[:] = new_type_info tn = self.Attributes.table_name meta = self.Attributes.sqla_metadata t = self.Attributes.sqla_table methods = _gen_methods(self, cls_dict) if len(methods) > 0: self.Attributes.methods = methods methods = self.Attributes.methods if methods is not None: assert isinstance(methods, _MethodsDict) methods.sanitize(self) # For spyne objects reflecting an existing db table if tn is None: if t is not None: self.Attributes.sqla_metadata = t.metadata from spyne.util.sqlalchemy import gen_spyne_info gen_spyne_info(self) # For spyne objects being converted to a sqlalchemy table elif meta is not None and (tn is not None or t is not None) and \ len(self._type_info) > 0: from spyne.util.sqlalchemy import gen_sqla_info gen_sqla_info(self, cls_bases) super(ComplexModelMeta, self).__init__(cls_name, cls_bases, cls_dict)