Exemplo n.º 1
0
def resolveSchemaFields(midgard_object, include_values=False, skip_fields=None, only_fields=None):
    fields = dict()
    
    if not skip_fields:
        skip_fields = default_skip_fields
    
    try:
        mgd_obj_name = midgard_object.__name__
    except AttributeError:
        mgd_obj_name = midgard_object.__class__.__name__
    
    rp = midgard.reflection_property(mgd_obj_name)
    
    for f in midgard_object.props:
        if f.name in skip_fields:
            continue
        
        if only_fields and not f.name in only_fields:
            continue
        
        field = _propertyToField(rp, f)
        
        if include_values:
            field["value"] = midgard_object.__getattribute__(f.name)
        
        fields[f.name] = field
    
    return fields
Exemplo n.º 2
0
def resolveMetadataFields(midgard_object, include_values=False, skip_fields=None, only_fields=None):
    fields = dict()
        
    try:
        metadata = midgard_object.metadata
    except AttributeError:
        metadata = midgard.mgdschema.metadata
    
    rp = midgard.reflection_property("midgard_metadata")
    
    for f in metadata.props:                
        if skip_fields and f.name in skip_fields:
            continue        
        if only_fields and not f.name in only_fields:
            continue
        
        field = _propertyToField(rp, f)
        
        if include_values:
            field["value"] = metadata.__getattribute__(f.name)
        
        fields[f.name] = field
    
    return fields