[New-bugs-announce] [issue28386] Improve documentation about tzinfo.dst(None)

Daniel Moisset report at bugs.python.org
Fri Oct 7 12:50:32 EDT 2016


New submission from Daniel Moisset:

The datetime module documentation[1] describes the tzinfo.dst method with a single "dt" argument without being too explicit about possible values for it. The implication is that dt should be a datetime object, but the implementation of time.dst() [2] actually calls tz.dst(None) (where tz is an instance of some tzinfo subclass), so this should clarify that None is an allowed value.

Also, some of the examples given below in the same document (like LocalTimezone, GMT1, GMT2) actually have a related bug (it doesn't handle a None value correctly). So running

>>> ... # copy the example from the documentation
>>> t = time(tzinfo=LocalTimeZone())
>>> t.dst()

crashes with an AttributeError: 'NoneType' object has no attribute 'year'. This kind of bugs have propagated to some other projects already [2]. Some of the other examples (like USTimeZone) seem to be OK

What I think would be desirable here is:
 * A clarification on https://docs.python.org/3.5/library/datetime.html#datetime.tzinfo.dst indicating that dt is either a datetime or a None, in which situations it can be None, and what is the method supposed to return in this case.
 * Fixes in the code examples that reflect this

I would offer a patch, but I'm not quite sure of what the desired behaviour is so I wouldn't know what to document :)

[1] https://docs.python.org/3.5/library/datetime.html
[2] https://github.com/python/cpython/blob/master/Modules/_datetimemodule.c#L3623
[3] https://github.com/django/django/blob/1.10.2/django/utils/timezone.py#L111

----------
assignee: docs at python
components: Documentation
messages: 278256
nosy: Daniel Moisset, docs at python
priority: normal
severity: normal
status: open
title: Improve documentation about tzinfo.dst(None)

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28386>
_______________________________________


More information about the New-bugs-announce mailing list