§
    ÎÐj°@  ã                   óÐ   — d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZmZ ddlmZ ddœd„Z G d„ d¦  «        ZdS )zIPaged native workspace management, independent of Gradio component state.é    N)Ú	urlencode)ÚCounter)ÚPath)Úregister_downloadÚregister_file_downloadÚstream_writer)ÚGALLERY_SOURCESÚSOURCES)Úgallery_offset)Úupdate_config)ÚARCHIVE_AFTER_DAYS_KEYÚARCHIVE_PERIODSÚmedia_available)Úbundle_filesF©Úinplacec                ó*  ‡ ‡‡— ‰ |dz            Š‰ |dz            }ˆfd„|D ¦   «         }|r|‰d d …<   n|‰ |dz   <   |dz   Š‰‰ v rl t          ‰ ‰         ¦  «        ¦   «         }|                     ˆ ˆfd„|D ¦   «         ¦  «         |r&t                               |¦  «        ‰ ‰         d d …<   n|‰ ‰<   ||v r|                     |¦  «        nt          |t          |¦  «        dz
  ¦  «        ‰ |dz   <   ‰ |dz            t          |¦  «        dz
  k    ‰ |dz   <   d S )NÚ	file_listÚselectedc                 ó    •— g | ]
}‰|         ‘ŒS © r   )Ú.0ÚiÚpathss     €úEC:\Users\johnn\OneDrive\Documents\AI\shared\deepy\workspace_viewer.pyú
<listcomp>z"retain_entries.<locals>.<listcomp>   s   ø€ Ð*Ð*Ð*˜Q��a”Ð*Ð*Ð*ó    Úfile_settings_listc              3   óZ   •K  — | ]%}t                                ‰‰         |¦  «        V — Œ&d S ©N)ÚlistÚ__getitem__)r   r   ÚgalleryÚsettings_keys     €€r   ú	<genexpr>z!retain_entries.<locals>.<genexpr>   s9   øè è € Ð ]Ð ]ÐPQ¥×!1Ò!1°'¸,Ô2GÈÑ!KÔ!KÐ ]Ð ]Ð ]Ð ]Ð ]Ð ]r   é   Úlast_selected)ÚtypeÚextendr!   Ú__iter__ÚindexÚminÚlen)	r#   ÚprefixÚindicesr   r   ÚretainedÚretained_settingsr   r$   s	   `      @@r   Úretain_entriesr2      sk  øøø€ Ø�F˜[Ñ(Ô)€EØ�v 
Ñ*Ô+€HØ*Ð*Ð*Ð* 'Ð*Ñ*Ô*€HØð 1Øˆˆaˆaˆa‰ˆà(0ˆ�˜Ñ$Ñ%ØÐ0Ñ0€LØ�wÐÐà7�D ¨Ô!6Ñ7Ô7Ñ9Ô9ÐØ× Ò Ð ]Ð ]Ð ]Ð ]Ð ]ÐU\Ð ]Ñ ]Ô ]Ñ]Ô]Ð]Øð 	6Ý'+§}¢}Ð5FÑ'GÔ'GˆG�LÔ! ! ! !Ñ$Ð$à$5ˆG�LÑ!Ø>FÈ'Ð>QÐ>Q 7§=¢=°Ñ#:Ô#:Ð#:ÕWZÐ[cÕehÐipÑeqÔeqÐtuÑeuÑWvÔWv€GˆF�ZÑÑ Ø(/°¸Ñ0CÔ(DÍÈGÉÌÐWXÑHXÒ(X€GˆF�_Ñ$Ñ%Ð%Ð%r   c                   óZ   — e Zd ZdZd„ Zdd„Zd„ Zd„ Zdd„Zdd
dœd„Z	d„ Z
d„ Zd„ Zd„ ZdS )ÚWorkspaceVieweré<   c                 ó"   — || _         i | _        d S r    )ÚserviceÚ_cache)Úselfr7   s     r   Ú__init__zWorkspaceViewer.__init__+   s   € ØˆŒØˆŒˆˆr   Nc                 ó˜  — | j         j        5  | j         j                             ¦   «         }|�b|d„ t          D ¦   «         vrt          d¦  «        ‚| j         j        j        j                             ¦   «         }t          ||t          |i¦  «         | 
                    t          d¦  «        t          dœcd d d ¦  «         S # 1 swxY w Y   d S )Nc                 ó   — h | ]\  }}|’ŒS r   r   )r   Ú_Úvalues      r   ú	<setcomp>z,WorkspaceViewer.retention.<locals>.<setcomp>3   s   € ÐFÐFÐF©(¨!¨U ÐFÐFÐFr   z,Choose a supported workspace archive period.r   )ÚdaysÚchoices)r7   Ú_mutation_lockÚ_depsÚget_server_configr   Ú
