touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #05446
[Bug 1333512] Re: Failing to import module breaks logging configurability and adds noise
This bug was fixed in the package pygobject - 3.12.0-1ubuntu1
---------------
pygobject (3.12.0-1ubuntu1) trusty-proposed; urgency=medium
* Add 00upstream-importerror-logging.patch: Raise ImportError when importing
modules not found in repository, instead of logging to stderr. The former
matches the behaviour of "import" in general, and the latter breaks the
possibility of configuring "logging" in your program, as any call to
basicConfig() would happen after the import statements. (LP: #1333512)
-- Martin Pitt <martin.pitt@xxxxxxxxxx> Wed, 25 Jun 2014 08:14:43 +0200
** Changed in: pygobject (Ubuntu Trusty)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to pygobject in Ubuntu.
https://bugs.launchpad.net/bugs/1333512
Title:
Failing to import module breaks logging configurability and adds noise
Status in Python bindings for GObject:
Fix Released
Status in “pygobject” package in Ubuntu:
Fix Released
Status in “pygobject” source package in Trusty:
Fix Released
Status in “pygobject” source package in Utopic:
Fix Released
Bug description:
When failing to import a module the gi.repository import.py module logs an error with `logging.error(..)` causing a logging handler to be added.
This basically breaks the ability to configure the logging as it happens so early (i.e. at the import stage before an authors code is executed).
To reproduce/Example:
Run this script: http://pastebin.ubuntu.com/7698632/
Expected outcome:
No output to stdout or stderr and the text "log message" in the file "/tmp/example.log
Actual outcome:
No log file, and this text output to stderr:
ERROR:root:Could not find any typelib for rubbish
ERROR:root:log message
Upstream fix:
https://git.gnome.org/browse/pygobject/commit/?id=ac8b59e
Regression potential:
- The behaviour of raising ImportError on a nonexisting name does not change, but its text changes.
Old: ImportError: cannot import name 'foo'
New: ImportError: cannot import name foo, introspection typelib not found
It's unlikely, however theoretically possible that a program matches
on the precise error message.
- It's theoretically possible that a program watches for the logged
error message and ignores the ImportError. However, that would be
extremely bad design, un-Pythonic and brittle as the logging
format/destination can be changed arbitrarily.
In summary the regression potential is very low.
Ubuntu Version:
Description: Ubuntu 14.04 LTS
Release: 14.04
Package Version:
python3-gi 3.12.0-1
To manage notifications about this bug go to:
https://bugs.launchpad.net/pygobject/+bug/1333512/+subscriptions