###--------------------------------------------------------------------------
### Utilities.
+def _excval():
+ """Return the most recent exception object."""
+ return SYS.exc_info()[1]
+
class ExpectedError (Exception):
"""
I represent an expected error, which should be reported in a friendly way.
if p.nbits != nb:
raise ExpectedError('check failed: nbits(%s) = %d /= %d' % \
(label, p.nbits, nb))
- if VERBOSITY: print ';; %s = %d [%d]' % (label, p, nb)
+ if VERBOSITY: print(';; %s = %d [%d]' % (label, p, nb))
def setsievebits(pp, line):
"""
if step is not None:
me.addstep(step)
lastp = step.p
- except ExpectedError, e:
- raise ExpectedError('%s:%d: %s' % (file.name, lno, e.message))
+ except ExpectedError:
+ raise ExpectedError('%s:%d: %s' %
+ (file.name, lno, _excval().message))
return lastp
###--------------------------------------------------------------------------
## Prepare an option parser.
op = OP.OptionParser(
usage = '''\
-pock [-qv] CMD ARGS...
+pock [-qv] [-s SIEVEBITS] CMD ARGS...
gen NBITS
ll NBITS NSUBBITS
check [FILE]''',
description = 'Generate or verify certified prime numbers.')
op.add_option('-v', '--verbose', dest = 'verbosity',
action = 'count', default = 1,
- help = 'Print mysterious runes while looking for prime numbers.')
+ help = 'print mysterious runes while looking for prime numbers')
op.add_option('-q', '--quiet', dest = 'quietude',
action = 'count', default = 0,
- help = 'be quiet while looking for prime numbers.')
+ help = 'be quiet while looking for prime numbers')
op.add_option('-s', '--sievebits', dest = 'sievebits',
type = 'int', default = 32,
- help = 'Size (in bits) of largest small prime.')
+ help = 'size (in bits) of largest small prime')
opts, argv = op.parse_args()
VERBOSITY = opts.verbosity - opts.quietude
p = ProgressReporter()
if __name__ == '__main__':
prog = OS.path.basename(argv[0])
try: __main__()
- except ExpectedError, e: exit('%s: %s' % (prog, e.message))
- except IOError, e: exit('%s: %s' % (prog, e))
+ except ExpectedError: exit('%s: %s' % (prog, _excval().message))
+ except IOError: exit('%s: %s' % (prog, _excval()))
###----- That's all, folks --------------------------------------------------