U ja`ã@s2dZddlZddlmZmZmZGdd„dƒZdS)zUtilities for defining models éN)ÚAnyÚCallableÚTypec@sXeZdZdZddgZdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dS)ÚKeyBasedCompareMixinz7Provides comparison capabilities that is based on a keyÚ _compare_keyÚ_defining_classcCs||_||_dS©N)rr)ÚselfÚkeyÚdefining_class©r úr/private/var/folders/k6/_7fsz4ts3b78x3b3xwrxjh_c8s8xv7/T/pip-unpacked-wheel-bug3gbve/pip/_internal/utils/models.pyÚ__init__ szKeyBasedCompareMixin.__init__cCs t|jƒSr)Úhashr)r r r r Ú__hash__szKeyBasedCompareMixin.__hash__cCs| |tj¡Sr)Ú_compareÚoperatorÚ__lt__©r Úotherr r r rszKeyBasedCompareMixin.__lt__cCs| |tj¡Sr)rrÚ__le__rr r r rszKeyBasedCompareMixin.__le__cCs| |tj¡Sr)rrÚ__gt__rr r r rszKeyBasedCompareMixin.__gt__cCs| |tj¡Sr)rrÚ__ge__rr r r r"szKeyBasedCompareMixin.__ge__cCs| |tj¡Sr)rrÚ__eq__rr r r r&szKeyBasedCompareMixin.__eq__cCst||jƒstS||j|jƒSr)Ú isinstancerÚNotImplementedr)r rÚmethodr r r r*s zKeyBasedCompareMixin._compareN) Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __slots__rrrrrrrrr r r r rsr)r rÚtypingrrrrr r r r Ús