Traces given class property using given tracer.

    :param cls: Class of the property.
    :type cls: object
    :param accessor: Property to trace.
    :type accessor: property
    :param tracer: Tracer.
    :type tracer: object
    :return: Definition success.
    :rtype: bool

def trace_property(cls, accessor, tracer=tracer):
    """
    Traces given class property using given tracer.

    :param cls: Class of the property.
    :type cls: object
    :param accessor: Property to trace.
    :type accessor: property
    :param tracer: Tracer.
    :type tracer: object
    :return: Definition success.
    :rtype: bool
    """

    if is_traced(accessor.fget) and is_traced(accessor.fset) and is_traced(accessor.fdel):
        return False

    name = get_method_name(accessor)
    setattr(cls, name, property(tracer(accessor.fget),
                                tracer(accessor.fset),
                                tracer(accessor.fdel)))
    return True