<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def copy_attribute_values(source, target, property_names):
 """Function to copy attributes from a source to a target object. This method copies the property values in a given list from a given source object to a target source object. :param source: The source object that is to be inspected for property values. :type source: type :param target: The target object that will be modified with values found in src. :type target: type :param property_names: List of property names whose values are to be copied from source to object. :type property_names: list, set :rtype: None :raises ValueError: If src is None. :raises ValueError: If target is None. :raises ValueError: If property list is not iterable or None. The *copy_attribute_values* method will only copy the values from src when a property name is found in the src. In cases where a property value is not found in the src object, then no change to the target object is made. :Example Usage: """

    if source is None:
        raise ValueError('"source" must be provided.')
    if target is None:
        raise ValueError('"target" must be provided.')
    if property_names is None:
        raise ValueError('"property_list" must be provided.')
    if (not hasattr(property_names, '__iter__') or
            isinstance(property_names, str)):
        raise ValueError(
            '"property_names" must be a sequence type, such as list or set.')

    for property_name in property_names:
        if hasattr(source, property_name):
            setattr(target, property_name, getattr(source, property_name))