
    ob                         d Z ddlmZmZmZ ddlZddlmZ ddlm	Z	 ddl
m
Z
 ej                  rddlmZmZ d	d
lmZ d	dlmZ ddlmZ e
j(                   G d de             Zy)z``AppFS`` opener definition.
    )absolute_importprint_functionunicode_literalsN   )Opener)OpenerError)registry)TextUnion   )_AppFS)SubFS)ParseResultc                   "    e Zd ZdZg dZdZd Zy)AppFSOpenerz``AppFS`` opener.userdatauserconfsitedatasiteconf	usercacheuserlogNc                 6   ddl m} ddlm} | j                  J|j
                  |j                  |j                  |j                  |j                  |j                  d| _        | j                  |j                     }|j                  j                  d      \  }	}
}|	j                  dd      }t        |      dk(  r|\  }}d }n t        |      dk(  r|\  }}}nt!        d       |||||	      }|
r(|r|j#                  |d
       |j%                  ||      S |S )Nr   )appfs)ClosingSubFSr   /:   zEresource should be <appname>:<author> or <appname>:<author>:<version>)authorversioncreateT)recreate)factory) r   subfsr   _protocol_mapping
UserDataFSUserConfigFS
SiteDataFSSiteConfigFSUserCacheFS	UserLogFSprotocolresource	partitionsplitlenr   makediropendir)selffs_urlparse_result	writeabler!   cwdr   r   fs_classr.   delimpathtokensappnamer   r    app_fss                    1/usr/lib/python3/dist-packages/fs/opener/appfs.pyopen_fszAppFSOpener.open_fs   s    	(!!)!,,!..!,,!..".. ??&D" )),*?*?@ , 5 5 ? ? D%Q'v;!$OGVG[A'-$GVW2 
 '&'&Qtd3>>$>==    )__name__
__module____qualname____doc__	protocolsr&   r@    rA   r?   r   r      s    XI,rA   r   )rE   
__future__r   r   r   typingbaser   errorsr   r	   TYPE_CHECKINGr
   r   r   r   r%   r   parser   installr   rG   rA   r?   <module>rO      sU    I H    	"" 
2& 2 2rA   