U
    kufÄ  ã                   @  sF   d Z ddlmZ ddlZddlZddlmZ G dd„ deƒZdgZ	dS )zmacOS.é    )ÚannotationsNé   )ÚPlatformDirsABCc                   @  s0  e Zd ZdZeddœdd„ƒZeddœdd„ƒZeddœdd	„ƒZeddœd
d„ƒZeddœdd„ƒZ	eddœdd„ƒZ
eddœdd„ƒZeddœdd„ƒZeddœdd„ƒZeddœdd„ƒZeddœdd„ƒZeddœdd„ƒZeddœdd„ƒZeddœdd„ƒZeddœd d!„ƒZeddœd"d#„ƒZd$S )%ÚMacOSaÙ  
    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>`.
    Ústr)Úreturnc                 C  s   |   tj d¡¡S )zb:return: 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©Úself© r   ú6/tmp/pip-unpacked-wheel-kvdkdwa_/platformdirs/macos.pyÚuser_data_dir   s    zMacOS.user_data_dirc                 C  sJ   t j d¡}|r|  d¡gng }| |  d¡¡ | jrBtj |¡S |d S )aA  
        :return: data directory shared by users, e.g. ``/Library/Application Support/$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. ``/opt/homebrew/share/$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.
          ``/opt/homebrew/share/$appname/$version:/Library/Application Support/$appname/$version``
        ú/opt/homebrewz/opt/homebrew/sharez/Library/Application Supportr   ©	ÚsysÚprefixÚ
startswithr	   ÚappendÚ	multipathr
   ÚpathsepÚjoin©r   Zis_homebrewÚ	path_listr   r   r   Úsite_data_dir   s    
zMacOS.site_data_dirc                 C  s   | j S )zC:return: config directory tied to the user, same as `user_data_dir`©r   r   r   r   r   Úuser_config_dir*   s    zMacOS.user_config_dirc                 C  s   | j S )zF:return: config directory shared by the users, same as `site_data_dir`)r   r   r   r   r   Úsite_config_dir/   s    zMacOS.site_config_dirc                 C  s   |   tj d¡¡S )zV:return: cache directory tied to the user, e.g. ``~/Library/Caches/$appname/$version``z~/Library/Cachesr   r   r   r   r   Úuser_cache_dir4   s    zMacOS.user_cache_dirc                 C  sJ   t j d¡}|r|  d¡gng }| |  d¡¡ | jrBtj |¡S |d S )a0  
        :return: 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. ``/opt/homebrew/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.
          ``/opt/homebrew/var/cache/$appname/$version:/Library/Caches/$appname/$version``
        r   z/opt/homebrew/var/cachez/Library/Cachesr   r   r   r   r   r   Úsite_cache_dir9   s    
zMacOS.site_cache_dirc                 C  s   | j S )zB:return: state directory tied to the user, same as `user_data_dir`r   r   r   r   r   Úuser_state_dirJ   s    zMacOS.user_state_dirc                 C  s   |   tj d¡¡S )zR:return: log directory tied to the user, e.g. ``~/Library/Logs/$appname/$version``z~/Library/Logsr   r   r   r   r   Úuser_log_dirO   s    zMacOS.user_log_dirc                 C  s   t j d¡S )zC:return: documents directory tied to the user, e.g. ``~/Documents``z~/Documents©r
   r   r   r   r   r   r   Úuser_documents_dirT   s    zMacOS.user_documents_dirc                 C  s   t j d¡S )zC:return: downloads directory tied to the user, e.g. ``~/Downloads``z~/Downloadsr%   r   r   r   r   Úuser_downloads_dirY   s    zMacOS.user_downloads_dirc                 C  s   t j d¡S )zA:return: pictures directory tied to the user, e.g. ``~/Pictures``z
~/Picturesr%   r   r   r   r   Úuser_pictures_dir^   s    zMacOS.user_pictures_dirc                 C  s   t j d¡S )z=:return: videos directory tied to the user, e.g. ``~/Movies``z~/Moviesr%   r   r   r   r   Úuser_videos_dirc   s    zMacOS.user_videos_dirc                 C  s   t j d¡S )z;:return: music directory tied to the user, e.g. ``~/Music``z~/Musicr%   r   r   r   r   Úuser_music_dirh   s    zMacOS.user_music_dirc                 C  s   t j d¡S )z?:return: desktop directory tied to the user, e.g. ``~/Desktop``z	~/Desktopr%   r   r   r   r   Úuser_desktop_dirm   s    zMacOS.user_desktop_dirc                 C  s   |   tj d¡¡S )zg:return: runtime directory tied to the user, e.g. ``~/Library/Caches/TemporaryItems/$appname/$version``z~/Library/Caches/TemporaryItemsr   r   r   r   r   Úuser_runtime_dirr   s    zMacOS.user_runtime_dirc                 C  s   | j S )zF:return: runtime directory shared by users, same as `user_runtime_dir`)r,   r   r   r   r   Úsite_runtime_dirw   s    zMacOS.site_runtime_dirN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   r   r    r!   r"   r#   r$   r&   r'   r(   r)   r*   r+   r,   r-   r   r   r   r   r      sB   r   )
r1   Ú
__future__r   Úos.pathr
   r   Úapir   r   Ú__all__r   r   r   r   Ú<module>   s   sÿ