
    2i                        S SK r S SKrS SKJrJrJrJr   " S S\5      r\\\\\	\S4   4   r
\ " S S\5      5       rS\\\4   S	\4S
 jr\R                  " 5       4S\
S\\\4   4S jjr\ R                  S\\\	\
4   4S j5       r\R"                  S\	4S j5       r\R"                  S\4S j5       r\R"                  S\4S j5       rg)    N)DictProtocolUnionruntime_checkablec                       \ rS rSrSrSrg)Symlink	   z.
A string indicating the target of a symlink.
 N)__name__
__module____qualname____firstlineno____doc____static_attributes__r
       Y/home/james-whalen/.local/lib/python3.13/site-packages/importlib_resources/tests/_path.pyr   r   	   s    r   r   	FilesSpecc                   2    \ rS rSrS rS rS rS rS rSr	g)		TreeMaker   c                     g Nr
   )selfargskwargss      r   __truediv__TreeMaker.__truediv__   s    Cr   c                     g r   r
   )r   r   s     r   mkdirTreeMaker.mkdir   s    sr   c                     g r   r
   )r   contentr   s      r   
write_textTreeMaker.write_text   s    Sr   c                     g r   r
   )r   r"   s     r   write_bytesTreeMaker.write_bytes   s    Cr   c                     g r   r
   )r   targets     r   
symlink_toTreeMaker.symlink_to   s    #r   r
   N)
r   r   r   r   r   r   r#   r&   r*   r   r
   r   r   r   r      s    /"0'%r   r   objreturnc                 \    [        U [        5      (       a  U $ [        R                  " U 5      $ r   )
isinstancer   pathlibPath)r,   s    r   _ensure_tree_makerr2      s"    S),,3C',,s2CCr   specprefixc                 f    U R                  5        H  u  p#[        U[        U5      U-  5        M     g)a  
Build a set of files/directories, as described by the spec.

Each key represents a pathname, and the value represents
the content. Content may be a nested directory.

>>> spec = {
...     'README.txt': "A README file",
...     "foo": {
...         "__init__.py": "",
...         "bar": {
...             "__init__.py": "",
...         },
...         "baz.py": "# Some code",
...         "bar.py": Symlink("baz.py"),
...     },
...     "bing": Symlink("foo"),
... }
>>> target = getfixture('tmp_path')
>>> build(spec, target)
>>> target.joinpath('foo/baz.py').read_text(encoding='utf-8')
'# Some code'
>>> target.joinpath('bing/bar.py').read_text(encoding='utf-8')
'# Some code'
N)itemscreater2   )r3   r4   namecontentss       r   buildr:   #   s+    : **,x+F3d:; 'r   r"   c                 4    UR                  SS9  [        XS9  g )NT)exist_ok)r4   )r   r:   r"   paths     r   r7   r7   D   s    JJJ	'r   c                 &    UR                  U 5        g r   )r&   r=   s     r   _r@   J   s    Wr   c                 $    UR                  U SS9  g )Nzutf-8)encoding)r#   r=   s     r   r@   r@   O   s    OOGgO.r   c                 &    UR                  U 5        g r   )r*   r=   s     r   r@   r@   T   s    OOGr   )	functoolsr0   typingr   r   r   r   strr   bytesr   r   r2   r1   r:   singledispatchr7   registerr@   r
   r   r   <module>rJ      s*     ; ;c  eC<==>	 	& 	& 	&DE#y.1 Di D %,LLN<
<#y.!<B  E#ui/0    
 u   /s / / w  r   