
    1i                        d Z ddlmZ ddlZddlZddlmZ erddlm	Z	 ddl
mZ ddlmZ erdd	lmZ  G d
 de          Z G d dee          ZdgZdS )zmacOS.    )annotationsN)TYPE_CHECKING)Iterator   )XDGMixin)PlatformDirsABC)Pathc                  z   e Zd ZdZed#d            Zed$d            Zed%d            Zed#d	            Zed$d
            Z	ed#d            Z
ed#d            Zed%d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed#d            Zed$d            Zed#d            Zed#d            Zed#d            Zd&d Zd&d!Zd"S )'_MacOSDefaultsa  Default platform directories for macOS without XDG environment variable overrides.

    Follows the guidance from `Apple's File System Programming Guide
    <https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/MacOSXDirectories/MacOSXDirectories.html>`_.
    The XDG env var handling is in :class:`~platformdirs._xdg.XDGMixin`.

    returnstrc                f    |                      t          j                            d                    S )zc:returns: data directory tied to the user, e.g. ``~/Library/Application Support/$appname/$version``z~/Library/Application Support_append_app_name_and_versionospath
expanduserselfs    P/var/www/html/speakWrite/venv/lib/python3.11/site-packages/platformdirs/macos.pyuser_data_dirz_MacOSDefaults.user_data_dir   s)     001C1CDc1d1deee    	list[str]c                    dt           j        v }|r%t           j                            d          d         nd}|r|                     | d          gng }|                    |                     d                     |S )N/opt/pythonr    z/sharez/Library/Application Support)sysprefixsplitr   appendr   is_homebrewhomebrew_prefix	path_lists       r   _site_data_dirsz_MacOSDefaults._site_data_dirs!   s    #sz1@KS#***=99!<<QSWbjT66/7Q7Q7QRRSShj	::;YZZ[[[r   r	   c                6    |                      | j                  S )zi:returns: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``) _first_item_as_path_if_multipathsite_data_dirr   s    r   site_data_pathz_MacOSDefaults.site_data_path)   s     44T5GHHHr   c                    | j         S )zD:returns: config directory tied to the user, same as `user_data_dir`r   r   s    r   user_config_dirz_MacOSDefaults.user_config_dir.        !!r   c                    | j         S )N)r%   r   s    r   _site_config_dirsz _MacOSDefaults._site_config_dirs3   s    ##r   c                f    |                      t          j                            d                    S )zW:returns: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``z~/Library/Cachesr   r   s    r   user_cache_dirz_MacOSDefaults.user_cache_dir7   s)     001C1CDV1W1WXXXr   c                V   dt           j        v }|r%t           j                            d          d         nd}|r|                     | d          gng }|                    |                     d                     | j        rt          j                            |          S |d         S )a  :returns: cache directory shared by users, e.g. ``/Library/Caches/$appname/$version``. If we're using a Python binary managed by `Homebrew <https://brew.sh>`_, the directory will be under the Homebrew prefix, e.g. ``$homebrew_prefix/var/cache/$appname/$version``. If `multipath <platformdirs.api.PlatformDirsABC.multipath>` is enabled, and we're in Homebrew, the response is a multi-path string separated by ":", e.g. ``$homebrew_prefix/var/cache/$appname/$version:/Library/Caches/$appname/$version``r   r   r   z
/var/cachez/Library/Caches)	r   r   r   r   r    	multipathr   pathsepjoinr!   s       r   site_cache_dirz_MacOSDefaults.site_cache_dir<   s     $sz1@KS#***=99!<<QS[fnT66/7U7U7UVVWWln	::;LMMNNN> 	.:??9---|r   c                6    |                      | j                  S )zj:returns: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)r'   r6   r   s    r   site_cache_pathz_MacOSDefaults.site_cache_pathG   s     44T5HIIIr   c                    | j         S )zC:returns: state directory tied to the user, same as `user_data_dir`r+   r   s    r   user_state_dirz_MacOSDefaults.user_state_dirL   r-   r   c                    | j         S )zB:returns: state directory shared by users, same as `site_data_dir`)r(   r   s    r   site_state_dirz_MacOSDefaults.site_state_dirQ   r-   r   c                f    |                      t          j                            d                    S )zS:returns: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``z~/Library/Logsr   r   s    r   user_log_dirz_MacOSDefaults.user_log_dirV   s)     001C1CDT1U1UVVVr   c                ,    |                      d          S )zQ:returns: log directory shared by users, e.g. ``/Library/Logs/$appname/$version``z/Library/Logs)r   r   s    r   site_log_dirz_MacOSDefaults.site_log_dir[   s     00AAAr   c                @    t           j                            d          S )zD:returns: documents directory tied to the user, e.g. ``~/Documents``z~/Documentsr   r   r   r   s    r   user_documents_dirz!_MacOSDefaults.user_documents_dir`        w!!-000r   c                @    t           j                            d          S )zD:returns: downloads directory tied to the user, e.g. ``~/Downloads``z~/DownloadsrB   r   s    r   user_downloads_dirz!_MacOSDefaults.user_downloads_dire   rD   r   c                @    t           j                            d          S )zB:returns: pictures directory tied to the user, e.g. ``~/Pictures``z
~/PicturesrB   r   s    r   user_pictures_dirz _MacOSDefaults.user_pictures_dirj   s     w!!,///r   c                @    t           j                            d          S )z>:returns: videos directory tied to the user, e.g. ``~/Movies``z~/MoviesrB   r   s    r   user_videos_dirz_MacOSDefaults.user_videos_diro   s     w!!*---r   c                @    t           j                            d          S )z<:returns: music directory tied to the user, e.g. ``~/Music``z~/MusicrB   r   s    r   user_music_dirz_MacOSDefaults.user_music_dirt   s     w!!),,,r   c                @    t           j                            d          S )z@:returns: desktop directory tied to the user, e.g. ``~/Desktop``z	~/DesktoprB   r   s    r   user_desktop_dirz_MacOSDefaults.user_desktop_diry   s     w!!+...r   c                @    t           j                            d          S )z?:returns: bin directory tied to the user, e.g. ``~/.local/bin``z~/.local/binrB   r   s    r   user_bin_dirz_MacOSDefaults.user_bin_dir~   s     w!!.111r   c                    dS )z@:returns: bin directory shared by users, e.g. ``/usr/local/bin``z/usr/local/bin r   s    r   site_bin_dirz_MacOSDefaults.site_bin_dir   s
      r   c                @    t           j                            d          S )zJ:returns: applications directory tied to the user, e.g. ``~/Applications``z~/ApplicationsrB   r   s    r   user_applications_dirz$_MacOSDefaults.user_applications_dir   s     w!!"2333r   c                    dgS )Nz/ApplicationsrR   r   s    r   _site_applications_dirsz&_MacOSDefaults._site_applications_dirs   s      r   c                l    | j         }| j        rt          j                            |          n|d         S )zH:returns: applications directory shared by users, e.g. ``/Applications``r   )rW   r3   r   r4   r5   )r   dirss     r   site_applications_dirz$_MacOSDefaults.site_applications_dir   s0     +(,Crzt$$$DGCr   c                f    |                      t          j                            d                    S )zh:returns: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``z~/Library/Caches/TemporaryItemsr   r   s    r   user_runtime_dirz_MacOSDefaults.user_runtime_dir   s)     001C1CDe1f1fgggr   c                    | j         S )zG:returns: runtime directory shared by users, same as `user_runtime_dir`)r\   r   s    r   site_runtime_dirz_MacOSDefaults.site_runtime_dir   s     $$r   Iterator[str]c              #  6   K   | j         V  | j        E d{V  dS )z4:yield: all user and site configuration directories.N)r,   r/   r   s    r   iter_config_dirsz_MacOSDefaults.iter_config_dirs   s6      """"))))))))))r   c              #  6   K   | j         V  | j        E d{V  dS )z+:yield: all user and site data directories.N)r   r%   r   s    r   iter_data_dirsz_MacOSDefaults.iter_data_dirs   s6          ''''''''''r   N)r   r   )r   r   )r   r	   )r   r_   ) __name__
__module____qualname____doc__propertyr   r%   r)   r,   r/   r1   r6   r8   r:   r<   r>   r@   rC   rF   rH   rJ   rL   rN   rP   rS   rU   rW   rZ   r\   r^   ra   rc   rR   r   r   r   r      s         f f f Xf    X I I I XI " " " X" $ $ $ X$ Y Y Y XY    X J J J XJ " " " X" " " " X" W W W XW B B B XB 1 1 1 X1 1 1 1 X1 0 0 0 X0 . . . X. - - - X- / / / X/ 2 2 2 X2       X  4 4 4 X4 ! ! ! X! D D D XD
 h h h Xh % % % X%* * * *
( ( ( ( ( (r   r   c                      e Zd ZdZdS )MacOSaF  Platform directories for the macOS operating system.

    Follows the guidance from `Apple documentation
    <https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/MacOSXDirectories/MacOSXDirectories.html>`_.
    Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`, `version
    <platformdirs.api.PlatformDirsABC.version>`, `ensure_exists <platformdirs.api.PlatformDirsABC.ensure_exists>`.

    XDG environment variables (e.g. ``$XDG_DATA_HOME``) are supported and take precedence over macOS defaults.

    N)rd   re   rf   rg   rR   r   r   rj   rj      s        	 	 	 	r   rj   )rg   
__future__r   os.pathr   r   typingr   collections.abcr   _xdgr   apir   pathlibr	   r   rj   __all__rR   r   r   <module>rs      s    " " " " " "  



             )((((((                   V( V( V( V( V(_ V( V( V(r
 
 
 
 
Hn 
 
 
 r   