views:

180

answers:

3

What are good python libraries for the following needs:

  • MVC
  • Domain Abstraction
  • Database Abstraction
  • Video library (just to create thumbnails)

I already know that SQLAlchemy is really good for Database Abstraction so don't bother with it unless you want to suggest a better one.

Edit: This might seem stupid to mention but I'm talking about MVC for GUI and not for web, just mentioning for clarification

Edit: Also does the MVC part contain GUI part or can I use a separate library for GUI like PyQt

+1  A: 

django is a pretty good mvc framework with an orm

segy
Is django a GUI MVC, I mean can use it for GUI programming
andho
@andho, no, Django is a web framework.
Alex Martelli
Oh, that doesn't work for me.
andho
+1  A: 

You could go with http://turbogears.org/ . Its like Django, but uses "of the shelves" existing modules.

TurboGears 2 is the built on top of the experience of several next generation web frameworks including TurboGears 1 (of course), Django, and Rails. All of these frameworks had limitations which were frustrating in various ways, and TG2 is an answer to that frustration. We wanted something that had:

  • Real multi-database support
  • Horizontal data partitioning (sharding)
  • Support for a variety of JavaScript toolkits, and new widget system to make building ajax heavy apps easier
  • Support for multiple data-exchange formats.
  • Built in extensibility via standard WSGI components
voyager
Is TurboGears 2 a GUI MVC, I mean can use it for GUI programming
andho
TurboGears focuses on making a web framework, but as it uses many existing modules you can have both a web and a client application with little code differences. If you add wxPython to the mix, you have a big platform to make advanced applications.
voyager
I'll look into it!
andho
+4  A: 

Have you tried wxWidgets (well, wxPython in fact)?

It has nice documentation (which is always a good thing), and allows creating code in MVC manner. It's just the GUI library, but allows some simple image manipulation (if it's not good enough for you try using Python version of ImageMagick). It uses native controls, so the application looks native on the OS it's being ran.

PyQt on the other hand has even better docs than wxWidgets or wxPython, but I could never get used to the look&feel of its GUI (it's custom, so it doesn't look native on any OS). Because riverbankcomputing couldn't agree with nokia on a license nokia started a project called PySide which is a LGPL version of the Qt-bindings. It's supposed to be finished in early 2010.

Abgan
PyQt is using native widgets on Mac OS X and they are starting to use native controls on other platforms too. (Since Qt 4.5)
Georg
VLC looks native enough for me, I think I'll go with PyQt, but what about the MVC side of things on PyQt
andho
gs - I should have check it before saying so, my bad. andho - did not used PyQt for last 3 years or so, but MVC should be easily implemented with it (as far as I remember).
Abgan
Have a look at these two links concerning MVC on Qt (and PyQt): http://doc.trolltech.com/4.5/model-view-programming.html, http://doc.trolltech.com/qq/qq10-mvc.html
piquadrat
Would Qt allow me to use DomainModel libraries like http://pypi.python.org/pypi/vdm/0.4 and http://pypi.python.org/pypi/domainmodel/0.6
andho