
    VgI                     d    d dl Z d dlZd dlmZmZmZ  ej        e          Z G d d          Z	dS )    N)DictListAnyc                       e Zd Zdeeef         dee         fdZdedee         fdZdedee         fdZ	dd	ed
e
dee         fdZdS )TextProcessor	json_datareturnc                    	 |                      |          }t                              dt          |           d           |S # t          $ r0}t                              dt          |                       d}~ww xY w)z&Process any JSON data into text chunksz
Processed z text chunkszText processing failed: N)_extract_stringsloggerinfolen	Exceptionerrorstr)selfr   chunkses       <e:\project-album-python\Demo Project\Utils\text_processor.pyprocess_json_datazTextProcessor.process_json_data   s    	**955FKK>S[[>>>???M 	 	 	LL<CFF<<===	s   AA 
A>+A99A>queryc                     	 |                      |          S # t          $ r0}t                              dt	          |                       d}~ww xY w)z Process search query into chunkszQuery processing failed: N)_chunk_textr   r   r   r   )r   r   r   s      r   process_queryzTextProcessor.process_query   s^    	##E*** 	 	 	LL=SVV==>>>	s    
A+AAdatac                    g }t          |t                    r@|                                D ]*}|                    |                     |                     +nt          |t
                    r.|D ]*}|                    |                     |                     +n=t          |t                    r(|                    |                     |                     |S )z4Recursively extract all string values from JSON data)
isinstancedictvaluesextendr   listr   r   )r   r   r   valueitems        r   r   zTextProcessor._extract_strings   s    dD!! 	2 < <d33E::;;;;<d## 	2 ; ;d33D99::::;c"" 	2MM$**400111      text
chunk_sizec                 \    fdt          dt                              D             S )z(Split text into chunks of specified sizec                 *    g | ]}||z            S  r*   ).0ir'   r&   s     r   
<listcomp>z-TextProcessor._chunk_text.<locals>.<listcomp>*   s&    NNNQq|^$NNNr$   r   )ranger   )r   r&   r'   s    ``r   r   zTextProcessor._chunk_text(   s3    NNNNNeAs4yy*.M.MNNNNr$   N)r%   )__name__
__module____qualname__r   r   r   r   r   r   r   intr   r*   r$   r   r   r      s        	4S> 	d3i 	 	 	 	3 49    S T#Y    O O O OtCy O O O O O Or$   r   )
jsonloggingtypingr   r   r   	getLoggerr/   r   r   r*   r$   r   <module>r7      s      " " " " " " " " " "		8	$	$#O #O #O #O #O #O #O #O #O #Or$   