Your IP : 216.73.216.213


Current Path : /opt/alt/python27/lib/python2.7/site-packages/requirements_detector/
Upload File :
Current File : //opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyo

�
v2T[c@s�dZddlZddlZddlmZyddlZWn!ek
raddlmZnXd�Z	d�Z
d�Zdefd	��YZ
dS(
sF
This module represents the various types of requirement that can be specified for
a project. It is somewhat redundant to re-implement here as we could use
`pip.req.InstallRequirement`, but that would require depending on pip which is not
easy to do since it will usually be installed by the user at a specific version.
Additionally, the pip implementation has a lot of extra features that we don't need -
we don't expect relative file paths to exist, for example. Note that the parsing here
is also intentionally more lenient - it is not our job to validate the requirements
list.
i����N(tRequirement(tparsecCstjj|kp|jd�S(Nt.(tostpathtsept
startswith(treq((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt_is_filepathscCs;d|krdStj|�}d|kr/dS|ddS(ss
    >>> _parse_egg_name('egg=fish&cake=lala')
    fish
    >>> _parse_egg_name('something_spurious')
    None
    t=teggiN(tNoneturlparsetparse_qs(turl_fragmenttparts((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt_parse_egg_namescCs4|j|j|j|j|jdf}tj|�S(N(tschemetnetlocRtparamstqueryRRt
urlunparse(turlpartstnew_urlparts((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt_strip_fragment*s	tDetectedRequirementcBsneZd	d	d	d	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ed	d��ZRS(
cCsj|dk	r9|j|_||_|j|_d|_n$||_g|_||_d|_||_dS(N(Rtkeytnametrequirementtspecst
version_specsturltlocation_defined(tselfRRRR ((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt__init__8s					cCs3djg|jD]\}}d||f^q�S(Nt,s%s%s(tjoinR(R!tcomptversion((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt
_format_specsEscCsa|jr-|jr&d|j|jfS|jS|jr]|jrVd|j|j�fS|jSdS(Ns	%s#egg=%ss%s%s(RRRR'(R!((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt
pip_formatHs				cCs�|jpd}|jr`djg|jD]\}}d||f^q(�}d||f}n|jrd||jf}n|S(NtUnknownR#s%s%ss%s (%s)(RRR$R(R!trepR%R&R((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt__str__Rs	5	cCs-tt|j�t|j�t|j��S(N(thashtstrRRR(R!((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt__hash__[scCsdt|�S(NsDetectedRequirement:%s(R-(R!((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt__repr__^scCs4|j|jko3|j|jko3|j|jkS(N(RRR(R!tother((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt__eq__ascCs|jpd|jpdkS(Nt(R(R!R0((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt__gt__dscCsY|j�}tjdd|�}tj|�}d}d|jksT|jdkr�|jdkrld}n	|j}tjtjdtj|j�d|��}n|dkr|jdkrt|�rytj	|�}Wnt
k
r�dSXtd|d|�Snt|j
�}t|�}|r@d	||f}ntd
|d|d|�S(
Ns^(-e|--editable) R2t+tgitsgit+gits^%s://RR s%s://%sRR(R5(tstriptretsubRRRtescapeRRRt
ValueErrorRRtfragmentR(tlineR Rt
vcs_schemeRR((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyRgs(		1(
N(
t__name__t
__module__RR"R'R(R+R.R/R1R3tstaticmethodR(((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyR6s
		
						(t__doc__RR7t
pkg_resourcesRRtImportErrorturllibRRRRtobjectR(((sR/opt/alt/python27/lib/python2.7/site-packages/requirements_detector/requirement.pyt<module>
s