@@ -66,20 +66,34 @@ def pow(ctx) -> int | float:
6666 return perform_operation (ain [0 ].value , ain [1 :], operator .pow , aout )
6767
6868 def inc (ctx ) -> int | float :
69- ain , aout = fetch_io_args ("inc" , "inc <value > [?output]" , ["value " ], ctx .args )
70- if not isinstance (ain [ 0 ]. value , ( int , float )) :
71- raise InvalidArgument ("inc: value must be either an integer or a float !" )
69+ ain , aout = fetch_io_args ("inc" , "inc <args... > [?output]" , ["args " ], ctx .args )
70+ if aout and len (ain ) > 1 :
71+ raise InvalidArgument ("inc: can only process one input if output variable is specified !" )
7272
73- ain [0 ].set (ain [0 ].value + 1 )
74- [out .set (ain [0 ].value ) for out in aout ]
73+ for val in ain :
74+ if not isinstance (val .value , (int , float )):
75+ raise InvalidArgument ("inc: all values must be either an integer or a float!" )
76+
77+ val .set (val .value + 1 )
78+
79+ if aout :
80+ [out .set (val .value ) for out in aout ]
81+ return val .value
7582
7683 def dec (ctx ) -> int | float :
77- ain , aout = fetch_io_args ("dec" , "dec <value> [?output]" , ["value" ], ctx .args )
78- if not isinstance (ain [0 ].value , (int , float )):
79- raise InvalidArgument ("dec: value must be either an integer or a float!" )
84+ ain , aout = fetch_io_args ("dec" , "dec <args...> [?output]" , ["args" ], ctx .args )
85+ if aout and len (ain ) > 1 :
86+ raise InvalidArgument ("dec: can only process one input if output variable is specified!" )
87+
88+ for val in ain :
89+ if not isinstance (val .value , (int , float )):
90+ raise InvalidArgument ("dec: all values must be either an integer or a float!" )
91+
92+ val .set (val .value - 1 )
8093
81- ain [0 ].set (ain [0 ].value - 1 )
82- [out .set (ain [0 ].value ) for out in aout ]
94+ if aout :
95+ [out .set (val .value ) for out in aout ]
96+ return val .value
8397
8498 def rnd (ctx ) -> int :
8599 ain , aout = fetch_io_args ("rnd" , "rnd <value> [precision] [?output]" , ["value" ], ctx .args )
0 commit comments