On Sep 23, 2013, at 8:06 AM, Chris Friesen <[email protected]> wrote:
>
> Hi all,
>
> I'm looking for a python IDE (for Linux) that can look at code like this:
>
> class ConductorManager(manager.Manager):
> def compute_recover(self, context, instance):
> self.compute_api.stop(context, instance, do_cast=False)
>
> where I could highlight the "stop" and ask it to go to the definition. (Where
> the definition is in a different file.)
>
> I'm running into issues where my current IDE (I'm playing with Komodo) can't
> seem to locate the definition, I suspect because it's too ambiguous.
>
> The fact that python is dynamically typed seems to mean that there could
> potentially be multiple answers, any class with a stop() method with the
> right signature could presumably be plausible, right? So rather than give
> up, I'd like to have my IDE suggest all possible answers.
Hi Chris,
Not sure if this reproduces what you want or not. I use PyCharm (free for free
stuff, and very affordable/worthwhile otherwise) on Linux (as well as
OSX/Windows). I made a new project, added two files:
provider.py:
class Provider(object):
def stop(self):
pass
usage.py:
class Conglomerate(object):
def doSomething(self):
self.provision.stop()
I then highlight 'stop', hit Ctrl-B (menu option go to>>declarations) and it
brings up all the stop() definitions it could find, the Provider one on the
top, click it and I jump there. Ctrl-Alt-B (menu option for
goto>>implementation(s)) does nothing… UNLESS… I add this method to
Conglomerate:
def __init__(self):
super.__init__()
self.provision = Provider()
Then go to implementations takes me right there to the other file.
HTH
--
https://mail.python.org/mailman/listinfo/python-list