
    _h                     6    d dl mZmZ d dlmZ  G d de      Zy)    )BaseCommandCommandError)
connectionc                       e Zd ZdZd Zd Zy)Commandu   Wypisz unikalne wartości dla kolumny w tabeli (domyślnie: extractly_adsmanual). Możesz też włączyć zliczanie częstotliwości.c                 ,   |j                  ddd       |j                  ddd       |j                  d	d
d       |j                  dt        dd       |j                  dg ddd       |j                  dd
d       |j                  dd
d       y )Nz--tableextractly_adsmanualu4   Nazwa tabeli w DB (domyślnie: extractly_adsmanual).)defaulthelpz--columnTu5   Nazwa kolumny, dla której chcesz unikalne wartości.)requiredr   z--count
store_trueuE   Zamiast listy wartości zwróć wartości wraz z liczbą wystąpień.)actionr   z--limitr   u+   Ogranicz liczbę wyników (0 = bez limitu).)typer
   r   z--order)	alpha_asc
alpha_descfreq_asc	freq_descnoner   u    Kolejność sortowania wyników.)choicesr
   r   z--include-nullu.   Uwzględnij wartości NULL jako osobny wiersz.z--lowercaseuA   Porównuj/kategoryzuj po LOWER(text) (przydatne do normalizacji).)add_argumentint)selfparsers     ?/var/www/extractly/houslyspace/management/commands/key_words.pyadd_argumentszCommand.add_arguments   s    )G 	 	

 	H 	 	

 	X 	 	

 	>	 	 	
 	P3	 	 	
 	A 	 	

 	T 	 	
    c           	         |d   }|d   }|d   }|d   }|d   }|d   }|d   }	|st        d      t        j                  j                  }
 |
|      } |
|      }d	| d
}|	rd| dn|}g }|s|j	                  | d       d}|rddj                  |      z   }g }|r;d| d| d| d| d	}|dk(  r|dz  }nB|dk(  r|dz  }n7|dk(  r|dz  }n,|dk(  r'|dz  }n!d| d| d| d}|dk(  r|dz  }n
|dk(  r|dz  }|r|dkD  r|d t        |       dz  }t        j                         5 }	 |j                  ||       |j                         }	 d d d        |rU| j                  j                  d#       D ]4  \  }}|d$n
t        |      }| j                  j                  | d%|        6 y D ].  \  }|d$n
t        |      }| j                  j                  |       0 y # t        $ r}t        d!| d"|       d }~ww xY w# 1 sw Y   xY w)&Ntablecolumncountlimitorderinclude_null	lowercaseu   Musisz podać --column.zCAST(z	 AS TEXT)zLOWER()z IS NOT NULL zWHERE z AND zSELECT z! AS value, COUNT(*) AS freq FROM  z
 GROUP BY r   zORDER BY freq DESC, value ASC r   zORDER BY freq ASC, value ASC r   zORDER BY value DESC r   zORDER BY value ASC zSELECT DISTINCT z AS value FROM r   zLIMIT u   Błąd wykonania SQL: z
SQL: z
value	freqz<NULL>	)r   r   ops
quote_nameappendjoinr   cursorexecutefetchall	Exceptionstdoutwritestr)r   argsoptsr   r   
count_moder!   r"   r#   	use_lowerqnq_tableq_col	base_exprexprwhere_clauses	where_sqlparamssqlr-   rowsevaluefreqval_strs                            r   handlezCommand.handle2   s   Wh']
WWN+%	 899 ^^&&U)6
 E7),	(1	{!$y  E7,!78	 7<<#>>I  $  y+  6$  #77*$66,&--+%,, #4& )y+Q  
 $--+%,, UQYVCJ<q))C  FMsF+( ! KKm,#t&+m(U!!WIRv"67  $
 !&+m(U!!'* !  M"%;A3gcU#KLLM	 ! s*   (H*"G  	G?)G::G??HHN)__name__
__module____qualname__r   r   rF    r   r   r   r      s    	> 	
%
NY+r   r   N)django.core.management.baser   r   	django.dbr   r   rJ   r   r   <module>rM      s    A  F+k F+r   