Hello community,

here is the log from the commit of package python-aniso8601 for 
openSUSE:Factory checked in at 2019-03-11 13:51:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aniso8601 (Old)
 and      /work/SRC/openSUSE:Factory/.python-aniso8601.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-aniso8601"

Mon Mar 11 13:51:38 2019 rev:4 rq:683738 version:6.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-aniso8601/python-aniso8601.changes        
2019-03-06 15:52:19.720424667 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-aniso8601.new.28833/python-aniso8601.changes 
    2019-03-11 13:51:41.825254893 +0100
@@ -1,0 +2,6 @@
+Mon Mar 11 09:45:08 UTC 2019 - Tomáš Chvátal <[email protected]>
+
+- Update to 6.0.0:
+  * Remove previously deprecated built in version of relativetimebuilder
+
+-------------------------------------------------------------------

Old:
----
  aniso8601-5.1.0.tar.gz

New:
----
  aniso8601-6.0.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-aniso8601.spec ++++++
--- /var/tmp/diff_new_pack.QcLebo/_old  2019-03-11 13:51:43.429253843 +0100
+++ /var/tmp/diff_new_pack.QcLebo/_new  2019-03-11 13:51:43.469253817 +0100
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define modname aniso8601
 Name:           python-%{modname}
-Version:        5.1.0
+Version:        6.0.0
 Release:        0
 Summary:        A library for parsing ISO 8601 strings
 License:        BSD-3-Clause

++++++ aniso8601-5.1.0.tar.gz -> aniso8601-6.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aniso8601-5.1.0/PKG-INFO new/aniso8601-6.0.0/PKG-INFO
--- old/aniso8601-5.1.0/PKG-INFO        2019-03-02 02:09:36.000000000 +0100
+++ new/aniso8601-6.0.0/PKG-INFO        2019-03-08 21:10:19.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 1.1
 Name: aniso8601
-Version: 5.1.0
+Version: 6.0.0
 Summary: A library for parsing ISO 8601 strings.
 Home-page: https://bitbucket.org/nielsenb/aniso8601
 Author: Brandon Nielsen
