3
‡Œði‰  ã               @   s0   d Z ddlZejdkr$ddlmZ ndd„ ZdS )	zÈ
For Python < 2.7.2. total_ordering in versions prior to 2.7.2 is buggy.
See http://bugs.python.org/issue10042 for details. For these versions use
code borrowed from Python 2.7.3.

From django.utils.
é    Né   é   )Útotal_orderingc             C   sð   ddd„ fddd„ fddd„ fgddd„ fd	d
d„ fddd„ fgd	dd„ fddd„ fddd„ fgddd„ fddd„ fd	dd„ fgdœ}t t| ƒƒt |ƒ@ }|s¦tdƒ‚t|ƒ}x<|| D ]0\}}||kr¸||_tt|ƒj|_t| ||ƒ q¸W | S )z6Class decorator that fills in missing ordering methodsÚ__gt__c             S   s   | |k p| |k S )N© )ÚselfÚotherr   r   úA/tmp/pip-build-6m2fasei/future/future/backports/total_ordering.pyÚ<lambda>   s    z total_ordering.<locals>.<lambda>Ú__le__c             S   s   | |k p| |kS )Nr   )r   r   r   r   r	   r
      s    Ú__ge__c             S   s
   | |k  S )Nr   )r   r   r   r   r	   r
      s    c             S   s   | |k p| |kS )Nr   )r   r   r   r   r	   r
      s    Ú__lt__c             S   s   | |ko| |k S )Nr   )r   r   r   r   r	   r
      s    c             S   s
   | |k S )Nr   )r   r   r   r   r	   r
      s    c             S   s   | |kp| |k S )Nr   )r   r   r   r   r	   r
      s    c             S   s   | |kp| |kS )Nr   )r   r   r   r   r	   r
      s    c             S   s
   | |k S )Nr   )r   r   r   r   r	   r
      s    c             S   s   | |k p| |kS )Nr   )r   r   r   r   r	   r
      s    c             S   s   | |ko| |k S )Nr   )r   r   r   r   r	   r
      s    c             S   s
   | |k S )Nr   )r   r   r   r   r	   r
      s    )r   r   r   r   z6must define at least one ordering operation: < > <= >=)	ÚsetÚdirÚ
ValueErrorÚmaxÚ__name__ÚgetattrÚintÚ__doc__Úsetattr)ÚclsÚconvertÚrootsÚrootÚopnameÚopfuncr   r   r	   r      s,    







r   )r   r   r   )r   ÚsysÚversion_infoÚ	functoolsr   r   r   r   r	   Ú<module>   s   
