code: def find_files(path, patterns):
      
      if not isinstance(patterns, (list, tuple)):
          patterns = [patterns]
  
      matches = []
      for root, dirnames, filenames in os.walk(path):
          for pattern in patterns:
              for filename in fnmatch.filter(filenames, pattern):
                  matches.append(os.path.join(root, filename))
      return matches
docs: Returns all files from a given path that matches the pattern or list
      of patterns
  
      @type path: str
      @param path: A path to traverse
  
      @typ patterns: str|list
      @param patterns: A pattern or a list of patterns to match
  
      @rtype: list[str]:
      @return: A list of matched files