From: Adam C. <cho...@us...> - 2002-09-09 17:21:52
|
Update of /cvsroot/docutils/docutils/docutils/parsers/rst/directives In directory usw-pr-cvs1:/tmp/cvs-serv8033 Modified Files: images.py Log Message: Make sure that the keyword passed to the 'align' option is one of 'bottom', 'middle', 'top', 'left', 'center' or 'right'. Index: images.py =================================================================== RCS file: /cvsroot/docutils/docutils/docutils/parsers/rst/directives/images.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- images.py 7 Sep 2002 02:41:55 -0000 1.6 +++ images.py 9 Sep 2002 17:21:43 -0000 1.7 @@ -20,11 +20,31 @@ def unchanged(arg): return arg # unchanged! +def format_allowed( allowed ): + qouted = map( lambda s: '"%s"' % s, allowed ) + return ' or '.join( [ ', '.join( qouted[:-1] ), qouted[-1] ] ) + +def align( argument ): + allowed = ( 'top', 'middle', 'bottom', 'left', 'center', 'right' ) + + try: + value = argument.lower().strip() + except AttributeError: + raise TypeError('must supply an argument; choose from %s', + format_allowed( allowed )) + + if value in allowed: + return value + else: + raise ValueError( + '"%s" unknown; choose from %s' % (argument, format_allowed( allowed )) ) + + image_option_spec = {'alt': unchanged, 'height': int, 'width': int, 'scale': int, - 'align': unchanged} + 'align': align} def image(match, type_name, data, state, state_machine, option_presets): lineno = state_machine.abs_line_number() |