ValueErrorÚ
controllerÚget_server_config_filenamer   r   Úget)r9   r@   ÚconfigÚfilenames       r   Ú	retentionzWorkspaceViewer.retention/   s  € ØŒ\Ô(ð 	_ð 	_Ø”\Ô'×9Ò9Ñ;Ô;ˆFØÐØÐFÐFµoÐFÑFÔFÐFÐFÝ$Ð%SÑTÔTÐTØœ<Ô-Ô8Ô>×YÒYÑ[Ô[�Ý˜f hÕ1GÈÐ0NÑOÔOÐOØ"ŸJšJÕ'=¸qÑAÔAÍoÐ^Ð^ð	_ð 	_ð 	_ð 	_ñ 	_ô 	_ð 	_ð 	_ð 	_ð 	_ð 	_ð 	_øøøð 	_ð 	_ð 	_ð 	_ð 	_ð 	_s   �B%B?Â?CÃCc                 ó  — | j         j        5  || j         j        k    rt          d¦  «        ‚| j         j                             ||¦  «         | j                              ¦   «          d|icd d d ¦  «         S # 1 swxY w Y   d S )Nú/The active workspace changed. Please try again.Úarchive_protected)r7   rB   Úworkspace_idrE   Ú
workspacesÚprotectÚpublish_workspaces)r9   Ú	workspaceÚ	protecteds      r   rQ   zWorkspaceViewer.protect9   sÇ   € ØŒ\Ô(ð 	4ð 	4Ø˜DœLÔ5Ò5Ð5Ý Ð!RÑSÔSÐSØŒLÔ#×+Ò+¨I°yÑAÔAÐAØŒL×+Ò+Ñ-Ô-Ð-Ø'¨Ð3ð	4ð 	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   �AA6Á6A:Á=A:c                 ó  — |t           vrt          d¦  «        ‚t           |         j        }| j        j        d         }||dz            }d„ t          |¦  «        D ¦   «         }t          |¦  «        t          |¦  «        k    rt          |||d¬¦  «         | j        j        t          |¦  «        | j        j
                             ¦   «         d         f}| j                             |¦  «        }|�|d         |k    �rt          ¦   «         }g }	t          |¦  «        D ]‡\  }
}||xx         d	z  cc<   t          j        |d
z   t#          ||         ¦  «        z                        ¦   «         ¦  «                             ¦   «         d d…         }|	                     ||
|dœ¦  «         Œˆ|t          j        t+          |¦  «                             ¦   «         ¦  «                             ¦   «         |	d„ |	D ¦   «         |dœ}|| j        |<   |S )Nz&Choose one of the workspace galleries.Úgenr   c                 ó6   — g | ]\  }}t          |¦  «        ¯|‘ŒS r   )r   )r   r+   Úpaths      r   r   z,WorkspaceViewer._catalog.<locals>.<listcomp>G   s*   € ÐXÐXÐX™{˜u dÅ/ÐRVÑBWÔBWÐX�UÐXÐXÐXr   Tr   Úclear_file_listÚ	signaturer&   ú é   )Úkeyr+   rX   c                 ó    — i | ]}|d          |“ŒS ©r]   r   ©r   Úentrys     r   ú
<dictcomp>z,WorkspaceViewer._catalog.<locals>.<dictcomp>S   sO   € ð  Oyð  Oyð  Oyð  hmð  PUð  V[ô  P\ð  ^cð  Oyð  Oyð  Oyr   )rZ   ÚrevisionÚentriesÚby_keyr.   )r
   rE   r.   r7   Ú_stateÚ	enumerater-   r2   rO   ÚtuplerC   rD   r8   rH   r   ÚhashlibÚsha256ÚstrÚencodeÚ	hexdigestÚappendÚrepr)r9   Úsourcer.   rV   r   Ú	availablerZ   ÚcachedÚoccurrencesrd   r+   rX   r]   s                r   Ú_catalogzWorkspaceViewer._catalogA   s  € Ø�Ð Ð ÝÐEÑFÔFÐFÝ˜”Ô'ˆØŒlÔ! %Ô(ˆØ�F˜[Ñ(Ô)ˆØXÐX­i¸Ñ.>Ô.>ÐXÑXÔXˆ	Ýˆy‰>Œ>�S ™ZœZÒ'Ð'Ý˜3 ¨	¸4Ð@Ñ@Ô@Ð@Ø”\Ô.µ°e±´¸d¼lÔ>P×>bÒ>bÑ>dÔ>dÐevÔ>wÐxˆ	Ø”—’ Ñ(Ô(ˆØˆ>˜V KÔ0°IÒ=Ñ=Ý!™)œ)ˆKØˆGÝ(¨Ñ/Ô/ð Kð K‘��tØ˜DÐ!Ð!Ô! QÑ&Ð!Ð!Ñ!Ý”n d¨T¡kµC¸ÀDÔ8IÑ4JÔ4JÑ&J×%RÒ%RÑ%TÔ%TÑUÔU×_Ò_ÑaÔaÐbeÐceÐbeÔf�Ø—’ s°UÀDÐIÐIÑJÔJÐJÐJØ#,½'¼.ÍÈiÉÌ×I_ÒI_ÑIaÔIaÑ:bÔ:b×:lÒ:lÑ:nÔ:nð  |Cð  Oyð  Oyð  qxð  Oyñ  Oyô  Oyð  EKð  Lð  LˆFØ"(ˆDŒK˜ÑØˆr   Úvideor   r   Fc                 ó>  ‡— | j         j        5  | j         j        5  || j         j        k    rt	          d¦  «        ‚| j         j        d         }|r|d         }|                      |¦  «        Št          ‰d         ¦  «        }|rF|‰d         dz            }d|cxk    r|k     rn n‰d         |         d         gng }|r
|| j        z  nd}t          d	|| j        z   d	z
  | j        z  ¦  «        }	t          dt          ||	d	z
  ¦  «        ¦  «        }t          |‰d
         d         ¦  «        }
