5353Interface: rootpaths
5454History: 2019-06-17
5555'''
56- class MyRoot ( object ) :
56+ class MyRoot :
5757 '''
5858 Description: Store schema information
5959 Interface: None
@@ -275,7 +275,7 @@ def get_type_pattern_incur(cur, schema_info, src, curfile):
275275 return typ
276276
277277
278- class GenerateNodeInfo ( object ) :
278+ class GenerateNodeInfo :
279279 '''
280280 Description: Store schema information
281281 Interface: None
@@ -321,7 +321,7 @@ def gen_all_arr_typnode(node_info, src, typ, refname):
321321 children = merge (resolve_list (schema_info , name , src , cur ["items" ]['allOf' ], curfile ))
322322 subtyp = children [0 ].typ
323323 subtypobj = children
324- return helpers .Unite (name ,
324+ return helpers .SchemaNode (name ,
325325 typ ,
326326 children ,
327327 subtyp = subtyp ,
@@ -348,7 +348,7 @@ def gen_any_arr_typnode(node_info, src, typ, refname):
348348 children = anychildren [0 ].children
349349 subtypobj = children
350350 refname = anychildren [0 ].subtypname
351- return helpers .Unite (name ,
351+ return helpers .SchemaNode (name ,
352352 typ ,
353353 children ,
354354 subtyp = subtyp ,
@@ -375,7 +375,7 @@ def gen_ref_arr_typnode(node_info, src, typ, refname):
375375 refname = make_ref_name (subrefname , curfile )
376376 else :
377377 refname = item_type .subtypname
378- return helpers .Unite (name ,
378+ return helpers .SchemaNode (name ,
379379 typ ,
380380 None ,
381381 subtyp = item_type .typ ,
@@ -398,15 +398,15 @@ def gen_type_arr_typnode(node_info, src, typ, refname):
398398 item_type , src = resolve_type (schema_info , name , src , cur ["items" ], curfile )
399399
400400 if typ == 'array' and typ == item_type .typ and not helpers .valid_basic_map_name (item_type .subtyp ):
401- return helpers .Unite (name ,
401+ return helpers .SchemaNode (name ,
402402 typ ,
403403 None ,
404404 subtyp = item_type .subtyp ,
405405 subtypobj = item_type .subtypobj ,
406406 subtypname = item_type .subtypname ,
407407 required = item_type .required , doublearray = True ), src
408408 else :
409- return helpers .Unite (name ,
409+ return helpers .SchemaNode (name ,
410410 typ ,
411411 None ,
412412 subtyp = item_type .typ ,
@@ -450,7 +450,11 @@ def gen_obj_typnode(node_info, src, typ, refname):
450450 subtypobj = None
451451 required = None
452452
453- if 'allOf' in cur :
453+ if 'additionalProperties' in cur and isinstance (cur ['additionalProperties' ], dict ):
454+ child , src_child = resolve_type (schema_info , name , src , cur ['additionalProperties' ], curfile )
455+ child .fixname = "values"
456+ return helpers .SchemaNode (name , 'mapStringObject' , [child ], None , None , None ), src
457+ elif 'allOf' in cur :
454458 children = merge (resolve_list (schema_info , name , src , cur ['allOf' ], curfile ))
455459 elif 'anyOf' in cur :
456460 children = resolve_list (schema_info , name , src , cur ['anyOf' ], curfile )
@@ -466,7 +470,7 @@ def gen_obj_typnode(node_info, src, typ, refname):
466470 if 'properties' in cur else None
467471 if 'required' in cur :
468472 required = cur ['required' ]
469- return helpers .Unite (name ,\
473+ return helpers .SchemaNode (name ,\
470474 typ ,\
471475 children ,\
472476 subtyp = subtyp ,\
@@ -532,7 +536,7 @@ def resolve_type(schema_info, name, src, cur, curfile):
532536 raise RuntimeError ("Invalid schema type: %s" % typ )
533537 children = None
534538
535- return helpers .Unite (name ,
539+ return helpers .SchemaNode (name ,
536540 typ ,
537541 children ,
538542 subtyp = subtyp ,
@@ -550,9 +554,9 @@ def resolve_list(schema_info, name, schema, objs, curfile):
550554 obj = []
551555 index = 0
552556 for i in objs :
553- generated_name = helpers .CombinateName ( \
557+ generated_name = helpers .HierarchicalName ( \
554558 i ['$ref' ].split ("/" )[- 1 ]) if '$ref' in i \
555- else helpers .CombinateName (name .name + str (index ))
559+ else helpers .HierarchicalName (name .name + str (index ))
556560 node , _ = resolve_type (schema_info , generated_name , schema , i , curfile )
557561 if node :
558562 obj .append (node )
@@ -599,9 +603,9 @@ def handle_type_not_in_schema(schema_info, schema, prefix):
599603 """
600604 required = None
601605 if 'definitions' in schema :
602- return helpers .Unite ( \
603- helpers .CombinateName ("definitions" ), 'definitions' , \
604- parse_properties (schema_info , helpers .CombinateName ("" ), schema , schema , \
606+ return helpers .SchemaNode ( \
607+ helpers .HierarchicalName ("definitions" ), 'definitions' , \
608+ parse_properties (schema_info , helpers .HierarchicalName ("" ), schema , schema , \
605609 schema_info .name .name ), None , None , None , None )
606610 else :
607611 if len (schema ) > 1 :
@@ -611,14 +615,14 @@ def handle_type_not_in_schema(schema_info, schema, prefix):
611615 for value in schema :
612616 if 'required' in schema [value ]:
613617 required = schema [value ]['required' ]
614- childrens = parse_properties (schema_info , helpers .CombinateName ("" ), \
618+ childrens = parse_properties (schema_info , helpers .HierarchicalName ("" ), \
615619 schema [value ], schema [value ], \
616620 schema_info .name .name )
617- value_node = helpers .Unite (helpers .CombinateName (prefix ), \
621+ value_node = helpers .SchemaNode (helpers .HierarchicalName (prefix ), \
618622 'object' , childrens , None , None , \
619623 None , required )
620624 value_nodes .append (value_node )
621- return helpers .Unite (helpers .CombinateName ("definitions" ), \
625+ return helpers .SchemaNode (helpers .HierarchicalName ("definitions" ), \
622626 'definitions' , value_nodes , None , None , \
623627 None , None )
624628
@@ -636,20 +640,20 @@ def parse_schema(schema_info, schema, prefix):
636640 if 'object' in schema ['type' ]:
637641 if 'required' in schema :
638642 required = schema ['required' ]
639- return helpers .Unite (
640- helpers .CombinateName (prefix ), 'object' ,
643+ return helpers .SchemaNode (
644+ helpers .HierarchicalName (prefix ), 'object' ,
641645 parse_properties (schema_info , \
642- helpers .CombinateName ("" ), \
646+ helpers .HierarchicalName ("" ), \
643647 schema , schema , schema_info .name .name ), \
644648 None , None , None , required )
645649 elif 'array' in schema ['type' ]:
646- item_type , _ = resolve_type (schema_info , helpers .CombinateName ("" ), \
650+ item_type , _ = resolve_type (schema_info , helpers .HierarchicalName ("" ), \
647651 schema ['items' ], schema ['items' ], schema_info .name .name )
648652 if item_type .typ == 'array' and not helpers .valid_basic_map_name (item_type .subtyp ):
649653 item_type .doublearray = True
650654 return item_type
651655 else :
652- return helpers .Unite (helpers .CombinateName (prefix ), 'array' , None , item_type .typ , \
656+ return helpers .SchemaNode (helpers .HierarchicalName (prefix ), 'array' , None , item_type .typ , \
653657 item_type .children , None , item_type .required )
654658
655659 else :
@@ -673,8 +677,8 @@ def expand(tree, structs, visited):
673677 expand (i , structs , visited = visited )
674678
675679 if tree .typ == 'array' and helpers .valid_basic_map_name (tree .subtyp ):
676- name = helpers .CombinateName (tree .name + "_element" )
677- node = helpers .Unite (name , tree .subtyp , None )
680+ name = helpers .HierarchicalName (tree .name + "_element" )
681+ node = helpers .SchemaNode (name , tree .subtyp , None )
678682 expand (node , structs , visited )
679683
680684 id_ = "%s:%s" % (tree .name , tree .typ )
0 commit comments