
    h                        d dl mZ d dlmZmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZmZmZ d dlZd dlmZ  e            ZdZddZddZddZd dZe                    de          d!d            ZdS )"    )annotations)AnyDictListTuple)	APIRouterRequest)HTMLResponse)	templatessbloggerN)Counteru-   산업통상자원중소벤처기업위원회txtstrreturnintc                    | pd                                 }|                    d          rdS |                    d          rdS dS )N u	   위원장r   u   간사      )strip
startswith)r   ts     4/var/www/html/bot/app/web/pages/congress/industry.py
_role_rankr      sN    	A||K   q||H q1    nr   c                p    	 t          |           }n# t          $ r Y dS w xY w|dk    rdS |dk    rdS | dS )N-r   u   초선r   u   재선u   선)r   	Exception)r   vs     r   _label_electionr"      s^    FF   ssAvvxAvvx999s    
  rowsList[Dict[str, Any]]Tuple[List[str], List[int]]c                V   t          d | D                       }|sg g fS |                    d          }d |D             d |D             }t          fd|                                D                       }|r*                    d           |                    |           |fS )Nc              3     K   | ]V}|                     d           pd                                +|                     d           pd                                V  WdS partyr   Ngetr   .0rs     r   	<genexpr>z!_party_summary.<locals>.<genexpr>!   s^      aaQ155>>CWUWB^B^B`B`a155>>'R..00aaaaaar   r   c                    g | ]\  }}|S  r1   )r-   p_s      r   
<listcomp>z"_party_summary.<locals>.<listcomp>%       !!!DAqa!!!r   c                    g | ]\  }}|S r1   r1   )r-   r3   cs      r   r4   z"_party_summary.<locals>.<listcomp>&   r5   r   c              3  *   K   | ]\  }}|v	|V  d S )Nr1   )r-   kr!   labelss      r   r/   z!_party_summary.<locals>.<genexpr>'   s+      >>tq!avoooooo>>r   u   비교섭단체)r   most_commonsumitemsappend)r#   cnttop2countsothersr:   s        @r   _party_summaryrC       s    
aa$aaa
a
aC Bx??1D!!D!!!F!!D!!!F>>>>syy{{>>>>>F '(((fFr   r!   
str | Nonec                    | pd                                 }|r'd                    |                                          ndS )Nr   z<br>)r   joinsplit)r!   ss     r   _district_brrI   -   s9    	
bA%&.6;;qwwyy!!!B.r   z/congress/industry)response_classrequestr	   c           	       	K   g }	 t          j        d                              d                              dt                                        d                                          j        pg }n0# t          $ r#}t          j
        d|            g }Y d }~nd }~ww xY w|D ]L}t          |                    d                    |d<   t          |                    d                    |d	<   Mt          d
 |D                       	d	fd}|                    |           t!          |          \  }}||t#          |          d}t%          j        |d          }t)          j        d| t          |||d          S )Ncongress_memberzrole_name,full_name,name_hanja,party,district,phone,room_no,photo_url,member_page_url,aide_staff,aide_secretary,aide_secretary2,election_countcommittee_namei  zindustry list fetch failed: election_countelection_labeldistrictdistrict_brc              3  h   K   | ]-}|                     d           pd                                V  .dS r(   r*   r,   s     r   r/   z$congress_industry.<locals>.<genexpr>J   s=      GGQ155>>/R6688GGGGGGr   r.   Dict[str, Any]c                $   |                      d          pd}|                      d          pd                                }|                      d          pd                                }t          |                               |d           |fS )N	role_namer   r)   	full_namer   )r+   r   r   )r.   roler)   nameparty_counts       r   	_sort_keyz$congress_industry.<locals>._sort_keyM   s    uu[!!'Rw%2,,..k""(b//11t__UA&&&
 	
r   )key)r:   rA   totalF)ensure_asciizcongress/industry.html)rK   rN   r#   chart
chart_json)r.   rT   )r   tableselecteqINDUSTRY_COMMITTEElimitexecutedatar    r   warningr"   r+   rI   r   sortrC   r<   jsondumpsr   TemplateResponse)
rK   r#   er.   r[   r:   rA   r_   r`   rZ   s
            @r   congress_industryrn   1   s     !#DH&''VK  R "455U3ZZWYY
  	    9a99:::
  ; ;-aee4D.E.EFF
'j(9(9::- GG$GGGGGK
 
 
 
 
 
 	II)I $D))NFF#f++FFEE666J% 0$	
 	
	 	 	s   A,A4 4
B!>BB!)r   r   r   r   )r   r   r   r   )r#   r$   r   r%   )r!   rD   r   r   )rK   r	   )
__future__r   typingr   r   r   r   fastapir   r	   fastapi.responsesr
   app.web.depsr   r   r   rj   collectionsr   routerrd   r   r"   rC   rI   r+   rn   r1   r   r   <module>rv      s;   " " " " " " ) ) ) ) ) ) ) ) ) ) ) ) & & & & & & & & * * * * * * . . . . . . . . . .       	D    	 	 	 	   / / / /  >>5 5 5 ?>5 5 5r   