Esempio n. 1
0
def get_datatype(type_name):
    dtype = caching.get_schema_datatype(type_name)
    if dtype is not None:
        return dtype

    dtype = get_schema_set()['datatypes'][type_name]

    # populate missing fields
    if 'url' not in dtype:
        dtype['url'] = '/sp.schema/datatypes/%s' % type_name
    if 'properties' not in dtype:
        dtype['properties'] = []
    if 'specific_properties' not in dtype:
        dtype['specific_properties'] = []
    if 'supertypes' not in dtype:
        dtype['supertypes'] = ['DataType']
    if 'subtypes' not in dtype:
        dtype['subtypes'] = []
    if 'id' not in dtype:
        dtype['id'] = type_name
    if 'label' not in dtype:
        dtype['label'] = dtype['id']
    if 'comment' not in dtype:
        dtype['comment'] = dtype['label']
    if 'comment_plain' not in dtype:
        dtype['comment_plain'] = dtype['comment']
    if 'ancestors' not in dtype:
        dtype['ancestors'] = dtype['supertypes']

    caching.set_schema_datatype(type_name, dtype)
    return dtype
Esempio n. 2
0
def get_datatype(type_name):
    dtype = caching.get_schema_datatype(type_name)
    if dtype is not None:
        return dtype

    dtype = get_schema_set()['datatypes'][type_name]

    # populate missing fields
    if 'url' not in dtype:
        dtype['url'] = '/sp.schema/datatypes/%s' % type_name
    if 'properties' not in dtype:
        dtype['properties'] = []
    if 'specific_properties' not in dtype:
        dtype['specific_properties'] = []
    if 'supertypes' not in dtype:
        dtype['supertypes'] = ['DataType']
    if 'subtypes' not in dtype:
        dtype['subtypes'] = []
    if 'id' not in dtype:
        dtype['id'] = type_name
    if 'label' not in dtype:
        dtype['label'] = dtype['id']
    if 'comment' not in dtype:
        dtype['comment'] = dtype['label']
    if 'comment_plain' not in dtype:
        dtype['comment_plain'] = dtype['comment']
    if 'ancestors' not in dtype:
        dtype['ancestors'] = dtype['supertypes']

    caching.set_schema_datatype(type_name, dtype)
    return dtype
Esempio n. 3
0
def get_datatype(type_name):
    datatype = caching.get_schema_datatype(type_name)
    if datatype is not None:
        return datatype

    datatype = get_schema_set()["datatypes"][type_name]
    caching.set_schema_datatype(type_name, datatype)
    return datatype