Sending list of patterns to copytree's ignore_patterns gives TypeError: unhashable type: 'list'
copytree, python
Solution
copytree(source_dir, dest_dir, ignore=ignore_patterns(*ignoreList))
`ignore_patterns` receives a all the patterns as positional arguments, not as a list.
Problem
I am working on a python script that throws a TypeError: unhashable type: 'list' when I try and use a list of extensions as copytree's ignore_patterns. I'm unsure, 1. Why this won't work, and 2. How to go about fixing it. ``` # allFileTypes is the list of all extensions in source_dir # grabbed with function getFileExtList allFileTypes = getFileExtList(source_dir) # delete the blank file type del allFileTypes[0] # Open a window to choose the files to copy copyList = eg.multchoicebox(msg='Select the file types to copy', choices=(allFileTypes)) # List comprehension to make an ignore list for copytree ignoreList = [x for x in allFileTypes if x not in copyList] # Open a window to choose the destination directory root_dir = eg.diropenbox(title='Choose Destination Directory') # Take the basename of source_dir adding it to root_dir or os.mkdir will # will break on the existing directory dest_dir = os.path.join(root_dir, os.path.basename(source_dir)) # copytree everything from the source_dir to the dest_dir ignoring # all files types not chosen from the list copytree(source_dir, dest_dir, ignore=ignore_patterns(ignoreList)) ```