<div class="gmail_quote">On Wed, Dec 12, 2012 at 1:23 AM, Lennart Regebro <span dir="ltr"><<a href="mailto:regebro@gmail.com" target="_blank">regebro@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Abstract<br>
========<br>
<br>
This PEP proposes the implementation of concrete time zone support in the<br>
Python standard library, and also improvements to the time zone API to deal<br>
with ambiguous time specifications during DST changes.<br></blockquote><div><br>Thanks for tackling this one, Lennart.<br> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Proposal<br>
========<br>
<br>
Concrete time zone support<br>
--------------------------<br>
<br>
The time zone support in Python has no concrete implementation in the<br>
standard library, only a tzinfo baseclass, and since Python 3.2, one concrete<br>
time zone: UTC.</blockquote><div><br>This isn't quite right - the current concrete timezones support any fixed offset from UTC, not just UTC itself.<br><a href="http://docs.python.org/3/library/datetime#timezone-objects">http://docs.python.org/3/library/datetime#timezone-objects</a><br>
<br>(Although there a couple of bugs in those docs at the moment: <a href="http://bugs.python.org/issue16667">http://bugs.python.org/issue16667</a>)<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 
The time zone support will be implemented by a new module called `timezone``,<br>
based on Stuart Bishop's ``pytz`` module.<br></blockquote><div><br>Ick, why a new module? Why not just add this directly to datetime? (It doesn't need to be provided by the C accelerator, it can go straight in the pure Python part).<br>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This PEP proposes to add these ``is_dst`` parameters to the relevant methods<br>
of the ``datetime`` API, and therefore add this functionality directly to<br>
``datetime``. This is likely the hardest part of this PEP as this<br>
involves updating<br>
the<br></blockquote><div><br>Missing the end of this sentence...<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The ``timezonedata``-package<br>
-----------------------------<br>
<br>
The zoneinfo database will be packaged for easy installation with<br>
``easy_install``/``pip``/``buildout``. This package will not install any<br>
Python code, and will not contain any Python code except that which is needed<br>
for installation.<br></blockquote><div><br>I'd prefer a more aggressive name for this like "tzdata_override". My rationale is that *nix users need to thoroughly aware that if they install this package, they will stop benefiting from the automatic tz database updates provided by their OS (especially if they install it into the system site packages on a distro that has migrated to Python 3 for system tools).<br>
<br>Such a name would also make it possible to provide *two* packaged databases, one checked before the OS data (tzdata_override), and one shipped with Python itself that is used only if the OS doesn't provide the timezone database (tzdata_fallback). tzdata_fallback would then be updated to the latest Olsen database for each maintenance release. Cross-platform applications that wanted more reliably up to date timezone data could then conditionally depend on tzdata_override for Windows deployments (using the environment marker support in metadata 1.2+).<br>
<br>Cheers,<br>Nick.<br><br></div></div>-- <br>Nick Coghlan   |   <a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>   |   Brisbane, Australia<br>