1.1 --- a/encoders.py Fri Oct 07 21:36:08 2016 +0200
1.2 +++ b/encoders.py Sat Oct 08 00:33:32 2016 +0200
1.3 @@ -41,9 +41,22 @@
1.4
1.5 all_attrnames = []
1.6 for t in usage:
1.7 - all_attrnames.append(t)
1.8 + attrname, invocation = t
1.9 + all_attrnames.append("%s%s" % (attrname, invocation and "!" or ""))
1.10 return ", ".join(all_attrnames) or "{}"
1.11
1.12 +def decode_usage(s):
1.13 +
1.14 + "Decode attribute details from 's'."
1.15 +
1.16 + all_attrnames = set()
1.17 + for attrname_str in s.split(", "):
1.18 + all_attrnames.add((attrname_str.rstrip("!"), attrname_str.endswith("!")))
1.19 +
1.20 + all_attrnames = list(all_attrnames)
1.21 + all_attrnames.sort()
1.22 + return tuple(all_attrnames)
1.23 +
1.24 def encode_access_location(t):
1.25
1.26 "Encode the access location 't'."