
     #e(                    X    d dl mZ d dlmZmZ d dlmZ d dlmZ e G d de             Z	y)    )annotations)	UFOReader	UFOWriter)	DataStore)serdec                  X    e Zd ZdZedd       Zedd       Zed	d       Zed
d       Zy)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')]
    c                "    | j                         S )z;Returns a list of POSIX filename strings in the data store.)getDataDirectoryListing)readers    9/usr/lib/python3/dist-packages/ufoLib2/objects/dataSet.pylist_contentszDataSet.list_contents   s     --//    c                $    | j                  |      S )z.Returns the data at filename within the store.)readData)r   filenames     r   	read_datazDataSet.read_data"   s     x((r   c                (    | j                  ||       y)z-Writes the data to filename within the store.N)	writeData)writerr   datas      r   
write_datazDataSet.write_data'   s     	4(r   c                &    | j                  |       y)z-Remove the data at filename within the store.N)
removeData)r   r   s     r   remove_datazDataSet.remove_data,   s     	(#r   N)r   r   returnz	list[str])r   r   r   strr   bytes)r   r   r   r   r   r   r   None)r   r   r   r   r   r   )	__name__
__module____qualname____doc__staticmethodr   r   r   r    r   r   r	   r	   	   sW    $ 0 0 ) ) ) ) $ $r   r	   N)

__future__r   fontTools.ufoLibr   r   ufoLib2.objects.miscr   ufoLib2.serder   r	   r%   r   r   <module>r*      s,    " 1 *  %$i %$ %$r   