g }‰d         || j        z  |d	z   | j        z  …         D ]æ}|d         }| j         j                             |¦  «        }	 t          j        |¦  «        j        }t#          |¦  «        }n# t$          $ r d }Y nw xY w|d         |d         t'          |¦  «        j        ||d         |
k    |r|d         nd |r|d         nd dœ}|r$|dv r dt+          |||d         |dœ¦  «        z   |d<   |                     |¦  «         Œç| j         j                             |¦  «        }d„ t2          D ¦   «         }| j         j                             |¦  «        }||                     dd¦  «        |rt7          |¦  «        nd ||d         |d         |d         |‰d         ||	|||
z
  |ˆfd„|D ¦   «         dœcd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nú:The active workspace changed. Reopen the workspace viewer.rV   Úcurrent_gallery_sourcerd   r.   r   r   r]   r&   rZ   é   rX   r+   ÚurlÚ
size_bytes)r]   r+   ÚnameÚkindÚvisiblerz   Úsize)Úimageru   Ú3dz%deepy_api/workspace_viewer/thumbnail?)rS   rp   r]   ÚvÚ	thumbnailc                 ó8   — g | ]}|j         |j        |j        d œ‘ŒS )©ÚidÚlabelÚacceptr…   ©r   r#   s     r   r   z(WorkspaceViewer.page.<locals>.<listcomp>u   s)   € Ð{Ð{Ð{Ð`g˜gœj°7´=ÈGÌNÐ[Ð[Ð{Ð{Ð{r   Ústorage_modeÚsharedr|   Úlast_activityrN   rc   c                 ó(   •— g | ]}|‰d          v ¯|‘ŒS )re   r   ©r   r]   Úcatalogs     €r   r   z(WorkspaceViewer.page.<locals>.<listcomp>w   se   ø€ ð  tið  tið  tið  }@ð  PSð  W^ð  _gô  Whð  Phð  Phð  uxð  Phð  Phð  Phr   )rS   rŠ   ÚfolderÚsourcesr|   rŒ   rN   rp   rc   ÚpageÚpagesÚtotalr~   Úitemsr   )r7   rB   Úgallery_lockrO   rE   rf   rt   r-   Ú	page_sizeÚmaxr,   r   r#   Ú_detect_media_typeÚosÚstatÚst_mtime_nsr   ÚOSErrorr   r|   r   rn   rP   rH   r	   Ú	media_dirrk   )r9   rS   rp   r’   r   ÚinitialrV   Úcountr+   r“   Úoffsetr•   ra   rX   r}   ÚstampÚdownloadÚitemÚrecordr‘   Ú	directoryr�   s                        @r   r’   zWorkspaceViewer.pageW   sl  ø€ ØŒ\Ô(ð 	jð 	j¨$¬,Ô*Cð 	jð 	jØ˜DœLÔ5Ò5Ð5Ý Ð!]Ñ^Ô^Ð^Ø”,Ô% eÔ,ˆCØð 7ØÐ5Ô6�Ø—m’m FÑ+Ô+ˆGÝ˜ 	Ô*Ñ+Ô+ˆEØð BØ˜G HÔ-°
Ñ:Ô;�ØABÀeÐASÐASÒASÐASÈeÒASÐASÐASÐASÐAS˜G IÔ.¨uÔ5°eÔ<Ð=Ð=ÐY[�Ø2:ÐA�u ¤Ñ.Ð.À�Ý˜˜E D¤NÑ2°QÑ6¸4¼>ÑIÑJÔJˆEÝ�q�#˜d E¨A¡IÑ.Ô.Ñ/Ô/ˆDÝ# E¨7°;Ô+?ÀÔ+BÑCÔCˆFØˆEØ  Ô+¨D°4´>Ñ,AÀ4È!Á8ÈtÌ~ÑB]Ð,]Ô^ð #ð #�Ø˜V”}�Ø”|Ô+×>Ò>¸tÑDÔD�ð$ÝœG D™MœMÔ5�EÝ5°dÑ;Ô;�H�HøÝð $ð $ð $Ø#�H�H�Hð$øøøà$ Uœ|°e¸G´nÍdÐSWÉjÌjÌoÐgkÐx}ð  Fô  yGð  KQò  yQð  muð  Zð  Zbð  chô  Zið  Zið  {ð  ckð  Iuð  IQð  R^ô  I_ð  I_ð  quð  vð  v�Øð i Ð(@Ð @Ð @Ø(OÕR[Ðjsð  @Fð  OTð  UZô  O[ð  bgð  ]hð  ]hñ  Siô  Siñ  )i�D˜Ñ%Ø—’˜TÑ"Ô"Ð"Ð"Ø”\Ô,×0Ò0°Ñ;Ô;ˆFØ{Ð{ÕkzÐ{Ñ{Ô{ˆGØœÔ/×9Ò9¸)ÑDÔDˆIØ!*¸F¿JºJÀ~ÐW_Ñ<`Ô<`ð  Hð  mRÕloÐpyÑlzÔlzÐlzð  NRð  _fð  pvð  w}ô  p~ð  QWð  Xgô  Qhð  Eð  FYô  Zð  flð  zAð  BLô  zMð  W[ð  fkð  v{ð  HMð  PVñ  HVð  afð  tið  tið  tið  tið  DLð  tiñ  tiô  tið  jð  jð?	jð 	jð 	jð 	jñ 	jô 	jð 	jð 	jð 	jð 	jð 	jñ 	jô 	jð 	jð 	jð 	jð 	jð 	jð 	jøøøð 	jð 	jð 	jð 	jð 	jð 	jð 	jñ 	jô 	jð 	jð 	jð 	jð 	jð 	jð 	jð 	jøøøð 	jð 	jð 	jð 	jð 	jð 	jsZ   ŽL›EK:Å8(F!Æ K:Æ!F0	Æ-K:Æ/F0	Æ0D1K:Ë!LË:K>	Ë>LÌK>	ÌLÌLÌL)r�   Ú	confirmedc                ó  — | j         }|j        5  ||j        k    rt          d¦  «        ‚|                     ¦   «          |j        d                              d¦  «        rt          d¦  «        ‚|j                             |||¬¦  «        }|d         r|rt          d¦  «        ‚|cd d d ¦  «         S | 	                    ¦   «          |s)|j                             |||¬¦  «        cd d d ¦  «         S |j         
                    |||¬¦  «        }|                     |d¬	¦  «         |                     ¦   «          |                     d
