Changelog
=========

3.0a2 (2011-05-07)
------------------

- Added back support for reading old DateTime pickles without a `_micros` value.

- Avoid storing `_t` representing the time as a float in seconds since the
  epoch, as we already have `_micros` doing the same as a long. Memory use is
  down to about 300 bytes per DateTime instance.

- Updated exception raising syntax to current style.

- Avoid storing `_aday`, `_fday`, `_pday`, `_amon`, `_fmon`, `_pmon`, `_pmhour`
  and `_pm` in memory for every instance but look them up dynamically based on
  `_dayoffset`, `_month` and `_hour`. This saves another 150 bytes of memory
  per DateTime instance.

- Moved various internal parsing related class variables to module constants.

- No longer provide the `DateError`, `DateTimeError`, `SyntaxError` and
  `TimeError` exceptions as class attributes, import them from their canonical
  `DateTime.interfaces` location instead.

- Removed deprecated `_isDST` and `_localzone` class variables.

- Moved pytz cache from `DateTime._tzinfo` to a module global `_TZINFO`.

- Make DateTime a new-style class and limit its available attributes via a
  slots definition. The pickle size increases to 110 bytes thanks to the
  `ccopy_reg\n_reconstructor` stanza. But the memory size drops from 3kb to
  500 bytes for each instance.

3.0a1 (2011-05-06)
------------------

- Reordered some calculations in `_calcIndependentSecondEtc` to preserve more
  floating point precision.

- Optimized the pickled data, by only storing a tuple of `_micros` and time
  zone information - this reduces the pickle size from an average of 300 bytes
  to just 60 bytes.

- Optimized un-pickling, by avoiding the creation of an intermediate DateTime
  value representing the current time.

- Removed in-place migration of old DateTime pickles without a `_micros` value.

- Removed deprecated support for using `DateTime.__cmp__`.

- Take time zone settings into account when comparing two date times for
  (non-) equality.

- Fixed (possibly unused) _parse_iso8601 function.
  [thet]

- Removed unused import of legacy DateTimeZone, strftime and re.
  Remove trailing whitespace.
  [thet]

- Removed reference to missing version section from buildout.
  [thet]

2.12.6 (2010-10-17)
-------------------

- Changed ``testDayOfWeek`` test to be independent of OS locale.

2.12.5 (2010-07-29)
-------------------

- Launchpad #143269: Corrected the documentation for year value 
  behavior when constructing a DateTime object with three numeric 
  arguments.

- Launchpad #142521: Removed confusing special case in 
  DateTime.__str__ where DateTime instances for midnight 
  (e.g. '2010-07-27 00:00:00 US/Eastern') values would 
  render only their date and nothing else.

2.12.4 (2010-07-12)
-------------------

- Fixed mapping of EDT (was -> 'GMT-0400', now 'GMT-4').

2.12.3 (2010-07-09)
-------------------

- Added EDT timezone support. Addresses bug #599856.
  [vangheem]

2.12.2 (2010-05-05)
-------------------

- Launchpad #572715:  Relaxed pin on pytz, after applying a patch from 
  Marius Gedminus which fixes the apparent API breakage.

2.12.1 (2010-04-30)
-------------------

- Removed an undeclared testing dependency on zope.testing.doctest in favor of
  the standard libraries doctest module.

- Added a maximum version requirement on pytz <= 2010b. Later versions produce
  test failures related to timezone changes.

2.12.0 (2009-03-04)
-------------------

- Launchpad #290254: Forward-ported fix for '_micros'-less pickles from
  the Zope 2.11 branch version.

2.11.2 (2009-02-02)
-------------------

- Include *all* pytz zone names, not just "common" ones.

- Fix one fragile doctest, band-aid another.

- Fix for launchpad #267545: DateTime(DateTime()) should preserve the
  correct hour.

2.11.1 (2008-08-05)
-------------------

- DateTime conversion of datetime objects with non-pytz tzinfo. Timezones()
  returns a copy of the timezone list (allows tests to run).

- Merged the slinkp-datetime-200007 branch: fix the DateTime(anotherDateTime)
  constructor to preserve timezones.

2.11.0b1 (2008-01-06)
---------------------

- Split off from the Zope2 main source code tree.

