mailr9384 - /1.3/prompt/check.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on August 24, 2009 - 20:31:
Author: bugman
Date: Mon Aug 24 20:30:54 2009
New Revision: 9384

URL: http://svn.gna.org/viewcvs/relax?rev=9384&view=rev
Log:
Cleaned up and simplified all the functions in prompt.check.


Modified:
    1.3/prompt/check.py

Modified: 1.3/prompt/check.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/prompt/check.py?rev=9384&r1=9383&r2=9384&view=diff
==============================================================================
--- 1.3/prompt/check.py (original)
+++ 1.3/prompt/check.py Mon Aug 24 20:30:54 2009
@@ -43,7 +43,10 @@
 
     # Fail.
     else:
-        raise RelaxBoolError(name, arg)
+        fail = True
+
+    # The RelaxError.
+    raise RelaxBoolError(name, arg)
 
 
 def is_float(arg, name, can_be_none=False):
@@ -64,15 +67,14 @@
         return
 
     # Check for a float.
-    elif isinstance(arg, float):
-        return
-
-    # Fail.
-    else:
-        if not can_be_none:
-            raise RelaxFloatError(name, arg)
-        else:
-            raise RelaxNoneFloatError(name, arg)
+    if isinstance(arg, float):
+        return
+
+    # Fail.
+    if not can_be_none:
+        raise RelaxFloatError(name, arg)
+    else:
+        raise RelaxNoneFloatError(name, arg)
 
 
 def is_int(arg, name, can_be_none=False):
@@ -93,15 +95,14 @@
         return
 
     # Check for an integer (avoiding Booleans).
-    elif isinstance(arg, int) and not isinstance(arg, bool):
-        return
-
-    # Fail.
-    else:
-        if not can_be_none:
-            raise RelaxIntError(name, arg)
-        else:
-            raise RelaxNoneIntError(name, arg)
+    if isinstance(arg, int) and not isinstance(arg, bool):
+        return
+
+    # Fail.
+    if not can_be_none:
+        raise RelaxIntError(name, arg)
+    else:
+        raise RelaxNoneIntError(name, arg)
 
 
 def is_int_or_int_list(arg, name, size=None, can_be_none=False, 
can_be_empty=False):
@@ -121,6 +122,9 @@
     @raise RelaxNoneIntListIntError:    If not an integer, a list of 
integers, or None.
     """
 
+    # Init.
+    fail = False
+
     # An argument of None is allowed.
     if can_be_none and arg == None:
         return
@@ -131,27 +135,17 @@
         try:
             is_int(arg, name)
         except:
-            # Not an integer.
-            if can_be_none:
-                raise RelaxNoneIntListIntError(name, arg)
-            else:
-                raise RelaxIntListIntError(name, arg)
+            fail = True    # Not an integer.
 
     # A list.
     else:
         # Fail size is wrong.
         if size != None and len(arg) != size:
-            if can_be_none:
-                raise RelaxNoneIntListIntError(name, arg, size)
-            else:
-                raise RelaxIntListIntError(name, arg, size)
+            fail = True
 
         # Fail if empty.
         if not can_be_empty and arg == []:
-            if can_be_none:
-                raise RelaxNoneIntListIntError(name, arg)
-            else:
-                raise RelaxIntListIntError(name, arg)
+            fail = True
 
        # Check the arguments.
         for i in range(len(arg)):
@@ -159,11 +153,18 @@
             try:
                 is_int(arg[i], name)
             except:
-                # Not an integer.
-                if can_be_none:
-                    raise RelaxNoneIntListIntError(name, arg)
-                else:
-                    raise RelaxIntListIntError(name, arg)
+                fail = True    # Not an integer.
+
+    # Fail.
+    if fail:
+        if can_be_none and size != None:
+            raise RelaxNoneIntListIntError(name, arg, size)
+        elif can_be_none:
+            raise RelaxNoneIntListIntError(name, arg)
+        elif size != None:
+            raise RelaxIntListIntError(name, arg, size)
+        else:
+            raise RelaxIntListIntError(name, arg)
 
 
 def is_num(arg, name, can_be_none=False):
@@ -184,15 +185,14 @@
         return
 
     # Check for floats and integers (avoiding Booleans).
-    elif (isinstance(arg, float) or isinstance(arg, int)) and not 
isinstance(arg, bool):
-        return
-
-    # Fail.
-    else:
-        if not can_be_none:
-            raise RelaxNumError(name, arg)
-        else:
-            raise RelaxNoneNumError(name, arg)
+    if (isinstance(arg, float) or isinstance(arg, int)) and not 
isinstance(arg, bool):
+        return
+
+    # Fail.
+    if not can_be_none:
+        raise RelaxNumError(name, arg)
+    else:
+        raise RelaxNoneNumError(name, arg)
 
 
 def is_num_list(arg, name, size=None, can_be_none=False, can_be_empty=False):
@@ -212,41 +212,45 @@
     @raise RelaxListNumError:   If not a list of numbers.
     """
 
+    # Init.
+    fail = False
+
     # An argument of None is allowed.
     if can_be_none and arg == None:
         return
 
     # Fail if not a list.
     if not isinstance(arg, list):
