[Python-Dev] Solving the import-deadlock case (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Tue Jul 2 23:24:46 CEST 2013
- Previous message: [Python-Dev] Solving the import-deadlock case
- Next message: [Python-Dev] Solving the import-deadlock case
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 3 Jul 2013 05:44, "R. David Murray" <rdmurray at bitdance.com> wrote:
On Tue, 02 Jul 2013 20:31:48 +0200, Pascal Chambon <pythoniks at gmail.com> wrote: > I agree that a module loading should be, as much as possible, "side > effects free", and thus shouldn't have temporary errors. But well, in > practice, module loading is typically the time where process-wide > initialization are done (modifying sys.path, os.environ, instantiating > connection or thread pools, registering atexit handler, starting > maintenance threads...), so that case has chances to happen at a moment > or another, especially if accesses to filesystem or network (SQL...) are > done at module loading, due to the lack of initialization system at > upper levels. There may well be a bug that could be/should be fixed here, but...it seems to me that other than the sys.path modifications, doing any of that at module import time has a strong code smell.
Unfortunately it's one of those "Your code is dubious, but so many people do it anyway we should handle it better than we do" cases.
We could also be a lot more emphatic about "import side effects are what marks the boundary between a library and a framework. To stay on the library side of that fence provide a 'start' or 'configure' function instead of doing things implicitly on import".
Heck, even defining library, framework and application would be a good thing.
OTOH, it's hard to find motivation to work on improving the handling of things you think people shouldn't be doing in the first place (that's one of the reasons circular import handling has never been made more consistent).
(That's not to dismiss the work Pascal's already done - just pointing out why it may sometimes feel like it's difficult to get interest and feedback on things like this).
Cheers, Nick.
--David
Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130703/b221c80e/attachment.html>
- Previous message: [Python-Dev] Solving the import-deadlock case
- Next message: [Python-Dev] Solving the import-deadlock case
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]