On Mon, 2006-10-02 at 14:13 +0200, Marco Pesenti Gritti wrote: > Ian Bicking wrote: > > Marco Pesenti Gritti wrote: > >> Eeeeh here comes my hate for python imports. What I'd really want in > >> the code is: > >> > >> from sugar import presence > >> > >> ps = presence.PresenceService() > >> > >> Now, is there a way to get that without stuffing all the presence > >> service in presence.py. Or more in general can you elaborate on a way > >> to organize code in python that doesn't suck :) I guess we have been > >> trying to emulate java like packaging with generally one class per > >> file, but that doesn't seem to play well with python imports. > >> > >> Anyway it would be great to solve this in a good way. I hate what we > >> have currently. > > > > You can put everything in presence/__init__.py. I don't like using > > __init__.py this way, though; it's a little quirky as a file > > (ImportError's in it are swallowed), and by itself it has a rather > > ambiguous name. So I typically put something like this in there: > > > > # presence/__init__.py > > from presenceservice import PresenceService > > > > Then you can do "from presence import PresenceService". When you then > > try to track down PresenceService you'll have a little indirection, > > but usually it's not too distracting. > > > > One downside is that there is then no way to import (and hence load) > > some of the code without importing all of it. I.e., if you wanted > > access to something in presence/ but not PresenceService, you would > > end up implicitly importing PresenceService whether you wanted to or not. > > > > I tried to use lower case names for modules and it works better. Unless > Dan disagree I think we should go with this style for modules. Ian, it > would be great if you could come up with a simple code style document.
That sounds fine. Dan > Marco > _______________________________________________ > Sugar mailing list > [email protected] > http://mailman.laptop.org/mailman/listinfo/sugar _______________________________________________ Sugar mailing list [email protected] http://mailman.laptop.org/mailman/listinfo/sugar
