docs: 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:
  
  >>> src = type('attr_bag', (object,), dict())
  >>> src.property1 = 1
  >>> src.property2 = 2
  >>> src.property3 = 3
  >>> target = type('attr_bag', (object,), dict())
  >>> property_list = ['property1', 'property2', 'exist_not_property']
  >>> copy_attribute_values(src, target, property_list)
  >>> assert hasattr(target, 'property1')
  >>> assert hasattr(target, 'property2')
  >>> assert not hasattr(target, 'property3')
  >>> assert not hasattr(target, 'exist_not_property')
  """
      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))