
    Ii+	                         S SK JrJr  S rg)    )DecimalInvalidOperationc                    [        U [        [        [        45      (       a  [        U 5      $ SSSSSSSSSS	S
.
n[	        U 5      n U nSn[        U 5      S:  a  U S   S:X  a  U S   U;   a
  U SS nU SS nO"[        U 5      S:  a  U S   U;   a
  U SS nU SS n [        U5      nUc  U$ UR                  S5      (       a  SnO,[        U5      S:X  a  SnO[        SR                  U 5      5      eUS:X  a  [        SR                  U 5      5      eUS   U;  a  [        SR                  U 5      5      e[        XS      5      nX$U-  -  $ ! [         a    [        SR                  U5      5      ef = f)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         ?/venv/lib/python3.13/site-packages/kubernetes/utils/quantity.pyparse_quantityr*      s   $ (S%12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X%&&+  E4;;FCDDEs   E %E+N)decimalr   r   r*        r)   <module>r.      s    .:'r-   