Home | History | Annotate | Download | only in dateutil
      1 Version 2.7.2 (2018-03-26)
      2 ==========================
      3 
      4 Bugfixes
      5 --------
      6 
      7 - Fixed an issue with the setup script running in non-UTF-8 environment.
      8   Reported and fixed by @gergondet (gh pr #651)
      9 
     10 
     11 Misc
     12 ----
     13 
     14 - GH #655
     15 
     16 
     17 Version 2.7.1 (2018-03-24)
     18 ===========================
     19 
     20 Data updates
     21 ------------
     22 
     23 - Updated tzdata version to 2018d.
     24 
     25 
     26 Bugfixes
     27 --------
     28 
     29 - Fixed issue where parser.parse would occasionally raise
     30   decimal.Decimal-specific error types rather than ValueError. Reported by
     31   @amureki (gh issue #632). Fixed by @pganssle (gh pr #636).
     32 - Improve error message when rrule's dtstart and until are not both naive or
     33   both aware. Reported and fixed by @ryanpetrello (gh issue #633, gh pr #634)
     34 
     35 
     36 Misc
     37 ----
     38 
     39 - GH #644, GH #648
     40 
     41 
     42 Version 2.7.0
     43 =============
     44 - Dropped support for Python 2.6 (gh pr #362 by @jdufresne)
     45 - Dropped support for Python 3.2 (gh pr #626)
     46 - Updated zoneinfo file to 2018c (gh pr #616)
     47 - Changed licensing scheme so all new contributions are dual licensed under
     48   Apache 2.0 and BSD. (gh pr #542, issue #496)
     49 - Added __all__ variable to the root package. Reported by @tebriel
     50   (gh issue #406), fixed by @mariocj89 (gh pr #494)
     51 - Added python_requires to setup.py so that pip will distribute the right
     52   version of dateutil. Fixed by @jakec-github (gh issue #537, pr #552)
     53 - Added the utils submodule, for miscellaneous utilities.
     54 - Added within_delta function to utils - added by @justanr (gh issue #432,
     55   gh pr #437)
     56 - Added today function to utils (gh pr #474)
     57 - Added default_tzinfo function to utils (gh pr #475), solving an issue
     58   reported by @nealmcb (gh issue #94)
     59 - Added dedicated ISO 8601 parsing function isoparse (gh issue #424).
     60   Initial implementation by @pganssle in gh pr #489 and #622, with a
     61   pre-release fix by @kirit93 (gh issue #546, gh pr #573). 
     62 - Moved parser module into parser/_parser.py and officially deprecated the use
     63   of several private functions and classes from that module. (gh pr #501, #515)
     64 - Tweaked parser error message to include rejected string format, added by
     65   @pbiering (gh pr #300)
     66 - Add support for parsing bytesarray, reported by @uckelman (gh issue #417) and
     67   fixed by @uckelman and @pganssle (gh pr #514)
     68 - Started raising a warning when the parser finds a timezone string that it
     69   cannot construct a tzinfo instance for (rather than succeeding with no
     70   indication of an error). Reported and fixed by @jbrockmendel (gh pr #540)
     71 - Dropped the use of assert in the parser. Fixed by @jbrockmendel (gh pr #502)
     72 - Fixed to assertion logic in parser to support dates like '2015-15-May',
     73   reported and fixed by @jbrockmendel (gh pr #409)
     74 - Fixed IndexError in parser on dates with trailing colons, reported and fixed
     75   by @jbrockmendel (gh pr #420)
     76 - Fixed bug where hours were not validated, leading to improper parse. Reported
     77   by @heappro (gh pr #353), fixed by @jbrockmendel (gh pr #482)
     78 - Fixed problem parsing strings in %b-%Y-%d format. Reported and fixed by
     79   @jbrockmendel (gh pr #481)
     80 - Fixed problem parsing strings in the %d%B%y format. Reported by @asishm
     81   (gh issue #360), fixed by @jbrockmendel (gh pr #483)
     82 - Fixed problem parsing certain unambiguous strings when year <99 (gh pr #510).
     83   Reported by @alexwlchan (gh issue #293).
     84 - Fixed issue with parsing an unambiguous string representation of an ambiguous
     85   datetime such that if possible the correct value for fold is set. Fixes
     86   issue reported by @JordonPhillips and @pganssle (gh issue #318, #320,
     87   gh pr #517)
     88 - Fixed issue with improper rounding of fractional components. Reported by
     89   @dddmello (gh issue #427), fixed by @m-dz (gh pr #570)
     90 - Performance improvement to parser from removing certain min() calls. Reported
     91   and fixed by @jbrockmendel (gh pr #589)
     92 - Significantly refactored parser code by @jbrockmendel (gh prs #419, #436,
     93   #490, #498, #539) and @pganssle (gh prs #435, #468)
     94 - Implementated of __hash__ for relativedelta and weekday, reported and fixed
     95   by @mrigor (gh pr #389) 
     96 - Implemented __abs__ for relativedelta. Reported by @binnisb and @pferreir
     97   (gh issue #350, pr #472)
     98 - Fixed relativedelta.weeks property getter and setter to work for both
     99   negative and positive values. Reported and fixed by @souliane (gh issue #459,
    100   pr #460)
    101 - Fixed issue where passing whole number floats to the months or years
    102   arguments of the relativedelta constructor would lead to errors during
    103   addition. Reported by @arouanet (gh pr #411), fixed by @lkollar (gh pr #553)
    104 - Added a pre-built tz.UTC object representing UTC (gh pr #497)
    105 - Added a cache to tz.gettz so that by default it will return the same object
    106   for identical inputs. This will change the semantics of certain operations
    107   between datetimes constructed with tzinfo=tz.gettz(...). (gh pr #628)
    108 - Changed the behavior of tz.tzutc to return a singleton (gh pr #497, #504)
    109 - Changed the behavior of tz.tzoffset to return the same object when passed the
    110   same inputs, with a corresponding performance improvement (gh pr #504)
    111 - Changed the behavior of tz.tzstr to return the same object when passed the
    112   same inputs. (gh pr #628)
    113 - Added .instance alternate constructors for tz.tzoffset and tz.tzstr, to
    114   allow the construction of a new instance if desired. (gh pr #628)
    115 - Added the tz.gettz.nocache function to allow explicit retrieval of a new
    116   instance of the relevant tzinfo. (gh pr #628)
    117 - Expand definition of tz.tzlocal equality so that the local zone is allow
    118   equality with tzoffset and tzutc. (gh pr #598)
    119 - Deprecated the idiosyncratic tzstr format mentioned in several examples but
    120   evidently designed exclusively for dateutil, and very likely not used by
    121   any current users. (gh issue #595, gh pr #606)
    122 - Added the tz.resolve_imaginary function, which generates a real date from
    123   an imaginary one, if necessary. Implemented by @Cheukting (gh issue #339,
    124   gh pr #607)
    125 - Fixed issue where the tz.tzstr constructor would erroneously succeed if
    126   passed an invalid value for tzstr. Fixed by @pablogsal (gh issue #259,
    127   gh pr #581)
    128 - Fixed issue with tz.gettz for TZ variables that start with a colon. Reported
    129   and fixed by @lapointexavier (gh pr #601)
    130 - Added a lock to tz.tzical's cache. Reported and fixed by @Unrud (gh pr #430) 
    131 - Fixed an issue with fold support on certain Python 3 implementations that
    132   used the pre-3.6 pure Python implementation of datetime.replace, most
    133   notably pypy3 (gh pr #446).
    134 - Added support for VALUE=DATE-TIME for DTSTART in rrulestr. Reported by @potuz
    135   (gh issue #401) and fixed by @Unrud (gh pr #429)
    136 - Started enforcing that within VTIMEZONE, the VALUE parameter can only be
    137   omitted or DATE-TIME, per RFC 5545. Reported by @Unrud (gh pr #439)
    138 - Added support for TZID parameter for DTSTART in rrulestr. Reported and
    139   fixed by @ryanpetrello (gh issue #614, gh pr #624)
    140 - Added 'RRULE:' prefix to rrule strings generated by rrule.__str__, in
    141   compliance with the RFC. Reported by @AndrewPashkin (gh issue #86), fixed by
    142   @jarondl and @mlorant (gh pr #450)
    143 - Switched to setuptools_scm for version management, automatically calculating
    144   a version number from the git metadata. Reported by @jreback (gh issue #511),
    145   implemented by @Sulley38 (gh pr #564)
    146 - Switched setup.py to use find_packages, and started testing against pip
    147   installed versions of dateutil in CI. Fixed issue with parser import
    148   discovered by @jreback in pandas-dev/pandas#18141. (gh issue #507, pr #509)
    149 - Switched test suite to using pytest (gh pr #495)
    150 - Switched CI over to use tox. Fixed by @gaborbernat (gh pr #549)
    151 - Added a test-only dependency on freezegun. (gh pr #474)
    152 - Reduced number of CI builds on Appveyor. Fixed by @kirit93 (gh issue #529,
    153   gh pr #579)
    154 - Made xfails strict by default, so that an xpass is a failure. (gh pr #567)
    155 - Added a documentation generation stage to tox and CI. (gh pr #568)
    156 - Added an explicit warning when running python setup.py explaining how to run
    157   the test suites with pytest. Fixed by @lkollar. (gh issue #544, gh pr #548)
    158 - Added requirements-dev.txt for test dependency management (gh pr #499, #516)
    159 - Fixed code coverage metrics to account for Windows builds (gh pr #526)
    160 - Fixed code coverage metrics to NOT count xfails. Fixed by @gaborbernat
    161   (gh issue #519, gh pr #563)
    162 - Style improvement to zoneinfo.tzfile that was confusing to static type
    163   checkers. Reported and fixed by @quodlibetor (gh pr #485)
    164 - Several unused imports were removed by @jdufresne. (gh pr #486)
    165 - Switched isinstance(*, collections.Callable) to callable, which is available
    166   on all supported Python versions. Implemented by @jdufresne (gh pr #612)
    167 - Added CONTRIBUTING.md (gh pr #533)
    168 - Added AUTHORS.md (gh pr #542)
    169 - Corrected setup.py metadata to reflect author vs. maintainer, (gh issue #477,
    170   gh pr #538)
    171 - Corrected README to reflect that tests are now run in pytest. Reported and
    172   fixed by @m-dz (gh issue #556, gh pr #557)
    173 - Updated all references to RFC 2445 (iCalendar) to point to RFC 5545. Fixed
    174   by @mariocj89 (gh issue #543, gh pr #555)
    175 - Corrected parse documentation to reflect proper integer offset units,
    176   reported and fixed by @abrugh (gh pr #458)
    177 - Fixed dangling parenthesis in tzoffset documentation (gh pr #461)
    178 - Started including the license file in wheels. Reported and fixed by
    179   @jdufresne (gh pr #476)
    180 - Indendation fixes to parser docstring by @jbrockmendel (gh pr #492)
    181 - Moved many examples from the "examples" documentation into their appropriate
    182   module documentation pages. Fixed by @Tomasz-Kluczkowski and @jakec-github
    183   (gh pr #558, #561)
    184 - Fixed documentation so that the parser.isoparse documentation displays.
    185   Fixed by @alexchamberlain (gh issue #545, gh pr #560)
    186 - Refactored build and release sections and added setup instructions to
    187   CONTRIBUTING. Reported and fixed by @kynan (gh pr #562)
    188 - Cleaned up various dead links in the documentation. (gh pr #602, #608, #618)
    189 
    190 Version 2.6.1
    191 =============
    192 - Updated zoneinfo file to 2017b. (gh pr #395)
    193 - Added Python 3.6 to CI testing (gh pr #365)
    194 - Removed duplicate test name that was preventing a test from being run.
    195   Reported and fixed by @jdufresne (gh pr #371)
    196 - Fixed testing of folds and gaps, particularly on Windows (gh pr #392)
    197 - Fixed deprecated escape characters in regular expressions. Reported by
    198   @nascheme and @thierryba (gh issue #361), fixed by @thierryba (gh pr #358)
    199 - Many PEP8 style violations and other code smells were fixed by @jdufresne
    200   (gh prs #358, #363, #364, #366, #367, #368, #372, #374, #379, #380, #398)
    201 - Improved performance of tzutc and tzoffset objects. (gh pr #391)
    202 - Fixed issue with several time zone classes around DST transitions in any
    203   zones with +0 standard offset (e.g. Europe/London) (gh issue #321, pr #390)
    204 - Fixed issue with fuzzy parsing where tokens similar to AM/PM that are in the
    205   end skipped were dropped in the fuzzy_with_tokens list. Reported and fixed
    206   by @jbrockmendel (gh pr #332).
    207 - Fixed issue with parsing dates of the form X m YY. Reported by @jbrockmendel.
    208   (gh issue #333, pr #393)
    209 - Added support for parser weekdays with less than 3 characters. Reported by
    210   @arcadefoam (gh issue #343), fixed by @jonemo (gh pr #382)
    211 - Fixed issue with the addition and subtraction of certain relativedeltas.
    212   Reported and fixed by @kootenpv (gh issue #346, pr #347)
    213 - Fixed issue where the COUNT parameter of rrules was ignored if 0. Fixed by
    214   @mshenfield (gh pr #330), reported by @vaultah (gh issue #329).
    215 - Updated documentation to include the new tz methods. (gh pr #324)
    216 - Update documentation to reflect that the parser can raise TypeError, reported
    217   and fixed by @tomchuk (gh issue #336, pr #337)
    218 - Fixed an incorrect year in a parser doctest. Fixed by @xlotlu (gh pr #357)
    219 - Moved version information into _version.py and set up the versions more
    220   granularly.
    221 
    222 Version 2.6.0
    223 =============
    224 - Added PEP-495-compatible methods to address ambiguous and imaginary dates in
    225   time zones in a backwards-compatible way. Ambiguous dates and times can now
    226   be safely represented by all dateutil time zones. Many thanks to Alexander
    227   Belopolski (@abalkin) and Tim Peters @tim-one for their inputs on how to
    228   address this. Original issues reported by Yupeng and @zed (lP: 1390262,
    229   gh issues #57, #112, #249, #284, #286, prs #127, #225, #248, #264, #302).
    230 - Added new methods for working with ambiguous and imaginary dates to the tz
    231   module. datetime_ambiguous() determines if a datetime is ambiguous for a given
    232   zone and datetime_exists() determines if a datetime exists in a given zone.
    233   This works for all fold-aware datetimes, not just those provided by dateutil.
    234   (gh issue #253, gh pr #302)
    235 - Fixed an issue where dst() in Portugal in 1996 was returning the wrong value
    236   in tz.tzfile objects. Reported by @abalkin (gh issue #128, pr #225)
    237 - Fixed an issue where zoneinfo.ZoneInfoFile errors were not being properly
    238   deep-copied. (gh issue #226, pr #225)
    239 - Refactored tzwin and tzrange as a subclass of a common class, tzrangebase, as
    240   there was substantial overlapping functionality. As part of this change,
    241   tzrange and tzstr now expose a transitions() function, which returns the
    242   DST on and off transitions for a given year. (gh issue #260, pr #302)
    243 - Deprecated zoneinfo.gettz() due to confusion with tz.gettz(), in favor of
    244   get() method of zoneinfo.ZoneInfoFile objects. (gh issue #11, pr #310)
    245 - For non-character, non-stream arguments, parser.parse now raises TypeError
    246   instead of AttributeError. (gh issues #171, #269, pr #247)
    247 - Fixed an issue where tzfile objects were not properly handling dst() and
    248   tzname() when attached to datetime.time objects. Reported by @ovacephaloid.
    249   (gh issue #292, pr #309)
    250 - /usr/share/lib/zoneinfo was added to TZPATHS for compatibility with Solaris
    251   systems. Reported by @dhduvall (gh issue #276, pr #307)
    252 - tzoffset and tzrange objects now accept either a number of seconds or a
    253   datetime.timedelta() object wherever previously only a number of seconds was
    254   allowed. (gh pr #264, #277)
    255 - datetime.timedelta objects can now be added to relativedelta objects. Reported
    256   and added by Alec Nikolas Reiter (@justanr) (gh issue #282, pr #283
    257 - Refactored relativedelta.weekday and rrule.weekday into a common base class
    258   to reduce code duplication. (gh issue #140, pr #311)
    259 - An issue where the WKST parameter was improperly rendering in str(rrule) was
    260   reported and fixed by Daniel LePage (@dplepage). (gh issue #262, pr #263)
    261 - A replace() method has been added to rrule objects by @jendas1, which creates
    262   new rrule with modified attributes, analogous to datetime.replace (gh pr #167)
    263 - Made some significant performance improvements to rrule objects in Python 2.x
    264   (gh pr #245)
    265 - All classes defining equality functions now return NotImplemented when
    266   compared to unsupported classes, rather than raising TypeError, to allow other
    267   classes to provide fallback support. (gh pr #236)
    268 - Several classes have been marked as explicitly unhashable to maintain
    269   identical behavior between Python 2 and 3. Submitted by Roy Williams
    270   (@rowillia) (gh pr #296)
    271 - Trailing whitespace in easter.py has been removed. Submitted by @OmgImAlexis
    272   (gh pr #299)
    273 - Windows-only batch files in build scripts had line endings switched to CRLF.
    274   (gh pr #237)
    275 - @adamchainz updated the documentation links to reflect that the canonical
    276   location for readthedocs links is now at .io, not .org. (gh pr #272)
    277 - Made some changes to the CI and codecov to test against newer versions of
    278   Python and pypy, and to adjust the code coverage requirements. For the moment,
    279   full pypy3 compatibility is not supported until a new release is available,
    280   due to upstream bugs in the old version affecting PEP-495 support.
    281   (gh prs #265, #266, #304, #308)
    282 - The full PGP signing key fingerprint was added to the README.md in favor of
    283   the previously used long-id. Reported by @valholl (gh issue #287, pr #304)
    284 - Updated zoneinfo to 2016i. (gh issue #298, gh pr #306)
    285 
    286 
    287 Version 2.5.3
    288 =============
    289 - Updated zoneinfo to 2016d
    290 - Fixed parser bug where unambiguous datetimes fail to parse when dayfirst is
    291   set to true. (gh issue #233, pr #234)
    292 - Bug in zoneinfo file on platforms such as Google App Engine which do not
    293   do not allow importing of subprocess.check_call was reported and fixed by
    294   @savraj (gh issue #239, gh pr #240)
    295 - Fixed incorrect version in documentation (gh issue #235, pr #243)
    296 
    297 Version 2.5.2
    298 =============
    299 - Updated zoneinfo to 2016c
    300 - Fixed parser bug where yearfirst and dayfirst parameters were not being
    301   respected when no separator was present. (gh issue #81 and #217, pr #229)
    302 
    303 Version 2.5.1
    304 =============
    305 - Updated zoneinfo to 2016b
    306 - Changed MANIFEST.in to explicitly include test suite in source distributions,
    307   with help from @koobs (gh issue #193, pr #194, #201, #221)
    308 - Explicitly set all line-endings to LF, except for the NEWS file, on a
    309   per-repository basis (gh pr #218)
    310 - Fixed an issue with improper caching behavior in rruleset objects (gh issue
    311   #104, pr #207)
    312 - Changed to an explicit error when rrulestr strings contain a missing BYDAY
    313   (gh issue #162, pr #211)
    314 - tzfile now correctly handles files containing leapcnt (although the leapcnt
    315   information is not actually used). Contributed by @hjoukl (gh issue #146, pr
    316   #147)
    317 - Fixed recursive import issue with tz module (gh pr #204)
    318 - Added compatibility between tzwin objects and datetime.time objects (gh issue
    319   #216, gh pr #219)
    320 - Refactored monolithic test suite by module (gh issue #61, pr #200 and #206)
    321 - Improved test coverage in the relativedelta module (gh pr #215)
    322 - Adjusted documentation to reflect possibly counter-intuitive properties of
    323   RFC-5545-compliant rrules, and other documentation improvements in the rrule
    324   module (gh issue #105, gh issue #149 - pointer to the solution by @phep,
    325   pr #213).
    326 
    327 
    328 Version 2.5.0
    329 =============
    330 - Updated zoneinfo to 2016a
    331 - zoneinfo_metadata file version increased to 2.0 - the updated updatezinfo.py
    332   script will work with older zoneinfo_metadata.json files, but new metadata
    333   files will not work with older updatezinfo.py versions. Additionally, we have
    334   started hosting our own mirror of the Olson databases on a github pages
    335   site (https://dateutil.github.io/tzdata/) (gh pr #183)
    336 - dateutil zoneinfo tarballs now contain the full zoneinfo_metadata file used
    337   to generate them. (gh issue #27, gh pr #85)
    338 - relativedelta can now be safely subclassed without derived objects reverting
    339   to base relativedelta objects as a result of arithmetic operations.
    340   (lp:1010199, gh issue #44, pr #49)
    341 - relativedelta 'weeks' parameter can now be set and retrieved as a property of
    342   relativedelta instances. (lp: 727525, gh issue #45, pr #49)
    343 - relativedelta now explicitly supports fractional relative weeks, days, hours,
    344   minutes and seconds. Fractional values in absolute parameters (year, day, etc)
    345   are now deprecated. (gh issue #40, pr #190)
    346 - relativedelta objects previously did not use microseconds to determine of two
    347   relativedelta objects were equal. This oversight has been corrected.
    348   Contributed by @elprans (gh pr #113)
    349 - rrule now has an xafter() method for retrieving multiple recurrences after a
    350   specified date. (gh pr #38)
    351 - str(rrule) now returns an RFC2445-compliant rrule string, contributed by
    352   @schinckel and @armicron (lp:1406305, gh issue #47, prs #50, #62 and #160)
    353 - rrule performance under certain conditions has been significantly improved
    354   thanks to a patch contributed by @dekoza, based on an article by Brian Beck
    355   (@exogen) (gh pr #136)
    356 - The use of both the 'until' and 'count' parameters is now deprecated as
    357   inconsistent with RFC2445 (gh pr #62, #185)
    358 - Parsing an empty string will now raise a ValueError, rather than returning the
    359   datetime passed to the 'default' parameter. (gh issue #78, pr #187)
    360 - tzwinlocal objects now have a meaningful repr() and str() implementation
    361   (gh issue #148, prs #184 and #186)
    362 - Added equality logic for tzwin and tzwinlocal objects. (gh issue #151,
    363   pr #180, #184)
    364 - Added some flexibility in subclassing timelex, and switched the default
    365   behavior over to using string methods rather than comparing against a fixed
    366   list. (gh pr #122, #139)
    367 - An issue causing tzstr() to crash on Python 2.x was fixed. (lp: 1331576,
    368   gh issue #51, pr #55)
    369 - An issue with string encoding causing exceptions under certain circumstances
    370   when tzname() is called was fixed. (gh issue #60, #74, pr #75)
    371 - Parser issue where calling parse() on dates with no day specified when the
    372   day of the month in the default datetime (which is "today" if unspecified) is
    373   greater than the number of days in the parsed month was fixed (this issue
    374   tended to crop up between the 29th and 31st of the month, for obvious reasons)
    375   (canonical gh issue #25, pr #30, #191)
    376 - Fixed parser issue causing fuzzy_with_tokens to raise an unexpected exception
    377   in certain circumstances. Contributed by @MichaelAquilina (gh pr #91)
    378 - Fixed parser issue where years > 100 AD were incorrectly parsed. Contributed
    379   by @Bachmann1234 (gh pr #130)
    380 - Fixed parser issue where commas were not a valid separator between seconds
    381   and microseconds, preventing parsing of ISO 8601 dates. Contributed by
    382   @ryanss (gh issue #28, pr #106)
    383 - Fixed issue with tzwin encoding in locales with non-Latin alphabets
    384   (gh issue #92, pr #98)
    385 - Fixed an issue where tzwin was not being properly imported on Windows.
    386   Contributed by @labrys. (gh pr #134)
    387 - Fixed a problem causing issues importing zoneinfo in certain circumstances.
    388   Issue and solution contributed by @alexxv (gh issue #97, pr #99)
    389 - Fixed an issue where dateutil timezones were not compatible with basic time
    390   objects. One of many, many timezone related issues contributed and tested by
    391   @labrys. (gh issue #132, pr #181)
    392 - Fixed issue where tzwinlocal had an invalid utcoffset. (gh issue #135,
    393   pr #141, #142)
    394 - Fixed issue with tzwin and tzwinlocal where DST transitions were incorrectly
    395   parsed from the registry. (gh issue #143, pr #178)
    396 - updatezinfo.py no longer suppresses certain OSErrors. Contributed by @bjamesv
    397   (gh pr #164)
    398 - An issue that arose when timezone locale changes during runtime has been
    399   fixed by @carlosxl and @mjschultz (gh issue #100, prs #107, #109)
    400 - Python 3.5 was added to the supported platforms in the metadata (@tacaswell
    401   gh pr #159) and the test suites (@moreati gh pr #117).
    402 - An issue with tox failing without unittest2 installed in Python 2.6 was fixed
    403   by @moreati (gh pr #115)
    404 - Several deprecated functions were replaced in the tests by @moreati
    405   (gh pr #116)
    406 - Improved the logic in Travis and Appveyor to alleviate issues where builds
    407   were failing due to connection issues when downloading the IANA timezone
    408   files. In addition to adding our own mirror for the files (gh pr #183), the
    409   download is now retried a number of times (with a delay) (gh pr #177)
    410 - Many failing doctests were fixed by @moreati. (gh pr #120)
    411 - Many fixes to the documentation (gh pr #103, gh pr #87 from @radarhere,
    412   gh pr #154 from @gpoesia, gh pr #156 from @awsum, gh pr #168 from @ja8zyjits)
    413 - Added a code coverage tool to the CI to help improve the library. (gh pr #182)
    414 - We now have a mailing list - dateutil (a] python.org, graciously hosted by
    415   Python.org.
    416 
    417 
    418 Version 2.4.2
    419 =============
    420 - Updated zoneinfo to 2015b.
    421 - Fixed issue with parsing of tzstr on Python 2.7.x; tzstr will now be decoded
    422   if not a unicode type. gh #51 (lp:1331576), gh pr #55.
    423 - Fix a parser issue where AM and PM tokens were showing up in fuzzy date
    424   stamps, triggering inappropriate errors. gh #56 (lp: 1428895), gh pr #63.
    425 - Missing function "setcachesize" removed from zoneinfo __all__ list by @ryanss,
    426   fixing an issue with wildcard imports of dateutil.zoneinfo. (gh pr #66).
    427 - (PyPI only) Fix an issue with source distributions not including the test
    428   suite.
    429 
    430 
    431 Version 2.4.1
    432 =============
    433 
    434 - Added explicit check for valid hours if AM/PM is specified in parser.
    435   (gh pr #22, issue #21)
    436 - Fix bug in rrule introduced in 2.4.0 where byweekday parameter was not
    437   handled properly. (gh pr #35, issue #34)
    438 - Fix error where parser allowed some invalid dates, overwriting existing hours
    439   with the last 2-digit number in the string. (gh pr #32, issue #31)
    440 - Fix and add test for Python 2.x compatibility with boolean checking of
    441   relativedelta objects. Implemented by @nimasmi (gh pr #43) and Cdric Krier
    442   (lp: 1035038)
    443 - Replaced parse() calls with explicit datetime objects in unit tests unrelated
    444   to parser. (gh pr #36)
    445 - Changed private _byxxx from sets to sorted tuples and fixed one currently
    446   unreachable bug in _construct_byset. (gh pr #54)
    447 - Additional documentation for parser (gh pr #29, #33, #41) and rrule.
    448 - Formatting fixes to documentation of rrule and README.rst.
    449 - Updated zoneinfo to 2015a.
    450 
    451 Version 2.4.0
    452 =============
    453 
    454 - Fix an issue with relativedelta and freezegun (lp:1374022)
    455 - Fix tzinfo in windows for timezones without dst (lp:1010050, gh #2)
    456 - Ignore missing timezones in windows like in POSIX
    457 - Fix minimal version requirement for six (gh #6)
    458 - Many rrule changes and fixes by @pganssle (gh pull requests #13 #14 #17),
    459     including defusing some infinite loops (gh #4)
    460 
    461 Version 2.3
    462 ===========
    463 
    464 - Cleanup directory structure, moved test.py to dateutil/tests/test.py
    465 
    466 - Changed many aspects of dealing with the zone info file. Instead of a cache,
    467   all the zones are loaded to memory, but symbolic links are loaded only once,
    468   so not much memory is used.
    469 
    470 - The package is now zip-safe, and universal-wheelable, thanks to changes in
    471   the handling of the zoneinfo file.
    472 
    473 - Fixed tzwin silently not imported on windows python2
    474 
    475 - New maintainer, together with new hosting: GitHub, Travis, Read-The-Docs
    476 
    477 Version 2.2
    478 ===========
    479 
    480 - Updated zoneinfo to 2013h
    481 
    482 - fuzzy_with_tokens parse addon from Christopher Corley
    483 
    484 - Bug with LANG=C fixed by Mike Gilbert
    485 
    486 Version 2.1
    487 ===========
    488 
    489 - New maintainer
    490 
    491 - Dateutil now works on Python 2.6, 2.7 and 3.2 from same codebase (with six)
    492 
    493 - #704047: Ismael Carnales' patch for a new time format
    494 
    495 - Small bug fixes, thanks for reporters!
    496 
    497 
    498 Version 2.0
    499 ===========
    500 
    501 - Ported to Python 3, by Brian Jones.  If you need dateutil for Python 2.X,
    502   please continue using the 1.X series.
    503 
    504 - There's no such thing as a "PSF License".  This source code is now
    505   made available under the Simplified BSD license.  See LICENSE for
    506   details.
    507 
    508 Version 1.5
    509 ===========
    510 
    511 - As reported by Mathieu Bridon, rrules were matching the bysecond rules
    512   incorrectly against byminute in some circumstances when the SECONDLY
    513   frequency was in use, due to a copy & paste bug.  The problem has been
    514   unittested and corrected.
    515 
    516 - Adam Ryan reported a problem in the relativedelta implementation which
    517   affected the yearday parameter in the month of January specifically.
    518   This has been unittested and fixed.
    519 
    520 - Updated timezone information.
    521 
    522 
    523 Version 1.4.1
    524 =============
    525 
    526 - Updated timezone information.
    527 
    528 
    529 Version 1.4
    530 ===========
    531 
    532 - Fixed another parser precision problem on conversion of decimal seconds
    533   to microseconds, as reported by Erik Brown.  Now these issues are gone
    534   for real since it's not using floating point arithmetic anymore.
    535 
    536 - Fixed case where tzrange.utcoffset and tzrange.dst() might fail due
    537   to a date being used where a datetime was expected (reported and fixed
    538   by Lennart Regebro).
    539 
    540 - Prevent tzstr from introducing daylight timings in strings that didn't
    541   specify them (reported by Lennart Regebro).
    542 
    543 - Calls like gettz("GMT+3") and gettz("UTC-2") will now return the
    544   expected values, instead of the TZ variable behavior.
    545 
    546 - Fixed DST signal handling in zoneinfo files.  Reported by
    547   Nicholas F. Fabry and John-Mark Gurney.
    548 
    549 
    550 Version 1.3
    551 ===========
    552 
    553 - Fixed precision problem on conversion of decimal seconds to
    554   microseconds, as reported by Skip Montanaro.
    555 
    556 - Fixed bug in constructor of parser, and converted parser classes to
    557   new-style classes.  Original report and patch by Michael Elsdrfer.
    558 
    559 - Initialize tzid and comps in tz.py, to prevent the code from ever
    560   raising a NameError (even with broken files).  Johan Dahlin suggested
    561   the fix after a pyflakes run.
    562 
    563 - Version is now published in dateutil.__version__, as requested
    564   by Darren Dale.
    565 
    566 - All code is compatible with new-style division.
    567 
    568 
    569 Version 1.2
    570 ===========
    571 
    572 - Now tzfile will round timezones to full-minutes if necessary,
    573   since Python's datetime doesn't support sub-minute offsets.
    574   Thanks to Ilpo Nyyssnen for reporting the issue.
    575 
    576 - Removed bare string exceptions, as reported and fixed by
    577   Wilfredo Snchez Vega.
    578 
    579 - Fix bug in leap count parsing (reported and fixed by Eugene Oden).
    580 
    581 
    582 Version 1.1
    583 ===========
    584 
    585 - Fixed rrule byyearday handling. Abramo Bagnara pointed out that
    586   RFC2445 allows negative numbers.
    587 
    588 - Fixed --prefix handling in setup.py (by Sidnei da Silva).
    589 
    590 - Now tz.gettz() returns a tzlocal instance when not given any
    591   arguments and no other timezone information is found.
    592 
    593 - Updating timezone information to version 2005q.
    594 
    595 
    596 Version 1.0
    597 ===========
    598 
    599 - Fixed parsing of XXhXXm formatted time after day/month/year
    600   has been parsed.
    601 
    602 - Added patch by Jeffrey Harris optimizing rrule.__contains__.
    603 
    604 
    605 Version 0.9
    606 ===========
    607 
    608 - Fixed pickling of timezone types, as reported by
    609   Andreas Khler.
    610 
    611 - Implemented internal timezone information with binary
    612   timezone files [1]. datautil.tz.gettz() function will now
    613   try to use the system timezone files, and fallback to
    614   the internal versions. It's also possible to ask for
    615   the internal versions directly by using
    616   dateutil.zoneinfo.gettz().
    617 
    618 - New tzwin timezone type, allowing access to Windows
    619   internal timezones (contributed by Jeffrey Harris).
    620 
    621 - Fixed parsing of unicode date strings.
    622 
    623 - Accept parserinfo instances as the parser constructor
    624   parameter, besides parserinfo (sub)classes.
    625 
    626 - Changed weekday to spell the not-set n value as None
    627   instead of 0.
    628 
    629 - Fixed other reported bugs.
    630 
    631 [1] http://www.twinsun.com/tz/tz-link.htm
    632 
    633 
    634 Version 0.5
    635 ===========
    636 
    637 - Removed FREQ_ prefix from rrule frequency constants
    638   WARNING: this breaks compatibility with previous versions.
    639 
    640 - Fixed rrule.between() for cases where "after" is achieved
    641   before even starting, as reported by Andreas Khler.
    642 
    643 - Fixed two digit zero-year parsing (such as 31-Dec-00), as
    644   reported by Jim Abramson, and included test case for this.
    645 
    646 - Sort exdate and rdate before iterating over them, so that
    647   it's not necessary to sort them before adding to the rruleset,
    648   as reported by Nicholas Piper.
    649