code: def accept(self, visitor: "ValueVisitor[Ret]") -> Ret:
      source_path = self.source_handler._path
      source_attr = self.source_handler._container.get_attribute(
          source_path
      )
      if source_attr and source_attr.supports_copy:
          return visitor.copy_value(
              source_type=type(source_attr),
              source_path=parse_path(source_path),
          )
      else:
          raise Exception(
              f"{type(source_attr).__name__} doesn't support copying"
          )
  
file_path: neptune-client/src/neptune/types/value_copy.py
imports: from dataclasses import dataclass
  from typing import TYPE_CHECKING, TypeVar
  from neptune.internal.utils.paths import parse_path
  from neptune.types.value import Value
label_desc: Use image node_id 2 for calling the ValueCopy obj's underlying member method code with example usage: obj.accept(visitor) and returns: visitor