@@ -636,6 +636,11 @@ def copy_store(source, dest, source_path='', dest_path='', excludes=None,
636636 return n_copied , n_skipped , n_bytes_copied
637637
638638
639+ def _check_dest_is_group (dest ):
640+ if not hasattr (dest , 'create_dataset' ):
641+ raise ValueError ('dest must be a group, got {!r}' .format (dest ))
642+
643+
639644def copy (source , dest , name = None , shallow = False , without_attrs = False , log = None ,
640645 if_exists = 'raise' , dry_run = False , ** create_kws ):
641646 """Copy the `source` array or group into the `dest` group.
@@ -708,6 +713,9 @@ def copy(source, dest, name=None, shallow=False, without_attrs=False, log=None,
708713
709714 """
710715
716+ # value checks
717+ _check_dest_is_group (dest )
718+
711719 # setup logging
712720 with _LogWriter (log ) as log :
713721
@@ -973,6 +981,9 @@ def copy_all(source, dest, shallow=False, without_attrs=False, log=None,
973981
974982 """
975983
984+ # value checks
985+ _check_dest_is_group (dest )
986+
976987 # setup counting variables
977988 n_copied = n_skipped = n_bytes_copied = 0
978989
0 commit comments