def variable(name: str, target: property) -> typing.Union[None, dict]:
    """
    :param name:
    :param target:
    :return:
    """

    if hasattr(target, 'fget'):
        doc = parse_function(name, target.fget)
        if doc:
            doc['read_only'] = bool(target.fset is None)
            return doc

    return dict(
        name=name,
        description=get_docstring(target)
    )
:param name:
    :param target:
    :return: