§
    ÎÐj�  ã                   ó4   — d Z ddlZddlmZ d„ Zddddœd„ZdS )	z@Readable, portable names for persistent workspaces and sessions.é    N)ÚPathc                 óÌ  — t          j        dd| ¦  «                             d¦  «        d d…                              d¦  «        pd}|                     d¦  «        d d…                              dd¬	¦  «                             d¦  «        }|                     d
¦  «        d                              ¦   «                              ¦   «         ddddddhd„ dD ¦   «         £v rd|z   }|S )Nz[<>:"/\\|?*\x00-\x1f]Ú_z .éx   ÚUntitledzutf-8éÈ   Úignore)Úerrorsú.r   ÚCONÚPRNÚAUXÚNULzCONIN$zCONOUT$c              3   ó,   K  — | ]}d D ]
}|› |› �V — ŒŒdS )u   123456789Â¹Â²Â³N© )Ú.0ÚprefixÚis      úCC:\Users\johnn\OneDrive\Documents\AI\shared\utils\readable_paths.pyú	<genexpr>zsafe_name.<locals>.<genexpr>
   ss   è è € ð  bjð  bjÐu{ð  Xið  bjð  bjð  STÐekÐbpÐmnÐbpÐbpð  bjð  bjð  bjð  bjð  bjð  bjð  bjó    )ÚCOMÚLPT)ÚreÚsubÚstripÚrstripÚencodeÚdecodeÚsplitÚupper)ÚnameÚstems     r   Ú	safe_namer$      s  € ÝŒ6Ð*¨C°Ñ6Ô6×<Ò<¸TÑBÔBÀ4ÀCÀ4ÔH×OÒOÐPTÑUÔUÐcÐYc€DØ�;Š;�wÑÔ   Ô%×,Ò,¨W¸XÐ,ÑFÔF×MÒMÈdÑSÔS€DØ‡z‚z�#�„�qÔ× Ò Ñ"Ô"×(Ò(Ñ*Ô*¨u°e¸UÀEÈ8ÐU^ð  /kð  bjð  bjð  @Nð  bjñ  bjô  bjð  /kð  kð  kØ�T‰zˆØ€Kr   Ú r   )ÚsuffixÚexcludeÚreservedc                óT  ‡— t          | ¦  «        } ˆfd„|                      ¦   «         D ¦   «         }|                     d„ |D ¦   «         ¦  «         t          |¦  «        d}}|}||z                        ¦   «         |v r&|› d|› d�}|dz  }||z                        ¦   «         |v °&| ||z   z  S )z>Choose a free name; callers serialize allocation and creation.c                 óN   •— h | ]!}|‰k    ¯|j                              ¦   «         ’Œ"S r   )r"   Úcasefold)r   Úpathr'   s     €r   ú	<setcomp>z!available_path.<locals>.<setcomp>   s,   ø€ ÐOÐOÐO T¸tÀwº¸ˆDŒI×ÒÑ Ô ¸¸¸r   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S )N)r+   )r   Úvalues     r   r   z!available_path.<locals>.<genexpr>   s,   è è € Ð7Ð7 U�—’Ñ Ô Ð7Ð7Ð7Ð7Ð7Ð7r   é   z (ú)é   )r   ÚiterdirÚupdater$   r+   )	Úrootr"   r&   r'   r(   Úusedr#   ÚnumberÚ	candidates	      `     r   Úavailable_pathr9      sÏ   ø€ å�‰:Œ:€DØOÐOÐOÐO¨T¯\ª\©^¬^ÐOÑOÔO€DØ‡K‚KÐ7Ð7¨hÐ7Ñ7Ô7Ñ7Ô7Ð7Ý˜T‘?”? Aˆ&€DØ€IØ�vÑ×
'Ò
'Ñ
)Ô
)¨TÐ
1Ð
1ØÐ(Ð(˜vÐ(Ð(Ð(ˆ	Ø�!‰ˆð �vÑ×
'Ò
'Ñ
)Ô
)¨TÐ
1Ð
1ð �9˜vÑ%Ñ&Ð&r   )Ú__doc__r   Úpathlibr   r$   r9   r   r   r   ú<module>r<      sa   ðà FÐ FØ 	€	€	€	Ø Ð Ð Ð Ð Ð ðð ð ð *,°TÀBð 
'ð 
'ð 
'ð 
'ð 
'ð 
'ð 
'r   