a [›ýfØ ã@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)Ú FormatControlzBHelper for managing formats from which a package can be installed.Ú no_binaryÚ only_binaryN)rr ÚreturncCs,|durtƒ}|durtƒ}||_||_dS©N)Úsetrr )Úselfrr ©rúG/usr/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Ú !ó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)NZbinaryÚsourcer&)r r-rÚ frozenset)r r1ÚresultrrrÚget_allowed_formats?s        z!FormatControl.get_allowed_formatscCs| d|j|j¡dS)Nr&)r0rr r rrrÚdisallow_binariesKs ýzFormatControl.disallow_binaries)NN)rÚ __module__Ú __qualname__Ú__doc__rrrÚstrrÚobjectÚboolrr!Ú staticmethodr0rr5r6rrrrrsý  ü   rN) ÚtypingrrrZpip._vendor.packaging.utilsrZpip._internal.exceptionsrrrrrrÚs