def writeCode(class_name, code, inliner): '''write code of class to file. returns URI of written code. ''' document = inliner.document.current_source reference = class_name # root of document tree srcdir = setup.srcdir # get the directory of the rst file rstdir, rstfile = os.path.split(document) (basedir, fname, basename, ext, outdir, codename, notebookname) = Utils.buildPaths(reference) # path to root relative to rst rst2srcdir = os.path.join(os.path.relpath(srcdir, start=rstdir), outdir) # output code linked_codename = re.sub("\\\\", "/", os.path.join(rst2srcdir, codename)) if code and basedir != outdir: outfile = open(os.path.join(outdir, codename), "w") for line in code: outfile.write(line) outfile.close() return linked_codename