� !A?h� � � � d dl Z d dlZd dlZd dlmZmZmZmZmZm Z m Z d dlmZmZ d dlm Z e eej e f Zg d�Z G d� de j �� � Ze G d � d e� � � � Z G d� de� � ZdS ) � N)�Any�BinaryIO�Iterable�Iterator�NoReturn�Text�Optional)�runtime_checkable�Protocol)�Union)�ResourceReader�Traversable�TraversableResourcesc �� � e Zd ZdZej dedefd�� � Zej dedefd�� � Z ej dede fd�� � Zej dee fd�� � Zd S ) r zDAbstract base class for loaders to provide resource reading support.�resource�returnc � � t �)z�Return 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. ��FileNotFoundError��selfr s �D/opt/alt/python-internal/lib64/python3.11/importlib/resources/abc.py� open_resourcezResourceReader.open_resource s � � �� c � � t �)z�Return 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. r r s r � resource_pathzResourceReader.resource_path s � � �r �pathc � � t �)zjReturn True if the named 'path' is a resource. Files are resources, directories are not. r �r r s r �is_resourcezResourceReader.is_resource* s � � �r c � � t �)z+Return an iterable of entries in `package`.r �r s r �contentszResourceReader.contents2 s � � �r N)�__name__� __module__�__qualname__�__doc__�abc�abstractmethodr r r r �boolr r �strr# � r r r r s� � � � � � �N�N��� �d� �x� � � � �� � �� �d� �t� � � � �� � �� �� �� � � � �� � �� �(�3�-� � � � �� � � r r )� metaclassc �< � e Zd ZdZej ded fd�� � Zdefd�Z dde e defd�Zej de fd�� � Zej de fd �� � Zej d edd fd�� � Zdedd fd �Zej dd�� � Zej defd�� � ZdS )r z� 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. r c � � dS )z3 Yield Traversable objects in self Nr, r" s r �iterdirzTraversable.iterdirB � � � � r c � � | � d� � 5 }|� � � cddd� � S # 1 swxY w Y dS )z0 Read contents of self as bytes �rbN��open�read)r �strms r � read_byteszTraversable.read_bytesH s� � � �Y�Y�t�_�_� ���9�9�;�;� � � � � � � � � � � � ���� � � � � � s �7�;�;N�encodingc � � | � |�� � 5 }|� � � cddd� � S # 1 swxY w Y dS )z/ Read contents of self as text )r9 Nr4 )r r9 r7 s r � read_textzTraversable.read_textO s� � � �Y�Y��Y� )� )� �T��9�9�;�;� � � � � � � � � � � � ���� � � � � � s �8�<�<c � � dS )z4 Return True if self is a directory Nr, r" s r �is_dirzTraversable.is_dirV r1 r c � � dS )z/ Return True if self is a file Nr, r" s r �is_filezTraversable.is_file\ r1 r �descendantsc � � dS )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, )r r@ s r �joinpathzTraversable.joinpathb r1 r �childc �, � | � |� � S )z2 Return Traversable child in self )rB )r rC s r �__truediv__zTraversable.__truediv__l s � � �}�}�U�#�#�#r �rc � � dS )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, )r �mode�args�kwargss r r5 zTraversable.openr r1 r c � � dS )zM The base name of this object without any parent references. Nr, r" s r �namezTraversable.name| r1 r �N)rF )r$ r% r&