@@ -97,6 +97,7 @@ class Dfn:
9797 parent : str | None = None
9898 advanced : bool = False
9999 multi : bool = False
100+ ftype : str | None = None
100101 ref : Ref | None = None
101102 blocks : Blocks | None = None
102103 children : Dfns | None = None
@@ -533,6 +534,7 @@ def map(self, dfn: Dfn) -> Dfn:
533534 name = dfn .name ,
534535 advanced = dfn .advanced ,
535536 multi = dfn .multi ,
537+ ftype = dfn .ftype or (dfn .name .split ("-" , 1 )[1 ].upper () if "-" in dfn .name else None ),
536538 ref = dfn .ref ,
537539 blocks = MapV1To2 .map_blocks (dfn ),
538540 schema_version = v2 ,
@@ -569,18 +571,22 @@ def load(f, format: str = "dfn", **kwargs) -> Dfn:
569571 parent = try_parse_parent (meta ),
570572 advanced = is_advanced_package (meta ),
571573 multi = is_multi_package (meta ),
574+ ftype = name .split ("-" , 1 )[1 ].upper () if "-" in name else None ,
572575 blocks = blocks ,
573576 )
574577
575578 elif format == "toml" :
576579 data = tomli .load (f )
580+ dfn_name = data .pop ("name" , kwargs .pop ("name" , None ))
577581
578582 dfn_fields = {
579- "name" : data . pop ( "name" , kwargs . pop ( "name" , None )) ,
583+ "name" : dfn_name ,
580584 "schema_version" : Version (str (data .pop ("schema_version" , "2" ))),
581585 "parent" : data .pop ("parent" , None ),
582586 "advanced" : data .pop ("advanced" , False ),
583587 "multi" : data .pop ("multi" , False ),
588+ "ftype" : data .pop ("ftype" , None )
589+ or (dfn_name .split ("-" , 1 )[1 ].upper () if dfn_name and "-" in dfn_name else None ),
584590 "ref" : data .pop ("ref" , None ),
585591 }
586592
0 commit comments