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