code: def _get_paths(options):
      
      opts = options
  
      docroot = path(opts.get('docroot', 'docs'))
      if not docroot.exists():
          raise BuildFailure("Sphinx documentation root (%s) does not exist."
                             % docroot)
  
      builddir = docroot / opts.get("builddir", ".build")
  
      srcdir = docroot / opts.get("sourcedir", "")
      if not srcdir.exists():
          raise BuildFailure("Sphinx source file dir (%s) does not exist"
                             % srcdir)
  
      # Where is the sphinx conf.py file?
      confdir = path(opts.get('confdir', srcdir))
  
      # Where should output files be generated?
      outdir = opts.get('outdir', '')
      if outdir:
          outdir = path(outdir)
      else:
          outdir = builddir / opts.get('builder', 'html')
  
      # Where are doctrees cached?
      doctrees = opts.get('doctrees', '')
      if not doctrees:
          doctrees = builddir / "doctrees"
      else:
          doctrees = path(doctrees)
  
      return Bunch(locals())
docs: Retrieves paths needed to run sphinx.
  
      Returns a Bundle with the required values filled in.