-        if can_be_none:
+        fail = True
+
+    # Other checks.
+    else:
+        # Fail size is wrong.
+        if size != None and len(arg) != size:
+            fail = True
+
+        # Fail if empty.
+        if not can_be_empty and arg == []:
+            fail = True
+
+        # Fail if not numbers.
+        for i in range(len(arg)):
+            if (not isinstance(arg[i], float) and not isinstance(arg[i], 
int)) or isinstance(arg, bool):
+                fail = True
+
+    # Fail.
+    if fail:
+        if can_be_none and size != None:
+            raise RelaxNoneListNumError(name, arg, size)
+        elif can_be_none:
             raise RelaxNoneListNumError(name, arg)
+        elif size != None:
+            raise RelaxListNumError(name, arg, size)
         else:
             raise RelaxListNumError(name, arg)
 
-    # Fail size is wrong.
-    if size != None and len(arg) != size:
-        if can_be_none:
-            raise RelaxNoneListNumError(name, arg, size)
-        else:
-            raise RelaxListNumError(name, arg, size)
-
-    # Fail if empty.
-    if not can_be_empty and arg == []:
-        if can_be_none:
-            raise RelaxNoneListNumError(name, arg)
-        else:
-            raise RelaxListNumError(name, arg)
-
-    # Fail if not numbers.
-    for i in range(len(arg)):
-        if (not isinstance(arg[i], float) and not isinstance(arg[i], int)) 
or isinstance(arg, bool):
-            if can_be_none:
-                raise RelaxNoneListNumError(name, arg)
-            else:
-                raise RelaxListNumError(name, arg)
-
-
-def is_num_tuple(arg, name, size=None, can_be_none=False):
+
+def is_num_tuple(arg, name, size=None, can_be_none=False, 
can_be_empty=False):
     """Test if the argument is a tuple of numbers.
 
     @param arg:                 The argument.
@@ -257,25 +261,47 @@
     @type size:                 None or int
     @keyword can_be_none:       A flag specifying if the argument can be 
none.
     @type can_be_none:          bool
+    @keyword can_be_empty:      A flag which if True allows the list to be 
empty.
+    @type can_be_empty:         bool
     @raise RelaxTupleError:     If not a tuple.
     @raise RelaxTupleNumError:  If not a tuple of numbers.
     """
 
+    # Init.
+    fail = False
+
     # An argument of None is allowed.
     if can_be_none and arg == None:
         return
 
     # Fail if not a tuple.
     if not isinstance(arg, tuple):
-        raise RelaxTupleNumError(name, arg)
-
-    # Fail size is wrong.
-    if size != None and len(arg) != size:
-        raise RelaxTupleNumError(name, arg, size)
-
-    # Fail if not numbers.
-    for i in range(len(arg)):
-        if (not isinstance(arg[i], float) and not isinstance(arg[i], int)) 
or isinstance(arg, bool):
+        fail = True
+
+    # Other checks.
+    else:
+        # Fail size is wrong.
+        if size != None and len(arg) != size:
+            fail = True
+
+        # Fail if empty.
+        if not can_be_empty and arg == []:
+            fail = True
+
+        # Fail if not numbers.
+        for i in range(len(arg)):
+            if (not isinstance(arg[i], float) and not isinstance(arg[i], 
int)) or isinstance(arg, bool):
+                fail = True
+
+    # Fail.
+    if fail:
+        if can_be_none and size != None:
+            raise RelaxNoneTupleNumError(name, arg, size)
+        elif can_be_none:
+            raise RelaxNoneTupleNumError(name, arg)
+        elif size != None:
+            raise RelaxTupleNumError(name, arg, size)
+        else:
             raise RelaxTupleNumError(name, arg)
 
 
@@ -297,15 +323,14 @@
         return
 
     # Check for a string.
-    elif isinstance(arg, str):
-        return
-
-    # Fail.
-    else:
-        if not can_be_none:
-            raise RelaxStrError(name, arg)
-        else:
-            raise RelaxNoneStrError(name, arg)
+    if isinstance(arg, str):
+        return
+
+    # Fail.
+    if not can_be_none:
+        raise RelaxStrError(name, arg)
+    else:
+        raise RelaxNoneStrError(name, arg)
 
 
 def is_str_list(arg, name, size=None, can_be_none=False, can_be_empty=False):
