summaryrefslogtreecommitdiff
path: root/ham
diff options
context:
space:
mode:
authoradam <adam@pkgsrc.org>2018-01-01 21:08:46 +0000
committeradam <adam@pkgsrc.org>2018-01-01 21:08:46 +0000
commit70ec375c0f45201d378509a6a49c8fd8ca3f9a16 (patch)
tree43eaf92901554df62ce89122f3a0ae073de14508 /ham
parentc1b91858d3d667d90d888827672059590ea6ad40 (diff)
downloadpkgsrc-70ec375c0f45201d378509a6a49c8fd8ca3f9a16.tar.gz
py-attrs: updated to 17.4.0
17.4.0: Backward-incompatible Changes - The traversal of MROs when using multiple inheritance was backward: If you defined a class C that subclasses A and B like C(A, B), attrs would have collected the attributes from B *before* those of A. This is now fixed and means that in classes that employ multiple inheritance, the output of __repr__ and the order of positional arguments in __init__ changes. Due to the nature of this bug, a proper deprecation cycle was unfortunately impossible. Generally speaking, it's advisable to prefer kwargs-based initialization anyways – *especially* if you employ multiple inheritance and diamond-shaped hierarchies. - The __repr__ set by attrs no longer produces an AttributeError when the instance is missing some of the specified attributes (either through deleting or after using init=False on some attributes). This can break code that relied on repr(attr_cls_instance) raising AttributeError to check if any attr-specified members were unset. If you were using this, you can implement a custom method for checking this:: def has_unset_members(self): for field in attr.fields(type(self)): try: getattr(self, field.name) except AttributeError: return True return False Deprecations - The attr.ib(convert=callable) option is now deprecated in favor of attr.ib(converter=callable). This is done to achieve consistency with other noun-based arguments like *validator*. *convert* will keep working until at least January 2019 while raising a DeprecationWarning. Changes - Generated __hash__ methods now hash the class type along with the attribute values. Until now the hashes of two classes with the same values were identical which was a bug. The generated method is also *much* faster now. - attr.ib\ ’s metadata argument now defaults to a unique empty dict instance instead of sharing a common empty dict for all. The singleton empty dict is still enforced. - ctypes is optional now however if it's missing, a bare super() will not work in slots classes. This should only happen in special environments like Google App Engine. - The attribute redefinition feature introduced in 17.3.0 now takes into account if an attribute is redefined via multiple inheritance. In that case, the definition that is closer to the base of the class hierarchy wins. - Subclasses of auto_attribs=True can be empty now. - Equality tests are *much* faster now. - All generated methods now have correct __module__, __name__, and (on Python 3) __qualname__ attributes.
Diffstat (limited to 'ham')
0 files changed, 0 insertions, 0 deletions