All Versions
10
Latest Version
Avg Release Cycle
121 days
Latest Release
1636 days ago

Changelog History

  • v2.8.1 Changes

    November 03, 2019

    ๐Ÿ”– Version 2.8.1 (2019-11-03)

    โšก๏ธ Data updates

    • โšก๏ธ Updated tzdata version to 2019c.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fixed a race condition in the tzoffset and tzstr "strong"
      caches on Python 2.7. Reported by @kainjow (gh issue #901).
    • ๐Ÿ“œ Parsing errors will now raise ParserError, a subclass of
      ValueError, which has a nicer string representation. Patch by
      @gfyoung (gh pr #881).
    • ๐Ÿ“œ parser.parse will now raise TypeError when tzinfos is passed a
      type that cannot be interpreted as a time zone. Prior to this
      ๐Ÿ”„ change, it would raise an UnboundLocalError instead. Patch by
      @jbrockmendel (gh pr #891).
    • ๐Ÿ”„ Changed error message raised when when passing a bytes object as
      ๐Ÿ›  the time zone name to gettz in Python 3. Reported and fixed by
      @labrys () (gh issue #927, gh pr #935).
    • ๐Ÿ”„ Changed compatibility logic to support a potential Python 4.0
      ๐Ÿš€ release. Patch by Hugo van Kemenade (gh pr #950).
    • โšก๏ธ Updated many modules to use tz.UTC in favor of tz.tzutc()
      internally, to avoid an unnecessary function call. (gh pr #910).
    • ๐Ÿ›  Fixed issue where dateutil.tz was using a backported version of
      contextlib.nullcontext even in Python 3.7 due to a malformed
      import statement. (gh pr #963).

    โœ… Tests

    • โœ… Switched from using assertWarns to using pytest.warns in the test
      suite. (gh pr #969).
    • ๐Ÿ›  Fix typo in setup.cfg causing PendingDeprecationWarning to not be
      โš  explicitly specified as an error in the warnings filter. (gh pr
      #966)
    • Fixed issue where test_tzlocal_offset_equal would fail in certain
      environments (such as FreeBSD) due to an invalid assumption about
      ๐Ÿ›  what time zone names are provided. Reported and fixed by Kubilay
      Kocak (gh issue #918, pr #928).
    • ๐Ÿ›  Fixed a minor bug in test_isoparser related to bytes/str
      ๐Ÿ›  handling. Fixed by @fhuang5 (gh issue #776, gh pr #879).
    • ๐Ÿ”ง Explicitly listed all markers used in the pytest configuration. (gh
      pr #915)
    • โœ… Extensive improvements to the parser test suite, including the
      ๐Ÿ’… adoption of pytest-style tests and the addition of parametrization
      โœ… of several test cases. Patches by @jbrockmendel (gh prs #735,
      #890, #892, #894).
    • โž• Added tests for tzinfos input types. Patch by @jbrockmendel (gh pr
      #891).
    • ๐Ÿ›  Fixed failure of test suite when changing the TZ variable is
      forbidden. Patch by @shadchin (gh pr #893).
    • โœ… Pinned all test dependencies on Python 3.3. (gh prs #934, #962)

    ๐Ÿ“š Documentation changes

    • ๐Ÿ›  Fixed many misspellings, typos and styling errors in the comments
      ๐Ÿ“š and documentation. Patch by Hugo van Kemenade (gh pr #952).

    Misc

    • โž• Added Python 3.8 to the trove classifiers. (gh pr #970)
    • ๐Ÿšš Moved as many keys from setup.py to setup.cfg as possible. Fixed
      by @FakeNameSE, @aquinlan82, @jachen20, and @gurgenz221 (gh
      issue #871, gh pr #880).
    • ๐Ÿ“œ Reorganized parser methods by functionality. Patch by
      @jbrockmendel (gh pr #882).
    • ๐Ÿš€ Switched release.py over to using pep517.build for creating
      ๐Ÿš€ releases, rather than direct invocations of setup.py. Fixed by
      @smeng10 (gh issue #869, gh pr #875).
    • โž• Added a "build" environment into the tox configuration, to handle
      ๐Ÿš€ dependency management when making releases. Fixed by @smeng10 (gh
      issue #870,r gh pr #876).
    • GH #916, GH #971
  • v2.8.0

    February 05, 2019
  • v2.7.5 Changes

    October 27, 2018

    โšก๏ธ Data updates

    • โšก๏ธ Update tzdata to 2018g
  • v2.7.4 Changes

    October 25, 2018

    โšก๏ธ Data updates

    • โšก๏ธ Updated tzdata version to 2018f.
  • v2.7.3 Changes

    May 10, 2018

    โšก๏ธ Data updates

    • โšก๏ธ Update tzdata to 2018e. (gh pr #710)

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fixed an issue where decimal.Decimal would cast NaN or infinite value in a
      ๐Ÿ“œ parser.parse, which will raise decimal.Decimal-specific errors. Reported and
      ๐Ÿ›  fixed by @amureki (gh issue #662, gh pr #679).
    • ๐Ÿ›  Fixed a ValueError being thrown if tzinfos call explicity returns None.
      ๐Ÿ“œ Reported by @pganssle (gh issue #661) Fixed by @ParseThis (gh pr #681)
    • ๐Ÿ›  Fixed incorrect parsing of certain dates earlier than 100 AD when repesented
      in the form "%B.%Y.%d", e.g. "December.0031.30". (gh issue #687, pr #700)
    • ๐Ÿ›  Fixed a bug where automatically generated DTSTART was naive even if a
      specified UNTIL had a time zone. Automatically generated DTSTART will now
      take on the timezone of an UNTIL date, if provided. Reported by @href (gh
      ๐Ÿ›  issue #652). Fixed by @absreim (gh pr #693).

    ๐Ÿ“š Documentation changes

    • โšก๏ธ Corrected link syntax and updated URL to https for ISO year week number
      notation in relativedelta examples. (gh issue #670, pr #711)
    • โž• Add doctest examples to tzfile documentation. Done by @weatherpattern and
      @pganssle (gh pr #671)
    • ๐Ÿ“š Updated the documentation for relativedelta. Removed references to tuple
      ๐Ÿ‘ arguments for weekday, explained effect of weekday(_, 1) and better explained
      ๐Ÿ›  the order of operations that relativedelta applies. Fixed by @kvn219
      @huangy22 and @ElliotJH (gh pr #673)
    • โž• Added changelog to documentation. (gh issue #692, gh pr #707)
    • ๐Ÿ”„ Changed order of keywords in rrule docstring. Reported and fixed by
      @rmahajan14 (gh issue #686, gh pr #695).
    • โž• Added documentation for dateutil.tz.gettz. Reported by @pganssle (gh
      ๐Ÿ›  issue #647). Fixed by @weatherpattern (gh pr #704)
    • ๐Ÿ“š Cleaned up malformed RST in the tz documentation. (gh issue #702, gh pr
      #706)
    • Changed the default theme to sphinx_rtd_theme, and changed the sphinx
      ๐Ÿ”ง configuration to go along with that. (gh pr #707)
    • ๐Ÿ“š Reorganized dateutil.tz documentation and fixed issue with the
      ๐Ÿ“„ dateutil.tz docstring. (gh pr #714)

    Misc

  • v2.7.2 Changes

    March 26, 2018

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fixed an issue with the setup script running in non-UTF-8 environment.
      ๐Ÿ›  Reported and fixed by @gergondet (gh pr #651)

    Misc

  • v2.7.1 Changes

    March 24, 2018

    โšก๏ธ Data updates

    • โšก๏ธ Updated tzdata version to 2018d.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fixed issue where parser.parse would occasionally raise
      decimal.Decimal-specific error types rather than ValueError. Reported by
      ๐Ÿ›  @amureki (gh issue #632). Fixed by @pganssle (gh pr #636).
    • ๐Ÿ‘Œ Improve error message when rrule's dtstart and until are not both naive or
      ๐Ÿ›  both aware. Reported and fixed by @ryanpetrello (gh issue #633, gh pr #634)

    Misc

  • v2.7.0 Changes

    March 11, 2018
    • โฌ‡๏ธ Dropped support for Python 2.6 (gh pr #362 by @jdufresne)
    • โฌ‡๏ธ Dropped support for Python 3.2 (gh pr #626)
    • โšก๏ธ Updated zoneinfo file to 2018c (gh pr #616)
    • ๐Ÿ”„ Changed licensing scheme so all new contributions are dual licensed under
      Apache 2.0 and BSD. (gh pr #542, issue #496)
    • Added all variable to the root package. Reported by @tebriel
      ๐Ÿ›  (gh issue #406), fixed by @mariocj89 (gh pr #494)
    • โž• Added python_requires to setup.py so that pip will distribute the right
      ๐Ÿ”– version of dateutil. Fixed by @jakec-github (gh issue #537, pr #552)
    • โž• Added the utils submodule, for miscellaneous utilities.
    • โž• Added within_delta function to utils - added by @justanr (gh issue #432,
      gh pr #437)
    • โž• Added today function to utils (gh pr #474)
    • โž• Added default_tzinfo function to utils (gh pr #475), solving an issue
      reported by @nealmcb (gh issue #94)
    • โž• Added dedicated ISO 8601 parsing function isoparse (gh issue #424).
      ๐ŸŽ‰ Initial implementation by @pganssle in gh pr #489 and #622, with a
      ๐Ÿš€ pre-release fix by @kirit93 (gh issue #546, gh pr #573).
    • ๐Ÿšš Moved parser module into parser/_parser.py and officially deprecated the use
      of several private functions and classes from that module. (gh pr #501, #515)
    • ๐Ÿ“œ Tweaked parser error message to include rejected string format, added by
      @pbiering (gh pr #300)
    • โž• Add support for parsing bytesarray, reported by @uckelman (gh issue #417) and
      ๐Ÿ›  fixed by @uckelman and @pganssle (gh pr #514)
    • โš  Started raising a warning when the parser finds a timezone string that it
      cannot construct a tzinfo instance for (rather than succeeding with no
      ๐Ÿ›  indication of an error). Reported and fixed by @jbrockmendel (gh pr #540)
    • โฌ‡๏ธ Dropped the use of assert in the parser. Fixed by @jbrockmendel (gh pr #502)
    • ๐Ÿ›  Fixed to assertion logic in parser to support dates like '2015-15-May',
      ๐Ÿ›  reported and fixed by @jbrockmendel (gh pr #409)
    • ๐Ÿ›  Fixed IndexError in parser on dates with trailing colons, reported and fixed
      by @jbrockmendel (gh pr #420)
    • ๐Ÿ›  Fixed bug where hours were not validated, leading to improper parse. Reported
      ๐Ÿ›  by @heappro (gh pr #353), fixed by @jbrockmendel (gh pr #482)
    • ๐Ÿ›  Fixed problem parsing strings in %b-%Y-%d format. Reported and fixed by
      @jbrockmendel (gh pr #481)
    • ๐Ÿ›  Fixed problem parsing strings in the %d%B%y format. Reported by @asishm
      ๐Ÿ›  (gh issue #360), fixed by @jbrockmendel (gh pr #483)
    • ๐Ÿ›  Fixed problem parsing certain unambiguous strings when year <99 (gh pr #510).
      Reported by @alexwlchan (gh issue #293).
    • ๐Ÿ›  Fixed issue with parsing an unambiguous string representation of an ambiguous
      ๐Ÿ›  datetime such that if possible the correct value for fold is set. Fixes
      issue reported by @JordonPhillips and @pganssle (gh issue #318, #320,
      gh pr #517)
    • ๐Ÿ›  Fixed issue with improper rounding of fractional components. Reported by
      ๐Ÿ›  @dddmello (gh issue #427), fixed by @m-dz (gh pr #570)
    • ๐ŸŽ Performance improvement to parser from removing certain min() calls. Reported
      ๐Ÿ›  and fixed by @jbrockmendel (gh pr #589)
    • ๐Ÿ”จ Significantly refactored parser code by @jbrockmendel (gh prs #419, #436,
      #490, #498, #539) and @pganssle (gh prs #435, #468)
    • Implementated of hash for relativedelta and weekday, reported and fixed
      by @mrigor (gh pr #389)
    • Implemented abs for relativedelta. Reported by @binnisb and @pferreir
      (gh issue #350, pr #472)
    • ๐Ÿ›  Fixed relativedelta.weeks property getter and setter to work for both
      ๐Ÿ›  negative and positive values. Reported and fixed by @souliane (gh issue #459,
      pr #460)
    • ๐Ÿ›  Fixed issue where passing whole number floats to the months or years
      arguments of the relativedelta constructor would lead to errors during
      โž• addition. Reported by @arouanet (gh pr #411), fixed by @lkollar (gh pr #553)
    • โž• Added a pre-built tz.UTC object representing UTC (gh pr #497)
    • โž• Added a cache to tz.gettz so that by default it will return the same object
      for identical inputs. This will change the semantics of certain operations
      between datetimes constructed with tzinfo=tz.gettz(...). (gh pr #628)
    • ๐Ÿ”„ Changed the behavior of tz.tzutc to return a singleton (gh pr #497, #504)
    • ๐Ÿ”„ Changed the behavior of tz.tzoffset to return the same object when passed the
      ๐ŸŽ same inputs, with a corresponding performance improvement (gh pr #504)
    • ๐Ÿ”„ Changed the behavior of tz.tzstr to return the same object when passed the
      same inputs. (gh pr #628)
    • โž• Added .instance alternate constructors for tz.tzoffset and tz.tzstr, to
      ๐Ÿ‘ allow the construction of a new instance if desired. (gh pr #628)
    • โž• Added the tz.gettz.nocache function to allow explicit retrieval of a new
      instance of the relevant tzinfo. (gh pr #628)
    • Expand definition of tz.tzlocal equality so that the local zone is allow
      equality with tzoffset and tzutc. (gh pr #598)
    • ๐Ÿ—„ Deprecated the idiosyncratic tzstr format mentioned in several examples but
      evidently designed exclusively for dateutil, and very likely not used by
      any current users. (gh issue #595, gh pr #606)
    • โž• Added the tz.resolve_imaginary function, which generates a real date from
      an imaginary one, if necessary. Implemented by @Cheukting (gh issue #339,
      gh pr #607)
    • ๐Ÿ›  Fixed issue where the tz.tzstr constructor would erroneously succeed if
      ๐Ÿ”Š passed an invalid value for tzstr. Fixed by @pablogsal (gh issue #259,
      gh pr #581)
    • ๐Ÿ›  Fixed issue with tz.gettz for TZ variables that start with a colon. Reported
      ๐Ÿ›  and fixed by @lapointexavier (gh pr #601)
    • โž• Added a lock to tz.tzical's cache. Reported and fixed by @Unrud (gh pr #430)
    • ๐Ÿ›  Fixed an issue with fold support on certain Python 3 implementations that
      ๐Ÿ‘‰ used the pre-3.6 pure Python implementation of datetime.replace, most
      notably pypy3 (gh pr #446).
    • โž• Added support for VALUE=DATE-TIME for DTSTART in rrulestr. Reported by @potuz
      ๐Ÿ›  (gh issue #401) and fixed by @Unrud (gh pr #429)
    • Started enforcing that within VTIMEZONE, the VALUE parameter can only be
      omitted or DATE-TIME, per RFC 5545. Reported by @Unrud (gh pr #439)
    • โž• Added support for TZID parameter for DTSTART in rrulestr. Reported and
      ๐Ÿ›  fixed by @ryanpetrello (gh issue #614, gh pr #624)
    • Added 'RRULE:' prefix to rrule strings generated by rrule. str , in
      ๐Ÿ›  compliance with the RFC. Reported by @AndrewPashkin (gh issue #86), fixed by
      @jarondl and @mlorant (gh pr #450)
    • Switched to setuptools_scm for version management, automatically calculating
      ๐Ÿ“‡ a version number from the git metadata. Reported by @jreback (gh issue #511),
      implemented by @Sulley38 (gh pr #564)
    • ๐Ÿ“ฆ Switched setup.py to use find_packages, and started testing against pip
      ๐Ÿ“œ installed versions of dateutil in CI. Fixed issue with parser import
      discovered by @jreback in pandas-dev/pandas#18141. (gh issue #507, pr #509)
    • โœ… Switched test suite to using pytest (gh pr #495)
    • ๐Ÿ‘ท Switched CI over to use tox. Fixed by @gaborbernat (gh pr #549)
    • โž• Added a test-only dependency on freezegun. (gh pr #474)
    • โฌ‡๏ธ Reduced number of CI builds on Appveyor. Fixed by @kirit93 (gh issue #529,
      gh pr #579)
    • 0๏ธโƒฃ Made xfails strict by default, so that an xpass is a failure. (gh pr #567)
    • โž• Added a documentation generation stage to tox and CI. (gh pr #568)
    • โž• Added an explicit warning when running python setup.py explaining how to run
      โœ… the test suites with pytest. Fixed by @lkollar. (gh issue #544, gh pr #548)
    • โž• Added requirements-dev.txt for test dependency management (gh pr #499, #516)
    • ๐Ÿ›  Fixed code coverage metrics to account for Windows builds (gh pr #526)
    • ๐Ÿ›  Fixed code coverage metrics to NOT count xfails. Fixed by @gaborbernat
      (gh issue #519, gh pr #563)
    • ๐Ÿ’… Style improvement to zoneinfo.tzfile that was confusing to static type
      ๐Ÿ›  checkers. Reported and fixed by @quodlibetor (gh pr #485)
    • ๐Ÿšš Several unused imports were removed by @jdufresne. (gh pr #486)
    • Switched isinstance(*, collections.Callable) to callable, which is available
      ๐Ÿ‘ on all supported Python versions. Implemented by @jdufresne (gh pr #612)
    • โž• Added CONTRIBUTING.md (gh pr #533)
    • โž• Added AUTHORS.md (gh pr #542)
    • ๐Ÿ“‡ Corrected setup.py metadata to reflect author vs. maintainer, (gh issue #477,
      gh pr #538)
    • โœ… Corrected README to reflect that tests are now run in pytest. Reported and
      ๐Ÿ›  fixed by @m-dz (gh issue #556, gh pr #557)
    • โšก๏ธ Updated all references to RFC 2445 (iCalendar) to point to RFC 5545. Fixed
      by @mariocj89 (gh issue #543, gh pr #555)
    • ๐Ÿ“š Corrected parse documentation to reflect proper integer offset units,
      ๐Ÿ›  reported and fixed by @abrugh (gh pr #458)
    • ๐Ÿ›  Fixed dangling parenthesis in tzoffset documentation (gh pr #461)
    • ๐Ÿ›  Started including the license file in wheels. Reported and fixed by
      @jdufresne (gh pr #476)
    • ๐Ÿ“œ Indendation fixes to parser docstring by @jbrockmendel (gh pr #492)
    • ๐Ÿ“š Moved many examples from the "examples" documentation into their appropriate
      ๐Ÿ“š module documentation pages. Fixed by @Tomasz-Kluczkowski and @jakec-github
      (gh pr #558, #561)
    • ๐Ÿ›  Fixed documentation so that the parser.isoparse documentation displays.
      ๐Ÿ›  Fixed by @alexchamberlain (gh issue #545, gh pr #560)
    • ๐Ÿš€ Refactored build and release sections and added setup instructions to
      ๐Ÿ›  CONTRIBUTING. Reported and fixed by @kynan (gh pr #562)
    • ๐Ÿ“š Cleaned up various dead links in the documentation. (gh pr #602, #608, #618)
  • v2.6.1 Changes

    July 10, 2017
    • โšก๏ธ Updated zoneinfo file to 2017b. (gh pr #395)
    • โž• Added Python 3.6 to CI testing (gh pr #365)
    • โœ‚ Removed duplicate test name that was preventing a test from being run.
      ๐Ÿ›  Reported and fixed by @jdufresne (gh pr #371)
    • ๐Ÿ›  Fixed testing of folds and gaps, particularly on Windows (gh pr #392)
    • ๐Ÿ›  Fixed deprecated escape characters in regular expressions. Reported by
      ๐Ÿ›  @nascheme and @thierryba (gh issue #361), fixed by @thierryba (gh pr #358)
    • ๐Ÿ’… Many PEP8 style violations and other code smells were fixed by @jdufresne
      (gh prs #358, #363, #364, #366, #367, #368, #372, #374, #379, #380, #398)
    • ๐Ÿ‘Œ Improved performance of tzutc and tzoffset objects. (gh pr #391)
    • ๐Ÿ›  Fixed issue with several time zone classes around DST transitions in any
      zones with +0 standard offset (e.g. Europe/London) (gh issue #321, pr #390)
    • ๐Ÿ›  Fixed issue with fuzzy parsing where tokens similar to AM/PM that are in the
      end skipped were dropped in the fuzzy_with_tokens list. Reported and fixed
      by @jbrockmendel (gh pr #332).
    • ๐Ÿ›  Fixed issue with parsing dates of the form X m YY. Reported by @jbrockmendel.
      (gh issue #333, pr #393)
    • โž• Added support for parser weekdays with less than 3 characters. Reported by
      ๐Ÿ›  @arcadefoam (gh issue #343), fixed by @jonemo (gh pr #382)
    • ๐Ÿ›  Fixed issue with the addition and subtraction of certain relativedeltas.
      ๐Ÿ›  Reported and fixed by @kootenpv (gh issue #346, pr #347)
    • ๐Ÿ›  Fixed issue where the COUNT parameter of rrules was ignored if 0. Fixed by
      @mshenfield (gh pr #330), reported by @vaultah (gh issue #329).
    • ๐Ÿ“š Updated documentation to include the new tz methods. (gh pr #324)
    • ๐Ÿ“š Update documentation to reflect that the parser can raise TypeError, reported
      ๐Ÿ›  and fixed by @tomchuk (gh issue #336, pr #337)
    • ๐Ÿ›  Fixed an incorrect year in a parser doctest. Fixed by @xlotlu (gh pr #357)
    • ๐Ÿšš Moved version information into _version.py and set up the versions more
      granularly.
  • v2.6.0 Changes

    November 08, 2016
    • โž• Added PEP-495-compatible methods to address ambiguous and imaginary dates in
      time zones in a backwards-compatible way. Ambiguous dates and times can now
      be safely represented by all dateutil time zones. Many thanks to Alexander
      Belopolski (@abalkin) and Tim Peters @tim-one for their inputs on how to
      โž• address this. Original issues reported by Yupeng and @zed (lP: 1390262,
      gh issues #57, #112, #249, #284, #286, prs #127, #225, #248, #264, #302).
    • โž• Added new methods for working with ambiguous and imaginary dates to the tz
      module. datetime_ambiguous() determines if a datetime is ambiguous for a given
      zone and datetime_exists() determines if a datetime exists in a given zone.
      This works for all fold-aware datetimes, not just those provided by dateutil.
      (gh issue #253, gh pr #302)
    • ๐Ÿ›  Fixed an issue where dst() in Portugal in 1996 was returning the wrong value
      in tz.tzfile objects. Reported by @abalkin (gh issue #128, pr #225)
    • ๐Ÿ›  Fixed an issue where zoneinfo.ZoneInfoFile errors were not being properly
      deep-copied. (gh issue #226, pr #225)
    • ๐Ÿ”จ Refactored tzwin and tzrange as a subclass of a common class, tzrangebase, as
      there was substantial overlapping functionality. As part of this change,
      tzrange and tzstr now expose a transitions() function, which returns the
      DST on and off transitions for a given year. (gh issue #260, pr #302)
    • ๐Ÿ—„ Deprecated zoneinfo.gettz() due to confusion with tz.gettz(), in favor of
      get() method of zoneinfo.ZoneInfoFile objects. (gh issue #11, pr #310)
    • ๐Ÿ“œ For non-character, non-stream arguments, parser.parse now raises TypeError
      instead of AttributeError. (gh issues #171, #269, pr #247)
    • ๐Ÿ›  Fixed an issue where tzfile objects were not properly handling dst() and
      tzname() when attached to datetime.time objects. Reported by @ovacephaloid.
      (gh issue #292, pr #309)
    • /usr/share/lib/zoneinfo was added to TZPATHS for compatibility with Solaris
      systems. Reported by @dhduvall (gh issue #276, pr #307)
    • tzoffset and tzrange objects now accept either a number of seconds or a
      datetime.timedelta() object wherever previously only a number of seconds was
      ๐Ÿ‘ allowed. (gh pr #264, #277)
    • datetime.timedelta objects can now be added to relativedelta objects. Reported
      and added by Alec Nikolas Reiter (@justanr) (gh issue #282, pr #283
    • ๐Ÿ”จ Refactored relativedelta.weekday and rrule.weekday into a common base class
      to reduce code duplication. (gh issue #140, pr #311)
    • An issue where the WKST parameter was improperly rendering in str(rrule) was
      ๐Ÿ›  reported and fixed by Daniel LePage (@dplepage). (gh issue #262, pr #263)
    • A replace() method has been added to rrule objects by @jendas1, which creates
      ๐Ÿ†• new rrule with modified attributes, analogous to datetime.replace (gh pr #167)
    • ๐ŸŽ Made some significant performance improvements to rrule objects in Python 2.x
      (gh pr #245)
    • All classes defining equality functions now return NotImplemented when
      ๐Ÿ‘ compared to unsupported classes, rather than raising TypeError, to allow other
      ๐Ÿ‘ classes to provide fallback support. (gh pr #236)
    • Several classes have been marked as explicitly unhashable to maintain
      identical behavior between Python 2 and 3. Submitted by Roy Williams
      (@rowillia) (gh pr #296)
    • ๐Ÿšš Trailing whitespace in easter.py has been removed. Submitted by @OmgImAlexis
      (gh pr #299)
    • ๐Ÿ Windows-only batch files in build scripts had line endings switched to CRLF.
      (gh pr #237)
    • ๐Ÿ“š @adamchainz updated the documentation links to reflect that the canonical
      location for readthedocs links is now at .io, not .org. (gh pr #272)
    • ๐Ÿ‘ท Made some changes to the CI and codecov to test against newer versions of
      Python and pypy, and to adjust the code coverage requirements. For the moment,
      ๐Ÿš€ full pypy3 compatibility is not supported until a new release is available,
      ๐Ÿ‘ due to upstream bugs in the old version affecting PEP-495 support.
      (gh prs #265, #266, #304, #308)
    • ๐Ÿ–จ The full PGP signing key fingerprint was added to the README.md in favor of
      the previously used long-id. Reported by @valholl (gh issue #287, pr #304)
    • โšก๏ธ Updated zoneinfo to 2016i. (gh issue #298, gh pr #306)