o
    ›º¥g+	  ã                   @   s   d dl mZmZ dd„ ZdS )é    )ÚDecimalÚInvalidOperationc                 C   sb  t | tttfƒrt| ƒS dddddddddd	d
œ
}t| ƒ} | }d}t| ƒdkr@| d dkr@| d |v r?| dd… }| dd… }nt| ƒdkrX| d |v rX| dd… }| dd… }zt|ƒ}W n tyl   td |¡ƒ‚w |du rs|S | 	d¡r{d}nt|ƒdkr„d}ntd | ¡ƒ‚|dkr–td | ¡ƒ‚|d |vr£td | ¡ƒ‚t||d  ƒ}|||  S )aÀ  
    Parse kubernetes canonical form quantity like 200Mi to a decimal number.
    Supported SI suffixes:
    base1024: Ki | Mi | Gi | Ti | Pi | Ei
    base1000: n | u | m | "" | k | M | G | T | P | E

    See https://github.com/kubernetes/apimachinery/blob/master/pkg/api/resource/quantity.go

    Input:
    quantity: string. kubernetes canonical form quantity

    Returns:
    Decimal

    Raises:
    ValueError on invalid or unknown input
    éýÿÿÿéþÿÿÿéÿÿÿÿé   é   é   é   é   é   )
ÚnÚuÚmÚKÚkÚMÚGÚTÚPÚENÚizInvalid number format: {}i   iè  z{} has unknown suffixÚkir   )
Ú
isinstanceÚintÚfloatr   ÚstrÚlenr   Ú
ValueErrorÚformatÚendswith)ÚquantityÚ	exponentsÚnumberÚsuffixÚbaseÚexponent© r'   úP/var/www/visachat/venv/lib/python3.10/site-packages/kubernetes/utils/quantity.pyÚparse_quantity   sD   ÿ€ÿ
r)   N)Údecimalr   r   r)   r'   r'   r'   r(   Ú<module>   s   