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@python
components: Documentation
messages: 278256
nosy: Daniel Moisset, docs@python
priority: normal
severity: normal
status: open
title: Improve documentation about tzinfo.dst(None)

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue28386>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to