<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_node_attributes(self, node):
 """Given a node, get a dictionary with copies of that node's attributes. :param node: reference to the node to retrieve the attributes of. :returns: dict -- copy of each attribute of the specified node. :raises: ValueError -- No such node exists. """

        if not self.has_node(node):
            raise ValueError("No such node exists.")
        attributes = {}
        for attr_name, attr_value in self._node_attributes[node].items():
            attributes[attr_name] = copy.copy(attr_value)
        return attributes