Team Ai
Apppublic

afulara/PythonicRAG-FastAPI-React

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes
text_utils.cpython-313.pyc39 linesDownload Raw Back to __pycache__
1�

2X��g����SSKrSSKJr SSKr"SS5r"SS5r"SS5r\S	:Xa�\"S35r\R5 \"5r4\5R\R5r
\"\"\
55 \"\
S5 \"S5 \"\
S5 \"S5 \"\
S
5 \"S5 \"\
S5 gg)�N)�Listc�B�\rSrSrSS\S\4SjjrSrSrSrSr	S	r6g7)�TextFileLoader��path�encodingc�*�/UlXlX lg�N)�	documentsrr)�selfrrs   �w/Users/aqsa/AI Projects/AIE6 Class Projects/AIE6-DeployPythonicRAG/fastapi-react-app/backend/aimakerspace/text_utils.py�__init__�TextFileLoader.__init__s������	� �
�c�T�[RRUR5(aUR5 g[RR	UR5(a1URRS5(aUR
5 g[S5e)N�.txtz;Provided path is neither a valid directory nor a .txt file.)�osr�isdir�load_directory�isfile�endswith�	load_file�8ValueError�rs r
�load�TextFileLoader.loadsj��
�7�7�=�=����#�#����!�
�W�W�^�^�D�I�I�
&�
&�4�9�9�+=�+=�f�+E�+E��N�N���M��
rc���[URSURS9nURR	UR55 SSS5 g!,(df   g=f)N�r�r)�openrrr�append�read)r�fs  r
r�TextFileLoader.load_files<��
�$�)�)�S�4�=�=�
9�Q��N�N�!�!�!�&�&�(�+�:�
9�
9�s�*A�9A!c��[R"UR5H�upnUHnURS5(dM[	[RRX5SURS9nURRUR55 SSS5 M� M� g!,(df   M�=f)Nrrr)10r�walkrrr �joinrrr!r")r�root�_�files�filer#s      r
r�TextFileLoader.load_directorys��� �g�g�d�i�i�0�N�D�U����=�=��(�(�������T�0�#��
�
������-�-�a�f�f�h�7����1���s�6*B1�111Cc�:�UR5 UR$r12�rrrs r
�load_documents�TextFileLoader.load_documents#����	�	���~�~�r)rrrN)zutf-8��__name__�13__module__�__qualname__�__firstlineno__�strrrrrr/�__static_attributes__�rr
rrs)��!�S�!�C�!�14�,�8�rrc�d�\rSrSrSS\S\4SjjrS\S\\4SjrS\\S\\4S	jr	S15r16g)
�CharacterTextSplitter�(�17chunk_size�
chunk_overlapc�4�X:�dS5eXlX lg)Nz-Chunk size must be greater than chunk overlap)r=r>)rr=r>s   r
r�CharacterTextSplitter.__init__)s'��
�&�	;�:�	;�&�%��*�r�text�returnc��/n[S[U5URUR-185H"nUR	XX0R-5 M$ U$)Nr)�range�lenr=r>r!)rrA�chunks�is    r
�split�CharacterTextSplitter.split5sK�����q�#�d�)�T�_�_�t�7I�7I�%I�J�A��M�M�$�1���#6�7�8�K��
r�textsc�\�/nUH#nURURU55 M% U$r19)�extendrH)rrJrFrAs    r
�split_texts�!CharacterTextSplitter.split_texts;s+�����D��M�M�$�*�*�T�*�+���
r)r>r=N)i���)r3r4r5r6�intrr7rrHrMr8r9rr
r;r;(sS��� �20+��21+��22+��#��$�s�)����c���t�C�y�rr;c�:�\rSrSrS\4SjrSrSrSrSr	Sr23g	)24�	PDFLoader�Brc�N�/UlXl[SUR35 g)Nz!PDFLoader initialized with path: )rr�print)rrs  r
r�PDFLoader.__init__Cs"������	�
�1�$�)�)��=�>rc	�H�[SUR35 [S[RRUR535 [S[RR	UR535 [S[RRUR535 [S[
[R"UR5R5SS35 [URS5nSSS5 UR5 g!,(df   N=f![a)n[SURS	[U535eSnAf[a)n[S25URS	[U535eSnAff=f)NzLoading PDF from path: z
Path exists: z	Is file: zIs directory: zFile permissions: ������rbzCannot access file at 'z': zError processing file at ')rUrr�existsrr�oct�stat�st_moder r�IOErrorrr7�	Exception)r�	test_file�es   r
r�PDFLoader.loadHs;��
�'��	�	�{�3�4�
�
�b�g�g�n�n�T�Y�Y�7�8�9�:�
�	�"�'�'�.�.����3�4�5�6�
��r�w�w�}�}�T�Y�Y�7�8�9�:�
�"�3�r�w�w�t�y�y�'9�'A�'A�#B�2�3�#G�"H�I�J�	R��d�i�i��&�)��'�
�N�N��	'�&���	O��6�t�y�y�k��S��V�H�M�N�N���	R��9�$�)�)��C��A��x�P�Q�Q��	R�s<�;D=�D,�D=�,26D:�6D=�=27F!�$E+�+
F!�8$F�F!c��[URS5n[R"U5nSnURHnX4R5S--
nM URRU5 SSS5 g!,(df   g=f)NrY��28)r r�PyPDF2�	PdfReader�pages�extract_textrr!)rr+�29pdf_readerrA�pages     r
r�PDFLoader.load_file\so��
�$�)�)�T�
"�d��)�)�$�/�J��D�"�(�(���)�)�+�d�2�2��)�
�N�N�!�!�$�'�#�
"�
"�s�AA<�<30B31c���[R"UR5H�upnUH�nUR5R	S5(dM)[RRX5n[
US5n[R"U5nSnURHn	X�R5S--
nM URRU5 SSS5 M� M� g!,(df   M�=f)Nz.pdfrYrdre)
rr&r�lowerrr'r rfrgrhrirr!)32rr(r)r*r+�	file_pathr#rjrArks33          r
r�PDFLoader.load_directoryhs��� �g�g�d�i�i�0�N�D�U����:�:�<�(�(��0�0� "�����T� 8�I��i��.�!�%+�%5�%5�a�%8�34� "��$.�$4�$4�D� �$5�$5�$7�$�$>�>�D�%5����-�-�d�3�/�.��1�/�.�s
�=AC*�*35C9c�:�UR5 UR$r36r.rs r
r/�PDFLoader.load_documentswr1r)rrNr2r9rr
rRrRBs#��?�S�?�37R�(38(�
4�rrR�__main__zdata/KingLear.txtz--------�����������)r�typingrrfrr;rRr3�loaderr�splitterrMrrFrUrEr9rr
�<module>rzs���	��
���D��47�7�t�z��
�/�
0�F�39�K�K�M�$�&�H�
�
!�
!�&�"2�"2�
3�F�	�#�f�+��	�&��)��	�*��	�&��)��	�*��	�&��*��	�*��	�&��*��r