@@ -186,56 +186,6 @@
           >>> aniso8601.parse_duration('P0001-01-02T01:30:5')
           datetime.timedelta(397, 5405)
         
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
-        The above treat years as 365 days and months as 30 days. If calendar 
level accuracy is required, the provided :code:`RelativeTimeBuilder` can be 
used if `dateutil <https://pypi.python.org/pypi/python-dateutil>`_ is 
installed::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> from datetime import date
-          >>> one_month = aniso8601.parse_duration('P1M', 
builder=RelativeTimeBuilder)
-          >>> two_months = aniso8601.parse_duration('P2M', 
builder=RelativeTimeBuilder)
-          >>> print one_month
-          relativedelta(months=+1)
-          >>> print two_months
-          relativedelta(months=+2)
-          >>> date(2003,1,27) + one_month
-          datetime.date(2003, 2, 27)
-          >>> date(2003,1,31) + one_month
-          datetime.date(2003, 2, 28)
-          >>> date(2003,1,31) + two_months
-          datetime.date(2003, 3, 31)
-        
-        Fractional years and months do not make sense for relative durations. 
a :code:`RelativeValueError` is raised when attempting to construct a duration 
with fractional month or year with the :code:`RelativeTimeBuilder`::
-        
-          >>> aniso8601.parse_duration('P2.1Y', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        When attempting to construct a duration using a 
:code:`RelativeTimeBuilder` without dateutil available, a :code:`RuntimeError` 
is raised::
-        
-          >>> aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
         Parsing intervals
         -----------------
         
@@ -304,53 +254,6 @@
               currentdate += timedelta
           OverflowError: date value out of range
         
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
-        The above treat years as 365 days and months as 30 days. If calendar 
level accuracy is required, the provided :code:`RelativeTimeBuilder` can be 
used if `dateutil <https://pypi.python.org/pypi/python-dateutil>`_ is 
installed::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 27), datetime.date(2003, 2, 27))
-          >>> aniso8601.parse_interval('2003-01-31/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 31), datetime.date(2003, 2, 28))
-          >>> aniso8601.parse_interval('P1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          (datetime.date(2001, 2, 28), datetime.date(2000, 2, 28))
-        
-        Fractional years and months do not make sense for relative intervals. 
A :code:`RelativeValueError` is raised when attempting to construct an interval 
with a fractional month or year with the :code:`RelativeTimeBuilder`::
-        
-          >>> aniso8601.parse_interval('P1.1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 98, in _parse_interval
-              return builder.build_interval(end=enddate, duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        When attempting to construct an interval using a 
:code:`RelativeTimeBuilder` without dateutil available, a :code:`RuntimeError` 
is raised::
-        
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 117, in _parse_interval
-              duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
         Date and time resolution
         ------------------------
         
@@ -377,13 +280,15 @@
         Builders
         ========
         
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
         Builders can be used to change the output format of a parse operation. 
All parse functions have a :code:`builder` keyword argument which accepts a 
builder class.
         
-        Three builders are included. The :code:`PythonTimeBuilder` (the 
default) in the  :code:`aniso8601.builders.python` module, :code:`TupleBuilder` 
which returns the parse result as a tuple of strings and is located in the 
:code:`aniso8601.builders` module, and the :code:`RelativeTimeBuilder` which 
allows for calendar level accuracy of duration and interval operations and is 
located in the  :code:`aniso8601.builders.relative` module.
+        Two builders are included. The :code:`PythonTimeBuilder` (the default) 
in the  :code:`aniso8601.builders.python` module, and the :code:`TupleBuilder` 
which returns the parse result as a tuple of strings and is located in the 
:code:`aniso8601.builders` module.
         
-        A `NumPyTimeBuilder 
<https://bitbucket.org/nielsenb/numpytimebuilder>`_ is available separately 
which supports parsing directly to `NumPy datetime64 and timedelta64 types 
<https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html>`_.
+        The following builders are available as separate projects:
+        
+        * `RelativeTimeBuilder 
<https://bitbucket.org/nielsenb/relativetimebuilder>`_ supports parsing to 
`datetutil relativedelta 
types<https://dateutil.readthedocs.io/en/stable/relativedelta.html>`_ for 
calendar level accuracy
+        * `AttoTimeBuilder <https://bitbucket.org/nielsenb/attotimebuilder>_` 
supports parsing directly to `attotime attodatetime and attotimedelta types 
<https://bitbucket.org/nielsenb/attotime>`_ which support sub-nanosecond 
precision
+        * `NumPyTimeBuilder 
<https://bitbucket.org/nielsenb/numpytimebuilder>`_ supports parsing directly 
to `NumPy datetime64 and timedelta64 types 
<https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html>`_
         
         TupleBuilder
         ------------
@@ -463,126 +368,6 @@
           >>> 
aniso8601.parse_repeating_interval('R/PT1H2M/1980-03-05T01:01:00', 
builder=TupleBuilder)
           (True, None, (None, (('1980', '03', '05', None, None, None, 'date'), 
('01', '01', '00', None, 'time'), 'datetime'), (None, None, None, None, '1', 
'2', None, 'duration'), 'interval'), 'repeatinginterval')
         
-        RelativeTimeBuilder
-        -------------------
-        
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
-        The :code:`RelativeTimeBuilder` uses `python-dateutil 
<https://pypi.python.org/pypi/python-dateutil>`_ (if installed) to add calendar 
level accuracy to duration and interval parses. It is located in the 
:code:`aniso8601.builders.relative` module.
-        
-        Datetimes
-        ^^^^^^^^^
-        
-        Same as :code:`PythonTimeBuilder`.
-        
-        Dates
-        ^^^^^
-        
-        Same as :code:`PythonTimeBuilder`.
-        
-        Times
-        ^^^^^
-        
-        Same as :code:`PythonTimeBuilder`.
-        
-        Durations
-        ^^^^^^^^^
-        
-        Parse will result in a :code:`relativedelta`::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> one_month = aniso8601.parse_duration('P1M', 
builder=RelativeTimeBuilder)
-          >>> two_months = aniso8601.parse_duration('P2M', 
builder=RelativeTimeBuilder)
-          >>> print one_month
-          relativedelta(months=+1)
-          >>> print two_months
-          relativedelta(months=+2)
-          >>> date(2003,1,27) + one_month
-          datetime.date(2003, 2, 27)
-          >>> date(2003,1,31) + one_month
-          datetime.date(2003, 2, 28)
-          >>> date(2003,1,31) + two_months
-          datetime.date(2003, 3, 31)
-        
-        Since a relative fractional month or year is not logical, a 
:code:`RelativeValueError` is raised when attempting to parse a duration with 
:code:`relative=True` and fractional month or year::
-        
-          >>> aniso8601.parse_duration('P2.1Y', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        If python-dateutil is not available, a :code:`RuntimeError` is raised::
-        
-          >>> aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
-        Intervals
-        ^^^^^^^^^
-        
-        Interval parse results will be calculated using a 
:code:`relativedelta` internally, allowing for calendar level accuracy::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 27), datetime.date(2003, 2, 27))
-          >>> aniso8601.parse_interval('2003-01-31/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 31), datetime.date(2003, 2, 28))
-          >>> aniso8601.parse_interval('P1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          (datetime.date(2001, 2, 28), datetime.date(2000, 2, 28))
-        
-        Fractional years and months do not make sense for relative intervals. 
A :code:`RelativeValueError` is raised when attempting to parse an interval 
with :code:`relative=True` and a fractional month or year::
-        
-          >>> aniso8601.parse_interval('P1.1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 98, in _parse_interval
-              return builder.build_interval(end=enddate, duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        If python-dateutil is not available, a :code:`RuntimeError` is raised::
-        
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 117, in _parse_interval
-              duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
         Development
         ===========
         
@@ -591,10 +376,6 @@
         
         It is recommended to develop using a `virtualenv 
<https://virtualenv.pypa.io/en/stable/>`_.
         
-        The tests require the :code:`relative` feature to be enabled, install 
the necessary dependencies using pip::
-        
-          $ pip install .[relative]
-        
         Tests
         -----
         
@@ -634,4 +415,3 @@
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Provides-Extra: relative
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aniso8601-5.1.0/README.rst 
new/aniso8601-6.0.0/README.rst
--- old/aniso8601-5.1.0/README.rst      2019-03-01 21:54:25.000000000 +0100
+++ new/aniso8601-6.0.0/README.rst      2019-03-08 21:07:09.000000000 +0100
@@ -175,56 +175,6 @@
   >>> aniso8601.parse_duration('P0001-01-02T01:30:5')
   datetime.timedelta(397, 5405)
 
-**The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-
-The above treat years as 365 days and months as 30 days. If calendar level 
accuracy is required, the provided :code:`RelativeTimeBuilder` can be used if 
`dateutil <https://pypi.python.org/pypi/python-dateutil>`_ is installed::
-
-  >>> import aniso8601
-  >>> from aniso8601.builders.relative import RelativeTimeBuilder
-  >>> from datetime import date
-  >>> one_month = aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-  >>> two_months = aniso8601.parse_duration('P2M', builder=RelativeTimeBuilder)
-  >>> print one_month
-  relativedelta(months=+1)
-  >>> print two_months
-  relativedelta(months=+2)
-  >>> date(2003,1,27) + one_month
-  datetime.date(2003, 2, 27)
-  >>> date(2003,1,31) + one_month
-  datetime.date(2003, 2, 28)
-  >>> date(2003,1,31) + two_months
-  datetime.date(2003, 3, 31)
-
-Fractional years and months do not make sense for relative durations. a 
:code:`RelativeValueError` is raised when attempting to construct a duration 
with fractional month or year with the :code:`RelativeTimeBuilder`::
-
-  >>> aniso8601.parse_duration('P2.1Y', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/duration.py", line 30, in parse_duration
-      return _parse_duration_prescribed(isodurationstr, builder)
-    File "aniso8601/duration.py", line 75, in _parse_duration_prescribed
-      return _parse_duration_prescribed_notime(durationstr, builder)
-    File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-      PnW=weekstr, PnD=daystr)
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-      raise RelativeValueError('Fractional months and years are not '
-  relativetimebuilder.RelativeValueError: Fractional months and years are not 
defined for relative durations.
-
-When attempting to construct a duration using a :code:`RelativeTimeBuilder` 
without dateutil available, a :code:`RuntimeError` is raised::
-
-  >>> aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/duration.py", line 30, in parse_duration
-      return _parse_duration_prescribed(isodurationstr, builder)
-    File "aniso8601/duration.py", line 75, in _parse_duration_prescribed
-      return _parse_duration_prescribed_notime(durationstr, builder)
-    File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-      PnW=weekstr, PnD=daystr)
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-      raise RuntimeError('dateutil must be installed for '
-  RuntimeError: dateutil must be installed for relativedelta support.
-
 Parsing intervals
 -----------------
 
@@ -293,53 +243,6 @@
       currentdate += timedelta
   OverflowError: date value out of range
 
-**The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-
-The above treat years as 365 days and months as 30 days. If calendar level 
accuracy is required, the provided :code:`RelativeTimeBuilder` can be used if 
`dateutil <https://pypi.python.org/pypi/python-dateutil>`_ is installed::
-
-  >>> import aniso8601
-  >>> from aniso8601.builders.relative import RelativeTimeBuilder
-  >>> aniso8601.parse_interval('2003-01-27/P1M', builder=RelativeTimeBuilder)
-  (datetime.date(2003, 1, 27), datetime.date(2003, 2, 27))
-  >>> aniso8601.parse_interval('2003-01-31/P1M', builder=RelativeTimeBuilder)
-  (datetime.date(2003, 1, 31), datetime.date(2003, 2, 28))
-  >>> aniso8601.parse_interval('P1Y/2001-02-28', builder=RelativeTimeBuilder)
-  (datetime.date(2001, 2, 28), datetime.date(2000, 2, 28))
-
-Fractional years and months do not make sense for relative intervals. A 
:code:`RelativeValueError` is raised when attempting to construct an interval 
with a fractional month or year with the :code:`RelativeTimeBuilder`::
-
-  >>> aniso8601.parse_interval('P1.1Y/2001-02-28', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/interval.py", line 40, in parse_interval
-      intervaldelimiter, datetimedelimiter)
-    File "aniso8601/interval.py", line 98, in _parse_interval
-      return builder.build_interval(end=enddate, duration=duration)
-    File "aniso8601/builders/python.py", line 311, in build_interval
-      durationobject = cls._build_object(duration)
-    File "aniso8601/builders/__init__.py", line 71, in _build_object
-      TnS=parsetuple[6])
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-      raise RelativeValueError('Fractional months and years are not '
-  relativetimebuilder.RelativeValueError: Fractional months and years are not 
defined for relative durations.
-
-When attempting to construct an interval using a :code:`RelativeTimeBuilder` 
without dateutil available, a :code:`RuntimeError` is raised::
-
-  >>> aniso8601.parse_interval('2003-01-27/P1M', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/interval.py", line 40, in parse_interval
-      intervaldelimiter, datetimedelimiter)
-    File "aniso8601/interval.py", line 117, in _parse_interval
-      duration=duration)
-    File "aniso8601/builders/python.py", line 311, in build_interval
-      durationobject = cls._build_object(duration)
-    File "aniso8601/builders/__init__.py", line 71, in _build_object
-      TnS=parsetuple[6])
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-      raise RuntimeError('dateutil must be installed for '
-  RuntimeError: dateutil must be installed for relativedelta support.
-
 Date and time resolution
 ------------------------
 
@@ -366,13 +269,15 @@
 Builders
 ========
 
-**The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-
 Builders can be used to change the output format of a parse operation. All 
parse functions have a :code:`builder` keyword argument which accepts a builder 
class.
 
-Three builders are included. The :code:`PythonTimeBuilder` (the default) in 
the  :code:`aniso8601.builders.python` module, :code:`TupleBuilder` which 
returns the parse result as a tuple of strings and is located in the 
:code:`aniso8601.builders` module, and the :code:`RelativeTimeBuilder` which 
allows for calendar level accuracy of duration and interval operations and is 
located in the  :code:`aniso8601.builders.relative` module.
+Two builders are included. The :code:`PythonTimeBuilder` (the default) in the  
:code:`aniso8601.builders.python` module, and the :code:`TupleBuilder` which 
returns the parse result as a tuple of strings and is located in the 
:code:`aniso8601.builders` module.
 
-A `NumPyTimeBuilder <https://bitbucket.org/nielsenb/numpytimebuilder>`_ is 
available separately which supports parsing directly to `NumPy datetime64 and 
timedelta64 types 
<https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html>`_.
+The following builders are available as separate projects:
+
+* `RelativeTimeBuilder <https://bitbucket.org/nielsenb/relativetimebuilder>`_ 
supports parsing to `datetutil relativedelta 
types<https://dateutil.readthedocs.io/en/stable/relativedelta.html>`_ for 
calendar level accuracy
+* `AttoTimeBuilder <https://bitbucket.org/nielsenb/attotimebuilder>_` supports 
parsing directly to `attotime attodatetime and attotimedelta types 
<https://bitbucket.org/nielsenb/attotime>`_ which support sub-nanosecond 
precision
+* `NumPyTimeBuilder <https://bitbucket.org/nielsenb/numpytimebuilder>`_ 
supports parsing directly to `NumPy datetime64 and timedelta64 types 
<https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html>`_
 
 TupleBuilder
 ------------
@@ -452,126 +357,6 @@
   >>> aniso8601.parse_repeating_interval('R/PT1H2M/1980-03-05T01:01:00', 
builder=TupleBuilder)
   (True, None, (None, (('1980', '03', '05', None, None, None, 'date'), ('01', 
'01', '00', None, 'time'), 'datetime'), (None, None, None, None, '1', '2', 
None, 'duration'), 'interval'), 'repeatinginterval')
 
-RelativeTimeBuilder
--------------------
-
-**The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-
-The :code:`RelativeTimeBuilder` uses `python-dateutil 
<https://pypi.python.org/pypi/python-dateutil>`_ (if installed) to add calendar 
level accuracy to duration and interval parses. It is located in the 
:code:`aniso8601.builders.relative` module.
-
-Datetimes
-^^^^^^^^^
-
-Same as :code:`PythonTimeBuilder`.
-
-Dates
-^^^^^
-
-Same as :code:`PythonTimeBuilder`.
-
-Times
-^^^^^
-
-Same as :code:`PythonTimeBuilder`.
-
-Durations
-^^^^^^^^^
-
-Parse will result in a :code:`relativedelta`::
-
-  >>> import aniso8601
-  >>> from aniso8601.builders.relative import RelativeTimeBuilder
-  >>> one_month = aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-  >>> two_months = aniso8601.parse_duration('P2M', builder=RelativeTimeBuilder)
-  >>> print one_month
-  relativedelta(months=+1)
-  >>> print two_months
-  relativedelta(months=+2)
-  >>> date(2003,1,27) + one_month
-  datetime.date(2003, 2, 27)
-  >>> date(2003,1,31) + one_month
-  datetime.date(2003, 2, 28)
-  >>> date(2003,1,31) + two_months
-  datetime.date(2003, 3, 31)
-
-Since a relative fractional month or year is not logical, a 
:code:`RelativeValueError` is raised when attempting to parse a duration with 
:code:`relative=True` and fractional month or year::
-
-  >>> aniso8601.parse_duration('P2.1Y', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/duration.py", line 30, in parse_duration
-      return _parse_duration_prescribed(isodurationstr, builder)
-    File "aniso8601/duration.py", line 75, in _parse_duration_prescribed
-      return _parse_duration_prescribed_notime(durationstr, builder)
-    File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-      PnW=weekstr, PnD=daystr)
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-      raise RelativeValueError('Fractional months and years are not '
-  relativetimebuilder.RelativeValueError: Fractional months and years are not 
defined for relative durations.
-
-If python-dateutil is not available, a :code:`RuntimeError` is raised::
-
-  >>> aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/duration.py", line 30, in parse_duration
-      return _parse_duration_prescribed(isodurationstr, builder)
-    File "aniso8601/duration.py", line 75, in _parse_duration_prescribed
-      return _parse_duration_prescribed_notime(durationstr, builder)
-    File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-      PnW=weekstr, PnD=daystr)
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-      raise RuntimeError('dateutil must be installed for '
-  RuntimeError: dateutil must be installed for relativedelta support.
-
-Intervals
-^^^^^^^^^
-
-Interval parse results will be calculated using a :code:`relativedelta` 
internally, allowing for calendar level accuracy::
-
-  >>> import aniso8601
-  >>> from aniso8601.builders.relative import RelativeTimeBuilder
-  >>> aniso8601.parse_interval('2003-01-27/P1M', builder=RelativeTimeBuilder)
-  (datetime.date(2003, 1, 27), datetime.date(2003, 2, 27))
-  >>> aniso8601.parse_interval('2003-01-31/P1M', builder=RelativeTimeBuilder)
-  (datetime.date(2003, 1, 31), datetime.date(2003, 2, 28))
-  >>> aniso8601.parse_interval('P1Y/2001-02-28', builder=RelativeTimeBuilder)
-  (datetime.date(2001, 2, 28), datetime.date(2000, 2, 28))
-
-Fractional years and months do not make sense for relative intervals. A 
:code:`RelativeValueError` is raised when attempting to parse an interval with 
:code:`relative=True` and a fractional month or year::
-
-  >>> aniso8601.parse_interval('P1.1Y/2001-02-28', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/interval.py", line 40, in parse_interval
-      intervaldelimiter, datetimedelimiter)
-    File "aniso8601/interval.py", line 98, in _parse_interval
-      return builder.build_interval(end=enddate, duration=duration)
-    File "aniso8601/builders/python.py", line 311, in build_interval
-      durationobject = cls._build_object(duration)
-    File "aniso8601/builders/__init__.py", line 71, in _build_object
-      TnS=parsetuple[6])
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-      raise RelativeValueError('Fractional months and years are not '
-  relativetimebuilder.RelativeValueError: Fractional months and years are not 
defined for relative durations.
-
-If python-dateutil is not available, a :code:`RuntimeError` is raised::
-
-  >>> aniso8601.parse_interval('2003-01-27/P1M', builder=RelativeTimeBuilder)
-  Traceback (most recent call last):
-    File "<stdin>", line 1, in <module>
-    File "aniso8601/interval.py", line 40, in parse_interval
-      intervaldelimiter, datetimedelimiter)
-    File "aniso8601/interval.py", line 117, in _parse_interval
-      duration=duration)
-    File "aniso8601/builders/python.py", line 311, in build_interval
-      durationobject = cls._build_object(duration)
-    File "aniso8601/builders/__init__.py", line 71, in _build_object
-      TnS=parsetuple[6])
-    File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-      raise RuntimeError('dateutil must be installed for '
-  RuntimeError: dateutil must be installed for relativedelta support.
-
 Development
 ===========
 
@@ -580,10 +365,6 @@
 
 It is recommended to develop using a `virtualenv 
<https://virtualenv.pypa.io/en/stable/>`_.
 
-The tests require the :code:`relative` feature to be enabled, install the 
necessary dependencies using pip::
-
-  $ pip install .[relative]
-
 Tests
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aniso8601-5.1.0/aniso8601/builders/relative.py 
new/aniso8601-6.0.0/aniso8601/builders/relative.py
--- old/aniso8601-5.1.0/aniso8601/builders/relative.py  2019-03-01 
21:54:25.000000000 +0100
+++ new/aniso8601-6.0.0/aniso8601/builders/relative.py  1970-01-01 
01:00:00.000000000 +0100
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2019, Brandon Nielsen
-# All rights reserved.
-#
-# This software may be modified and distributed under the terms
-# of the BSD license.  See the LICENSE file for details.
-
-from relativetimebuilder import RelativeTimeBuilder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aniso8601-5.1.0/aniso8601/builders/tests/test_relative.py 
new/aniso8601-6.0.0/aniso8601/builders/tests/test_relative.py
--- old/aniso8601-5.1.0/aniso8601/builders/tests/test_relative.py       
2019-03-01 21:54:25.000000000 +0100
+++ new/aniso8601-6.0.0/aniso8601/builders/tests/test_relative.py       
1970-01-01 01:00:00.000000000 +0100
@@ -1,574 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2019, Brandon Nielsen
-# All rights reserved.
-#
-# This software may be modified and distributed under the terms
-# of the BSD license.  See the LICENSE file for details.
-
-import datetime
-import unittest
-import dateutil.relativedelta
-
-from aniso8601 import compat
-from aniso8601.builders.relative import RelativeTimeBuilder
-from aniso8601.utcoffset import UTCOffset
-from relativetimebuilder import RelativeValueError
-
-class TestRelativeTimeBuilder(unittest.TestCase):
-    def test_build_duration(self):
-        testtuples = (({'PnY': '1'},
-                       dateutil.relativedelta.relativedelta(years=1)),
-                      ({'PnM': '1'},
-                      #Add the relative ‘days’ argument to the absolute day. 
Notice that the ‘weeks’ argument is multiplied by 7 and added to ‘days’.
-                      
#http://dateutil.readthedocs.org/en/latest/relativedelta.html
-                       dateutil.relativedelta.relativedelta(months=1)),
-                      ({'PnW': '1'},
-                       dateutil.relativedelta.relativedelta(days=7)),
-                      ({'PnW': '1.5'},
-                       dateutil.relativedelta.relativedelta(days=10, 
hours=12)),
-                      ({'PnD': '1'},
-                       dateutil.relativedelta.relativedelta(days=1)),
-                      ({'PnD': '1.5'},
-                       dateutil.relativedelta.relativedelta(days=1, hours=12)),
-                      ({'PnY': '1', 'PnM': '2', 'PnD': '3'},
-                       dateutil.relativedelta.relativedelta(years=1, months=2,
-                                                            days=3)),
-                      ({'PnY': '1', 'PnM': '2', 'PnD': '3.5'},
-                       dateutil.relativedelta.relativedelta(years=1, months=2,
-                                                            days=3, hours=12)),
-                      ({'PnY': '1', 'PnM': '2', 'PnD': '3',
-                        'TnH': '4', 'TnM': '54', 'TnS': '6.5'},
-                       dateutil.relativedelta.relativedelta(years=1, months=2,
-                                                            days=3, hours=4,
-                                                            minutes=54,
-                                                            seconds=6,
-                                                            microseconds=
-                                                            500000)),
-                      ({'PnY': '0003', 'PnM': '06', 'PnD': '04',
-                        'TnH': '12', 'TnM': '30', 'TnS': '05'},
-                       dateutil.relativedelta.relativedelta(years=3, months=6,
-                                                            days=4, hours=12,
-                                                            minutes=30,
-                                                            seconds=5)),
-                      ({'PnY': '0003', 'PnM': '06', 'PnD': '04',
-                        'TnH': '12', 'TnM': '30', 'TnS': '05.5'},
-                       dateutil.relativedelta.relativedelta(years=3, months=6,
-                                                            days=4, hours=12,
-                                                            minutes=30,
-                                                            seconds=5,
-                                                            microseconds=
-                                                            500000)),
-                      ({'TnH': '4', 'TnM': '54', 'TnS': '6.5'},
-                       dateutil.relativedelta.relativedelta(hours=4,
-                                                            minutes=54,
-                                                            seconds=6,
-                                                            microseconds=
-                                                            500000)),
-                      #Make sure we truncate, not round
-                      
#https://bitbucket.org/nielsenb/aniso8601/issues/10/sub-microsecond-precision-in-durations-is
-                      ({'PnW': '1.9999999999997'},
-                       dateutil.relativedelta.relativedelta(days=13, hours=23,
-                                                            minutes=59,
-                                                            seconds=59,
-                                                            microseconds=
-                                                            999999)),
-                      ({'PnD': '1.999999999997'},
-                       dateutil.relativedelta.relativedelta(days=1, hours=23,
-                                                            minutes=59,
-                                                            seconds=59,
-                                                            microseconds=
-                                                            999999)),
-                      ({'TnH': '14.99999999997'},
-                       dateutil.relativedelta.relativedelta(hours=14, 
minutes=59,
-                                                            seconds=59,
-                                                            
microseconds=999999)),
-                      ({'TnM': '0.00000000999'},
-                       dateutil.relativedelta.relativedelta(0)),
-                      ({'TnM': '0.0000000999'},
-                       dateutil.relativedelta.relativedelta(microseconds=5)),
-                      ({'TnS': '0.0000001'},
-                       dateutil.relativedelta.relativedelta(0)),
-                      ({'TnS': '2.0000048'},
-                       dateutil.relativedelta.relativedelta(seconds=2,
-                                                            microseconds=4)),
-                      ({'PnY': '0001', 'PnM': '02', 'PnD': '03',
-                        'TnH': '14', 'TnM': '43', 'TnS': '59.9999997'},
-                       dateutil.relativedelta.relativedelta(years=1, months=2,
-                                                            days=3, hours=14,
-                                                            minutes=43,
-                                                            seconds=59,
-                                                            microseconds=
-                                                            999999)),
-                      ({'PnY': '1', 'PnM': '2', 'PnW': '4', 'PnD': '3',
-                        'TnH': '5', 'TnM': '6', 'TnS': '7.0000091011'},
-                       dateutil.relativedelta.relativedelta(years=1, months=2,
-                                                            days=31, hours=5,
-                                                            minutes=6,
-                                                            seconds=7,
-                                                            microseconds=9)))
-
-        for testtuple in testtuples:
-            result = RelativeTimeBuilder.build_duration(**testtuple[0])
-            self.assertEqual(result, testtuple[1])
-
-    def test_build_duration_fractional_year(self):
-        with self.assertRaises(RelativeValueError):
-            RelativeTimeBuilder.build_duration(PnY='1.5')
-
-    def test_build_duration_fractional_month(self):
-        with self.assertRaises(RelativeValueError):
-            RelativeTimeBuilder.build_duration(PnM='1.5')
-
-    def test_build_duration_nodateutil(self):
-        import sys
-        import dateutil
-
-        dateutil_import = dateutil
-
-        sys.modules['dateutil'] = None
-
-        with self.assertRaises(RuntimeError):
-            RelativeTimeBuilder.build_duration()
-
-        #Reinstall dateutil
-        sys.modules['dateutil'] = dateutil_import
-
-    def test_build_interval(self):
-        #Intervals are contingent on durations, make sure they work
-        #<duration>/<end>
-        testtuples = (({'end': (('1981', '04', '05', None, None, None, 'date'),
-                                ('01', '01', '00', None, 'time'), 'datetime'),
-                        'duration': (None, '1', None, None, None, None, None,
-                                     'duration')},
-                       datetime.datetime(year=1981, month=4, day=5,
-                                         hour=1, minute=1),
-                       datetime.datetime(year=1981, month=3, day=5,
-                                         hour=1, minute=1)),
-                      ({'end': ('1981', '04', '05', None, None, None, 'date'),
-                        'duration': (None, '1', None, None, None, None, None,
-                                     'duration')},
-                       datetime.date(year=1981, month=4, day=5),
-                       datetime.date(year=1981, month=3, day=5)),
-                      ({'end': ('2014', '11', '12', None, None, None, 'date'),
-                        'duration': (None, None, None, None, '1', None, None,
-                                     'duration')},
-                       datetime.date(year=2014, month=11, day=12),
-                       datetime.datetime(year=2014, month=11, day=11,
-                                         hour=23)),
-                      ({'end': ('2014', '11', '12', None, None, None, 'date'),
-                        'duration': (None, None, None, None, '4', '54', '6.5',
-                                     'duration')},
-                       datetime.date(year=2014, month=11, day=12),
-                       datetime.datetime(year=2014, month=11, day=11,
-                                         hour=19, minute=5, second=53,
-                                         microsecond=500000)),
-                      ({'end': (('2050', '03', '01',
-                                 None, None, None, 'date'),
-                                ('13', '00', '00',
-                                 (False, True, None, None,
-                                  'Z', 'timezone'), 'time'), 'datetime'),
-                        'duration': (None, None, None,
-                                     None, '10', None, None, 'duration')},
-                       datetime.datetime(year=2050, month=3, day=1,
-                                         hour=13,
-                                         tzinfo=UTCOffset(name='UTC',
-                                                          minutes=0)),
-                       datetime.datetime(year=2050, month=3, day=1,
-                                         hour=3,
-                                         tzinfo=UTCOffset(name='UTC',
-                                                          minutes=0))),
-                      #Make sure we truncate, not round
-                      
#https://bitbucket.org/nielsenb/aniso8601/issues/10/sub-microsecond-precision-in-durations-is
-                      
#https://bitbucket.org/nielsenb/aniso8601/issues/21/sub-microsecond-precision-is-lost-when
-                      ({'end': ('1989', '03', '01',
-                                None, None, None, 'date'),
-                        'duration': (None, None, '1.9999999999999999',
-                                     None, None, None,
-                                     None, 'duration')},
-                       datetime.date(year=1989, month=3, day=1),
-                       datetime.datetime(year=1989, month=2, day=15,
-                                         hour=0, minute=0, second=0,
-                                         microsecond=1)),
-                      ({'end': ('1989', '03', '01',
-                                None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     '1.9999999999999999', None, None,
-                                     None, 'duration')},
-                       datetime.date(year=1989, month=3, day=1),
-                       datetime.datetime(year=1989, month=2, day=27,
-                                         hour=0, minute=0, second=0,
-                                         microsecond=1)),
-                      ({'end': ('2001', '01', '01',
-                                None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, '14.9999999999999999', None,
-                                     None, 'duration')},
-                       datetime.date(year=2001, month=1, day=1),
-                       datetime.datetime(year=2000, month=12, day=31,
-                                         hour=9, minute=0, second=0,
-                                         microsecond=1)),
-                      ({'end': ('2001', '01', '01',
-                                None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, '0.00000000999',
-                                     None, 'duration')},
-                       datetime.date(year=2001, month=1, day=1),
-                       datetime.datetime(year=2001, month=1, day=1)),
-                      ({'end': ('2001', '01', '01',
-                                None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, '0.0000000999',
-                                     None, 'duration')},
-                       datetime.date(year=2001, month=1, day=1),
-                       datetime.datetime(year=2000, month=12, day=31,
-                                         hour=23, minute=59, second=59,
-                                         microsecond=999995)),
-                      ({'end': ('2018', '03', '06', None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, None,
-                                     '0.0000001', 'duration')},
-                       datetime.date(year=2018, month=3, day=6),
-                       datetime.datetime(year=2018, month=3, day=6)),
-                      ({'end': ('2018', '03', '06', None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, None,
-                                     '2.0000048', 'duration')},
-                       datetime.date(year=2018, month=3, day=6),
-                       datetime.datetime(year=2018, month=3, day=5,
-                                         hour=23, minute=59, second=57,
-                                         microsecond=999996)),
-                      #<start>/<duration>
-                      ({'start': ('2018', '03', '06',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, None,
-                                     '0.0000001', 'duration')},
-                       datetime.date(year=2018, month=3, day=6),
-                       datetime.datetime(year=2018, month=3, day=6)),
-                      ({'start': ('2018', '03', '06',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, None,
-                                     '2.0000048', 'duration')},
-                       datetime.date(year=2018, month=3, day=6),
-                       datetime.datetime(year=2018, month=3, day=6,
-                                         hour=0, minute=0, second=2,
-                                         microsecond=4)),
-                      ({'start': (('1981', '04', '05',
-                                   None, None, None, 'date'),
-                                  ('01', '01', '00', None, 'time'),
-                                  'datetime'),
-                        'duration': (None, '1', None,
-                                     '1', None, '1', None, 'duration')},
-                       datetime.datetime(year=1981, month=4, day=5,
-                                         hour=1, minute=1),
-                       datetime.datetime(year=1981, month=5, day=6,
-                                         hour=1, minute=2)),
-                      ({'start': ('1981', '04', '05',
-                                  None, None, None, 'date'),
-                        'duration': (None, '1', None,
-                                     '1', None, None, None, 'duration')},
-                       datetime.date(year=1981, month=4, day=5),
-                       datetime.date(year=1981, month=5, day=6)),
-                      ({'start': ('2014', '11', '12',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, '1', None, None, 'duration')},
-                       datetime.date(year=2014, month=11, day=12),
-                       datetime.datetime(year=2014, month=11, day=12,
-                                         hour=1, minute=0)),
-                      ({'start': ('2014', '11', '12',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, '4', '54', '6.5', 'duration')},
-                       datetime.date(year=2014, month=11, day=12),
-                       datetime.datetime(year=2014, month=11, day=12,
-                                         hour=4, minute=54, second=6,
-                                         microsecond=500000)),
-                      ({'start': ('2014', '11', '12',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, '4', '54', '6.5', 'duration')},
-                       datetime.date(year=2014, month=11, day=12),
-                       datetime.datetime(year=2014, month=11, day=12,
-                                         hour=4, minute=54, second=6,
-                                         microsecond=500000)),
-                      ({'start': (('2050', '03', '01',
-                                   None, None, None, 'date'),
-                                  ('13', '00', '00',
-                                   (False, True, None, None,
-                                    'Z', 'timezone'), 'time'), 'datetime'),
-                        'duration': (None, None, None,
-                                     None, '10', None, None, 'duration')},
-                       datetime.datetime(year=2050, month=3, day=1,
-                                         hour=13,
-                                         tzinfo=UTCOffset(name='UTC',
-                                                          minutes=0)),
-                       datetime.datetime(year=2050, month=3, day=1,
-                                         hour=23,
-                                         tzinfo=UTCOffset(name='UTC',
-                                                          minutes=0))),
-                      #Make sure we truncate, not round
-                      
#https://bitbucket.org/nielsenb/aniso8601/issues/10/sub-microsecond-precision-in-durations-is
-                      
#https://bitbucket.org/nielsenb/aniso8601/issues/21/sub-microsecond-precision-is-lost-when
-                      ({'start': ('1989', '03', '01',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, '1.9999999999999999',
-                                     None, None, None,
-                                     None, 'duration')},
-                       datetime.date(year=1989, month=3, day=1),
-                       datetime.datetime(year=1989, month=3, day=14,
-                                         hour=23, minute=59, second=59,
-                                         microsecond=999999)),
-                      ({'start': ('1989', '03', '01',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     '1.9999999999999999', None, None,
-                                     None, 'duration')},
-                       datetime.date(year=1989, month=3, day=1),
-                       datetime.datetime(year=1989, month=3, day=2,
-                                         hour=23, minute=59, second=59,
-                                         microsecond=999999)),
-                      ({'start': ('2001', '01', '01',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, '14.9999999999999999', None,
-                                     None, 'duration')},
-                       datetime.date(year=2001, month=1, day=1),
-                       datetime.datetime(year=2001, month=1, day=1,
-                                         hour=14, minute=59, second=59,
-                                         microsecond=999999)),
-                      ({'start': ('2001', '01', '01',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, '0.00000000999',
-                                     None, 'duration')},
-                       datetime.date(year=2001, month=1, day=1),
-                       datetime.datetime(year=2001, month=1, day=1)),
-                      ({'start': ('2001', '01', '01',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, '0.0000000999',
-                                     None, 'duration')},
-                       datetime.date(year=2001, month=1, day=1),
-                       datetime.datetime(year=2001, month=1, day=1,
-                                         hour=0, minute=0, second=0,
-                                         microsecond=5)),
-                      ({'start': ('2018', '03', '06',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, None,
-                                     '0.0000001', 'duration')},
-                       datetime.date(year=2018, month=3, day=6),
-                       datetime.datetime(year=2018, month=3, day=6)),
-                      ({'start': ('2018', '03', '06',
-                                  None, None, None, 'date'),
-                        'duration': (None, None, None,
-                                     None, None, None,
-                                     '2.0000048', 'duration')},
-                       datetime.date(year=2018, month=3, day=6),
-                       datetime.datetime(year=2018, month=3, day=6,
-                                         hour=0, minute=0, second=2,
-                                         microsecond=4)),
-                      #<start>/<end>
-                      ({'start': (('1980', '03', '05',
-                                   None, None, None, 'date'),
-                                  ('01', '01', '00', None, 'time'),
-                                  'datetime'),
-                        'end': (('1981', '04', '05',
-                                 None, None, None, 'date'),
-                                ('01', '01', '00', None, 'time'),
-                                'datetime')},
-                       datetime.datetime(year=1980, month=3, day=5,
-                                         hour=1, minute=1),
-                       datetime.datetime(year=1981, month=4, day=5,
-                                         hour=1, minute=1)),
-                      ({'start': (('1980', '03', '05',
-                                   None, None, None, 'date'),
-                                  ('01', '01', '00', None, 'time'),
-                                  'datetime'),
-                        'end': ('1981', '04', '05', None, None, None, 'date')},
-                       datetime.datetime(year=1980, month=3, day=5,
-                                         hour=1, minute=1),
-                       datetime.date(year=1981, month=4, day=5)),
-                      ({'start': ('1980', '03', '05',
-                                  None, None, None, 'date'),
-                        'end': (('1981', '04', '05',
-                                 None, None, None, 'date'),
-                                ('01', '01', '00', None, 'time'),
-                                'datetime')},
-                       datetime.date(year=1980, month=3, day=5),
-                       datetime.datetime(year=1981, month=4, day=5,
-                                         hour=1, minute=1)),
-                      ({'start': ('1980', '03', '05',
-                                  None, None, None, 'date'),
-                        'end': ('1981', '04', '05',
-                                None, None, None, 'date')},
-                       datetime.date(year=1980, month=3, day=5),
-                       datetime.date(year=1981, month=4, day=5)),
-                      ({'start': ('1981', '04', '05',
-                                  None, None, None, 'date'),
-                        'end': ('1980', '03', '05',
-                                None, None, None, 'date')},
-                       datetime.date(year=1981, month=4, day=5),
-                       datetime.date(year=1980, month=3, day=5)),
-                      ({'start': (('2050', '03', '01',
-                                   None, None, None, 'date'),
-                                  ('13', '00', '00',
-                                   (False, True, None, None,
-                                    'Z', 'timezone'), 'time'), 'datetime'),
-                        'end': (('2050', '05', '11',
-                                 None, None, None, 'date'),
-                                ('15', '30', '00',
-                                 (False, True, None, None,
-                                  'Z', 'timezone'), 'time'), 'datetime')},
-                       datetime.datetime(year=2050, month=3, day=1,
-                                         hour=13,
-                                         tzinfo=UTCOffset(name='UTC',
-                                                          minutes=0)),
-                       datetime.datetime(year=2050, month=5, day=11,
-                                         hour=15, minute=30,
-                                         tzinfo=UTCOffset(name='UTC',
-                                                          minutes=0))),
-                      #Make sure we truncate, not round
-                      
#https://bitbucket.org/nielsenb/aniso8601/issues/10/sub-microsecond-precision-in-durations-is
-                      ({'start': (('1980', '03', '05',
-                                   None, None, None, 'date'),
-                                  ('01', '01', '00.0000001',
-                                   None, 'time'), 'datetime'),
-                        'end': (('1981', '04', '05',
-                                 None, None, None, 'date'),
-                                ('14', '43', '59.9999997', None, 'time'),
-                                'datetime')},
-                       datetime.datetime(year=1980, month=3, day=5,
-                                         hour=1, minute=1),
-                       datetime.datetime(year=1981, month=4, day=5,
-                                         hour=14, minute=43, second=59,
-                                         microsecond=999999)),
-                      #Some relativedelta examples
-                      
#http://dateutil.readthedocs.org/en/latest/examples.html#relativedelta-examples
-                      ({'start': ('2003', '1', '27',
-                                  None, None, None, 'date'),
-                        'duration': (None, '1', None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=2003, month=1, day=27),
-                       datetime.date(year=2003, month=2, day=27)),
-                      ({'start': ('2003', '1', '31',
-                                  None, None, None, 'date'),
-                        'duration': (None, '1', None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=2003, month=1, day=31),
-                       datetime.date(year=2003, month=2, day=28)),
-                      ({'start': ('2003', '1', '31',
-                                  None, None, None, 'date'),
-                        'duration': (None, '2', None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=2003, month=1, day=31),
-                       datetime.date(year=2003, month=3, day=31)),
-                      ({'start': ('2000', '2', '28',
-                                  None, None, None, 'date'),
-                        'duration': ('1', None, None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=2000, month=2, day=28),
-                       datetime.date(year=2001, month=2, day=28)),
-                      ({'start': ('1999', '2', '28',
-                                  None, None, None, 'date'),
-                        'duration': ('1', None, None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=1999, month=2, day=28),
-                       datetime.date(year=2000, month=2, day=28)),
-                      ({'start': ('1999', '3', '1',
-                                  None, None, None, 'date'),
-                        'duration': ('1', None, None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=1999, month=3, day=1),
-                       datetime.date(year=2000, month=3, day=1)),
-                      ({'end': ('2001', '2', '28',
-                                None, None, None, 'date'),
-                        'duration': ('1', None, None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=2001, month=2, day=28),
-                       datetime.date(year=2000, month=2, day=28)),
-                      ({'end': ('2001', '3', '1',
-                                None, None, None, 'date'),
-                        'duration': ('1', None, None,
-                                     None, None, None, None, 'duration')},
-                       datetime.date(year=2001, month=3, day=1),
-                       datetime.date(year=2000, month=3, day=1)))
-
-        for testtuple in testtuples:
-            result = RelativeTimeBuilder.build_interval(**testtuple[0])
-            self.assertEqual(result[0], testtuple[1])
-            self.assertEqual(result[1], testtuple[2])
-
-    def test_build_repeating_interval(self):
-        #Repeating intervals are contingent on durations, make sure they work
-        args = {'Rnn': '3', 'interval': (('1981', '04', '05',
-                                          None, None, None, 'date'),
-                                         None,
-                                         (None, None, None,
-                                          '1', None, None,
-                                          None, 'duration'),
-                                         'interval')}
-        results = list(RelativeTimeBuilder.build_repeating_interval(**args))
-
-        self.assertEqual(results[0], datetime.date(year=1981, month=4, day=5))
-        self.assertEqual(results[1], datetime.date(year=1981, month=4, day=6))
-        self.assertEqual(results[2], datetime.date(year=1981, month=4, day=7))
-
-        args = {'Rnn': '11', 'interval': (None,
-                                          (('1980', '03', '05',
-                                            None, None, None, 'date'),
-                                           ('01', '01', '00',
-                                            None, 'time'), 'datetime'),
-                                          (None, None, None,
-                                           None, '1', '2',
-                                           None, 'duration'),
-                                          'interval')}
-        results = list(RelativeTimeBuilder.build_repeating_interval(**args))
-
-        for dateindex in compat.range(0, 11):
-            self.assertEqual(results[dateindex],
-                             datetime.datetime(year=1980, month=3, day=5,
-                                               hour=1, minute=1)
-                             - dateindex * datetime.timedelta(hours=1,
-                                                              minutes=2))
-
-        #Make sure relative is correctly applied for months
-        
#https://bitbucket.org/nielsenb/aniso8601/issues/12/month-intervals-calculated-incorrectly-or
-        args = {'Rnn': '4', 'interval': ((('2017', '04', '30',
-                                           None, None, None, 'date'),
-                                          ('00', '00', '00',
-                                           None, 'time'), 'datetime'),
-                                         None,
-                                         (None, '1', None,
-                                          None, None, None, None, 'duration'),
-                                         'interval')}
-        results = list(RelativeTimeBuilder.build_repeating_interval(**args))
-
-        self.assertEqual(results[0],
-                         datetime.datetime(year=2017, month=4, day=30))
-        self.assertEqual(results[1],
-                         datetime.datetime(year=2017, month=5, day=30))
-        self.assertEqual(results[2],
-                         datetime.datetime(year=2017, month=6, day=30))
-        self.assertEqual(results[3],
-                         datetime.datetime(year=2017, month=7, day=30))
-
-        args = {'R': True, 'interval': (None,
-                                        (('1980', '03', '05',
-                                          None, None, None, 'date'),
-                                         ('01', '01', '00',
-                                          None, 'time'), 'datetime'),
-                                        (None, None, None,
-                                         None, '1', '2', None, 'duration'),
-                                        'interval')}
-        resultgenerator = RelativeTimeBuilder.build_repeating_interval(**args)
-
-        for dateindex in compat.range(0, 11):
-            self.assertEqual(next(resultgenerator),
-                             datetime.datetime(year=1980, month=3, day=5,
-                                               hour=1, minute=1)
-                             - dateindex * datetime.timedelta(hours=1,
-                                                              minutes=2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aniso8601-5.1.0/aniso8601.egg-info/PKG-INFO 
new/aniso8601-6.0.0/aniso8601.egg-info/PKG-INFO
--- old/aniso8601-5.1.0/aniso8601.egg-info/PKG-INFO     2019-03-02 
02:09:36.000000000 +0100
+++ new/aniso8601-6.0.0/aniso8601.egg-info/PKG-INFO     2019-03-08 
21:10:19.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 1.1
 Name: aniso8601
-Version: 5.1.0
+Version: 6.0.0
 Summary: A library for parsing ISO 8601 strings.
 Home-page: https://bitbucket.org/nielsenb/aniso8601
 Author: Brandon Nielsen
@@ -186,56 +186,6 @@
           >>> aniso8601.parse_duration('P0001-01-02T01:30:5')
           datetime.timedelta(397, 5405)
         
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
-        The above treat years as 365 days and months as 30 days. If calendar 
level accuracy is required, the provided :code:`RelativeTimeBuilder` can be 
used if `dateutil <https://pypi.python.org/pypi/python-dateutil>`_ is 
installed::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> from datetime import date
-          >>> one_month = aniso8601.parse_duration('P1M', 
builder=RelativeTimeBuilder)
-          >>> two_months = aniso8601.parse_duration('P2M', 
builder=RelativeTimeBuilder)
-          >>> print one_month
-          relativedelta(months=+1)
-          >>> print two_months
-          relativedelta(months=+2)
-          >>> date(2003,1,27) + one_month
-          datetime.date(2003, 2, 27)
-          >>> date(2003,1,31) + one_month
-          datetime.date(2003, 2, 28)
-          >>> date(2003,1,31) + two_months
-          datetime.date(2003, 3, 31)
-        
-        Fractional years and months do not make sense for relative durations. 
a :code:`RelativeValueError` is raised when attempting to construct a duration 
with fractional month or year with the :code:`RelativeTimeBuilder`::
-        
-          >>> aniso8601.parse_duration('P2.1Y', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        When attempting to construct a duration using a 
:code:`RelativeTimeBuilder` without dateutil available, a :code:`RuntimeError` 
is raised::
-        
-          >>> aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
         Parsing intervals
         -----------------
         
@@ -304,53 +254,6 @@
               currentdate += timedelta
           OverflowError: date value out of range
         
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
-        The above treat years as 365 days and months as 30 days. If calendar 
level accuracy is required, the provided :code:`RelativeTimeBuilder` can be 
used if `dateutil <https://pypi.python.org/pypi/python-dateutil>`_ is 
installed::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 27), datetime.date(2003, 2, 27))
-          >>> aniso8601.parse_interval('2003-01-31/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 31), datetime.date(2003, 2, 28))
-          >>> aniso8601.parse_interval('P1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          (datetime.date(2001, 2, 28), datetime.date(2000, 2, 28))
-        
-        Fractional years and months do not make sense for relative intervals. 
A :code:`RelativeValueError` is raised when attempting to construct an interval 
with a fractional month or year with the :code:`RelativeTimeBuilder`::
-        
-          >>> aniso8601.parse_interval('P1.1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 98, in _parse_interval
-              return builder.build_interval(end=enddate, duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        When attempting to construct an interval using a 
:code:`RelativeTimeBuilder` without dateutil available, a :code:`RuntimeError` 
is raised::
-        
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 117, in _parse_interval
-              duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
         Date and time resolution
         ------------------------
         
@@ -377,13 +280,15 @@
         Builders
         ========
         
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
         Builders can be used to change the output format of a parse operation. 
All parse functions have a :code:`builder` keyword argument which accepts a 
builder class.
         
-        Three builders are included. The :code:`PythonTimeBuilder` (the 
default) in the  :code:`aniso8601.builders.python` module, :code:`TupleBuilder` 
which returns the parse result as a tuple of strings and is located in the 
:code:`aniso8601.builders` module, and the :code:`RelativeTimeBuilder` which 
allows for calendar level accuracy of duration and interval operations and is 
located in the  :code:`aniso8601.builders.relative` module.
+        Two builders are included. The :code:`PythonTimeBuilder` (the default) 
in the  :code:`aniso8601.builders.python` module, and the :code:`TupleBuilder` 
which returns the parse result as a tuple of strings and is located in the 
:code:`aniso8601.builders` module.
         
-        A `NumPyTimeBuilder 
<https://bitbucket.org/nielsenb/numpytimebuilder>`_ is available separately 
which supports parsing directly to `NumPy datetime64 and timedelta64 types 
<https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html>`_.
+        The following builders are available as separate projects:
+        
+        * `RelativeTimeBuilder 
<https://bitbucket.org/nielsenb/relativetimebuilder>`_ supports parsing to 
`datetutil relativedelta 
types<https://dateutil.readthedocs.io/en/stable/relativedelta.html>`_ for 
calendar level accuracy
+        * `AttoTimeBuilder <https://bitbucket.org/nielsenb/attotimebuilder>_` 
supports parsing directly to `attotime attodatetime and attotimedelta types 
<https://bitbucket.org/nielsenb/attotime>`_ which support sub-nanosecond 
precision
+        * `NumPyTimeBuilder 
<https://bitbucket.org/nielsenb/numpytimebuilder>`_ supports parsing directly 
to `NumPy datetime64 and timedelta64 types 
<https://docs.scipy.org/doc/numpy/reference/arrays.datetime.html>`_
         
         TupleBuilder
         ------------
@@ -463,126 +368,6 @@
           >>> 
aniso8601.parse_repeating_interval('R/PT1H2M/1980-03-05T01:01:00', 
builder=TupleBuilder)
           (True, None, (None, (('1980', '03', '05', None, None, None, 'date'), 
('01', '01', '00', None, 'time'), 'datetime'), (None, None, None, None, '1', 
'2', None, 'duration'), 'interval'), 'repeatinginterval')
         
-        RelativeTimeBuilder
-        -------------------
-        
-        **The included RelativeTimeBuilder is deprecated and will no longer be 
included as a dependency in aniso8601 6.0.0, install** `relativetimebuilder 
<https://pypi.org/project/relativetimebuilder>`_ **instead.**
-        
-        The :code:`RelativeTimeBuilder` uses `python-dateutil 
<https://pypi.python.org/pypi/python-dateutil>`_ (if installed) to add calendar 
level accuracy to duration and interval parses. It is located in the 
:code:`aniso8601.builders.relative` module.
-        
-        Datetimes
-        ^^^^^^^^^
-        
-        Same as :code:`PythonTimeBuilder`.
-        
-        Dates
-        ^^^^^
-        
-        Same as :code:`PythonTimeBuilder`.
-        
-        Times
-        ^^^^^
-        
-        Same as :code:`PythonTimeBuilder`.
-        
-        Durations
-        ^^^^^^^^^
-        
-        Parse will result in a :code:`relativedelta`::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> one_month = aniso8601.parse_duration('P1M', 
builder=RelativeTimeBuilder)
-          >>> two_months = aniso8601.parse_duration('P2M', 
builder=RelativeTimeBuilder)
-          >>> print one_month
-          relativedelta(months=+1)
-          >>> print two_months
-          relativedelta(months=+2)
-          >>> date(2003,1,27) + one_month
-          datetime.date(2003, 2, 27)
-          >>> date(2003,1,31) + one_month
-          datetime.date(2003, 2, 28)
-          >>> date(2003,1,31) + two_months
-          datetime.date(2003, 3, 31)
-        
-        Since a relative fractional month or year is not logical, a 
:code:`RelativeValueError` is raised when attempting to parse a duration with 
:code:`relative=True` and fractional month or year::
-        
-          >>> aniso8601.parse_duration('P2.1Y', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        If python-dateutil is not available, a :code:`RuntimeError` is raised::
-        
-          >>> aniso8601.parse_duration('P1M', builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/duration.py", line 30, in parse_duration
-              return _parse_duration_prescribed(isodurationstr, builder)
-            File "aniso8601/duration.py", line 75, in 
_parse_duration_prescribed
-              return _parse_duration_prescribed_notime(durationstr, builder)
-            File "aniso8601/duration.py", line 119, in 
_parse_duration_prescribed_notime
-              PnW=weekstr, PnD=daystr)
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
-        Intervals
-        ^^^^^^^^^
-        
-        Interval parse results will be calculated using a 
:code:`relativedelta` internally, allowing for calendar level accuracy::
-        
-          >>> import aniso8601
-          >>> from aniso8601.builders.relative import RelativeTimeBuilder
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 27), datetime.date(2003, 2, 27))
-          >>> aniso8601.parse_interval('2003-01-31/P1M', 
builder=RelativeTimeBuilder)
-          (datetime.date(2003, 1, 31), datetime.date(2003, 2, 28))
-          >>> aniso8601.parse_interval('P1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          (datetime.date(2001, 2, 28), datetime.date(2000, 2, 28))
-        
-        Fractional years and months do not make sense for relative intervals. 
A :code:`RelativeValueError` is raised when attempting to parse an interval 
with :code:`relative=True` and a fractional month or year::
-        
-          >>> aniso8601.parse_interval('P1.1Y/2001-02-28', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 98, in _parse_interval
-              return builder.build_interval(end=enddate, duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 30, in build_duration
-              raise RelativeValueError('Fractional months and years are not '
-          relativetimebuilder.RelativeValueError: Fractional months and years 
are not defined for relative durations.
-        
-        If python-dateutil is not available, a :code:`RuntimeError` is raised::
-        
-          >>> aniso8601.parse_interval('2003-01-27/P1M', 
builder=RelativeTimeBuilder)
-          Traceback (most recent call last):
-            File "<stdin>", line 1, in <module>
-            File "aniso8601/interval.py", line 40, in parse_interval
-              intervaldelimiter, datetimedelimiter)
-            File "aniso8601/interval.py", line 117, in _parse_interval
-              duration=duration)
-            File "aniso8601/builders/python.py", line 311, in build_interval
-              durationobject = cls._build_object(duration)
-            File "aniso8601/builders/__init__.py", line 71, in _build_object
-              TnS=parsetuple[6])
-            File 
"/home/nielsenb/Jetfuse/relativetimebuilder/relativetimebuilder/relativetimebuilder/__init__.py",
 line 24, in build_duration
-              raise RuntimeError('dateutil must be installed for '
-          RuntimeError: dateutil must be installed for relativedelta support.
-        
         Development
         ===========
         
@@ -591,10 +376,6 @@
         
         It is recommended to develop using a `virtualenv 
<https://virtualenv.pypa.io/en/stable/>`_.
         
-        The tests require the :code:`relative` feature to be enabled, install 
the necessary dependencies using pip::
-        
-          $ pip install .[relative]
-        
         Tests
         -----
         
@@ -634,4 +415,3 @@
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Provides-Extra: relative
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aniso8601-5.1.0/aniso8601.egg-info/SOURCES.txt 
new/aniso8601-6.0.0/aniso8601.egg-info/SOURCES.txt
--- old/aniso8601-5.1.0/aniso8601.egg-info/SOURCES.txt  2019-03-02 
02:09:36.000000000 +0100
+++ new/aniso8601-6.0.0/aniso8601.egg-info/SOURCES.txt  2019-03-08 
21:10:19.000000000 +0100
@@ -16,15 +16,12 @@
 aniso8601.egg-info/PKG-INFO
 aniso8601.egg-info/SOURCES.txt
 aniso8601.egg-info/dependency_links.txt
-aniso8601.egg-info/requires.txt
 aniso8601.egg-info/top_level.txt
 aniso8601/builders/__init__.py
 aniso8601/builders/python.py
-aniso8601/builders/relative.py
 aniso8601/builders/tests/__init__.py
 aniso8601/builders/tests/test_init.py
 aniso8601/builders/tests/test_python.py
-aniso8601/builders/tests/test_relative.py
 aniso8601/tests/__init__.py
 aniso8601/tests/compat.py
 aniso8601/tests/test_date.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aniso8601-5.1.0/aniso8601.egg-info/requires.txt 
new/aniso8601-6.0.0/aniso8601.egg-info/requires.txt
--- old/aniso8601-5.1.0/aniso8601.egg-info/requires.txt 2019-03-02 
02:09:36.000000000 +0100
+++ new/aniso8601-6.0.0/aniso8601.egg-info/requires.txt 1970-01-01 
01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-relativetimebuilder>=0.2.0
-
-[relative]
-python-dateutil>=2.7.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aniso8601-5.1.0/setup.py new/aniso8601-6.0.0/setup.py
--- old/aniso8601-5.1.0/setup.py        2019-03-02 02:08:27.000000000 +0100
+++ new/aniso8601-6.0.0/setup.py        2019-03-08 21:07:44.000000000 +0100
@@ -16,16 +16,12 @@
 
 setup(
     name='aniso8601',
-    version='5.1.0',
+    version='6.0.0',
     description='A library for parsing ISO 8601 strings.',
     long_description=README_TEXT,
     author='Brandon Nielsen',
     author_email='[email protected]',
     url='https://bitbucket.org/nielsenb/aniso8601',
-    install_requires=['relativetimebuilder>=0.2.0'],
-    extras_require={
-        'relative': ['python-dateutil>=2.7.3']
-    },
     packages=find_packages(),
     test_suite='aniso8601',
     tests_require=TESTS_REQUIRE,


Reply via email to