This is dues to historical baggage of IPython, it is on the process of being fixed. Initially IPython used to use readline to get user input, unfortunately readline define its own delimiter, and / is one of them. Thus IPython would only "see" the part after the last slash. So in your case, IPython does not see you are in a string, and thus think you may be in a division, where abs() and other make sens. This is on the wishlist of features to improve, and contributions to this are welcome.
Technically, even with partial inputs like the example above, as IPython uses jedi it may be a matter of asking jedi wether the cursor is in a string, and skip some completer providers. If you want to attempt a fix, I'm pretty sure the IPython developers will be happy to guide you.
This is dues to historical baggage of IPython, it is on the process of being fixed. Initially IPython used to use readline to get user input, unfortunately readline define its own delimiter, and
/
is one of them. Thus IPython would only "see" the part after the last slash. So in your case, IPython does not see you are in a string, and thus think you may be in a division, whereabs()
and other make sens. This is on the wishlist of features to improve, and contributions to this are welcome.Technically, even with partial inputs like the example above, as IPython uses jedi it may be a matter of asking jedi wether the cursor is in a string, and skip some completer providers. If you want to attempt a fix, I'm pretty sure the IPython developers will be happy to guide you.