<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><b class="">Roadblocks</b><br class=""></div><div class="">During the development, the following roadblocks were encountered:<br class=""><br class=""></div><div class="">* We wanted to include the contracts in the output of help(). Unfortunately, help() renders the __doc__ of the class and not of the instance. For functions, this is the class "function" which you can not inherit from. See [5] for more details.<br class=""><br class=""></div><div class="">* We need to inspect the source code of the condition and error lambdas to generate the violation message and infer the error type in the documentation, respectively. inspect.getsource(.) is broken on lambdas defined in decorators in Python 3.5.2+ (see [6]). </div></div></div></div></div></div></div></div></div></div></div></div></div></blockquote><br class=""></div><div><br class=""></div><div>Both these things seem like we should look at separately! I know I'm always annoyed that repr(lambda x: x*2) != "lambda x: x*2" for some reason. Fixing these two things in python seems like obvious wins to me, especially the latter.</div><div><br class=""></div><div>/ Anders</div></body></html>