|                     ¦   «         ¦  «         |                     ¦   «          |cd d d ¦  «         S # 1 swxY w Y   d S )NrM   rV   ÚqueuezIFinish or clear the generation queue before converting workspace storage.)r�   Úmissingz7Restore missing media before converting this workspace.F)Ú	associater#   )r7   rB   rO   rE   Úrequire_idlerf   rH   rP   Úmigration_previewÚsave_workspaceÚmigrateÚ_apply_workspacerR   ÚpublishÚgallery_snapshotÚhost_changed)r9   rS   Úmoder�   r§   r7   ÚpreviewÚresults           r   r¯   zWorkspaceViewer.migratey   s   € Ø”,ˆØÔ#ð 	ð 	Ø˜GÔ0Ò0Ð0Ý Ð!RÑSÔSÐSØ× Ò Ñ"Ô"Ð"ØŒ~˜eÔ$×(Ò(¨Ñ1Ô1ð nÝ Ð!lÑmÔmÐmØÔ(×:Ò:¸9ÀdÐSYÐ:ÑZÔZˆGØ�yÔ!ð Øð `Ý$Ð%^Ñ_Ô_Ð_Øð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð ×"Ò"Ñ$Ô$Ð$Øð \ØÔ)×;Ò;¸IÀtÐTZÐ;Ñ[Ô[ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð Ô'×/Ò/°	¸4ÈÐ/ÑOÔOˆFØ×$Ò$ Y¸%Ð$Ñ@Ô@Ð@Ø×&Ò&Ñ(Ô(Ð(Ø�OŠO˜I w×'?Ò'?Ñ'AÔ'AÑBÔBÐBØ× Ò Ñ"Ô"Ð"Øð'	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �BFÂ12FÃ0BFÆFÆ	Fc                 óÂ   — || j         j        k    rt          d¦  «        ‚|                      |¦  «        d                              |¦  «        }|€t          d¦  «        ‚|S )Nrw   re   z)This media is no longer in the workspace.)r7   rO   rE   rt   rH   )r9   rS   rp   r]   ra   s        r   Ú_entryzWorkspaceViewer._entry�   s^   € Ø˜œÔ1Ò1Ð1ÝÐYÑZÔZÐZØ—’˜fÑ%Ô% hÔ/×3Ò3°CÑ8Ô8ˆØˆ=ÝÐHÑIÔIÐIØˆr   c                 ó@  — | j         j        5  |                      |||¦  «        }| j         j        d         t          |         j                 |d                  }d| j         j        j                             d|d         |¦  «        icd d d ¦  «         S # 1 swxY w Y   d S )NrV   r+   ÚhtmlÚformat_media_inforX   )	r7   rB   r¸   rf   r
   r$   rC   Ú	callbacksÚ
emit_first)r9   rS   rp   r]   ra   Úsettingss         r   ÚinfozWorkspaceViewer.info˜   sì   € ØŒ\Ô(ð 	sð 	sØ—K’K 	¨6°3Ñ7Ô7ˆEØ”|Ô*¨5Ô1µ'¸&´/Ô2NÔOÐPUÐV]ÔP^Ô_ˆHØ˜DœLÔ.Ô8×CÒCÐDWÐY^Ð_eÔYfÐhpÑqÔqÐrð	sð 	sð 	sð 	sñ 	sô 	sð 	sð 	sð 	sð 	sð 	sð 	søøøð 	sð 	sð 	sð 	sð 	sð 	ss   �A9BÂBÂBc                 óˆ   — | j         j        5  |                      |||¦  «        d         cd d d ¦  «         S # 1 swxY w Y   d S )NrX   )r7   rB   r¸   )r9   rS   rp   r]   s       r   Úthumbnail_pathzWorkspaceViewer.thumbnail_pathž   s‰   € ØŒ\Ô(ð 	?ð 	?Ø—;’;˜y¨&°#Ñ6Ô6°vÔ>ð	?ð 	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   �7·;¾;c                 ó~  ‡‡‡‡‡‡‡— | j         }|j        5  |j        5  |d         |d         }}||j        k    rt	          d¦  «        ‚|                      |¦  «        Š|d         ‰d         k    rt	          d¦  «        ‚|d         }t          |t          ¦  «        r|rt          ˆfd„|D ¦   «         ¦  «        rt	          d¦  «        ‚t          |¦  «        Šˆfd	„‰d
         D ¦   «         }‰d         |j
        d         }	}|dk    ræ|                     dd¦  «                             ¦   «         Š‰r2t          ‰¦  «        dk    st          ˆfd„dD ¦   «         ¦  «        s‰dv rt	          d¦  «        ‚d„ |D ¦   «         Šˆfd„Št          j        t!          ‰                     ¦   «                              d¦  «        r‰n‰dz   dˆfd„¦  «        ¦  «        cd d d ¦  «         cd d d ¦  «         S |dv �rV|                     ¦   «          |                     d¦  «        }
