@@ -300,7 +300,7 @@ def encode_iptc_rule(rule_d, ipv6=False):
300300 # Avoid issues with matches that require basic parameters to be configured first
301301 for name in rule_attr :
302302 if name in rule_d :
303- _iptc_setrule (iptc_rule , name , rule_d [name ])
303+ setattr (iptc_rule , name . replace ( '-' , '_' ) , rule_d [name ])
304304 for name , value in rule_d .items ():
305305 try :
306306 if name in rule_attr :
@@ -388,18 +388,6 @@ def _iptc_getchain(table, chain, ipv6=False, raise_exc=True):
388388 except Exception as e :
389389 if raise_exc : raise
390390
391- def _iptc_setattr (object , name , value ):
392- # Translate attribute name
393- name = name .replace ('-' , '_' )
394- setattr (object , name , value )
395-
396- def _iptc_setattr_d (object , value_d ):
397- for name , value in value_d .items ():
398- _iptc_setattr (object , name , value )
399-
400- def _iptc_setrule (iptc_rule , name , value ):
401- _iptc_setattr (iptc_rule , name , value )
402-
403391def _iptc_setmatch (iptc_rule , name , value ):
404392 # Iterate list/tuple recursively
405393 if isinstance (value , list ) or isinstance (value , tuple ):
@@ -408,21 +396,21 @@ def _iptc_setmatch(iptc_rule, name, value):
408396 # Assign dictionary value
409397 elif isinstance (value , dict ):
410398 iptc_match = iptc_rule .create_match (name )
411- _iptc_setattr_d ( iptc_match , value )
399+ [ iptc_match . set_parameter ( k , v ) for k , v in value . items ()]
412400 # Assign value directly
413401 else :
414402 iptc_match = iptc_rule .create_match (name )
415- _iptc_setattr ( iptc_match , name , value )
403+ iptc_match . set_parameter ( name , value )
416404
417405def _iptc_settarget (iptc_rule , value ):
418- # Target is dictionary - Use only 1 pair key/value
406+ # Target is dictionary - Use only 1st pair key/value
419407 if isinstance (value , dict ):
420408 t_name , t_value = next (iter (value .items ()))
421409 if t_name == 'goto' :
422410 iptc_target = iptc_rule .create_target (t_value , goto = True )
423411 else :
424412 iptc_target = iptc_rule .create_target (t_name )
425- _iptc_setattr_d ( iptc_target , t_value )
413+ [ iptc_target . set_parameter ( k , v ) for k , v in t_value . items ()]
426414 # Simple target
427415 else :
428416 iptc_target = iptc_rule .create_target (value )
0 commit comments