a  zeý ã@s>ddlmZmZmZddlmZddlmZGdd„dƒZdS)é)Ú FrozenSetÚOptionalÚSet)Úcanonicalize_name)Ú CommandErrorc@sœeZdZdZddgZdeeeeeeddœdd„Ze e dœd d „Z ed œd d „Z e eeeeeddœdd„ƒZeeedœdd„Zdd œdd„ZdS)Ú FormatControlzGHelper for managing formats from which a package can be installed. Ú no_binaryÚ only_binaryN)rr ÚreturncCs,|durtƒ}|durtƒ}||_||_dS©N)Úsetrr )Úselfrr ©rúe/opt/bitninja-python-dojo/embedded/lib/python3.9/site-packages/pip/_internal/models/format_control.pyÚ__init__s zFormatControl.__init__)Úotherr cs:tˆˆjƒstSˆjˆjkr dSt‡‡fdd„ˆjDƒƒS)NFc3s"|]}tˆ|ƒtˆ|ƒkVqdSr )Úgetattr)Ú.0Úk©rr rrÚ "sÿz'FormatControl.__eq__..)Ú isinstanceÚ __class__ÚNotImplementedÚ __slots__Úall)r rrrrÚ__eq__s  þzFormatControl.__eq__)r cCsd |jj|j|j¡S)Nz {}({}, {}))ÚformatrÚ__name__rr ©r rrrÚ__repr__'s ýzFormatControl.__repr__)ÚvalueÚtargetrr cCsœ| d¡rtdƒ‚| d¡}d|vr`| ¡| ¡| d¡|d| d¡d…=d|vrdSq|D]2}|dkrz| ¡qdt|ƒ}| |¡| |¡qddS)Nú-z7--no-binary / --only-binary option requires 1 argument.ú,ú:all:éz:none:)Ú startswithrÚsplitÚclearÚaddÚindexrÚdiscard)r!r"rÚnewÚnamerrrÚhandle_mutual_excludes.s& ÿ   z$FormatControl.handle_mutual_excludes)Úcanonical_namer cCsfddh}||jvr| d¡n@||jvr4| d¡n*d|jvrJ| d¡nd|jvr^| d¡t|ƒS)NÚbinaryÚsourcer%)r r,rÚ frozenset)r r0ÚresultrrrÚget_allowed_formatsEs        z!FormatControl.get_allowed_formatscCs| d|j|j¡dS)Nr%)r/rr rrrrÚdisallow_binariesQs ÿzFormatControl.disallow_binaries)NN)rÚ __module__Ú __qualname__Ú__doc__rrrÚstrrÚobjectÚboolrr Ú staticmethodr/rr5r6rrrrrsý  ü   rN) ÚtypingrrrÚpip._vendor.packaging.utilsrÚpip._internal.exceptionsrrrrrrÚs