U
    >h
                     @  sb   d Z ddlmZ ddlZddlZddlmZ ddlm	Z	 erHddl
mZ G dd	 d	e	Zd	gZdS )
zmacOS.    )annotationsN)TYPE_CHECKING   )PlatformDirsABC)Pathc                   @  sT  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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   B/tmp/pip-unpacked-wheel-zvxvnq2j/pip/_vendor/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 )aB  
        :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_dirr   c                 C  s   |  | jS )zh:return: data path shared by users. Only return the first item, even if ``multipath`` is set to ``True``) _first_item_as_path_if_multipathr   r   r   r   r   site_data_path1   s    zMacOS.site_data_pathc                 C  s   | j S )zC:return: config directory tied to the user, same as `user_data_dir`r   r   r   r   r   user_config_dir6   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_dir@   s    zMacOS.user_cache_dirc                 C  sJ   t jd}|r| dgng }|| d | jrBtj|S |d S )a1  
        :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_dirE   s    
zMacOS.site_cache_dirc                 C  s   |  | jS )zi:return: cache path shared by users. Only return the first item, even if ``multipath`` is set to ``True``)r    r&   r   r   r   r   site_cache_pathV   s    zMacOS.site_cache_pathc                 C  s   | j S )zB:return: state directory tied to the user, same as `user_data_dir`r"   r   r   r   r   user_state_dir[   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_dir`   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_dire   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_dirj   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_diro   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_dirt   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_diry   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_dir~   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_dir   s    zMacOS.user_runtime_dirc                 C  s   | j S )zF:return: runtime directory shared by users, same as `user_runtime_dir`)r1   r   r   r   r   site_runtime_dir   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/   r0   r1   r2   r   r   r   r   r      sJ   r   )r6   
__future__r   os.pathr   r   typingr   apir   pathlibr   r   __all__r   r   r   r   <module>   s    