|
|k    rt	          d¦  «        ‚|j        j        5  |j                             |
¦  «        }t-          |d         ¦  «        }t          |                     |dz   g ¦  «        ¦  «        d„ |D ¦   «         z   ||dz   <   t          ||dz            ¦  «        d z
  ||d!z   <   d"||d#z   <   ||d$<   |j                             |
|¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |d%k    r)d&t          |¦  «        icd d d ¦  «         cd d d ¦  «         S |d'vrt	          d(¦  «        ‚|d)k    �rà|                     ¦   «          |                     d*¦  «        d"urt	          d+¦  «        ‚t          ¦   «         g cŠ}|D �]6}t2          j                             |d,         ¦  «        }	 t9          |¦  «                             ¦   «         Šˆfd-„t=          |¦  «                             ¦   «         D ¦   «         }g |¢‰‘D ]}|                      d"¬.¦  «         Œt9          |d/z   ¦  «                              d"¬.¦  «         ‰ !                    t2          j         "                    |¦  «        ¦  «         Œï# tF          $ r<}| $                    t9          |¦  «        j%        › d0|j&        › �¦  «         Y d }~�Œ0d }~ww xY wd1„ tN          D ¦   «         D ]7}tQ          |	|ˆfd2„tS          |	|dz            ¦  «        D ¦   «         d"¬3¦  «         Œ8|j        j        5  |j         *                    ¦   «         D ]Ñ}
t-          |j                             |
d4         ¦  «        d         ¦  «        }d5„ tN          D ¦   «         D ]g}|                     |dz   g ¦  «        Šˆfd6„tS          ‰¦  «        D ¦   «         }t          |¦  «        t          ‰¦  «        k    rtQ          |||¦  «         Œh|j                             |
d4         |d7¬8¦  «         ŒÒ	 d d d ¦  «         n# 1 swxY w Y   �nnˆfd9„‰d
         D ¦   «         }|d:k    r´|                     d;¦  «        }|�|‰d<         vrt	          d=¦  «        ‚|‰v rd&d>icd d d ¦  «         cd d d ¦  «         S |                     d?¦  «        d@k    rd>n7|€t          |¦  «        n&| +                    ‰d<         |         dA         ¦  «        }dB„ |D ¦   «         |||…<   tQ          |	||d"¬3¦  «         |d:k    r…tY          t          |¦  «        |j-         .                    ¦   «                              dCdD¦  «        ¦  «        }d>|	|d!z            cxk    r|k     r'n n$||	|d!z   <   |t          |¦  «        d z
  k    |	|d#z   <   g }d |	dE<   | /                    d| 0                    ¦   «         ¦  «         | 1                    ¦   «          t          |¦  «        |dFœcd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )GNrS   rp   rw   rc   zJThe gallery changed on another page. Refresh your selection and try again.Úkeysc              3   óX   •K  — | ]$}t          |t          ¦  «         p	|‰d          vV — Œ%dS )re   N)Ú
