ZL iwddZddlmZdedefdZdedefdZdedefdZdedefdZd edd fd Zy ) z Formatting numeric literals. )Leaftextreturnc>|dd|dd}}||jS)z4 Formats a hexadecimal string like "0x12B3" N)upperrbeforeafters T/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/black/numerics.py format_hexr s.!Hd12hEFXekkm_ %%c|jd\}}d}|jdr|dd}d}n|jdr|dd}t|}|d||S)z6Formats a numeric string utilizing scientific notatione-N+)split startswithformat_float_or_int_string)rr r signs r format_scientific_notationrsnJJsOMFE D ab    # ab  ' /FXQtfUG $$rc4|dd}|d}t||S)z#Formats a complex string like `10j`N)r)rnumbersuffixs r format_complex_numberrs+ #2YF "XF(0 1& ::rcTd|vr|S|jd\}}|xsdd|xsdS)z"Formats a float string like "1.0"..r)rr s r rr$s8 $ JJsOMFEk]!EJQ< ((rleafNcN|jj}|jdr ||_y|jdrt|}||_yd|vrt |}||_y|j drt |}||_yt|}||_y)zNormalizes numeric (float, int, and complex) literals. All letters used in the representation are normalized to lowercase.)0o0b0xrjN)valuelowerrr rendswithrr)r!rs r normalize_numeric_literalr*-s ::   D |$ DJ  $DJ )$/ DJ s $T*DJ*$/DJr) __doc__blib2to3.pytreerstrr rrrr*rr r/sn!&S&S& %S %S %;;;)S)S)DTr