U su]a,0 � @ s d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlm Z ddlmZ dd lm Z d-dd�Zd.d d�Zdd� dD �Ze dd�e dd�e dd�e dd�e dd�e dd�e dd�e dd�e dd�e dd�e dd�e dd�fZd/dd �Zd!d"� Zd#d$� Zd0d&d'�Zd1d+d,�ZdS )2z!Humanizing functions for numbers.� N)�Fraction� )�gettext)�ngettext)� ngettext_noop)�pgettext)�thousands_separator�malec C s zt | �} W n ttfk r( | Y S X |dkr�tdd�tdd�tdd�tdd �td d�tdd�tdd�td d�tdd�tdd�f }nTtdd�tdd�tdd�tdd �tdd�tdd�tdd�tdd�tdd�tdd�f }| d dkr�| � |d � �S | � || d � �S )a] Converts an integer to its ordinal as a string. For example, 1 is "1st", 2 is "2nd", 3 is "3rd", etc. Works for any integer or anything `int()` will turn into an integer. Anything other value will have nothing done to it. Examples: ```pycon >>> ordinal(1) '1st' >>> ordinal(1002) '1002nd' >>> ordinal(103) '103rd' >>> ordinal(4) '4th' >>> ordinal(12) '12th' >>> ordinal(101) '101st' >>> ordinal(111) '111th' >>> ordinal("something else") 'something else' >>> ordinal(None) is None True ``` Args: value (int, str, float): Integer to convert. gender (str): Gender for translations. Accepts either "male" or "female". Returns: str: Ordinal string. r z0 (male)Zthz1 (male)�stz2 (male)Zndz3 (male)Zrdz4 (male)z5 (male)z6 (male)z7 (male)z8 (male)z9 (male)z 0 (female)z 1 (female)z 2 (female)z 3 (female)z 4 (female)z 5 (female)z 6 (female)z 7 (female)z 8 (female)z 9 (female)�d )� � � r � )�int� TypeError� ValueError�P_)�valueZgender�t� r �@/opt/alt/python38/lib/python3.8/site-packages/humanize/number.py�ordinal s<