=OgddlZddlZddlZddlmZmZmZmZmZm Z m Z ddlm Z m Z ddlm Z e eejefZgdZGddejZe Gd d e ZGd d eZdS) N)AnyBinaryIOIterableIteratorNoReturnTextOptional)runtime_checkableProtocol)Union)ResourceReader TraversableTraversableResourcesceZdZdZejdedefdZejdedefdZ ejdede fdZ ejde e fdZd S) r zDAbstract 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. FileNotFoundErrorselfrs >/opt/alt/python311/lib64/python3.11/importlib/resources/abc.py open_resourcezResourceReader.open_resources  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.contents2s  rN)__name__ __module__ __qualname____doc__abcabstractmethodrrrrboolr rstrr#rrr r sNN  d  x         d  t               (3-      rr ) metaclassc<eZdZdZejdedfdZdefdZ dde e de fdZ ejde fdZejde fd Zejd eddfd Zd eddfd ZejddZejde fdZdS)rz An object with a subset of pathlib.Path methods suitable for traversing directories and opening files. Any exceptions that occur when accessing the backing resource may propagate unaltered. rcdS)z3 Yield Traversable objects in self Nr,r"s riterdirzTraversable.iterdirBrc|d5}|cdddS#1swxYwYdS)z0 Read contents of self as bytes rbNopenread)rstrms r read_byteszTraversable.read_bytesHsYYt__ 99;;                  s 7;;Nencodingc||5}|cdddS#1swxYwYdS)z/ Read contents of self as text )r9Nr4)rr9r7s r read_textzTraversable.read_textOsYYY ) ) T99;;                  s 8<<cdS)z4 Return True if self is a directory Nr,r"s ris_dirzTraversable.is_dirVr1rcdS)z/ Return True if self is a file Nr,r"s ris_filezTraversable.is_file\r1r descendantscdS)z Return Traversable resolved with any descendants applied. Each descendant should be a path segment relative to self and each may contain multiple levels separated by ``posixpath.sep`` (``/``). Nr,)rr@s rjoinpathzTraversable.joinpathbr1rchildc,||S)z2 Return Traversable child in self )rB)rrCs r __truediv__zTraversable.__truediv__ls}}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 rr5zTraversable.openrr1rcdS)zM The base name of this object without any parent references. Nr,r"s rnamezTraversable.name|r1rN)rF)r$r%r&r'r(r)rr0bytesr8r r+r;r*r=r?StrPathrBrEr5abstractpropertyrLr,rrrr8s  -0    E(3-3              W     $$]$$$$        c      rrceZdZdZejd dZdedej fdZ de de fdZ dedefd Zdeefd Zd S) rzI The required interface for providing traversable resources. rrcdS)z3Return a Traversable object for the loaded package.Nr,r"s rfileszTraversableResources.filesr1rrcv||dS)Nr3)rSrBr5rs rrz"TraversableResources.open_resources,zz||$$X..33D999rc t|rMrrs rrz"TraversableResources.resource_paths)))rrct||SrM)rSrBr?rs rr z TraversableResources.is_resources*zz||$$T**22444rcbd|DS)Nc3$K|] }|jV dSrM)rL).0items r z0TraversableResources.contents..s$==d ======r)rSr0r"s rr#zTraversableResources.contentss*==djjll&:&:&<&<====rN)rr)r$r%r&r'r(r)rSrOioBufferedReaderrrrrr*r rr+r#r,rrrrs  BBBB:g:"2C::::*c*h****55D5555>(3->>>>>>rr)r(r\ostypingrrrrrrr r r r r+PathLikerO__all__ABCMetar rrr,rrrcsI NNNNNNNNNNNNNNNNNN........ R[%% & C C C' ' ' ' ' s{' ' ' ' TG G G G G (G G G T>>>>>>>>>>>r