On Tue, 2018-05-08 at 09:58 -0400, Eric V. Smith wrote: > I think what's confusing to me (and maybe others) is that we haven't > seen your vision on how this would look in Python code. > > An example that would throw runtime assertions and the same example > where it wouldn't (after a global switch is set?) would be helpful. > > Eric
Eric, I can only agree to your comment. As a matter of fact, I have only used the case where the runtime assert is activated through an extension. In this case, adding a set method is simple : in our framework, we would set the variable Py_RuntimeAssertFlag to 1, depending on some command line parameters, or settings found in a configuration file). In pure python, if something as having a method registered in __builtins__ make sense, it could be used to trigger the assertive behavior. In this example, let's assume that you may want to perform some basic check on a given file in diagnostics mode: >>> def check_mounts_size(): ... return len( open( '/proc/self/mounts', 'r' ).readlines() )>1024 ... >>> runtime_assert( len( open( '/proc/self/mounts', 'r' ).readlines()>1024 ) ) >>> runtime_assert( check_mounts_size() ) >>> __builtins__.set_runtime_assert( True ) >>> runtime_assert( len( open( '/proc/self/mounts', 'r' ).readlines()>1024 ) ) Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError >>> runtime_assert( check_mounts_size() ) Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/