isinstancerk   rŽ   s     €r   r%   z)WorkspaceViewer.action.<locals>.<genexpr>¬   s\   øè è € ð  =Gð  =GÐz}ÅÈCÕQTÑAUÔAUÐ=UÐ=uÐY\ÐdkÐltÔduÐYuð  =Gð  =Gð  =Gð  =Gð  =Gð  =Gr   z'Select media from this workspace first.c                 ó(   •— g | ]}|d          ‰v ¯|‘ŒS r_   r   ©r   ra   Úchosens     €r   r   z*WorkspaceViewer.action.<locals>.<listcomp>¯   s(   ø€ ÐWÐWÐW ÀÀeÄÐPVÐ@VÐ@V�uÐ@VÐ@VÐ@Vr   rd   r.   rV   Úarchiver|   Ú éx   c              3   ó    •K  — | ]}|‰v V — Œ	d S r    r   )r   Úcharr|   s     €r   r%   z)WorkspaceViewer.action.<locals>.<genexpr>³   s'   øè è € Ð5\Ð5\Àt°d¸d°lÐ5\Ð5\Ð5\Ð5\Ð5\Ð5\r   z	/\:*?"<>|)ú.z..z2Enter a valid ZIP filename, without a folder path.c                 ó   — g | ]
}|d          ‘ŒS ©rX   r   r`   s     r   r   z*WorkspaceViewer.action.<locals>.<listcomp>µ   s   € Ð<Ð<Ð<¨5˜˜vœÐ<Ð<Ð<r   c                 óz  •‡‡‡— t          ¦   «         Št          j        | dt          j        ¬¦  «        5 }‰D �]iŠt	          ‰¦  «        }t          ‰¦  «        j        Št          ‰¦  «        j        t          ‰¦  «        j        d}}}t          ˆˆfd„|D ¦   «         ¦  «        r+|dz  }|› d|› d|› �Št          ˆˆfd„|D ¦   «         ¦  «        °+| 
                    ¦   «         D ]Y\  }}t          ‰¦  «        j        |z   }‰                     |                     ¦   «         ¦  «         |                     ||¦  «         ŒZˆfd„|D ¦   «         }	|	rT‰dz   }
‰                     |
                     ¦   «         ¦  «         |                     |
t          j        |	¦  «        ¦  «         �Œk	 d d d ¦  «         d S # 1 swxY w Y   d S )	NÚw)Úcompressionr&   c              3   ón   •K  — | ]/}t          ‰¦  «        j        |z                        ¦   «         ‰v V — Œ0d S r    )r   ÚstemÚcasefold)r   ÚpartÚbasenameÚnamess     €€r   r%   z<WorkspaceViewer.action.<locals>.write_zip.<locals>.<genexpr>½   sD   øè è € Ð%jÐ%jÐ[_¥t¨H¡~¤~Ô':¸TÑ'A×&KÒ&KÑ&MÔ&MÐQVÐ&VÐ%jÐ%jÐ%jÐ%jÐ%jÐ%jr   z (ú)c                 óD   •— g | ]}|t          ‰¦  «        j        k    ¯|‘ŒS r   )r   Úsuffix)r   r×   rX   s     €r   r   z=WorkspaceViewer.action.<locals>.write_zip.<locals>.<listcomp>Ä   s-   ø€ Ð)_Ð)_Ð)_°4ÀTÍTÐRVÉZÌZÔM^ÒE^ÐE^¨$ÐE^ÐE^ÐE^r   ú.wangp-files.json)ÚsetÚzipfileÚZipFileÚ
ZIP_STOREDr   r   r|   rÕ   rÜ   Úanyr•   ÚaddrÖ   ÚwriteÚwritestrÚjsonÚdumps)ÚoutputrÉ   ÚbundlerÕ   rÜ   r+   r×   ÚmemberÚmember_nameÚ
companionsÚledger_namerØ   rÙ   rX   r   s              @@@€r   Ú	write_zipz)WorkspaceViewer.action.<locals>.write_zip¶   s<  øøøø€ Ý™EœE�EÝ œ¨°Å'ÔBTÐUÑUÔUð VÐY`Ø$)ð Vñ V˜DÝ%1°$Ñ%7Ô%7˜FÝ'+¨D¡z¤z¤˜HÝ26°x±.´.Ô2EÅtÈHÁ~Ä~ÔG\Ð^_¨% &˜DÝ"%Ð%jÐ%jÐ%jÐ%jÐ%jÐciÐ%jÑ%jÔ%jÑ"jÔ"jð GØ %¨¡
 Ø.2Ð+FÐ+F°eÐ+FÐ+F¸fÐ+FÐ+F õ #&Ð%jÐ%jÐ%jÐ%jÐ%jÐciÐ%jÑ%jÔ%jÑ"jÔ"jð Gð 17·²±´ð Cð C¡  fÝ.2°8©n¬nÔ.AÀDÑ.H Ø %§	¢	¨+×*>Ò*>Ñ*@Ô*@Ñ AÔ AÐ AØ '§¢¨f°kÑ BÔ BÐ BÐ BØ)_Ð)_Ð)_Ð)_¸6Ð)_Ñ)_Ô)_˜JØ)ð VØ.6Ð9LÑ.L Ø %§	¢	¨+×*>Ò*>Ñ*@Ô*@Ñ AÔ AÐ AØ '× 0Ò 0°½d¼jÈÑ>TÔ>TÑ UÔ UÐ UùðVðVð Vð Vñ Vô Vð Vð Vð Vð Vð Vð Vð Vøøøð Vð Vð Vð Vð Vð Vs   ´E.F0Æ0F4Æ7F4z.zipzapplication/zipc                  ó"   •— t          ‰ ¦  «        S r    )r   )rî   s   €r   ú<lambda>z(WorkspaceViewer.action.<locals>.<lambda>É   s!   ø€ õ  JWð  Xañ  Jbô  Jb€ r   )ÚcopyÚmoveÚtargetzChoose another workspace.r#   r   c                 ó   — g | ]
}|d          ‘ŒS rÐ   r   r`   s     r   r   z*WorkspaceViewer.action.<locals>.<listcomp>Ò   s8   € ð  _Cð  _Cð  _CÐqvÐ_dÐekÔ_lð  _Cð  _Cð  _Cr   r&   r   Tr'   rx   rñ   r    )ÚreorderÚejectÚdeleterò   zUnknown workspace media action.r÷   r§   z&Confirm permanent file deletion first.rX   c                 ó    •— g | ]
}|‰k    ¯|‘ŒS r   r   )r   rê   Úmains     €r   r   z*WorkspaceViewer.action.<locals>.<listcomp>æ   s%   ø€ Ð%iÐ%iÐ%i°ÐZ`ÐdhÒZhÐZh fÐZhÐZhÐZhr   )Ú
missing_okrÝ   z: c              3   ó$   K  — | ]}|j         V — Œd S r    ©r.   r‰   s     r   r%   z)WorkspaceViewer.action.<locals>.<genexpr>í   s$   è è € ÐLÐL°˜gœnÐLÐLÐLÐLÐLÐLr   c                 ó–   •— g | ]E\  }}t           j                             t           j                             |¦  «        ¦  «        ‰v¯C|‘ŒFS r   )rš   rX   ÚnormcaseÚabspath©r   r   rX   Úremoveds      €r   r   z*WorkspaceViewer.action.<locals>.<listcomp>î   sŽ   ø€ ð  0`ð  0`ð  0`±g°a¸ÕhjÔho×hxÒhxÕy{ô  zA÷  zIò  zIð  JNñ  zOô  zOñ  iPô  iPð  X_ð  i_ð  i_°ð  i_ð  i_ð  i_r   r   r†   c              3   ó$   K  — | ]}|j         V — Œd S r    rü   r‰   s     r   r%   z)WorkspaceViewer.action.<locals>.<genexpr>ò   s$   è è € Ð%TÐ%T¸ g¤nÐ%TÐ%TÐ%TÐ%TÐ%TÐ%Tr   c                 óÀ   •— g | ]Z\  }}t          |t          ¦  «        r>t          j                             t          j                             |¦  «        ¦  «        ‰v¯X|‘Œ[S r   )rÅ   rk   rš   rX   rþ   rÿ   r   s      €r   r   z*WorkspaceViewer.action.<locals>.<listcomp>ô   s£   ø€ ð  'að  'að  'a©W¨Q°ÕPZÐ[_ÕadÑPeÔPeð  'aÕikÔip×iyÒiyÕz|ô  {B÷  {Jò  {Jð  KOñ  {Pô  {Pñ  jQô  jQð  Y`ð  j`ð  j` qð  j`ð  j`ð  j`r   F)Úretain_missingc                 ó4   •— g | ]}|d          ‰v¯|d         ‘ŒS )r]   r+   r   rÇ   s     €r   r   z*WorkspaceViewer.action.<locals>.<listcomp>ù   s-   ø€ ÐhÐhÐh¨eÈUÐSXÌ\ÐagÐMgÐMg˜5 œ>ÐMgÐMgÐMgr   rõ   Úbeforere   z!The drop target no longer exists.r   ÚedgeÚstartr+   c                 ó   — g | ]
}|d          ‘ŒS )r+   r   r`   s     r   r   z*WorkspaceViewer.action.<locals>.<listcomp>  s   € Ð1VÐ1VÐ1VÀU°%¸´.Ð1VÐ1VÐ1Vr   rY   é   Úselected_video_time)r    Úerrors)2r7   rB   r–   rO   rE   rt   rÅ   r!   râ   rÞ   rf   rH   Ústripr-   ræ   Úloadsr   ÚlowerÚendswithr¬   rP   ÚlockÚdictÚsaverR   rš   rX   rÿ   r   Úresolver   ÚvaluesÚunlinkrã   rþ   r�   rn   r|   Ústrerrorr	   r2   rg   r�   r+   r   rC   rD   r±   r²   r³   )r9   ÚactionÚpayloadr7   rS   rp   rÃ   rd   r.   rV   ró   r¥   ÚsavedÚfailuresra   rX   rì   rê   ÚexcÚgroupr/   r  Úpositionr¡   r�   rÈ   rù   r|   r   r  rî   s                           @@@@@@@r   r  zWorkspaceViewer.action¢   sú  øøøøøøø€ Ø”,ˆØÔ#ð k	?ð k	? WÔ%9ð k	?ð k	?Ø '¨Ô 4°g¸hÔ6G�vˆIØ˜GÔ0Ò0Ð0Ý Ð!]Ñ^Ô^Ð^Ø—m’m FÑ+Ô+ˆGØ�zÔ" g¨jÔ&9Ò9Ð9Ý Ð!mÑnÔnÐnØ˜6”?ˆDÝ˜d¥DÑ)Ô)ð L°ð L½ð  =Gð  =Gð  =Gð  =Gð  BFð  =Gñ  =Gô  =Gñ  :Gô  :Gð LÝ Ð!JÑKÔKÐKÝ˜‘Y”YˆFØWÐWÐWÐW¨'°)Ô*<ÐWÑWÔWˆGØ! (Ô+¨W¬^¸EÔ-B�CˆFØ˜Ò"Ð"Ø—{’{ 6¨2Ñ.Ô.×4Ò4Ñ6Ô6�Øð [�s 4™yœy¨3š˜µ#Ð5\Ð5\Ð5\Ð5\È|Ð5\Ñ5\Ô5\Ñ2\Ô2\˜Ð`dÐhsÐ`sÐ`sÝ$Ð%YÑZÔZÐZØ<Ð<°GÐ<Ñ<Ô<�ðVð Vð Vð Vð Võ& ”zÕ"3¸D¿JºJ¹L¼L×<QÒ<QÐRXÑ<YÔ<YÐ4l°D°DÐ_cÐflÑ_lÐnð  Bbð  Bbð  Bbð  Bbñ  #cô  #cñ  dô  dðKk	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ðL Ð)Ð)Ñ)Ø×$Ò$Ñ&Ô&Ð&Ø Ÿš XÑ.Ô.�Ø˜YÒ&Ð&Ý$Ð%@ÑAÔAÐAØÔ'Ô,ð ;ð ;Ø$Ô/×3Ò3°FÑ;Ô;�FÝ  ¨	Ô!2Ñ3Ô3�EÝ26°u·y²yÀÈ+ÑAUÐWYÑ7ZÔ7ZÑ2[Ô2[ð  _Cð  _Cð  {Bð  _Cñ  _Cô  _Cñ  3C�E˜& ;Ñ.Ñ/Ý14°U¸6ÀKÑ;OÔ5PÑ1QÔ1QÐTUÑ1U�E˜& :Ñ-Ñ.Ø6:�E˜& ?Ñ2Ñ3Ø6<�EÐ2Ñ3ØÔ&×+Ò+¨F°EÑ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ×*Ò*Ñ,Ô,Ð,Ø˜VÒ#Ð#Ø#¥S¨¡\¤\Ð2ðkk	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ðl ÐCÐCÐCÝ Ð!BÑCÔCÐCØ˜Ò!Ñ!Ø×$Ò$Ñ&Ô&Ð&Ø—;’;˜{Ñ+Ô+°4Ð7Ð7Ý$Ð%MÑNÔNÐNå$'¡E¤E¨2Ð!�˜Ø$ð 
Nñ 
N�EÝœ7Ÿ?š?¨5°¬=Ñ9Ô9�DðNÝ# D™zœz×1Ò1Ñ3Ô3˜Ø%iÐ%iÐ%iÐ%i½<ÈÑ;MÔ;M×;TÒ;TÑ;VÔ;VÐ%iÑ%iÔ%i˜
Ø&9¨
Ð&9°DÐ&9ð ;ð ;˜FØ"ŸMšM°T˜MÑ:Ô:Ð:Ð:Ý˜TÐ$7Ñ7Ñ8Ô8×?Ò?È4Ð?ÑPÔPÐPØŸš¥B¤G×$4Ò$4°TÑ$:Ô$:Ñ;Ô;Ð;Ð;øÝ"ð Nð Nð NØ Ÿš­4°©:¬:¬?Ð(LÐ(L¸c¼lÐ(LÐ(LÑMÔMÐMÐMÐMÐMÐMÑMøøøøðNøøøàLÐL½OÐLÑLÔLð oð o�EÝ" 3¨ð  0`ð  0`ð  0`ð  0`ÅÈ3ÈuÐWbÑObÔKcÑAdÔAdð  0`ñ  0`ô  0`ð  jnð  oñ  oô  oð  oð  oØÔ'Ô,ð [ð [Ø")Ô"4×"<Ò"<Ñ">Ô">ð [ð [˜Ý $ WÔ%7×%;Ò%;¸FÀ4¼LÑ%IÔ%IÈ)Ô%TÑ UÔ U˜Ø%TÐ%TÅOÐ%TÑ%TÔ%Tð Fð F˜EØ$)§I¢I¨e°kÑ.AÀ2Ñ$FÔ$F˜Eð 'að  'að  'að  'a½	À%Ñ8HÔ8Hð  'añ  'aô  'a˜GÝ" 7™|œ|­s°5©z¬zÒ9Ð9Ý .¨u°e¸WÑ EÔ EÐ EøØÔ*×/Ò/°°t´¸eÐTYÐ/ÑZÔZÐZÐZð[ð[ð [ð [ñ [ô [ð [ð [ð [ð [ð [ð [øøøð [ð [ð [ð [ùð iÐhÐhÐh°w¸yÔ7IÐhÑhÔh�Ø˜YÒ&Ð&Ø$Ÿ[š[¨Ñ2Ô2�FØÐ)¨f¸GÀHÔ<MÐ.MÐ.MÝ(Ð)LÑMÔMÐMØ Ð'Ð'Ø '¨˜|ðwk	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ðx %,§K¢K°Ñ$7Ô$7¸7Ò$BÐ$B˜q˜qÐX^ÐXfÍÈGÉÌÈÐls×lyÒlyð  {Bð  CKô  {Lð  MSô  {Tð  U\ô  {]ñ  m^ô  m^�HØ1VÐ1VÈgÐ1VÑ1VÔ1V�G˜H XÐ-Ñ.Ý˜s F¨G¸TÐBÑBÔBÐBØ˜YÒ&Ð&õ ,­C°©L¬L¸'¼-×:YÒ:YÑ:[Ô:[×:_Ò:_Ð`qÐstÑ:uÔ:uÑvÔv�FØ˜C ¨Ñ 3Ô4Ð=Ð=Ò=Ð=°vÒ=Ð=Ð=Ð=Ð=Ø39˜˜F ZÑ/Ñ0Ø8>Å#ÀgÁ,Ä,ÐQRÑBRÒ8R˜˜F _Ñ4Ñ5Ø�Ø)-ˆCÐ%Ñ&Ø�OŠO˜I w×'?Ò'?Ñ'AÔ'AÑBÔBÐBØ× Ò Ñ"Ô"Ð"Ý  ™\œ\°XÐ>Ð>ðWk	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ð k	?ð k	?ð k	?ð k	?øøøð k	?ð k	?ð k	?ð k	?ð k	?ð k	?ð k	?ñ k	?ô k	?ð k	?ð k	?ð k	?ð k	?ð k	?ð k	?ð k	?øøøð k	?ð k	?ð k	?ð k	?ð k	?ð k	?sÓ   –`2žF5`Ç`2Ç,A`È;B2K9Ë-`Ë9K=Ë=`Ì K=Ì-`Ì.`2ÍB`ÏCRÒ`Ò
S#	Ò'1S	Ó`ÓS#	Ó#A`Ô;C,X4Ø(`Ø4X8Ø8`Ø;X8Ø<A`Ú`2Ú+E`à`2à`	à`2à!`	à"`2à2`6à9`6r    )ru   r   r   F)Ú__name__Ú
__module__Ú__qualname__r—   r:   rK   rQ   rt   r’   r¯   r¸   r¿   rÁ   r  r   r   r   r4   r4   (   sÛ   € € € € € Ø€Iðð ð ð_ð _ð _ð _ð4ð 4ð 4ðð ð ð, jð  jð  jð  jðD 26Àð ð ð ð ð ð.ð ð ðsð sð sð?ð ?ð ?ðm?ð m?ð m?ð m?ð m?r   r4   )Ú__doc__ri   ræ   rš   rß   Úurllib.parser   Úcollectionsr   Úpathlibr   Úshared.utils.downloadsr   r   r   Úshared.utils.gallery_sourcesr	   r
   Úshared.utils.gallery_viewr   Úshared.utils.config_storer   Úshared.utils.workspacesr   r   r   Úshared.utils.workspace_storager   r2   r4   r   r   r   ú<module>r,     sN  ðà OÐ OØ €€€Ø €€€Ø 	€	€	€	Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ð \Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð 9>ð Yð Yð Yð Yð Yð*g?ð g?ð g?ð g?ð g?ñ g?ô g?ð g?ð g?ð g?r   