+
    Bi\                        ^ RI t ^ RIt^ RIHtHtHt ^ RIHt  ! R R]4      t]]]]]	]R3,          3,          t
] ! R R]4      4       tR	 R
 lt]P                  ! 4       3R R llt] P                  R R l4       t]P"                  R R l4       t]P"                  R R l4       t]P"                  R R l4       t ! R R4      tR# )    N)DictProtocolUnion)runtime_checkablec                       ] tR t^	tRtRtR# )Symlinkz.
A string indicating the target of a symlink.
 N)__name__
__module____qualname____firstlineno____doc____static_attributes__r	       9/usr/lib/python3.14/test/test_importlib/metadata/_path.pyr   r   	   s    r   r   	FilesSpecc                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )	TreeMakerc                    R # Nr	   )selfargskwargss   &*,r   __truediv__TreeMaker.__truediv__   s    Cr   c                    R # r   r	   r   r   s   &,r   mkdirTreeMaker.mkdir   s    sr   c                    R # r   r	   r   contentr   s   &&,r   
write_textTreeMaker.write_text   s    Sr   c                    R # r   r	   )r   r"   s   &&r   write_bytesTreeMaker.write_bytes   s    Cr   c                    R # r   r	   r   targets   &&r   
symlink_toTreeMaker.symlink_to   s    #r   r	   N)r
   r   r   r   r   r   r#   r&   r+   r   __classdictcell____classdict__s   @r   r   r      s     /"0'%%r   r   c                R    V ^8  d   QhR\         \        \        3,          R\        /# )   objreturn)r   strr   )formats   "r   __annotate__r6      s'     D DE#y.1 Di Dr   c                 ^    \        V \        4      '       d   V # \        P                  ! V 4      # r   )
isinstancer   pathlibPath)r2   s   &r   _ensure_tree_makerr;      s"    S),,3C',,s2CCr   c                R    V ^8  d   QhR\         R\        \        \        3,          /# )r1   specprefix)r   r   r4   r   )r5   s   "r   r6   r6   #   s%     < <
<#y.!<r   c                p    V P                  4        F!  w  r#\        V\        V4      V,          4       K#  	  R# )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creater;   )r=   r>   namecontentss   &&  r   buildrD   #   s+    : **,x+F3d:; 'r   c                P    V ^8  d   QhR\         \        \        \        3,          /# r1   r"   )r   r4   bytesr   )r5   s   "r   r6   r6   E   s        E#ui/0  r   c                 B    VP                  R R7       \        WR7       R# )T)exist_ok)r>   N)r   rD   r"   paths   &&r   rA   rA   D   s    JJJ	'r   c                $    V ^8  d   QhR\         /# rF   )rG   )r5   s   "r   r6   r6   K   s      u r   c                 (    VP                  V 4       R # r   )r&   rJ   s   &&r   _rN   J   s    Wr   c                $    V ^8  d   QhR\         /# rF   )r4   )r5   s   "r   r6   r6   P   s     / /s /r   c                 ,    VP                  V R R7       R# )zutf-8)encodingN)r#   rJ   s   &&r   rN   rN   O   s    OOGgO.r   c                $    V ^8  d   QhR\         /# rF   )r   )r5   s   "r   r6   r6   U   s      w r   c                 (    VP                  V 4       R # r   )r+   rJ   s   &&r   rN   rN   T   s    OOGr   c                   l   a  ] tR t^Yt o Rt]P                  ! 4       R3R ltR tR t	]	t
R tR tRtV tR# )		Recordingz
A TreeMaker object that records everything that would be written.

>>> r = Recording()
>>> build({'foo': {'foo1.txt': 'yes'}, 'bar.txt': 'abc'}, r)
>>> r.record
['foo/foo1.txt', 'bar.txt']
Nc                8    Wn         Ve	   W n        R # . V n        R # r   locrecord)r   rX   rY   s   &&&r   __init__Recording.__init__c   s     & 2fr   c                P    \        V P                  V,          V P                  4      # r   )rU   rX   rY   )r   others   &&r   r   Recording.__truediv__g   s    E)4;;77r   c                b    V P                   P                  \        V P                  4      4       R # r   )rY   appendr4   rX   r!   s   &&,r   r#   Recording.write_textj   s    3txx=)r   c                    R # r   r	   r   s   &,r   r   Recording.mkdiro   s    r   c                    R # r   r	   r)   s   &&r   r+   Recording.symlink_tor   s    r   rW   )r
   r   r   r   r   r9   PurePosixPathrZ   r   r#   r&   r   r+   r   r-   r.   s   @r   rU   rU   Y   s?      #0024 ;8* K r   rU   )	functoolsr9   typingr   r   r   r   r4   r   rG   r   r   r;   r:   rD   singledispatchrA   registerrN   rU   r	   r   r   <module>rk      s      ( ( $c  eC<==>	 	& 	& 	&D %,LLN<B    
   / /   r   