2121from kiutils .items .common import Position
2222from kiutils .utils .string_utils import *
2323from kiutils .utils .format_utils import format_float
24- from kiutils .utils .parsing_utils import parse_bool , format_bool_raw
24+ from kiutils .utils .parsing_utils import *
2525from kiutils .utils .sexpr import sexp_to_string
2626
2727@dataclass
@@ -409,8 +409,8 @@ def from_sexpr(cls, exp: list) -> Stackup:
409409
410410 object = cls ()
411411 for item in exp [1 :]:
412- if parse_bool (item , 'castellated_pads' ): object .castellatedPads = True
413- elif parse_bool (item , 'edge_plating' ): object .edgePlating = True
412+ if is_bool_key (item , 'castellated_pads' ): object .castellatedPads = parse_bool ( item , 'castellated_pads' )
413+ elif is_bool_key (item , 'edge_plating' ): object .edgePlating = parse_bool ( item , 'edge_plating' )
414414 elif not isinstance (item , list ):
415415 raise ValueError (f"Expected list property [key, value], got: { item } . Full expression: { exp } " )
416416 elif item [0 ] == 'layer' : object .layers .append (StackupLayer ().from_sexpr (item ))
@@ -1005,7 +1005,7 @@ def from_sexpr(cls, exp: list) -> Segment:
10051005
10061006 object = cls ()
10071007 for item in exp [1 :]:
1008- if parse_bool (item , 'locked' ): object .locked = True
1008+ if is_bool_key (item , 'locked' ): object .locked = parse_bool ( item , 'locked' )
10091009 elif not isinstance (item , list ):
10101010 raise ValueError (f"Expected list property [key, value], got: { item } . Full expression: { exp } " )
10111011 elif item [0 ] == 'start' : object .start = Position ().from_sexpr (item )
@@ -1042,7 +1042,7 @@ def _to_sexpr_raw(self):
10421042 ]
10431043
10441044 if self .locked :
1045- expr .append (format_bool_raw ("locked" , self .locked ))
1045+ expr .append (format_bool ("locked" , self .locked ))
10461046
10471047 expr .extend ([
10481048 ['layer' , escape_and_quote (self .layer )],
@@ -1098,9 +1098,9 @@ class Via():
10981098 """The ``tstamp`` token defines the unique identifier of the via"""
10991099
11001100 # Available since KiCad v9
1101- # TODO Update docs
11021101
11031102 zone_layer_connections : bool = False
1103+ """The ``zone_layer_connections`` token indicates which cooper layers are connected"""
11041104
11051105 @classmethod
11061106 def from_sexpr (cls , exp : list ) -> Via :
@@ -1124,12 +1124,12 @@ def from_sexpr(cls, exp: list) -> Via:
11241124
11251125 object = cls ()
11261126 for item in exp [1 :]:
1127- if parse_bool (item , 'locked' ): object .locked = True
1128- elif parse_bool (item , 'remove_unused_layers' ): object .removeUnusedLayers = True
1129- elif parse_bool (item , 'keepEndLayers' ): object .keepEndLayers = True
1130- elif parse_bool (item , 'free' ): object .free = True
1131- elif parse_bool (item , 'zone_layer_connections' ): object .zone_layer_connections = True
1132- elif not isinstance (item , list ) and item in ['micro' ,'blind' ]: object .type = item
1127+ if is_bool_key (item , 'locked' ): object .locked = parse_bool ( item , 'locked' )
1128+ elif is_bool_key (item , 'remove_unused_layers' ): object .removeUnusedLayers = parse_bool ( item , 'remove_unused_layers' )
1129+ elif is_bool_key (item , 'keepEndLayers' ): object .keepEndLayers = parse_bool ( item , 'keepEndLayers' )
1130+ elif is_bool_key (item , 'free' ): object .free = parse_bool ( item , 'free' )
1131+ elif is_bool_key (item , 'zone_layer_connections' ): object .zone_layer_connections = parse_bool ( item , 'zone_layer_connections' )
1132+ elif not isinstance (item , list ) and item in ['micro' , 'blind' ]: object .type = item
11331133 elif not isinstance (item , list ):
11341134 raise ValueError (f"Expected list property [key, value], got: { item } . Full expression: { exp } " )
11351135 elif item [0 ] == 'at' : object .position = Position ().from_sexpr (item )
@@ -1177,16 +1177,16 @@ def _to_sexpr_raw(self):
11771177 expr .append (layer_list )
11781178
11791179 if self .removeUnusedLayers :
1180- expr .append (format_bool_raw ("remove_unused_layers" , self .removeUnusedLayers ))
1180+ expr .append (format_bool ("remove_unused_layers" , self .removeUnusedLayers ))
11811181
11821182 if self .keepEndLayers :
1183- expr .append (format_bool_raw ("keep_end_layers" , self .keepEndLayers ))
1183+ expr .append (format_bool ("keep_end_layers" , self .keepEndLayers ))
11841184
11851185 if self .locked :
1186- expr .append (format_bool_raw ("locked" , self .locked ))
1186+ expr .append (format_bool ("locked" , self .locked ))
11871187
11881188 if self .free :
1189- expr .append (format_bool_raw ("free" , self .free ))
1189+ expr .append (format_bool ("free" , self .free ))
11901190
11911191 if self .zone_layer_connections :
11921192 expr .append (['zone_layer_connections' ])
@@ -1255,7 +1255,7 @@ def from_sexpr(cls, exp: list) -> Arc:
12551255
12561256 object = cls ()
12571257 for item in exp [1 :]:
1258- if parse_bool (item , 'locked' ): object .locked = True
1258+ if is_bool_key (item , 'locked' ): object .locked = parse_bool ( item , 'locked' )
12591259 elif not isinstance (item , list ):
12601260 raise ValueError (f"Expected list property [key, value], got: { item } . Full expression: { exp } " )
12611261 elif item [0 ] == 'start' : object .start = Position ().from_sexpr (item )
@@ -1288,7 +1288,7 @@ def _to_sexpr_raw(self):
12881288 expr = ['arc' ]
12891289
12901290 if self .locked :
1291- expr .append (format_bool_raw ("locked" , self .locked ))
1291+ expr .append (format_bool ("locked" , self .locked ))
12921292
12931293 expr .extend ([
12941294 ['start' , format_float (self .start .X ), format_float (self .start .Y )],
@@ -1512,7 +1512,7 @@ def from_sexpr(cls, exp: list) -> Generated:
15121512
15131513 object = cls ()
15141514 for item in exp [1 :]:
1515- if parse_bool (item , 'locked' ): object .locked = True
1515+ if is_bool_key (item , 'locked' ): object .locked = parse_bool ( item , 'locked' )
15161516 elif not isinstance (item , list ):
15171517 raise ValueError (f"Expected list property [key, value], got: { item } . Full expression: { exp } " )
15181518 elif item [0 ] == 'uuid' : object .uuid = item [1 ]
@@ -1583,7 +1583,7 @@ def _to_sexpr_raw(self):
15831583 ]
15841584
15851585 if self .locked :
1586- expr .append (format_bool_raw ("locked" , self .locked ))
1586+ expr .append (format_bool ("locked" , self .locked ))
15871587
15881588 if len (self .base_line ) > 0 :
15891589 base_line_pts = ['pts' ]
0 commit comments