コード例 #1
0
ファイル: common.py プロジェクト: jpmckinney/lib-cove
def schema_dict_fields_generator(schema_dict):
    if "properties" in schema_dict and isinstance(schema_dict["properties"],
                                                  dict):
        for property_name, value in schema_dict["properties"].items():
            if "oneOf" in value:
                property_schema_dicts = value["oneOf"]
            else:
                property_schema_dicts = [value]
            for property_schema_dict in property_schema_dicts:
                if not isinstance(property_schema_dict, dict):
                    continue
                property_type_set = get_property_type_set(property_schema_dict)
                if "object" in property_type_set:
                    for field in schema_dict_fields_generator(
                            property_schema_dict):
                        yield "/" + property_name + field
                elif "array" in property_type_set:
                    fields = schema_dict_fields_generator(
                        property_schema_dict.get("items", {}))
                    for field in fields:
                        yield "/" + property_name + field
                yield "/" + property_name
    if "items" in schema_dict and isinstance(schema_dict["items"], dict):
        if "oneOf" in schema_dict["items"] and isinstance(
                schema_dict["items"]["oneOf"], list):
            for oneOf in schema_dict["items"]["oneOf"]:
                for field in schema_dict_fields_generator(oneOf):
                    yield field
コード例 #2
0
def schema_dict_fields_generator(schema_dict):
    if 'properties' in schema_dict:
        for property_name, value in schema_dict['properties'].items():
            if 'oneOf' in value:
                property_schema_dicts = value['oneOf']
            else:
                property_schema_dicts = [value]
            for property_schema_dict in property_schema_dicts:
                property_type_set = get_property_type_set(property_schema_dict)
                if 'object' in property_type_set:
                    for field in schema_dict_fields_generator(property_schema_dict):
                        yield '/' + property_name + field
                elif 'array' in property_type_set:
                    fields = schema_dict_fields_generator(property_schema_dict['items'])
                    for field in fields:
                        yield '/' + property_name + field
                yield '/' + property_name
コード例 #3
0
ファイル: common.py プロジェクト: datadesign-works/cove
def schema_dict_fields_generator(schema_dict):
    if 'properties' in schema_dict and isinstance(schema_dict['properties'], dict):
        for property_name, value in schema_dict['properties'].items():
            if 'oneOf' in value:
                property_schema_dicts = value['oneOf']
            else:
                property_schema_dicts = [value]
            for property_schema_dict in property_schema_dicts:
                if not isinstance(property_schema_dict, dict):
                    continue
                property_type_set = get_property_type_set(property_schema_dict)
                if 'object' in property_type_set:
                    for field in schema_dict_fields_generator(property_schema_dict):
                        yield '/' + property_name + field
                elif 'array' in property_type_set:
                    fields = schema_dict_fields_generator(property_schema_dict.get('items', {}))
                    for field in fields:
                        yield '/' + property_name + field
                yield '/' + property_name
コード例 #4
0
def test_get_property_type_set():
    assert get_property_type_set({'type': 'a'}) == set(['a'])
    assert get_property_type_set({'type': ['a']}) == set(['a'])
    assert get_property_type_set({'type': ['a', 'b']}) == set(['a', 'b'])
コード例 #5
0
def test_get_property_type_set():
    assert get_property_type_set({'type': 'a'}) == set(['a'])
    assert get_property_type_set({'type': ['a']}) == set(['a'])
    assert get_property_type_set({'type': ['a', 'b']}) == set(['a', 'b'])