code: def standard_reader_routine(reader, filename, attrs=None):
      
      if attrs is None:
          attrs = {}
      if not isinstance(attrs, dict):
          raise TypeError('Attributes must be a dictionary of name and arguments.')
      reader.SetFileName(filename)
      # Apply any attributes listed
      for name, args in attrs.items():
          attr = getattr(reader, name)
          if args is not None:
              if not isinstance(args, (list, tuple)):
                  args = [args]
              attr(*args)
          else:
              attr()
      # Perform the read
      reader.Update()
      return vtki.wrap(reader.GetOutputDataObject(0))
docs: Use a given reader from the ``READERS`` mapping in the common VTK reading
      pipeline routine.
  
      Parameters
      ----------
      reader : vtkReader
          Any instantiated VTK reader class
  
      filename : str
          The string filename to the data file to read.
  
      attrs : dict, optional
          A dictionary of attributes to call on the reader. Keys of dictionary are
          the attribute/method names and values are the arguments passed to those
          calls. If you do not have any attributes to call, pass ``None`` as the
          value.