import inspect


def build_dict_from_instance_properties(class_instance) -> dict:
    """Retrunes dict of all class properties including @property methods"""
    properties = {}
    for prop_name in dir(class_instance):
        prop_value = getattr(class_instance, prop_name)
        if not prop_name.startswith("__") and not inspect.ismethod(prop_value):
            properties[prop_name] = prop_value
    return properties