gddlZddlZddlZddlZddlmZmZmZmZm Z m Z m Z m Z m Z mZmZmZmZeeej&efZgdZGddej,ZGddeZeGd d e ZGd d eZy) N) AnyBinaryIOIterableIteratorNoReturnLiteralOptionalProtocolTextTextIOUnionoverloadruntime_checkable)ResourceReader TraversableTraversableResourcesceZdZdZej dedefdZej dedefdZ ej dede fdZ ej de e fdZy ) rzDAbstract 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 F/opt/hc_python/lib/python3.12/site-packages/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_path)s  rpathct)zjReturn True if the named 'path' is a resource. Files are resources, directories are not. rrr s r is_resourcezResourceReader.is_resource6s  rct)z+Return an iterable of entries in `package`.rrs rcontentszResourceReader.contents>s  rN)__name__ __module__ __qualname____doc__abcabstractmethodr rrrboolr#rstrr&rrrrsN  d  x       d  t           (3-  rr) metaclassc eZdZy)TraversalErrorN)r'r(r)r/rrr2r2Dsrr2c eZdZdZej dedfdZdefdZ dde e de e de fdZ ej de fd Zej de fd Zd eddfd Zd eddfdZeddeddededefdZededdededefdZej dde dededeeeffdZeej de fdZy)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. rcy)z3 Yield Traversable objects in self Nr/r%s riterdirzTraversable.iterdirRrcp|jd5}|jcdddS#1swYyxYw)z0 Read contents of self as bytes rbNopenread)rstrms r read_byteszTraversable.read_bytesXs$YYt_99;__s,5Nencodingerrorsct|j||5}|jcdddS#1swYyxYw)z/ Read contents of self as text )r>r?Nr9)rr>r?r<s r read_textzTraversable.read_text_s+ YYY 8D99;9 8 8s.7cy)z4 Return True if self is a directory Nr/r%s ris_dirzTraversable.is_dirhr6rcy)z/ Return True if self is a file Nr/r%s ris_filezTraversable.is_filenr6r descendantscL|s|Stjjdttj |D}t |fd|jD} t |}|j|S#t$rtdt|wxYw)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`` (``/``). c34K|]}|jywN)parts).0r s r z'Traversable.joinpath..~s. #J4DJJ#Jc3BK|]}|jk(s|ywrIname)rK traversabletargets rrLz'Traversable.joinpath..s# +9K[=M=MQW=WK>sz"Target not found during traversal.) itertoolschain from_iterablemappathlib PurePosixPathnextr5 StopIterationr2listjoinpath)rrFnamesmatchesmatchrRs @rr\zTraversable.joinpathtsK--. #&w'<'  ME u~~u%%   4fd5k  s ) B B#childc$|j|S)z2 Return Traversable child in self )r\)rr`s r __truediv__zTraversable.__truediv__s}}U##rrmodeargskwargscyrIr/rrdrerfs rr:zTraversable.opensSVrr8cyrIr/rhs rr:zTraversable.opensPSrcy)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/rhs rr:zTraversable.openr6rcy)zM The base name of this object without any parent references. Nr/r%s rrPzTraversable.namer6r)NN)rc)r'r(r)r*r+r,rr5bytesr=r r.rAr-rCrEStrPathr\rbrrrr r:rr propertyrPr/rrrrHs  -0  EGK  6>sm         &W&&2$$]$ VVCV3V6VV SSsScShSS    &)  58  vx      c  rrcxeZdZdZej d dZdedefdZ de de fdZ dede fdZdeefd Zy ) rzI The required interface for providing traversable resources. rcy)z3Return a Traversable object for the loaded package.Nr/r%s rfileszTraversableResources.filesr6rrc^|jj|jdS)Nr8)rqr\r:rs rrz"TraversableResources.open_resources$zz|$$X.33D99rct|rIrrs rrz"TraversableResources.resource_paths ))rr c\|jj|jSrI)rqr\rEr"s rr#z TraversableResources.is_resources"zz|$$T*2244rcLd|jjDS)Nc34K|]}|jywrIrO)rKitems rrLz0TraversableResources.contents..s=&(3->rr)r+rSosrWtypingrrrrrrr r r r r rrr.PathLikerm__all__ABCMetar Exceptionr2rrr/rrr~s   R[[%% & C' s{{' T Y a (a a H>>>r