@@ -325,38 +350,43 @@
     @raise RelaxNoneListStrError:   If not a list of strings or None.
     """
 
+    # Init.
+    fail = False
+
     # An argument of None is allowed.
     if can_be_none and arg == None:
         return
 
     # Fail if not a list.
     if not isinstance(arg, list):
-        if can_be_none:
+        fail = True
+
+    # Other checks.
+    else:
+        # Fail size is wrong.
+        if size != None and len(arg) != size:
+            fail = True
+
+        # Fail if empty.
+        if not can_be_empty and arg == []:
+            fail = True
+
+        # Fail if not strings.
+        if isinstance(arg, list):
+            for i in range(len(arg)):
+                if not isinstance(arg[i], str):
+                    fail = True
+
+    # Fail.
+    if fail:
+        if can_be_none and size != None:
+            raise RelaxNoneListStrError(name, arg, size)
+        elif can_be_none:
             raise RelaxNoneListStrError(name, arg)
+        elif size != None:
+            raise RelaxListStrError(name, arg, size)
         else:
             raise RelaxListStrError(name, arg)
-
-    # Fail size is wrong.
-    if size != None and len(arg) != size:
-        if can_be_none:
-            raise RelaxNoneListStrError(name, arg, size)
-        else:
-            raise RelaxListStrError(name, arg, size)
-
-    # Fail if empty.
-    if not can_be_empty and arg == []:
-        if can_be_none:
-            raise RelaxNoneListStrError(name, arg)
-        else:
-            raise RelaxListStrError(name, arg)
-
-    # Fail if not strings.
-    for i in range(len(arg)):
-        if not isinstance(arg[i], str):
-            if can_be_none:
-                raise RelaxNoneListStrError(name, arg)
-            else:
-                raise RelaxListStrError(name, arg)
 
 
 def is_str_or_num_or_str_num_list(arg, name, size=None, can_be_none=False, 
can_be_empty=False):
@@ -378,6 +408,9 @@
                                         or None.
     """
 
+    # Init.
+    fail = False
+
     # An argument of None is allowed.
     if can_be_none and arg == None:
         return
@@ -392,27 +425,17 @@
             try:
                 is_num(arg, name)
             except:
-                # Neither a number or a string.
-                if can_be_none:
-                    raise RelaxNoneNumStrListNumStrError(name, arg)
-                else:
-                    raise RelaxNumStrListNumStrError(name, arg)
+                fail = True    # Neither a number or a string.
 
     # A list.
     else:
         # Fail size is wrong.
         if size != None and len(arg) != size:
-            if can_be_none:
-                raise RelaxNoneNumStrListNumStrError(name, arg, size)
-            else:
-                raise RelaxNumStrListNumStrError(name, arg, size)
+            fail = True
 
         # Fail if empty.
         if not can_be_empty and arg == []:
-            if can_be_none:
-                raise RelaxNoneNumStrListNumStrError(name, arg)
-            else:
-                raise RelaxNumStrListNumStrError(name, arg)
+            fail = True
 
         # Check the arguments.
         for i in range(len(arg)):
@@ -424,11 +447,18 @@
                 try:
                     is_num(arg[i], name)
                 except:
-                    # Neither a number or a string.
-                    if can_be_none:
-                        raise RelaxNoneNumStrListNumStrError(name, arg)
-                    else:
-                        raise RelaxNumStrListNumStrError(name, arg)
+                    fail = True    # Neither a number or a string.
+
+    # Fail.
+    if fail:
+        if can_be_none and size != None:
+            raise RelaxNoneNumStrListNumStrError(name, arg, size)
+        elif can_be_none:
+            raise RelaxNoneNumStrListNumStrError(name, arg)
+        elif size != None:
+            raise RelaxNumStrListNumStrError(name, arg, size)
+        else:
+            raise RelaxNumStrListNumStrError(name, arg)
 
 
 def is_str_or_str_list(arg, name, size=None, can_be_none=False, 
can_be_empty=False):
@@ -448,6 +478,9 @@
     @raise RelaxNoneStrListStrError:    If not a string, a list of strings, 
or None.
     """
 
+    # Init.
+    fail = False
+
     # An argument of None is allowed.
     if can_be_none and arg == None:
         return
@@ -458,27 +491,17 @@
         try:
             is_str(arg, name)
         except:
-            # Not a string.
-            if can_be_none:
-                raise RelaxNoneStrListStrError(name, arg)
-            else:
-                raise RelaxStrListStrError(name, arg)
+            fail = True    # Not a string.
 
     # A list.
     else:
         # Fail size is wrong.
         if size != None and len(arg) != size:
-            if can_be_none:
-                raise RelaxNoneStrListStrError(name, arg, size)
-            else:
-                raise RelaxStrListStrError(name, arg, size)
+            fail = True
 
         # Fail if empty.
         if not can_be_empty and arg == []:
-            if can_be_none:
-                raise RelaxNoneStrListStrError(name, arg)
-            else:
-                raise RelaxStrListStrError(name, arg)
+            fail = True
 
        # Check the arguments.
         for i in range(len(arg)):
@@ -486,8 +509,15 @@
             try:
                 is_str(arg[i], name)
             except:
-                # Not a string.
-                if can_be_none:
-                    raise RelaxNoneStrListStrError(name, arg)
-                else:
-                    raise RelaxStrListStrError(name, arg)
+                fail = True    # Not a string.
+
+    # Fail.
+    if fail:
+        if can_be_none and size != None:
+            raise RelaxNoneStrListStrError(name, arg, size)
+        elif can_be_none:
+            raise RelaxNoneStrListStrError(name, arg)
+        elif size != None:
+            raise RelaxStrListStrError(name, arg, size)
+        else:
+            raise RelaxStrListStrError(name, arg)




Related Messages


Powered by MHonArc, Updated Mon Aug 24 21:00:06 2009