o
    èÅb  ã                   @  s<   d dl mZ d dlmZmZ d dlmZ G dd„ deƒZdS )é    )Úannotations)Ú	UFOReaderÚ	UFOWriter)Ú	DataStorec                   @  sH   e Zd ZdZeddd„ƒZeddd„ƒZeddd„ƒZeddd„ƒZdS )ÚDataSetaH  Represents a mapping of POSIX filename strings to arbitrary data bytes.

    Always use forward slahes (/) as directory separators, even on Windows.

    Behavior:
        DataSet behaves like a dictionary of type ``Dict[str, bytes]``.

        >>> from ufoLib2 import Font
        >>> font = Font()
        >>> font.data["test.txt"] = b"123"
        >>> font.data["directory/my_binary_blob.bin"] = b"456"
        >>> font.data["test.txt"]
        b'123'
        >>> del font.data["test.txt"]
        >>> list(font.data.items())
        [('directory/my_binary_blob.bin', b'456')]
    Úreaderr   Úreturnú	list[str]c                 C  s   |   ¡ S )z;Returns a list of POSIX filename strings in the data store.)ZgetDataDirectoryListing)r   © r
   ú9/usr/lib/python3/dist-packages/ufoLib2/objects/dataSet.pyÚlist_contents   s   zDataSet.list_contentsÚfilenameÚstrÚbytesc                 C  s
   |   |¡S )z.Returns the data at filename within the store.)ZreadData)r   r   r
   r
   r   Ú	read_data    s   
zDataSet.read_dataÚwriterr   ÚdataÚNonec                 C  s   |   ||¡ dS )z-Writes the data to filename within the store.N)Z	writeData)r   r   r   r
   r
   r   Ú
write_data%   s   zDataSet.write_datac                 C  s   |   |¡ dS )z-Remove the data at filename within the store.N)Z
removeData)r   r   r
   r
   r   Úremove_data*   s   zDataSet.remove_dataN)r   r   r   r	   )r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r   r   r
   r
   r
   r   r      s    r   N)Z
__future__r   ZfontTools.ufoLibr   r   ZufoLib2.objects.miscr   r   r
   r
   r
   r   Ú<module>   s    