CasperSecurity

Current Path : /lib/python3/dist-packages/babel/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/babel/__pycache__/units.cpython-310.pyc

o

^I+�@s�ddlmZddlmZddlmZmZGdd�de�Zdefdd�Z	efd	d
�Z
ddefdd
�Zefdd�Zdddddefdd�Z
dS)�)�string_types)�Locale)�format_decimal�
LC_NUMERICc@seZdZdd�ZdS)�UnknownUnitErrorcCst�|d||f�dS)Nz%s is not a known unit in %s)�
ValueError�__init__)�self�unit�locale�r�-/usr/lib/python3/dist-packages/babel/units.pyr	szUnknownUnitError.__init__N)�__name__�
__module__�__qualname__rrrrr
rsr�longcCs:t�|�}t||d�}|st||d��|j�|i��|�S)a�
    Get the display name for a measurement unit in the given locale.

    >>> get_unit_name("radian", locale="en")
    'radians'

    Unknown units will raise exceptions:

    >>> get_unit_name("battery", locale="fi")
    Traceback (most recent call last):
        ...
    UnknownUnitError: battery/long is not a known unit/length in fi

    :param measurement_unit: the code of a measurement unit.
                             Known units can be found in the CLDR Unit Validity XML file:
                             https://unicode.org/repos/cldr/tags/latest/common/validity/unit.xml

    :param length: "short", "long" or "narrow"
    :param locale: the `Locale` object or locale identifier
    :return: The unit display name, or None.
    �r�r
r)r�parse�_find_unit_patternr�unit_display_names�get)�measurement_unit�lengthrr
rrr
�
get_unit_name
s

rcCsHt�|�}|jd}||vr|St|td�D]}|�|�r!|SqdS)a�
    Expand an unit into a qualified form.

    Known units can be found in the CLDR Unit Validity XML file:
    https://unicode.org/repos/cldr/tags/latest/common/validity/unit.xml

    >>> _find_unit_pattern("radian", locale="en")
    'angle-radian'

    Unknown values will return None.

    >>> _find_unit_pattern("horse", locale="en")

    :param unit_id: the code of a measurement unit.
    :return: A key to the `unit_patterns` mapping, or None.
    �
unit_patterns)�keyN)rr�_data�sorted�len�endswith)�unit_idrr�unit_patternrrr
r*s


��rNc	Cs�t�|�}t||d�}|st||d��|jd|�|i�}t|t�r(|}d}nt|||�}|�	|�}||vr>||�
|�Sd|t|||d�pH|fS)a�Format a value of a given unit.

    Values are formatted according to the locale's usual pluralization rules
    and number formats.

    >>> format_unit(12, 'length-meter', locale='ro_RO')
    u'12 metri'
    >>> format_unit(15.5, 'length-mile', locale='fi_FI')
    u'15,5 mailia'
    >>> format_unit(1200, 'pressure-inch-hg', locale='nb')
    u'1\xa0200 tommer kvikks\xf8lv'

    Number formats may be overridden with the ``format`` parameter.

    >>> from babel._compat import decimal
    >>> format_unit(decimal.Decimal("-42.774"), 'temperature-celsius', 'short', format='#.0', locale='fr')
    u'-42,8\u202f\xb0C'

    The locale's usual pluralization rules are respected.

    >>> format_unit(1, 'length-meter', locale='ro_RO')
    u'1 metru'
    >>> format_unit(0, 'length-mile', locale='cy')
    u'0 mi'
    >>> format_unit(1, 'length-mile', locale='cy')
    u'1 filltir'
    >>> format_unit(3, 'length-mile', locale='cy')
    u'3 milltir'

    >>> format_unit(15, 'length-horse', locale='fi')
    Traceback (most recent call last):
        ...
    UnknownUnitError: length-horse is not a known unit in fi

    .. versionadded:: 2.2.0

    :param value: the value to format. If this is a string, no number formatting will be attempted.
    :param measurement_unit: the code of a measurement unit.
                             Known units can be found in the CLDR Unit Validity XML file:
                             https://unicode.org/repos/cldr/tags/latest/common/validity/unit.xml
    :param length: "short", "long" or "narrow"
    :param format: An optional format, as accepted by `format_decimal`.
    :param locale: the `Locale` object or locale identifier
    rrr�onez%s %s)rr)rrrrrr�
