[Python-Dev] datetime.date.today() raises "AttributeError: time"

Guilherme Polo ggpolo at gmail.com
Sun Nov 16 17:43:54 CET 2008

On Sun, Nov 16, 2008 at 11:55 AM, Tal Einat <taleinat at gmail.com> wrote:
> Steve Holden wrote:
>> Tal Einat wrote:
>>> It this desired behavior?
>>> At the very least the exception should be more detailed, perhaps to
>>> the point of suggesting the probable cause of the error (i.e.
>>> overriding the time module).
>> How is this different from any other case where you import a module with
>> a standard library name conflict, thereby confusing modules loaded later
>> standard library. Should we do the same for any error induced in such a way?
> The difference is that here the exception is generated directly in the
> C code so you don't get an intelligible traceback. The C code for
> datetime imports the time module via the Python C API.
> In other words, here a function from a module in the stdlib, datetime,
> barfs unexpectedly because I happen to have a file name time.py
> hanging around in some directory. There is no traceback and no
> intelligible exception message, just "AttributeError: time". I had to
> dig through datetime's C code to figure out which module was being
> imported via the Python C API, which turned out to be time.

Just like Steve told you, this isn't different from other cases. But,
at least you get a message a bit more verbose in most cases, like:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'time'

Then I went to look why this wasn't happening with datetime too, and I
found out that PyObject_CallMethod in abstract.c re sets the exception
message that would have been set by PyObject_GetAttr by now. Maybe
someone can tell me why it is doing that, for now a patch is attached
here (I didn't resist to not remove two trailing whitespaces).

>  This is rare enough that I've never had something like this happen to
> me in seven years of heavy Python programming.
> - Tal
> _______________________________________________
> 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/ggpolo%40gmail.com

-- Guilherme H. Polo Goncalves
-------------- next part --------------
A non-text attachment was scrubbed...
Name: abstract_dont_re_set_except_msg.diff
Type: text/x-patch
Size: 981 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-dev/attachments/20081116/dfd3abd4/attachment.bin>

More information about the Python-Dev mailing list