For me . Web2py completions works flawlessly under Eclipse + PyDEV Just follow Mr.Freeze post on web2py slice http://www.web2pyslices.com/main/slices/take_slice/2
and add on each controller : from applications.sExtract.modules.doctypes import * from gluon.sql import * from gluon.html import * from gluon.globals import Response, Session, Request global RESPONSE , REQUEST, SESSION , db REQUEST = Request() REQUEST = request SESSION = Session() SESSION = session RESPONSE = Response() On Mon, Aug 2, 2010 at 6:33 PM, mdipierro <mdipie...@cs.depaul.edu> wrote: > Thanks Ahmed for the clarifications. Having feedback from users is > very important. :-) > > > On Aug 2, 5:51 am, Ahmed Soliman <ah...@farghal.com> wrote: > > Ok, I would like to elaborate more on the points I've mentioned. > > > > 1- Web2py does not support unit testing out of the box and if you want > > to hack everything to get unit testing well integrated you can but > > this still doesn't mean the framework support unit testing, and by > > that I mean the ability to test complete scenarios, have you tried to > > write a unit test for controller that has SQLFORM in it? the double- > > submission check will make your life miserable if you tried to do unit > > tests that simulates form submissions. Also you will need to do a lot > > to create correct fixtures that would bring the web2py environment up > > and down before and after every test. Plus, there is no selenium > > testing integration like how other frameworks do. > > > > 2- By saying "twisted" means that you have things that are > > automagically imported for you and many things are imported by default > > according to import_all, also you have a lot of variables like > > "response, request, session, etc." that are magically inserted into > > the execution environment, such design is OK but not Good, as I can't > > see the context and there is a little of referential transparency in > > there. You can't see what's being passed or imported, neither the IDE. > > > > 3- In error reporting, If you tried to write a mistake in the > > template, the question is, does it show you the error "correctly"? > > does it show you the right line number as in your source file? > > 4- About the DAL and not ORM, that's OK and I understand that you > > chosen the DAL choice based on your experience with ORMs but from my > > personal point of view that your implementation of DAL is too close > > from being an ORM but without a decent way of defining the entities, > > you simply nest everything into a possibly one or more calls to create > > tables with validators in a pure functional way. My problem with that > > is that "flat is better than nested" and the code becomes scattered > > especially in the model > > > > 4- Yes, I already explained that CPython implementation is the real > > limitation and not web2py, this is a python-related issue and not > > web2py but still web2py is affected. > > > > 5- Yes, Python does work on Eclipse, IntelliJ, etc. but does web2py > > work smoothly and easily? for instance, to get web2py working > > correctly on eclipse (PyDev) you will need to put stupid nonsense > > imports ( if 0: import ) on the top of every file because of the > > "magic" I mentioned before., you will need to manually redefine > > request, response, session, etc. variables in that dummy if condition. > > You don't get proper auto completion because almost everything happen > > in the runtime (like dicts masked as attributed objects). So, simply, > > By design no IDE can help you much unless we hardcoded much of that > > stuff into the IDE itself. > > > > 6- I also would like to add that the current design on the plugin > > system, looks more like a hack rather than a modular, conflict-safe > > scalable system. > > > > Btw, I still like web2py very much and I would like to contribute when > > possible on making things better but that might include general > > philosophy changes.1 > > > > Thanks for the great community. > > > > On Aug 2, 12:36 pm, Michele Comitini <michele.comit...@gmail.com> > > wrote: > > > > > Massimo since you are a real gentleman you have been too polite... ;) > > > > > DAL vs ORM: the fact that DAL uses a clean functional approach does not > mean > > > that is not OO... > > > > > "Python magic was all over the place, variables defined globally are > > > allover, you cannot see real OO in the design" > > > > > I only agree that Python is magic, but that is the only thing I agree > with. > > > Probably a long exposure to COO (Class Object Oriented languages > > > such as java) causes this misunderstanding with Python beginners. > Indeed > > > Python is a truly OO languages and web2py uses that. > > > > > Ok enough... > > > > > ciao, > > > mic > > > > > 2010/8/2 mdipierro <mdipie...@cs.depaul.edu> > > > > > > This was my response. It is awaiting moderation: > > > > > > Hello Ahmed. Nice article. > > > > > > A few comments: > > > > web2py runs with Jython. We just consider CPython the reference > > > > platform. There is a known bug in the Java regex library that sun > > > > marked as wontfix that can cause occasional runaway problems with > > > > parsing templates in Jython. It is not a web2py specific issue but I > > > > thought I'd mention it. > > > > > > You can use unit tests with web2py. web2py it self has unit tests in > > > > the gluon/tests folder. You can run unit tests for your apps from the > > > > shell (as you would do in other Python frameworks) although you > cannot > > > > run them through the web IDE. The web IDE only supports doctests and > > > > you are correct about that. > > > > > > Web2py is known to work with WingIDE, Eclipse and IntelliJ. > > > > > > It is true that web2py does not distinguishes production from > > > > debugging mode but to clarify: this is because webp2y always in > > > > production mode yet it always logs all the errors. If the current > user > > > > is logged in as administator he/she has access to the error tickets > > > > and error tracebacks. > > > > > > Web2py follows PEP8 internally but it does not import application > > > > code, executes it. In this environment it exposes some symbols. Some > > > > symbols are per-http-request. Some symbols are system wide. The > latter > > > > are all caps because should be treated as constants and not modified. > > > > I feel this is consistent with PEP8. The naming scheme is explained > in > > > > the first chapter of the manual. > > > > > > You are also right that web2py has a DAL, not an ORM. The main > > > > difference is that in a ORM a table is a class and a record is an > > > > instance of that class. In the web2py DAL the table concept is a > class > > > > but each table is an instance and each record is a dictionary. In my > > > > view both approaches are object oriented. For example this is a query > > > > with the web2py DAL: > > > > > > for row in db(db.mytable.myfield>0).select(): print row.myfield > > > > > > and this the same query with the Django ORM: > > > > > > for row in Mytable.objects.filter(myfield__lt=0): print row.myfield > > > > > > In my opinion the former looks more OO than the latter. >