server/schemaserial.py
changeset 4038 273f9e4e6d19
parent 4033 732eccbed54a
child 4189 bd552b341334
equal deleted inserted replaced
4035:a0b6714e84f1 4038:273f9e4e6d19
   361     return relations, values
   361     return relations, values
   362 
   362 
   363 def _rdef_values(rschema, objtype, props):
   363 def _rdef_values(rschema, objtype, props):
   364     amap = {'order': 'ordernum'}
   364     amap = {'order': 'ordernum'}
   365     values = {}
   365     values = {}
   366     for prop, default in rschema.rproperty_defs(objtype).iteritems():
   366     for prop, default in schemamod.RelationDefinitionSchema.rproperty_defs(objtype).iteritems():
   367         if prop in ('eid', 'constraints', 'uid', 'infered', 'permissions'):
   367         if prop in ('eid', 'constraints', 'uid', 'infered', 'permissions'):
   368             continue
   368             continue
   369         value = props.get(prop, default)
   369         value = props.get(prop, default)
   370         if prop in ('indexed', 'fulltextindexed', 'internationalizable'):
   370         if prop in ('indexed', 'fulltextindexed', 'internationalizable'):
   371             value = bool(value)
   371             value = bool(value)
   393     values['defaultval'] = default
   393     values['defaultval'] = default
   394     relations = ['X %s %%(%s)s' % (attr, attr) for attr in sorted(values)]
   394     relations = ['X %s %%(%s)s' % (attr, attr) for attr in sorted(values)]
   395     return relations, values
   395     return relations, values
   396 
   396 
   397 
   397 
   398 def __rdef2rql(genmap, rschema, subjtype=None, objtype=None, props=None, groupmap=None):
   398 def __rdef2rql(genmap, rschema, subjtype=None, objtype=None, props=None,
       
   399                groupmap=None):
   399     if subjtype is None:
   400     if subjtype is None:
   400         assert objtype is None
   401         assert objtype is None
   401         assert props is None
   402         assert props is None
   402         targets = rschema.rdefs
   403         targets = rschema.rdefs
   403     else:
   404     else:
   443         return chain(*[erschema2rql(schema[t]) for t in all if t in allow])
   444         return chain(*[erschema2rql(schema[t]) for t in all if t in allow])
   444     return chain(*[erschema2rql(schema[t]) for t in all])
   445     return chain(*[erschema2rql(schema[t]) for t in all])
   445 
   446 
   446 def erschema2rql(erschema, groupmap):
   447 def erschema2rql(erschema, groupmap):
   447     if isinstance(erschema, schemamod.EntitySchema):
   448     if isinstance(erschema, schemamod.EntitySchema):
   448         return eschema2rql(erschema, groupmap)
   449         return eschema2rql(erschema, groupmap=groupmap)
   449     return rschema2rql(erschema)
   450     return rschema2rql(erschema, groupmap=groupmap)
   450 
   451 
   451 def eschema2rql(eschema, groupmap):
   452 def eschema2rql(eschema, groupmap):
   452     """return a list of rql insert statements to enter an entity schema
   453     """return a list of rql insert statements to enter an entity schema
   453     in the database as an CWEType entity
   454     in the database as an CWEType entity
   454     """
   455     """