Thread: [Pydev-code] code completion issues
Brought to you by:
fabioz
From: Lee C. <lee...@ho...> - 2006-10-01 04:04:35
|
First off, thanks for a great python tool! I'm using pydev 1.2.4 and Eclipse 3.2 and JDK 5.0 When I add a new source folder to my project, a "Create a new python module" comes up instead of "Create a new source folder". I have an issue with code completion. This is going to take a bit to explain. If you can look at the code first I will explain at the end. ----------------------------------------------------------------------------------- import cherrypy import turbogears from turbogears import controllers, expose, redirect from turbogears import identity from turbogears.toolbox.catwalk import CatWalk import model import model.User class Users: def add(self, email): # Remove extra spaces email = email.strip() # Remove null bytes (they can seriously screw up the database) email = email.replace('\x00', '') if email: try: user = model.User.byEmail(email) user2 = model.User.get(1) except model.SQLObjectNotFound: user = model.User(email=email) turbogears.flash("User %s added!" % email) else: turbogears.flash("User %s already exists!" % email) else: turbogears.flash("E-mail must be non-empty!") redirect('index') ---------------------------------------------------------------------------- first off code completion works for "model.User.get()" however it does not know about "model.User.byEmail()" now if i issue "user." which is part of "model.User.byEmail()" call, it does auto complete this. if i call "user2." which is part of "model.User.get()" it does NOT auto complete. How come this is happening and is there a way to fix this? _________________________________________________________________ Express yourself - download free Windows Live Messenger themes! http://clk.atdmt.com/MSN/go/msnnkwme0020000001msn/direct/01/?href=http://imagine-msn.com/themes/vibe/default.aspx?locale=en-us&source=hmtagline |
From: Patrick G. <do3...@go...> - 2006-10-02 21:12:29
|
On 10/1/06, Lee Connell <lee...@ho...> wrote: > try: > user = model.User.byEmail(email) > user2 = model.User.get(1) > first off code completion works for "model.User.get()" however it does not > know about "model.User.byEmail()" > > now if i issue "user." which is part of "model.User.byEmail()" call, it does > auto complete this. > > if i call "user2." which is part of "model.User.get()" it does NOT auto > complete. Through I don't know the lookup implementation of PyDev, I can comment a bit. One needs to see the Model snippet to be able to answer your question. Then I might be able to see the problem. Please note that it probably not be a bug in PyDev, but confusing code. How could PyDev know what object a method does return if one possible return value might be some object, another a string. best regards, Patrick |
From: Lee C. <lee...@ho...> - 2006-10-03 01:57:31
|
model.User is a turbogears database model. It defines a table in the database via sqlobject. The methods I'm using are generated I believe during runtime, I'm new to using turbogears, sqlobject but that's got to be the case. Giving you the model of User I don't think will help you. Maybe it's just too difficult to tell what the methods return being a dynamic language. Anything else I can provide please let me know. >From: "Patrick Gerken" <do3...@go...> >Reply-To: pyd...@li... >To: pyd...@li... >Subject: Re: [Pydev-code] code completion issues >Date: Mon, 2 Oct 2006 12:13:06 +0200 > >On 10/1/06, Lee Connell <lee...@ho...> wrote: > > try: > > user = model.User.byEmail(email) > > user2 = model.User.get(1) > > > first off code completion works for "model.User.get()" however it does >not > > know about "model.User.byEmail()" > > > > now if i issue "user." which is part of "model.User.byEmail()" call, it >does > > auto complete this. > > > > if i call "user2." which is part of "model.User.get()" it does NOT auto > > complete. > >Through I don't know the lookup implementation of PyDev, I can comment a >bit. >One needs to see the Model snippet to be able to answer your question. >Then I might be able to see the problem. >Please note that it probably not be a bug in PyDev, but confusing >code. How could PyDev >know what object a method does return if one possible return value >might be some object, another a string. > >best regards, > > Patrick > >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys -- and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >pydev-code mailing list >pyd...@li... >https://lists.sourceforge.net/lists/listinfo/pydev-code _________________________________________________________________ Try the new Live Search today! http://imagine-windowslive.com/minisites/searchlaunch/?locale=en-us&FORM=WLMTAG |
From: Fabio Z. <fa...@gm...> - 2006-10-04 03:35:18
|
On 10/1/06, Lee Connell <lee...@ho...> wrote: > > First off, thanks for a great python tool! > > I'm using pydev 1.2.4 and Eclipse 3.2 and JDK 5.0 > > When I add a new source folder to my project, a "Create a new python > module" > comes up instead of "Create a new source folder". > > Take a look at http://www.fabioz.com/pydev/manual_101_root.html under 'configuring a project' to see how to solve it. Cheers, Fabio |
From: Lee C. <lee...@ho...> - 2006-10-06 00:02:53
|
Fabio, Thanks for reply. I did go through the manual for configuring a project and everything does work with the exception of using some of the turbogears models. These models are changed during runtime which adds methods to the models/classes and there is no way pydev or anything for that matter would be able to determine that for code completion. I know you've posted a screencast on setting up turbogears with pydev, have you actually coded with turbogears in pydev? >From: "Fabio Zadrozny" <fa...@gm...> >Reply-To: pyd...@li... >To: pyd...@li... >Subject: Re: [Pydev-code] code completion issues >Date: Sun, 1 Oct 2006 16:03:49 -0300 > >On 10/1/06, Lee Connell <lee...@ho...> wrote: >> >>First off, thanks for a great python tool! >> >>I'm using pydev 1.2.4 and Eclipse 3.2 and JDK 5.0 >> >>When I add a new source folder to my project, a "Create a new python >>module" >>comes up instead of "Create a new source folder". >> >> >Take a look at http://www.fabioz.com/pydev/manual_101_root.html under >'configuring a project' to see how to solve it. > >Cheers, > >Fabio >------------------------------------------------------------------------- >Take Surveys. Earn Cash. Influence the Future of IT >Join SourceForge.net's Techsay panel and you'll get the chance to share >your >opinions on IT & business topics through brief surveys -- and earn cash >http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >_______________________________________________ >pydev-code mailing list >pyd...@li... >https://lists.sourceforge.net/lists/listinfo/pydev-code _________________________________________________________________ Try the new Live Search today! http://imagine-windowslive.com/minisites/searchlaunch/?locale=en-us&FORM=WLMTAG |
From: Fabio Z. <fa...@gm...> - 2006-10-06 10:47:24
|
On 10/5/06, Lee Connell <lee...@ho...> wrote: > Fabio, > > Thanks for reply. I did go through the manual for configuring a project and > everything does work with the exception of using some of the turbogears > models. These models are changed during runtime which adds methods to the > models/classes and there is no way pydev or anything for that matter would > be able to determine that for code completion. > > I know you've posted a screencast on setting up turbogears with pydev, have > you actually coded with turbogears in pydev? Actually, I've coded a bit (but just a short example... in the essence, the configuration is generic enough for any project), and yes, it has a problem with SQLObject because it relies on too much runtime information... I guess some heuristics could be added to solve that specific problem (so, if you want, you can add a feature request for that). Cheers, Fabio |