Skip to content

Commit 9b1300f

Browse files
committed
Fix set attribute functions for match, target and rule
1 parent 1b83634 commit 9b1300f

File tree

1 file changed

+5
-17
lines changed

1 file changed

+5
-17
lines changed

iptc/easy.py

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
403391
def _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

417405
def _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

Comments
 (0)