isinstancerr�plural_form�formatr)	�valuerrr&r�q_unitr�formatted_valuer%rrr
�format_unitDs 
-

�r*cCsbt�|�}t||d�}t||d�}|r|sdS|�dd�d}|�dd�d}td||f|d�S)a�
    Find a predefined compound unit pattern.

    Used internally by format_compound_unit.

    >>> _find_compound_unit("kilometer", "hour", locale="en")
    'speed-kilometer-per-hour'

    >>> _find_compound_unit("mile", "gallon", locale="en")
    'consumption-mile-per-gallon'

    If no predefined compound pattern can be found, `None` is returned.

    >>> _find_compound_unit("gallon", "mile", locale="en")

    >>> _find_compound_unit("horse", "purple", locale="en")

    :param numerator_unit: The numerator unit's identifier
    :param denominator_unit: The denominator unit's identifier
    :param locale: the `Locale` object or locale identifier
    :return: A key to the `unit_patterns` mapping, or None.
    :rtype: str|None
    rN�-����z	%s-per-%s)rrr�split)�numerator_unit�denominator_unitr�bare_numerator_unit�bare_denominator_unitrrr
�_find_compound_unit�s
r3r,cCst�|�}|r|r|dkrt|||d�}|rt|||||d�St|t�r'|}n|r3t|||||d�}nt|||d�}t|t�rB|}	n8|rs|dkrgt||d�}|jd�	|i��	|i��	d�}
|
re|
�
|�Sd}t|||||d���}	nt|||d�}	|jd�	di��	|d	�}
|
�
||	�S)
a�
    Format a compound number value, i.e. "kilometers per hour" or similar.

    Both unit specifiers are optional to allow for formatting of arbitrary values still according
    to the locale's general "per" formatting specifier.

    >>> format_compound_unit(7, denominator_value=11, length="short", locale="pt")
    '7/11'

    >>> format_compound_unit(150, "kilometer", denominator_unit="hour", locale="sv")
    '150 kilometer per timme'

    >>> format_compound_unit(150, "kilowatt", denominator_unit="year", locale="fi")
    '150 kilowattia / vuosi'

    >>> format_compound_unit(32.5, "ton", 15, denominator_unit="hour", locale="en")
    '32.5 tons per 15 hours'

    >>> format_compound_unit(160, denominator_unit="square-meter", locale="fr")
    '160 par m\xe8tre carr\xe9'

    >>> format_compound_unit(4, "meter", "ratakisko", length="short", locale="fi")
    '4 m/ratakisko'

    >>> format_compound_unit(35, "minute", denominator_unit="fathom", locale="sv")
    '35 minuter per famn'

    >>> from babel.numbers import format_currency
    >>> format_compound_unit(format_currency(35, "JPY", locale="de"), denominator_unit="liter", locale="de")
    '35\xa0\xa5 pro Liter'

    See https://www.unicode.org/reports/tr35/tr35-general.html#perUnitPatterns

    :param numerator_value: The numerator value. This may be a string,
                            in which case it is considered preformatted and the unit is ignored.
    :param numerator_unit: The numerator unit. See `format_unit`.
    :param denominator_value: The denominator value. This may be a string,
                              in which case it is considered preformatted and the unit is ignored.
    :param denominator_unit: The denominator unit. See `format_unit`.
    :param length: The formatting length. "short", "long" or "narrow"
    :param format: An optional format, as accepted by `format_decimal`.
    :param locale: the `Locale` object or locale identifier
    :return: A formatted compound value.
    r,r)rr&r)r&rr�per��compound_unit_patternsz{0}/{1})rrr3r*r$rrrrrr&�strip)�numerator_valuer/�denominator_valuer0rr&r�
compound_unit�formatted_numerator�formatted_denominator�per_patternrrr
�format_compound_unit�s:
1

�
 

��r>)�
babel._compatr�
babel.corer�
babel.numbersrrrrrrr*r3r>rrrr
�<module>sF1�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY