Jd.ddlZddlmZmZmZddlmZmZGddejZ eGdd eZ Gd d e Z dS) N)BinaryIOIterableText)runtime_checkableProtocolceZdZdZejdedefdZejdedefdZ ejdede fdZ ejde e fdZd S) ResourceReaderzDAbstract base class for loaders to provide resource reading support.resourcereturnct)zReturn an opened, file-like object for binary reading. The 'resource' argument is expected to represent only a file name. If the resource cannot be found, FileNotFoundError is raised. FileNotFoundErrorselfr s ]/opt/alt/python311/lib/python3.11/site-packages/setuptools/_vendor/importlib_resources/abc.py open_resourcezResourceReader.open_resource s  ct)zReturn the file system path to the specified resource. The 'resource' argument is expected to represent only a file name. If the resource does not exist on the file system, raise FileNotFoundError. rrs r resource_pathzResourceReader.resource_paths  rpathct)zjReturn True if the named 'path' is a resource. Files are resources, directories are not. rrrs r is_resourcezResourceReader.is_resource#s  rct)z+Return an iterable of entries in `package`.rrs rcontentszResourceReader.contents+s  rN)__name__ __module__ __qualname____doc__abcabstractmethodrrrrboolrrstrrrrr r sNN  d  x         d  t               (3-      rr ) metaclassceZdZdZejdZdZddZejde fdZ ejde fdZ ejd Z d Z ejdd Zejdefd ZdS) Traversablezt An object with a subset of pathlib.Path methods suitable for traversing directories and opening files. cdS)z3 Yield Traversable objects in self Nr&rs riterdirzTraversable.iterdir8rc|d5}|cdddS#1swxYwYdS)z0 Read contents of self as bytes rbNopenread)rstrms r read_byteszTraversable.read_bytes>sYYt__ 99;;                  s 7;;Nc||5}|cdddS#1swxYwYdS)z/ Read contents of self as text )encodingNr/)rr5r2s r read_textzTraversable.read_textEsYYY ) ) T99;;                  s 8<<r cdS)z4 Return True if self is a directory Nr&rs ris_dirzTraversable.is_dirLr,rcdS)z/ Return True if self is a file Nr&rs ris_filezTraversable.is_fileRr,rcdS)2 Return Traversable child in self Nr&rchilds rjoinpathzTraversable.joinpathXr,rc,||S)r<)r?r=s r __truediv__zTraversable.__truediv__^s}}U###rrcdS)z mode may be 'r' or 'rb' to open as text or binary. Return a handle suitable for reading (same as pathlib.Path.open). When opening as text, accepts encoding parameters such as those accepted by io.TextIOWrapper. Nr&)rmodeargskwargss rr0zTraversable.opendr,rcdS)zM The base name of this object without any parent references. Nr&rs rnamezTraversable.namenr,rN)rB)rrr r!r"r#r+r3r6r$r8r:r?rAr0abstractpropertyr%rHr&rrr)r)1s3                     $$$        c      rr)cJeZdZdZejdZdZdZdZ dZ dS)TraversableResourceszI The required interface for providing traversable resources. cdS)z3Return a Traversable object for the loaded package.Nr&rs rfileszTraversableResources.files{r,rcv||dS)Nr.)rNr?r0rs rrz"TraversableResources.open_resources,zz||$$X..33D999rc t|rIrrs rrz"TraversableResources.resource_paths)))rct||SrI)rNr?r:rs rrz TraversableResources.is_resources*zz||$$T**22444rcbd|DS)Nc3$K|] }|jV dSrI)rH).0items r z0TraversableResources.contents..s$==d ======r)rNr+rs rrzTraversableResources.contentss*==djjll&:&:&<&<====rN) rrr r!r"r#rNrrrrr&rrrLrLus|  BBB:::***555>>>>>rrL) r"typingrrr_compatrrABCMetar r)rLr&rrrZs ++++++++++00000000' ' ' ' ' s{' ' ' ' T@ @ @ @ @ (@ @ @ F>>>>>>>>>>>r