code: def open(self, update=False):
          
          filename = os.path.basename(self.source_path)
          folder, _ext = os.path.splitext(filename)
          self.path = os.path.sep.join([self.directory, folder, filename])
          if not os.path.exists(os.path.dirname(self.path)):
              os.makedirs(os.path.dirname(self.path))
  
          # Download full pdf if it hasn't already been downloaded
          if not os.path.isfile(self.path) or update:
              with open(self.path, "wb") as fobj:
                  fobj.write(read(self.source_path))
  
          self.file = open(self.path, 'rb')
          self.pdf = CustomPDFReader(self.file)
docs: Opens pdf file to read from.