From: Sergey Matveev Date: Sat, 30 Nov 2024 19:26:04 +0000 (+0300) Subject: Slight optimisation, reduce calls to .keys() X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=520c2437e3d19b18ab482a1de9bf5aa8ddf40d8083877cb1e1b7b81b42bf674d;p=keks.git Slight optimisation, reduce calls to .keys() --- diff --git a/pyac/pyac.py b/pyac/pyac.py index 39b22d4..be55f31 100755 --- a/pyac/pyac.py +++ b/pyac/pyac.py @@ -217,11 +217,13 @@ def dumps(v): return dumps({i: None for i in v}) if isinstance(v, dict): raws = [_byte(TagMap)] - if not all(isinstance(k, str) for k in v.keys()): + keys = v.keys() + if not all(isinstance(k, str) for k in keys): raise ValueError("map keys can be only strings") - for k in sorted(v.keys(), key=LenFirstSort): - if len(k) == 0: - raise ValueError("map keys can not be empty") + keys = sorted(keys, key=LenFirstSort) + if (len(keys) > 0) and len(keys[0]) == 0: + raise ValueError("map keys can not be empty") + for k in keys: raws.append(dumps(k)) raws.append(dumps(v[k])) raws.append(_byte(TagEOC))