def _read_only_property(key, doc=None):
    """Create property that gives read-only access to instance._data[key]"""
    if doc is None:
        doc = 'data from key {!r}'.format(key)
    return property(lambda self: self._data[key], doc=doc)
