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