
Â:•jh  ã            	   @   sJ  d  Z  d d l m Z d d l Z d d l Z d d l Z d d l m Z e j j	 e j j
 e ƒ ƒ Z xš e e j j e d ƒ ƒ D]} Z e j ƒ  Z e r„ e j d ƒ r„ d e k r„ e j d ƒ \ Z Z Z e j j e j ƒ  e j ƒ  j d ƒ j d	 ƒ ƒ q„ Wd d l Z d
 d „  Z d d „  Z d d „  Z g  Z xgd> D]_Z e j j d e d ƒ Z e j j d e d ƒ Z  e j j d e d ƒ Z! e o¢e  o¢e! s¨qBe j d e j d ƒ d e e  e! ƒ d d ƒZ" e" j# ƒ  e" j$ ƒ  Z% e& e% e' ƒ re% n e( d d „  d? Dƒ g  ƒ Z) d" d# „  e) Dƒ Z* e e* ƒ Z+ e j, d$ e pQd% e+ f ƒ e- d& e pkd% e. e) ƒ e. e+ ƒ e/ d' d „  e+ j0 ƒ  Dƒ ƒ f ƒ qBWe j1 d( d) d* e j2 ƒ  d+ i  ƒZ" e" j# ƒ  e j3 e" j$ ƒ  ƒ Z4 d, d# „  e4 Dƒ Z* e e* ƒ Z5 e j, d- e5 f ƒ e- d. e. e4 ƒ e. e5 ƒ e/ d/ d „  e5 j0 ƒ  Dƒ ƒ f ƒ e j j d0 d ƒ Z6 e j j d1 d ƒ Z7 e j e6 d2 d* d3 e7 i d d4 ƒZ8 e8 j# ƒ  e8 j$ ƒ  j d5 g  ƒ Z9 e- d ƒ e- d6 e. e9 ƒ ƒ i  Z: d Z; x” e9 D]Œ Z< e e< j d7 d ƒ ƒ Z= e= s2e; d8 7Z; e; d8 7Z; q÷xN e D]< \ Z> Z+ e e+ e= ƒ Z? e? r9e: j e> d ƒ d8 e: e> <Pq9We; d8 7Z; q÷We@ e. e9 ƒ d8 ƒ ZA e- d ƒ e- d9 ƒ d ZB xO e D]G \ Z> Z e: j e> d ƒ Z eB e 7ZB e- d: e> e d; e eA f ƒ q½We- d: d< eB d; eB eA f ƒ e- d: d= e; d; e; eA f ƒ d S)@a  Cobertura real de telefono por ONU usando ISPGestion (prioritaria)
y Gossan de respaldo. Cruce por nombre. Homonimo dentro de una fuente
-> esa fuente no da numero.

1 llamada SmartOLT + 1 Gossan + 1 por instancia ISP.
Imprime SOLO conteos. Nunca nombres ni telefonos.é    )Úprint_functionN)ÚHTTPBasicAuthz.envú#ú=ú"ú'c             C   ss   t  j d |  p d ƒ }  d j d d „  |  Dƒ ƒ }  d j d d „  |  j ƒ  Dƒ ƒ } t d d „  | j ƒ  Dƒ ƒ S)NZNFKDÚ c             s   s$   |  ] } t  j | ƒ s | Vq d  S)N)ÚunicodedataZ	combining)Ú.0Úc© r   ú*/home/gor/snmp/smartolt/cobertura_total.pyú	<genexpr>   s    znorm.<locals>.<genexpr>c             s   s'   |  ] } | j  ƒ  r | n d  Vq d S)ú N)Úisalnum)r
   r   r   r   r   r      s    c             s   s'   |  ] } t  | ƒ d  k r | Vq d S)é   N)Úlen)r
   Úpr   r   r   r      s    )r	   Z	normalizeÚjoinÚupperÚ	frozensetÚsplit)ÚtÚsr   r   r   Únorm   s    "r   c             C   sL   i  } x? |  D]7 \ } } t  | ƒ } | r | j | g  ƒ j | ƒ q W| S)z:pares: lista de (nombre, telefono) -> {clave: [telefonos]})r   Ú
setdefaultÚappend)ÚparesÚidxÚnombreÚtelÚkr   r   r   Úindexar   s    r"   c             C   s4   |  j  | ƒ } | s( t | ƒ d k r, d S| d S)z#None si no esta o si hay homonimos.r   Nr   )Úgetr   )r   ZclaveÚvr   r   r   Úbuscar)   s    r%   Ú1Ú2r   zISPG%s_HOSTzISPG%s_USERzISPG%s_PASSzhttps://%s/api/clientesú/ZauthZtimeouté<   c             c   s1   |  ]' } t  t j | ƒ t ƒ r t | Vq d  S)N)Ú
isinstanceÚdr#   Úlist)r
   r!   r   r   r   r   >   s    r   ÚclientesÚdataÚresultÚitemsÚrowsc             C   sŒ   g  |  ]‚ } | j  d  ƒ pF d | j  d ƒ p0 d | j  d ƒ pB d f t | j  d ƒ py | j  d ƒ py | j  d ƒ py d ƒ j ƒ  f ‘ q S)Znombrecompletoz%s %sr   r   Z	apellidosZmovilZ	movil_smsZ	telefono1)r#   ÚstrÚstrip)r
   r   r   r   r   ú
<listcomp>@   s   	r4   zISP%sÚ0z3ISP%s: %d clientes, %d nombres unicos, %d homonimosc             c   s'   |  ] } t  | ƒ d  k r d  Vq d S)r   N)r   )r
   Úxr   r   r   r   I   s    ZPOSTz/app/cc/cliente/search-basicZheadersÚjsonc                sG   g  |  ]= ‰  d  j  ‡  f d d †  d Dƒ ƒ t j ˆ  ƒ p= d f ‘ q S)r   c             3   s*   |  ]  } t  ˆ  j | ƒ p d  ƒ Vq d S)r   N)r2   r#   )r
   r!   )Úgr   r   r   O   s    z<listcomp>.<genexpr>Ú	txtNombreÚtxtApellidoÚtxtLastApellidor   )r9   r:   r;   )r   ÚgossanZ_telefono_de)r
   r   )r8   r   r4   O   s   	ZGossanz4Gossan: %d clientes, %d nombres unicos, %d homonimosc             c   s'   |  ] } t  | ƒ d  k r d  Vq d S)r   N)r   )r
   r6   r   r   r   r   U   s    ZSMARTOLT_BASEZSMARTOLT_API_KEYz/onu/get_all_onus_detailszX-Tokené   ÚonuszONUs:Únamer   z)===== COBERTURA DE TELEFONO POR ONU =====z  %-8s %5d  (%.1f%%)g      Y@ZTOTALzsin tel)r&   r'   r   )r-   r.   r/   r0   r1   )CÚ__doc__Z
__future__r   Úosr	   ZrequestsZrequests.authr   ÚpathÚdirnameÚabspathÚ__file__ÚRÚopenr   Úlr3   Ú
startswithÚ	partitionr   Ú_r$   Úenvironr   r<   r   r"   r%   ZfuentesÚnr#   ÚhÚur   ÚrZraise_for_statusr7   r+   r*   r,   ÚnextZlistar   r   r   Úprintr   ÚsumÚvaluesZ	_peticionZ
_cabecerasZ_desenvolverÚregsZidx_gÚBÚTZrespr>   Z
por_fuenteZsin_nadaÚor!   Zetiquetar    Úmaxr   Ztotalr   r   r   r   Ú<module>   sœ   ""5

		
(
	
6






#