Open Xion opened 5 years ago
Maybe it could look for an answer which contains a def block; if there are multiple def blocks, find the one that isn't called from the others.
Additional heuristic: in code blocks which contain viable executable code theoretically applicable to the problem, bare / outside the scope of a declared function, isolate the initial literal assignment(s) (which is/are most typically the sample input value(s) in short code demonstrations), remove it/them, and use the labels as the argument names of the generated callable. (Any trailing print
call may be suitable for transformation into the final return
.)
E.g. this following bare snippet in answer to "how do you multiply two numbers together":
x = 27
y = 42
print(x * y)
Would transform to, if imported as "multiply":
def multiply(x, y):
return x * y
While this marvelous library is obviously saving everyone a lot of time going back and forth between SO, clipboard, and their IDE, I feel its usage is still not as straightforward as it could be.
For example, in this snippet:
you still need to know to call a
chunk
function from the imported module. It could've beenchunks
,split
, or whatever else (depending on what the SO answer chose), forcing the programmer to (gasp!) look at the code he or she imports and perhaps even understand it.I'd suggest that the importer should be clever enough to pick the correct function for the programmer, and then make the imported symbol itself callable:
The heuristics of making the correct choice are left as exercise for the reader.