tree 81dc7f744b6d1dce6ffbee9a0070da0947cf2d98
parent 3af6087cabba4d761f7e9bf2b056b6368dee3296
author Michael Walsh <micwalsh@us.ibm.com> 1564676832 -0500
committer George Keishing <gkeishin@in.ibm.com> 1565020148 +0000

Overhaul of gen_valid.py

This includes the following features:

- Previously, the validation functions were created as pairs of
  svalid/valid functions.  For example, there was an svalid_value
  paired with a valid_value, an svalid_integer paired with a
  valid_integer, etc.  In this design, the "svalid" base function would
  do the work of detecting a particular error, formulating an error
  message and returning it.  The "valid" wrapper function would call
  upon its svalid counterpart and then process any error by printing an
  error message, exiting the program, etc.

  In the new design, the base function determines whether it ought to
  simply return an error message or continue on to the error processing
  (printing, failing, etc.).  It does this by determining whether the
  caller is assigning the output to a variable.  If so, it simply
  returns the error message.

- Docstrings have been standardized with several goals in mind:
  - Making them easier to maintain in this program.
  - Making them manipulatable by gen_robot_valid.py.
  - Making them more palatable for use by robot's libdoc function.

- Since all of the validation functions' docstrings share a lot of
  common text, the docstrings are manipulated after the function have
  been defined.  Namely, each one has a standard header pre-pended and a
  standard footer appended to it.

- The validation functions' approach has been standardized so that all
  of the functions look quite similar to each other except for the
  actual error detection code.

- The validation functions have been re-worked for improved readability.

- valid_type():  New function.

- valid_range() changes:
  valid_range previously accepted a valid_range string argument whose
  format was "<lower>..<upper>".  The valid_range argument has been
  deprecated and replaced by 2 arguments: lower and upper.

Change-Id: I1d7c124abcd7675e9892a00757e5c482bf3746f8
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
