+ ssh() function can be more or less used as «with ssh(): ...». remaining problem: the code is also executed locally.
* moved code that detects «with ssh(): ...» to ayrton's script compiling code. instead of detecting file and line and walking the AST hoping that we'll find the correct statement, we use an ast.NodeTransformer to do the job. we also make sure that the code is not executed locally.
+ more ideas.
+ random_var() creates a 8 char random variable name.
+ replace «with ssh() as foo: <body>» with «with ssh (<body>) as <random_var>: foo= <random_var>», so we can use the streams locally.