3 ”Reôã@sdZddlZddlZddlmZddlmZddlm Z e rhddl m Z m Z m Z mZmZmZmZedƒZdZejd ƒZd d d d dgZGdd „d eƒZddd„Zddd„Zdd„Zdd„ZGdd„deƒZGdd „d eƒZGdd „d eƒZ e rúeee efZ!Gdd „d eƒZ"dS)z PEP 610 éN)Úsix)Úparse)ÚMYPY_CHECK_RUNNING)ÚAnyÚDictÚIterableÚOptionalÚTypeÚTypeVarÚUnionÚTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$Ú DirectUrlÚDirectUrlValidationErrorÚDirInfoÚ ArchiveInfoÚVcsInfoc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©rrúŽ/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/models/direct_url.pyrscCsH||kr |S||}tjr(|tkr(tj}t||ƒsDtdj|||ƒƒ‚|S)z3Get value from dictionary and verify expected type.z-{!r} has unexpected type for {} (expected {}))rÚPY2ÚstrÚ string_typesÚ isinstancerÚformat)ÚdÚ expected_typeÚkeyÚdefaultÚvaluerrrÚ_get"s  r!cCs(t||||ƒ}|dkr$tdj|ƒƒ‚|S)Nz{} must have a value)r!rr)rrrrr rrrÚ _get_required3sr"cCsFdd„|Dƒ}|stdƒ‚t|ƒdkr.tdƒ‚|ddk s>t‚|dS)NcSsg|]}|dk r|‘qS)Nr)Ú.0Úinforrrú =sz#_exactly_one_of..z/missing one of archive_info, dir_info, vcs_infoéz1more than one of archive_info, dir_info, vcs_infor)rÚlenÚAssertionError)ÚinfosrrrÚ_exactly_one_of;s r*cKsdd„|jƒDƒS)z Make dict excluding None values.cSsi|]\}}|dk r||“qS)Nr)r#ÚkÚvrrrú Msz _filter_none..)Úitems)ÚkwargsrrrÚ _filter_noneJsr0c@s.eZdZdZd dd„Zedd„ƒZdd„ZdS) rÚvcs_infoNcCs"||_||_||_||_||_dS)N)ÚvcsÚrequested_revisionÚ commit_idÚresolved_revisionÚresolved_revision_type)Úselfr2r4r3r5r6rrrÚ__init__Ss zVcsInfo.__init__c CsF|dkr dS|t|tdƒt|tdƒt|tdƒt|tdƒt|tdƒd�S)Nr2r4r3r5r6)r2r4r3r5r6)r"rr!)ÚclsrrrrÚ _from_dictas    zVcsInfo._from_dictcCst|j|j|j|j|jd�S)N)r2r3r4r5r6)r0r2r3r4r5r6)r7rrrÚ_to_dictns zVcsInfo._to_dict)NNN)rrrÚnamer8Ú classmethodr:r;rrrrrPs   c@s.eZdZdZd dd„Zedd„ƒZdd„ZdS) rÚ archive_infoNcCs ||_dS)N)Úhash)r7r?rrrr8|szArchiveInfo.__init__cCs|dkr dS|t|tdƒd�S)Nr?)r?)r!r)r9rrrrr:‚szArchiveInfo._from_dictcCs t|jd�S)N)r?)r0r?)r7rrrr;‰szArchiveInfo._to_dict)N)rrrr<r8r=r:r;rrrrrys  c@s.eZdZdZd dd„Zedd„ƒZdd„Zd S) rÚdir_infoFcCs ||_dS)N)Úeditable)r7rArrrr8‘szDirInfo.__init__cCs"|dkr dS|t|tddd�d�S)NrAF)r)rA)r"Úbool)r9rrrrr:—szDirInfo._from_dictcCst|jp dd�S)N)rA)r0rA)r7rrrr; szDirInfo._to_dictN)F)rrrr<r8r=r:r;rrrrrŽs  c@sZeZdZddd„Zdd„Zedd„ƒZdd „Zed d „ƒZ d d „Z edd„ƒZ dd„Z dS)r NcCs||_||_||_dS)N)Úurlr$Ú subdirectory)r7rCr$rDrrrr8«szDirectUrl.__init__cCsRd|kr |S|jddƒ\}}t|jtƒr@|jjdkr@|dkr@|Stj|ƒrN|S|S)Nú@r&Úgit)Úsplitrr$rr2Ú ENV_VAR_REÚmatch)r7ÚnetlocÚ user_passÚnetloc_no_user_passrrrÚ_remove_auth_from_netlocµs   z"DirectUrl._remove_auth_from_netloccCs8tj|jƒ}|j|jƒ}tj|j||j|j|j fƒ}|S)z¯url with user:password part removed unless it is formed with environment variables as specified in PEP 610, or it is ``git`` in the case of a git URL. ) Ú urllib_parseÚurlsplitrCrMrJÚ urlunsplitÚschemeÚpathÚqueryÚfragment)r7ÚpurlrJÚsurlrrrÚ redacted_urlÄs   zDirectUrl.redacted_urlcCs|j|jƒƒdS)N)Ú from_dictÚto_dict)r7rrrÚvalidateÒszDirectUrl.validatec CsRtt|tdƒt|tdƒttjt|tdƒƒtjt|tdƒƒt jt|tdƒƒgƒd�S)NrCrDr>r@r1)rCrDr$) r r"rr!r*rr:Údictrr)r9rrrrrXÖs  zDirectUrl.from_dictcCs&t|j|jd�}|jjƒ||jj<|S)N)rCrD)r0rWrDr$r;r<)r7ÚresrrrrYås  zDirectUrl.to_dictcCs|jtj|ƒƒS)N)rXÚjsonÚloads)r9ÚsrrrÚ from_jsonîszDirectUrl.from_jsoncCstj|jƒdd�S)NT)Ú sort_keys)r]ÚdumpsrY)r7rrrÚto_jsonószDirectUrl.to_json)N) rrrr8rMÚpropertyrWrZr=rXrYr`rcrrrrr ©s    )N)N)#Ú__doc__r]ÚreÚ pip._vendorrZpip._vendor.six.moves.urllibrrNÚpip._internal.utils.typingrÚtypingrrrrr r r r ÚDIRECT_URL_METADATA_NAMEÚcompilerHÚ__all__Ú Exceptionrr!r"r*r0ÚobjectrrrZInfoTyper rrrrÚs4   $   )