iK hddlmZddlmZmZddlmZmZddlm Z eGddZ dS)) annotations) dataclassfield)NormalizedNamecanonicalize_name) CommandErrorceZdZUdZeeZded<eeZded<ede ddZ ded <ddZ ddZ ddZ dS)ReleaseControlz9Helper for managing which release types can be installed.)default_factoryset[str] all_releases only_finalF)initr comparereprlist[tuple[str, str]]_ordervaluestrtargetother attr_namereturnNonec|drtd|d}d|vr~|||d|j|df|d|ddz=d|vrdSd|v~|D]}|dkr1||j|df9t|}| ||||j||fdS)aParse and apply release control option value. Processes comma-separated package names or special values `:all:` and `:none:`. When adding packages to target, they're removed from other to maintain mutual exclusivity between all_releases and only_final. All operations are tracked in order so that the original command-line argument sequence can be reconstructed when passing options to build subprocesses. -z9--all-releases / --only-final option requires 1 argument.,:all:Nz:none:) startswithrsplitclearaddrappendindexrdiscard)selfrrrrnewnames /builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib/python3.11/site-packages/pip/_internal/models/release_control.pyhandle_mutual_excludesz%ReleaseControl.handle_mutual_excludessl   C  K kk#nn KKMMM LLNNN JJw    K   73 4 4 4,cii((1,,-s""nn 2 2Dx  ""Ix#8999$T**D MM$    JJt    K   40 1 1 1 1 2 2c |jddS)a Get ordered list of (flag_name, value) tuples for reconstructing CLI args. Returns: List of tuples where each tuple is (attribute_name, value). The attribute_name is either 'all_releases' or 'only_final'. Example: [("all_releases", ":all:"), ("only_final", "simple")] would be reconstructed as: ["--all-releases", ":all:", "--only-final", "simple"] N)r)r's r*get_ordered_argszReleaseControl.get_ordered_args<s{111~r,canonical_namer bool | Nonec^||jvrdS||jvrdSd|jvrdSd|jvrdSdS)a  Determine if pre-releases are allowed for a package. Returns: True: Pre-releases are allowed (package in all_releases) False: Only final releases allowed (package in only_final) None: No specific setting, use default behavior TFrN)r r)r'r/s r*allows_prereleasesz!ReleaseControl.allows_prereleasesKsS T. . .4 t . .5 ) ) )4  ' '5tr,N) rrrr rr rrrr)rr)r/rrr0)__name__ __module__ __qualname____doc__rsetr __annotations__rlistrr+r.r2r,r*r r sCC"U3777L7777 5555J5555$)E D%e%%%F%2%2%2%2N    r,r N) __future__r dataclassesrrpip._vendor.packaging.utilsrrpip._internal.exceptionsrr r:r,r*r?s""""""((((((((IIIIIIII111111 PPPPPPP PPPr,