
    ?g+	                         d dl mZmZ d Zy)    )DecimalInvalidOperationc                    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\  r| d   |v r
| dd }| dd }	 t        |      }||S |j                  d      rd}n+t        |      dk(  rd}nt        dj                  |             |dk(  rt        dj                  |             |d   |vrt        dj                  |             t        ||d            }|||z  z  S # t        $ r t        dj                  |            w xY w)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exponents         N/var/www/openai/venv/lib/python3.12/site-packages/kubernetes/utils/quantity.pyparse_quantityr*      s   $ (S%12x  raaa1I 8}HFF
8}hrlc1B<9$cr]Fbc]F	X!		 9#2"#E ~s	V	077ABB ~077ABBay	!077ABBy+,HTX%&&+  E4;;FCDDEs   D2 2$EN)decimalr   r   r*        r)   <module>r.      s    .:'r-   