Univention Bugzilla – Bug 56998
Simple UDM API: SambaLogonHoursPropertyEncoder raises TypeError: tuple indicies must be integers or slices, not float
Last modified: 2024-03-01 09:45:49 CET
Created attachment 11178 [details] Traceback from customer The customer gets the attached traceback adjusting his scripts to python3 using our libaries. In python3 the division changed. float / int now always returns float. A patch from Florian is this: ----------------------------------------- diff --git management/univention-directory-manager-modules/modules/univention/udm/encoders.py management/univention-directory-manager-modules/modules/univention/udm/encoders.py index d2199626471..e1b29109783 100644 --- management/univention-directory-manager-modules/modules/univention/udm/encoders.py +++ management/univention-directory-manager-modules/modules/univention/udm/encoders.py @@ -220,7 +220,7 @@ class SambaLogonHoursPropertyEncoder(BaseEncoder): @classmethod def decode(cls, value=None): if value: - return ['{} {}-{}'.format(cls._weekdays[v / 24], v % 24, v % 24 + 1) for v in value] + return ['{} {}-{}'.format(cls._weekdays[v // 24], v % 24, v % 24 + 1) for v in value] else: return value
File "get_users_without_group.py", line 8, in get_all_users return [user.position for user in ucs_user] File "get_users_without_group.py", line 8, in <listcomp> return [user.position for user in ucs_user] File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 593, in search yield self.get(dn) File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 557, in get return self._load_obj(dn) File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 748, in _load_obj obj._copy_from_udm_obj() File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 307, in _copy_from_udm_obj val = encoder.decode(v) File "/usr/lib/python3/dist-packages/univention/udm/encoders.py", line 223, in decode return ['{} {}-{}'.format(cls._weekdays[v / 24], v % 24, v % 24 + 1) for v in value] File "/usr/lib/python3/dist-packages/univention/udm/encoders.py", line 223, in <listcomp> return ['{} {}-{}'.format(cls._weekdays[v / 24], v % 24, v % 24 + 1) for v in value]
Traceback (most recent call last): File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 593, in search yield self.get(dn) File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 557, in get return self._load_obj(dn) File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 748, in _load_obj obj._copy_from_udm_obj() File "/usr/lib/python3/dist-packages/univention/udm/modules/generic.py", line 307, in _copy_from_udm_obj val = encoder.decode(v) File "/usr/lib/python3/dist-packages/univention/udm/encoders.py", line 223, in decode return ['{} {}-{}'.format(cls._weekdays[v / 24], v % 24, v % 24 + 1) for v in value] File "/usr/lib/python3/dist-packages/univention/udm/encoders.py", line 223, in <listcomp> return ['{} {}-{}'.format(cls._weekdays[v / 24], v % 24, v % 24 + 1) for v in value] TypeError: tuple indicies must be integers or slices, not float
*** This bug has been marked as a duplicate of bug 28496 ***