raise ValueError('Unknown file type for Runner: %r' % fname)
if fname.endswith('.py').runner is None:
return self._makeRunner(runnerClass)
if runnerClass == self.runnerClass:
return self.runner
e = 'A runner of type %r can not run file %r' % (self.runnerClass, fname)
raise ValueError(e)
TPL = '\n=========================\n Auto-generated doctests\n=========================\n\nThis file was auto-generated by IPython in its entirety. If you need finer\ncontrol over the contents, simply make a manual template. See the\nmkdoctests.py script for details.\n\n%%run %s\n'
def main():
parser = optparse.OptionParser(usage = __doc__)
newopt = parser.add_option
newopt('-f', '--force', action = 'store_true', dest = 'force', default = False, help = 'Force overwriting of the output file.')
newopt('-s', '--stdout', action = 'store_true', dest = 'stdout', default = False, help = 'Use stdout instead of a file for output.')
(opts, args) = parser.parse_args()
if len(args) < 1:
parser.error('incorrect number of arguments')
fname = args[0]
auto_gen_output = False
try:
outfname = args[1]
except IndexError:
outfname = None
if fname.endswith('.tpl.txt') and outfname is None:
outfname = fname.replace('.tpl.txt', '.txt')
else:
(bname, ext) = os.path.splitext(fname)
if ext in ('.py', '.ipy'):
auto_gen_output = True
if outfname is None:
outfname = bname + '.txt'
if auto_gen_output:
infile = tempfile.TemporaryFile()
infile.write(TPL % fname)
infile.flush()
infile.seek(0)
else:
infile = open(fname)
if opts.stdout:
outfile = sys.stdout
elif os.path.isfile(outfname) and not (opts.force):
fatal('Output file %r exists, use --force (-f) to overwrite.' % outfname)