1Metadata-Version: 2.1
2Name: icalendar
3Version: 4.0.3
4Summary: iCalendar parser/generator
5Home-page: https://github.com/collective/icalendar
6Author: Plone Foundation
7Author-email: plone-developers@lists.sourceforge.net
8License: BSD
9Description: ==========================================================
10        Internet Calendaring and Scheduling (iCalendar) for Python
11        ==========================================================
12
13        The `icalendar`_ package is a `RFC 5545`_ compatible parser/generator for iCalendar
14        files.
15
16        ----
17
18        :Homepage: https://icalendar.readthedocs.io
19        :Code: https://github.com/collective/icalendar
20        :Mailing list: https://github.com/collective/icalendar/issues
21        :Dependencies: `python-dateutil`_ and `pytz`_.
22        :Compatible with: Python 2.7 and 3.4+
23        :License: `BSD`_
24
25        ----
26
27
28        .. image:: https://travis-ci.org/collective/icalendar.svg?branch=master
29            :target: https://travis-ci.org/collective/icalendar
30
31
32        .. _`icalendar`: https://pypi.org/project/icalendar/
33        .. _`RFC 5545`: https://www.ietf.org/rfc/rfc5545.txt
34        .. _`python-dateutil`: https://github.com/dateutil/dateutil/
35        .. _`pytz`: https://pypi.org/project/pytz/
36        .. _`BSD`: https://github.com/collective/icalendar/issues/2
37
38
39        Related projects
40        ================
41
42        * `icalevents <https://github.com/irgangla/icalevents>`_. It is built on top of icalendar and allows you to query iCal files and get the events happening on specific dates. It manages recurrent events as well.
43
44
45        You want to help and contribute? Perfect!
46        =========================================
47
48        These are some contribution examples
49        ------------------------------------
50
51        - Reporting issues to the bugtracker.
52
53        - Submitting pull requests from a forked icalendar repo.
54
55        - Extending the documentation.
56
57        - Sponsor a Sprint (http://plone.org/events/sprints/whatis).
58
59
60        For pull requests, keep this in mind
61        ------------------------------------
62
63        - Add a test which proves your fix and make it pass.
64
65        - Describe your change in CHANGES.rst
66
67        - Add yourself to the docs/credits.rst
68
69        Changelog
70        =========
71
72        4.0.3 (2018-10-10)
73        ------------------
74
75        Bug fixes:
76
77        - Categories are comma separated not 1 per line #265. [cleder]
78        - mark test with mixed timezoneaware and naive datetimes as an expected failure. [cleder]
79
80
81        4.0.2 (2018-06-20)
82        ------------------
83
84        Bug fixes:
85
86        - Update all pypi.python.org URLs to pypi.org
87          [jon.dufresne]
88
89
90        4.0.1 (2018-02-11)
91        ------------------
92
93        - Added rudimentary command line interface.
94          [jfjlaros]
95
96        - Readme, setup and travis updates.
97          [jdufresne, PabloCastellano]
98
99
100        4.0.0 (2017-11-08)
101        ------------------
102
103        Breaking changes:
104
105        - Drop support for Python 2.6 and 3.3.
106
107
108        3.12 (2017-11-07)
109        -----------------
110
111        New features:
112
113        - Accept Windows timezone identifiers as valid. #242 [geier]
114
115        Bug fixes:
116
117        - Fix ResourceWarnings in setup.py when Python warnings are enabled. #244 [jdufresne]
118
119        - Fix invalid escape sequences in string and bytes literals. #245 [jdufresne]
120
121        - Include license file in the generated wheel package. #243 [jdufresne]
122
123        - Fix non-ASCII TZID and TZNAME parameter handling. #238 [clivest]
124
125        - Docs: update install instructions. #240 [Ekran]
126
127
128        3.11.7 (2017-08-27)
129        -------------------
130
131        New features:
132
133        - added vUTCOffset.ignore_exceptions to allow surpressing of failed TZOFFSET
134          parsing (for now this ignores the check for offsets > 24h) [geier]
135
136
137        3.11.6 (2017-08-04)
138        -------------------
139
140        Bug fixes:
141
142        - Fix VTIMEZONEs including RDATEs #234.  [geier]
143
144
145        3.11.5 (2017-07-03)
146        -------------------
147
148        Bug fixes:
149
150        - added an assertion that VTIMEZONE sub-components' DTSTART must be of type
151          DATETIME [geier]
152
153        - Fix handling of VTIMEZONEs with subcomponents with the same DTSTARTs and
154          OFFSETs but which are of different types  [geier]
155
156
157        3.11.4 (2017-05-10)
158        -------------------
159
160        Bug fixes:
161
162        - Don't break on parameter values which contain equal signs, e.g. base64 encoded
163          binary data [geier]
164
165        - Fix handling of VTIMEZONEs with subcomponents with the same DTSTARTs.
166          [geier]
167
168
169        3.11.3 (2017-02-15)
170        -------------------
171
172        Bug fixes:
173
174        - Removed ``setuptools`` as a dependency as it was only required by setup.py
175          and not by the package.
176
177        - Don't split content lines on the unicode ``LINE SEPARATOR`` character
178          ``\u2028`` but only on ``CRLF`` or ``LF``.
179
180        3.11.2 (2017-01-12)
181        -------------------
182
183        Bug fixes:
184
185        - Run tests with python 3.5 and 3.6.
186          [geier]
187
188        - Allow tests failing with pypy3 on travis.ci.
189          [geier]
190
191
192        3.11.1 (2016-12-19)
193        -------------------
194
195        Bug fixes:
196
197        - Encode error message before adding it to the stack of collected error messages.
198
199
200        3.11 (2016-11-18)
201        -----------------
202
203        Fixes:
204
205        - Successfully test with pypy and pypy3.  [gforcada]
206
207        - Minor documentation update.  [tpltnt]
208
209
210        3.10 (2016-05-26)
211        -----------------
212
213        New:
214
215        - Updated components description to better comply with RFC 5545.
216          Refs #183.
217          [stlaz]
218
219        - Added PERIOD value type to date types.
220          Also fixes incompatibilities described in #184.
221          Refs #189.
222          [stlaz]
223
224        Fixes:
225
226        - Fix testsuite for use with ``dateutil>=2.5``.
227          Refs #195.
228          [untitaker]
229
230        - Reintroduce cal.Component.is_broken that was removed with 3.9.2.
231          Refs #185.
232          [geier]
233
234
235        3.9.2 (2016-02-05)
236        ------------------
237
238        New:
239
240        - Defined ``test_suite`` in setup.py.
241          Now tests can be run via ``python setup.py test``.
242          [geier]
243
244        Fixes:
245
246        - Fixed cal.Component.from_ical() representing an unknown component as one of the known.
247          [stlaz]
248
249        - Fixed possible IndexError exception during parsing of an ical string.
250          [stlaz]
251
252        - When doing a boolean test on ``icalendar.cal.Component``, always return ``True``.
253          Before it was returning ``False`` due to CaselessDict, if it didn't contain any items.
254          [stlaz]
255
256        - Fixed date-time being recognized as date or time during parsing.
257          Added better error handling to parsing from ical strings.
258          [stlaz]
259
260        - Added __version__ attribute to init.py.
261          [TomTry]
262
263        - Documentation fixes.
264          [TomTry]
265
266        - Pep 8, UTF 8 headers, dict/list calls to literals.
267          [thet]
268
269
270        3.9.1 (2015-09-08)
271        ------------------
272
273        - Fix ``vPeriod.__repr__``.
274          [spacekpe]
275
276        - Improve foldline() performance. This improves the foldline performance,
277          especially for large strings like base64-encoded inline attachements. In some
278          cases (1MB string) from 7 Minutes to less than 20ms for ASCII data and 500ms
279          for non-ASCII data. Ref: #163.
280          [emfree]
281
282
283        3.9.0 (2015-03-24)
284        ------------------
285
286        - Creating timezone objects from VTIMEZONE components.
287          [geier]
288
289        - Make ``python-dateutil`` a dependency.
290          [geier]
291
292        - Made RRULE tolerant of trailing semicolons.
293          [sleeper]
294
295        - Documentation fixes.
296          [t-8ch, thet]
297
298        3.8.4 (2014-11-01)
299        ------------------
300
301        - Add missing BYWEEKNO to recurrence rules.
302          [russkel]
303
304
305        3.8.3 (2014-08-26)
306        ------------------
307
308        - PERCENT property in VTODO renamed to PERCENT-COMPLETE, according to RFC5545.
309          [thomascube]
310
311
312        3.8.2 (2014-07-22)
313        ------------------
314
315        - Exclude editor backup files from egg distributions. Fixes #144.
316          [thet]
317
318
319        3.8.1 (2014-07-17)
320        ------------------
321
322        - The representation of CaselessDicts in 3.8 changed the name attribute of
323          Components and therefore broke the external API. This has been fixed.
324          [untitaker]
325
326
327        3.8 (2014-07-17)
328        ----------------
329
330        - Allow dots in property names (Needed for vCard compatibility). Refs #143.
331          [untitaker]
332
333        - Change class representation for CaselessDict objects to always include the
334          class name or the class' name attribute, if available. Also show
335          subcomponents for Component objects.
336          [thet]
337
338        - Don't use data_encode for CaselessDict class representation but use dict's
339          __repr__ method.
340          [t-8ch]
341
342        - Handle parameters with multiple values, which is needed for vCard 3.0.
343          Refs #142.
344          [t-8ch]
345
346
347        3.7 (2014-06-02)
348        ----------------
349
350        - For components with ``ignore_exceptions`` set to ``True``, mark unparseable
351          lines as broken instead rising a ``ValueError``. ``VEVENT`` components have
352          ``ignore_exceptions`` set to ``True`` by default. Ref #131. Fixes #104.
353          [jkiang13]
354
355        - Make ``python-dateutil`` a soft-dependency.
356          [boltnev]
357
358        - Add optional ``sorted`` parameter to ``Component.to_ical``. Setting it to
359          false allows the user to preserve the original property and parameter order.
360          Ref #136. Fixes #133.
361          [untitaker]
362
363        - Fix tests for latest ``pytz``. Don't set ``tzinfo`` directly on datetime
364          objects, but use pytz's ``localize`` function. Ref #138.
365          [untitaker, thet]
366
367        - Remove incorrect use of __all__. We don't encourage using ``from package
368          import *`` imports. Fixes #129.
369          [eric-wieser]
370
371
372        3.6.2 (2014-04-05)
373        ------------------
374
375        - Pep8 and cleanup.
376          [lasudry]
377
378        3.6.1 (2014-01-13)
379        ------------------
380
381        - Open text files referenced by setup.py as utf-8, no matter what the locale
382          settings are set to. Fixes #122.
383          [sochotnicky]
384
385        - Add tox.ini to source tarball, which simplifies testing for in distributions.
386          [sochotnicky]
387
388
389        3.6 (2014-01-06)
390        ----------------
391
392        - Python3 (3.3+) + Python 2 (2.6+) support [geier]
393
394        - Made sure to_ical() always returns bytes [geier]
395
396        - Support adding lists to a component property, which value already was a list
397          and remove the Component.set method, which was only used by the add method.
398          [thet]
399
400        - Remove ability to add property parameters via a value's params attribute when
401          adding via cal.add (that was only possible for custom value objects and makes
402          up a strange API), but support a parameter attribute on cal.add's method
403          signature to pass a dictionary with property parameter key/value pairs.
404          Fixes #116.
405          [thet]
406
407        - Backport some of Regebro's changes from his regebro-refactor branch.
408          [thet]
409
410        - Raise explicit error on another malformed content line case.
411          [hajdbo]
412
413        - Correctly parse datetime component property values with timezone information
414          when parsed from ical strings.
415          [untitaker]
416
417
418        3.5 (2013-07-03)
419        ----------------
420
421        - Let to_unicode be more graceful for non-unicode strings, as like CMFPlone's
422          safe_unicode does it.
423          [thet]
424
425
426        3.4 (2013-04-24)
427        ----------------
428
429        - Switch to unicode internally. This should fix all en/decoding errors.
430          [thet]
431
432        - Support for non-ascii parameter values. Fixes #88.
433          [warvariuc]
434
435        - Added functions to transform chars in string with '\\' + any of r'\,;:' chars
436          into '%{:02X}' form to avoid splitting on chars escaped with '\\'.
437          [warvariuc]
438
439        - Allow seconds in vUTCOffset properties. Fixes #55.
440          [thet]
441
442        - Let ``Component.decode`` better handle vRecur and vDDDLists properties.
443          Fixes #70.
444          [thet]
445
446        - Don't let ``Component.add`` re-encode already encoded values. This simplifies
447          the API, since there is no need explicitly pass ``encode=False``. Fixes #82.
448          [thet]
449
450        - Rename tzinfo_from_dt to tzid_from_dt, which is what it does.
451          [thet]
452
453        - More support for dateutil parsed tzinfo objects. Fixes #89.
454          [leo-naeka]
455
456        - Remove python-dateutil version fix at all. Current python-dateutil has Py3
457          and Py2 compatibility.
458          [thet]
459
460        - Declare the required python-dateutil dependency in setup.py. Fixes #90.
461          [kleink]
462
463        - Raise test coverage.
464          [thet]
465
466        - Remove interfaces module, as it is unused.
467          [thet]
468
469        - Remove ``test_doctests.py``, test suite already created properly in
470          ``test_icalendar.py``.
471          [rnix]
472
473        - Transformed doctests into unittests, Test fixes and cleanup.
474          [warvariuc]
475
476
477        3.3 (2013-02-08)
478        ----------------
479
480        - Drop support for Python < 2.6.
481          [thet]
482
483        - Allow vGeo to be instantiated with list and not only tuples of geo
484          coordinates. Fixes #83.
485          [thet]
486
487        - Don't force to pass a list to vDDDLists and allow setting individual RDATE
488          and EXDATE values without having to wrap them in a list.
489          [thet]
490
491        - Fix encoding function to allow setting RDATE and EXDATE values and not to
492          have bypass encoding with an icalendar property.
493          [thet]
494
495        - Allow setting of timezone for vDDDLists and support timezone properties for
496          RDATE and EXDATE component properties.
497          [thet]
498
499        - Move setting of TZID properties to vDDDTypes, where it belongs to.
500          [thet]
501
502        - Use @staticmethod decorator instead of wrapper function.
503          [warvariuc, thet]
504
505        - Extend quoting of parameter values to all of those characters: ",;: ’'".
506          This fixes an outlook incompatibility with some characters. Fixes: #79,
507          Fixes: #81.
508          [warvariuc]
509
510        - Define VTIMETZONE subcomponents STANDARD and DAYLIGHT for RFC5545 compliance.
511          [thet]
512
513
514        3.2 (2012-11-27)
515        ----------------
516
517        - Documentation file layout restructuring.
518          [thet]
519
520        - Fix time support. vTime events can be instantiated with a datetime.time
521          object, and do not inherit from datetime.time itself.
522          [rdunklau]
523
524        - Correctly handle tzinfo objects parsed with dateutil. Fixes #77.
525          [warvariuc, thet]
526
527        - Text values are escaped correclty. Fixes #74.
528          [warvariuc]
529
530        - Returned old folding algorithm, as the current implementation fails in some
531          cases. Fixes #72, Fixes #73.
532          [warvariuc]
533
534        - Supports to_ical() on date/time properties for dates prior to 1900.
535          [cdevienne]
536
537
538        3.1 (2012-09-05)
539        ----------------
540
541        - Make sure parameters to certain properties propagate to the ical output.
542          [kanarip]
543
544        - Re-include doctests.
545          [rnix]
546
547        - Ensure correct datatype at instance creation time in ``prop.vCalAddress``
548          and ``prop.vText``.
549          [rnix]
550
551        - Apply TZID parameter to datetimes parsed from RECURRENCE-ID
552          [dbstovall]
553
554        - Localize datetimes for timezones to avoid DST transition errors.
555          [dbstovall]
556
557        - Allow UTC-OFFSET property value data types in seconds, which follows RFC5545
558          specification.
559          [nikolaeff]
560
561        - Remove utctz and normalized_timezone methods to simplify the codebase. The
562          methods were too tiny to be useful and just used at one place.
563          [thet]
564
565        - When using Component.add() to add icalendar properties, force a value
566          conversion to UTC for CREATED, DTSTART and LAST-MODIFIED. The RFC expects UTC
567          for those properties.
568          [thet]
569
570        - Removed last occurrences of old API (from_string).
571          [Rembane]
572
573        - Add 'recursive' argument to property_items() to switch recursive listing.
574          For example when parsing a text/calendar text including multiple components
575          (e.g. a VCALENDAR with 5 VEVENTs), the previous situation required us to look
576          over all properties in VEVENTs even if we just want the properties under the
577          VCALENDAR component (VERSION, PRODID, CALSCALE, METHOD).
578          [dmikurube]
579
580        - All unit tests fixed.
581          [mikaelfrykholm]
582
583
584        3.0.1b2 (2012-03-01)
585        --------------------
586
587        - For all TZID parameters in DATE-TIME properties, use timezone identifiers
588          (e.g. Europe/Vienna) instead of timezone names (e.g. CET), as required by
589          RFC5545. Timezone names are used together with timezone identifiers in the
590          Timezone components.
591          [thet]
592
593        - Timezone parsing, issues and test fixes.
594          [mikaelfrykholm, garbas, tgecho]
595
596        - Since we use pytz for timezones, also use UTC tzinfo object from the pytz
597          library instead of own implementation.
598          [thet]
599
600
601        3.0.1b1 (2012-02-24)
602        --------------------
603
604        - Update Release information.
605          [thet]
606
607
608        3.0
609        ---
610
611        - Add API for proper Timezone support. Allow creating ical DATE-TIME strings
612          with timezone information from Python datetimes with pytz based timezone
613          information and vice versa.
614          [thet]
615
616        - Unify API to only use to_ical and from_ical and remove string casting as a
617          requirement for Python 3 compatibility:
618          New: to_ical.
619          Old: ical, string, as_string and string casting via __str__ and str.
620          New: from_ical.
621          Old: from_string.
622          [thet]
623
624
625        2.2 (2011-08-24)
626        ----------------
627
628        - migration to https://github.com/collective/icalendar using svn2git preserving
629          tags, branches and authors.
630          [garbas]
631
632        - using tox for testing on python 2.4, 2.5, 2.6, 2.6.
633          [garbas]
634
635        - fixed tests so they pass also under python 2.7.
636          [garbas]
637
638        - running tests on https://jenkins.plone.org/job/icalendar (only 2.6 for now)
639          with some other metrics (pylint, clonedigger, coverage).
640          [garbas]
641
642        - review and merge changes from https://github.com/cozi/icalendar fork.
643          [garbas]
644
645        - created sphinx documentation and started documenting development and goals.
646          [garbas]
647
648        - hook out github repository to http://readthedocs.org service so sphinx
649          documentation is generated on each commit (for master). Documentation can be
650          visible on: http://readthedocs.org/docs/icalendar/en/latest/
651          [garbas]
652
653
654        2.1 (2009-12-14)
655        ----------------
656
657        - Fix deprecation warnings about ``object.__init__`` taking no parameters.
658
659        - Set the VALUE parameter correctly for date values.
660
661        - Long binary data would be base64 encoded with newlines, which made the
662          iCalendar files incorrect. (This still needs testing).
663
664        - Correctly handle content lines which include newlines.
665
666
667        2.0.1 (2008-07-11)
668        ------------------
669
670        - Made the tests run under Python 2.5+
671
672        - Renamed the UTC class to Utc, so it would not clash with the UTC object,
673          since that rendered the UTC object unpicklable.
674
675
676        2.0 (2008-07-11)
677        ----------------
678
679        - EXDATE and RDATE now returns a vDDDLists object, which contains a list
680          of vDDDTypes objects. This is do that EXDATE and RDATE can contain
681          lists of dates, as per RFC.
682
683          ***Note!***: This change is incompatible with earlier behavior, so if you
684          handle EXDATE and RDATE you will need to update your code.
685
686        - When createing a vDuration of -5 hours (which in itself is nonsensical),
687          the ical output of that was -P1DT19H, which is correct, but ugly. Now
688          it's '-PT5H', which is prettier.
689
690
691        1.2 (2006-11-25)
692        ----------------
693
694        - Fixed a string index out of range error in the new folding code.
695
696
697        1.1 (2006-11-23)
698        ----------------
699
700        - Fixed a bug in caselessdicts popitem. (thanks to Michael Smith
701          <msmith@fluendo.com>)
702
703        - The RFC 2445 was a bit unclear on how to handle line folding when it
704          happened to be in the middle of a UTF-8 character. This has been clarified
705          in the following discussion:
706          http://lists.osafoundation.org/pipermail/ietf-calsify/2006-August/001126.html
707          And this is now implemented in iCalendar. It will not fold in the middle of
708          a UTF-8 character, but may fold in the middle of a UTF-8 composing character
709          sequence.
710
711
712        1.0 (2006-08-03)
713        ----------------
714
715        - make get_inline and set_inline support non ascii codes.
716
717        - Added support for creating a python egg distribution.
718
719
720        0.11 (2005-11-08)
721        -----------------
722
723        - Changed component .from_string to use types_factory instead of hardcoding
724          entries to 'inline'
725
726        - Changed UTC tzinfo to a singleton so the same one is used everywhere
727
728        - Made the parser more strict by using regular expressions for key name,
729          param name and quoted/unquoted safe char as per the RFC
730
731        - Added some tests from the schooltool icalendar parser for better coverage
732
733        - Be more forgiving on the regex for folding lines
734
735        - Allow for multiple top-level components on .from_string
736
737        - Fix vWeekdays, wasn't accepting relative param (eg: -3SA vs -SA)
738
739        - vDDDTypes didn't accept negative period (eg: -P30M)
740
741        - 'N' is also acceptable as newline on content lines, per RFC
742
743
744        0.10 (2005-04-28)
745        -----------------
746
747        - moved code to codespeak.net subversion.
748
749        - reorganized package structure so that source code is under 'src' directory.
750          Non-package files remain in distribution root.
751
752        - redid doc/.py files as doc/.txt, using more modern doctest. Before they
753          were .py files with big docstrings.
754
755        - added test.py testrunner, and tests/test_icalendar.py that picks up all
756          doctests in source code and doc directory, and runs them, when typing::
757
758            python2.3 test.py
759
760        - renamed iCalendar to lower case package name, lowercased, de-pluralized and
761          shorted module names, which are mostly implementation detail.
762
763        - changed tests so they generate .ics files in a temp directory, not in the
764          structure itself.
765
766        License
767        =======
768
769        Copyright (c) 2012-2013, Plone Foundation
770        All rights reserved.
771
772        Redistribution and use in source and binary forms, with or without
773        modification, are permitted provided that the following conditions are met:
774
775         - Redistributions of source code must retain the above copyright notice, this
776           list of conditions and the following disclaimer.
777
778         - Redistributions in binary form must reproduce the above copyright notice,
779           this list of conditions and the following disclaimer in the documentation
780           and/or other materials provided with the distribution.
781
782        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
783        ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
784        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
785        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
786        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
787        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
788        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
789        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
790        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
791        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
792
793
794Keywords: calendar calendaring ical icalendar event todo journal recurring
795Platform: UNKNOWN
796Classifier: Development Status :: 5 - Production/Stable
797Classifier: Intended Audience :: Developers
798Classifier: License :: OSI Approved :: BSD License
799Classifier: Operating System :: OS Independent
800Classifier: Programming Language :: Python
801Classifier: Programming Language :: Python :: 2
802Classifier: Programming Language :: Python :: 2.7
803Classifier: Programming Language :: Python :: 3
804Classifier: Programming Language :: Python :: 3.4
805Classifier: Programming Language :: Python :: 3.5
806Classifier: Programming Language :: Python :: 3.6
807Classifier: Programming Language :: Python :: Implementation :: CPython
808Classifier: Programming Language :: Python :: Implementation :: PyPy
809Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
810Provides-Extra: test
811