old_contents: import cv2
  import numpy as np
  from matplotlib import pyplot as plt
  import os
   
  # make_edges reads an image from /pfs/images and outputs the result of running
  # edge detection on that image to /pfs/out. Note that /pfs/images and
  # /pfs/out are special directories that Pachyderm injects into the container.
  def make_edges(image):
      img = cv2.imread('/pfs/images/' + image)
      edges = cv2.Canny(img,100,200)
      plt.imsave("/pfs/out/" + os.path.splitext(image)[0]+'.png', edges, cmap = 'gray')
  
  # walk /pfs/images and call make_edges on every file found
  for subdir, dirs, files in os.walk("/pfs/images"):
      for file in files:
          make_edges(file)
  
new_contents: import cv2
  import numpy as np
  from matplotlib import pyplot as plt
  import os
   
  # make_edges reads an image from /pfs/images and outputs the result of running
  # edge detection on that image to /pfs/out. Note that /pfs/images and
  # /pfs/out are special directories that Pachyderm injects into the container.
  def make_edges(image):
      print(image)
      img = cv2.imread(image)
      tail = os.path.split(image)[1]
      edges = cv2.Canny(img,100,200)
      plt.imsave(os.path.join("/pfs/out", os.path.splitext(tail)[0]+'.png'), edges, cmap = 'gray')
  
  # walk /pfs/images and call make_edges on every file found
  for dirpath, dirs, files in os.walk("/pfs/images"):
      for file in files:
          print("image: ", os.path.join(dirpath, file))
          make_edges(os.path.join(dirpath, file))
  
subject: Update edges.py to work with nested files.