CoolFace
Apppublic

sourav-das/stem-separator

sourceHugging Facemitupdated 6mo agoView on Hugging Face
3likes
file_manager.cpython-313.pyc30 linesDownload Raw Back to __pycache__
1�

2Ԏ�i���b�SSKrSSKrSSKrSSKrSSKrSSKrSSKJr \"S5rSr	Sr3S\4SjrS\S\4S	jr
S\S4\S\S\4SjrS\S
\S\S\4SjrS\S\S-4SjrS\S\4SjrS\S\S\4SjrS\S\S-4SjrS\S\4SjrS\S\\\44SjrS\S5\S\S-4SjrS\4SjrSrg)�N)�Pathz
/tmp/stem-sepii,�returnc���[R"5RSSn[U-nUR	SSS9 US-R[
[R"555 U$)N�T��parents�exist_ok�.created)�uuid�uuid4�hex�BASE_DIR�mkdir�6write_text�str�time��job_id�job_dirs  �backend\file_manager.py�7create_jobrsW��
�Z�Z�\�
�
�c�r�
"�F����G��M�M�$��M�.��z��%�%�c�$�)�)�+�&6�7��M�rc��[U-$�N)r�rs r�get_job_dirrs
���f��r�filename�contentc��[U5n[U5R=(d SnUSU3-nURU5 U$)N�.wav�input)rr�suffix�write_bytes)rrrr�ext�8input_paths      r�save_uploadr&sD���&�!�G�9�x�.�10�11�12)�6�C��U�3�%�=�(�J����7�#��r�source_filenamec��[XU5$r)r&)rr'rs   r�save_imported_audior)#s���v��8�8rc���[U5nUR5(dgUR5H>nUR5(dMURRS5(dM<Us $ g)Nr!)r�exists�iterdir�is_file�name�13startswith)rr�files   r�get_input_filer1'sV���&�!�G��>�>�������!���<�<�>�>�d�i�i�2�2�7�;�;��K�"�rc��[U5S-$)Nz
metadata.json)rrs r�get_metadata_pathr32s���v���0�0r�metadatac�b�[U5nUR[R"USS9SS9 U$)N�)�indent�utf-8��encoding)r3r�json�dumps)rr4�paths   r�save_job_metadatar>6s,���V�$�D��O�O�D�J�J�x��2�W�O�E��Krc��[U5nUR5(dg[R"UR	SS95$)Nr8r9)r3r+r;�loads�	read_text)rr=s  r�load_job_metadatarB<s4���V�$�D��;�;�=�=���:�:�d�n�n�g�n�6�7�7rc�B�[U5S-nURSSS9 U$)N�stemsTr)rr)r�outs  r�get_output_dirrFCs&��14�f�15��16'�C��I�I�d�T�I�*��Jrc��0n1Skn[U5[U54H�nUR5(dMUR5H�nUR	5(dMUR17R
5U;dM:URRS5(aM\URU;dMnURXR'M� M� U$)z>Find all stem audio files, checking stems subdir and job root.>�.aac�.mp3r �.flacr!)18rFrr+r,r-r"�lowerr.r/�stem)r�result�19audio_exts�	check_dir�fs     r�list_stem_filesrQIs���
�F�2�J�$�V�,�k�&�.A�B�	����!�!���"�"�$�A��y�y�{�{�q�x�x�~�~�/�:�=�a�f�f�FW�FW�X_�F`�F`�ef�ek�ek�sy�ey�!"����v�v��%�C��Mrc��[U5U-nUR5(aU$[U5U-nUR5(aU$gr)rFr+r)rr�	stem_path�	root_paths    r�
get_file_pathrUVsM���v�&��1�I���������F�#�h�.�I��������rc�p�[U5nUR5(a[R"USS9 gg)NT��
ignore_errors)rr+�shutil�rmtreers  r�20delete_jobr[as,���&�!�G��~�~����
�
�g�T�2�rc��# �[R"[5IShv�N [R	5(dM?[21R22"5n[R
5H�nUR5(dMUS-nUR	5(aL[UR5R55nX-23[:�a[R"USS9 M~M�XR5R-24[:�dM�[R"USS9 M� GM)GN![ a Nf=f7f)z<Background task: delete job dirs older than MAX_AGE_SECONDS.TNr25rW)�asyncio�sleep�CLEANUP_INTERVALrr+rr,�is_dir�floatrA�strip�MAX_AGE_SECONDSrYrZ�stat�st_mtime�	Exception)�now�entry�marker�createds    r�cleanup_looprkgs����26��m�m�,�-�-�-�	��?�?�$�$���)�)�+�C�!�)�)�+���|�|�~�~����+���=�=�?�?�#�F�$4�$4�$6�$<�$<�$>�?�G��}��6��
�
�e�4�@�7��Z�Z�\�2�2�2�_�D��
�
�e�4�@�,�
�-��"�	��	�sE�E�D-�E�D0�E�CD0�D0�*E�027D=�:E�<D=�=E)�osrYrrr]r;�pathlibrrrcr_rrr�bytesr&r)r1r3�dictr>rBrFrQrUr[rk�rr�<module>rqsH��	�
�������� �������C����������s��U��t��9��9�c�9�E�9�d�9��3��4�$�;��1�c�1�d�1��c��T��d��8�c�8�d�T�k�8��3��4��28�C�29�D��c��N�30��#��������3�s�3�r