
    6h                        S SK Jr  S SKrSSKJr  SSKJrJr  SSKJ	r	  SSKJ
r
JrJr  SS	 jrSS
 jr " S S5      rS rg)    )annotationsN   )_)errorpycompat)procutil   )	hgweb_modhgwebdir_modserverc                v   [        U [        5      (       a  [        R                  " SU -  5      e[        U [        5      (       a$  [
        R                  R                  U 5      (       a*  [        U [        5      (       d  [        U [        5      (       a  [        R                  " XS9$ [        R                  " XUS9$ )zcreate an hgweb wsgi object

config can be one of:
- repo object (single repo view)
- path to repo (single repo view)
- path to config file (multi-repo view)
- dict of virtual:real pairs (multi-repo view)
- list of virtual:real tuples (multi-repo view)
s+   Mercurial only supports encoded strings: %rbaseui)namer   )
isinstancestrr   ProgrammingErrorbytesospathisdirdictlistr   hgwebdirr
   hgweb)configr   r   s      :/usr/lib/python3/dist-packages/mercurial/hgweb/__init__.pyr   r       s     &#$$:VC
 	
 
FE	"	"277==+@+@fd##fd## $$V;;??6V<<    c                *    [         R                  " XS9$ )Nr   )r   r   )r   r   s     r   r   r   9   s      77r   c                  &    \ rS rSrS rS rS rSrg)httpservice=   c                (    Xl         X l        X0l        g N)uiappopts)selfr%   r&   r'   s       r   __init__httpservice.__init__>   s    	r   c                t   [         R                  " 5         [        R                  " U R                  U R
                  5      U l        U R                  S   (       a0  U R                  R                  (       d  U R                  S   (       d  g U R                  R                  (       a)  U R                  R                  R                  S5      S-   nOSnSU R                  R                  -  nUS:X  a  SnU R                  R                  nUS:X  a  S	nOS
U;   a  SU-  nU R                  R                  nS
U;   a  SU-  nS[        R                  " U5      [        R                  " U5      U4-  nU R                  S   (       a  U R                  R!                  SU-  5        OU R                  S   (       a  U R                  R"                  nOU R                  R                   nU" [%        S5      U[        R                  " U5      U R                  R                  4-  5        U R                  R'                  5         g )Ns   ports	   print_url   /r   z:%dz:80 z0.0.0.0*:z[%s]s   http://%s%s/%ss   %s
s!   listening at %s (bound to %s:%d)
)r   setsignalhandlerr   create_serverr%   r&   httpdr'   verboseprefixstripportaddrfqaddrr   sysbyteswritestatusr   flush)r(   r4   r6   bindaddrr8   urlr:   s          r   inithttpservice.initC   s   !!#))$''488<
 IIgGGOOIIl+::ZZ&&,,T2T9FFtzz&5=D::??y HH_(H""&=f_Ff%d##
 

 99\"GGMM'C-(yy!78))(3TZZ__EF 	r   c                8    U R                   R                  5         g r$   )r2   serve_forever)r(   s    r   runhttpservice.runs   s    

  "r   )r&   r2   r'   r%   N)__name__
__module____qualname____firstlineno__r)   r?   rC   __static_attributes__ r   r   r!   r!   =   s    
.`#r   r!   c                    U(       a  [         R                  " X S9$ U(       d  [        R                  " [	        S5      5      e[
        R                  " XS9$ )Nr   s5   there is no Mercurial repository here (.hg not found))r   r   r   	RepoErrorr   r
   r   )r   repowebconfs      r   	createapprO   w   sD    $$W<<//JK  t33r   )NNr$   )
__future__r   r   i18nr   r-   r   r   utilsr   r
   r   r   r   r   r!   rO   rJ   r   r   <module>rS      s>    # 	 
  =287# 7#t4r   