{ "info": { "author": "Rachel Sanders", "author_email": "rsanders@linkedin.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "PyExchange\n===================\n\n[![Build Status](https://travis-ci.org/linkedin/pyexchange.svg)](https://travis-ci.org/linkedin/pyexchange) [![Coverage Status](https://coveralls.io/repos/linkedin/pyexchange/badge.png?branch=master)](https://coveralls.io/r/linkedin/pyexchange?branch=master)\n\nPyExchange is a library for Microsoft Exchange.\n\nIt's incomplete at the moment - it only handles calendar events. We've open sourced it because we found it useful and hope others will, too.\n\nIf you're interested, please see the CONTRIBUTING notes in the repo for hints on where to get started.\n\nDocumentation\n-------------\n\nGo to https://pyexchange.readthedocs.org for the most recent, up-to-date version of documentation.\n\nInstallation\n------------\n\nPyExchange supports Python 2.6 and 2.7, and as of 0.6, is Python 3 compatible. Non CPython implementations may work but are not tested.\n\nWe support Exchange Server version 2010. Others will likely work but are not tested.\n\nTo install, use pip:\n\n pip install pyexchange\n\nAbout\n-----\n\nOnce upon a time there was a beautiful princess, who wanted to connect her web application to the royal Microsoft Exchange server.\n\nThe princess first tried all manner of SOAP libraries, but found them broken, or slow, or not unicode compliant, or plain just didn't work with Exchange.\n\n\"This totally bites,\" said the princess. \"I need like four commands and I don't want to make my own SOAP library.\"\n\nShe then discovered Microsoft had excellent documentation on its Exchange services with full XML samples.\n\n\"Bitchin,\" said the princess, who had watched too many 80s movies recently. \"I'll just write XML instead.\"\n\nSo she did, and it worked, and there was much feasting and celebration, followed by a royal battle with accounting over what constituted reasonable mead expenses.\n\nAnd everybody lived happily ever after.\n\nTHE END\n\n\n\nChanges\n=======\n\n0.1 (June 24, 2013)\n--------------------\n\nTeam release - shakin' the bugs out. \n\n\n0.2 (July 1, 2013)\n--------------------\n\nInternal company release - RELEASE THE KRAKEN.\n\n\n0.3 (July 17, 2013)\n------------------\n\nInitial public release. \n\n\n0.3.1 (April 18, 2014)\n----------------------\n\nIntegrating some more granular exception handling.\n\n0.4 (June 2, 2014)\n------------------\n\nWe had some great contributions, so this is a release for that. \n\nAlejandro Ramirez (got-root):\n\n- Added functionality to create/delete/get/find/move folders of all types. (Creating a new CalendarFolder is creating a new calendar in exchange)\n- Added ability to create events in specific folders.\n- Added ability to move events between calendars (folders).\n- Created tests for all new features. \n\nBen Le (kantas92)\n\n* Fixed unicode vs bytecode encoding madness when sending unicode.\n\n0.4.1 (June 15, 2014)\n------------------\n\nTurns out I actually didn't release Ben Le's code when I thought I did. Bad release engineer, no biscuit. \n\n0.4.2 (October 3, 2014)\n----------------------\n\nAlejandro Ramirez (got-root):\n\n- Bug fixes around the new folder code. \n- More documentation on how to use folders. \n\n\n0.5 (October 15, 2014)\n----------------------\n\n** This release has a potential backwards incompatible change, see below **\n\n* Pyexchange uses requests under the hood now (@trustrachel)\n\n Hey did you know that requests can do NTLM? I didn't. The internal connection class now uses requests\n instead of the clunky urllib2.\n\n There's a backwards incompatible change if you're subclassing the connection object. Requests doesn't\n need nearly the crud that urllib2 did, so I changed some of the methods and properties.\n\n Almost nobody should use this feature, but beware if you do.\n\n* You can get a list of events between two dates. This was a big limitation of the library before, so a huge\n thank you to Eric Matthews (@ematthews))\n\n* Fixed bug causing retrieved events to not be in UTC. (Thanks to Alejandro Ramirez (@got-root))\n\n* Integrated with travis (finally).\n\n0.5.1 (Nov 17, 2014)\n--------------------\n\n* Bugfix release because we broke stuff :(\n\n\n0.6 (January 20, 2015)\n----------------------\n\n* Python 3 conversion complete! yaaaaaaaaaay", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/linkedin/pyexchange", "keywords": null, "license": "Apache", "maintainer": null, "maintainer_email": null, "name": "pyexchange", "package_url": "https://pypi.org/project/pyexchange/", "platform": "any", "project_url": "https://pypi.org/project/pyexchange/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/linkedin/pyexchange" }, "release_url": "https://pypi.org/project/pyexchange/0.6/", "requires_dist": null, "requires_python": null, "summary": "A simple library to talk to Microsoft Exchange", "version": "0.6" }, "last_serial": 1390041, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "856b18b8d0b2f2e22e0fbc97853e821a", "sha256": "01885bcc8a7b2e88a17d9e63afe2f10b50fee99928c8c1272f26c3e695471e4f" }, "downloads": -1, "filename": "pyexchange-0.3.tar.gz", "has_sig": false, "md5_digest": "856b18b8d0b2f2e22e0fbc97853e821a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36270, "upload_time": "2013-07-19T02:42:46", "url": "https://files.pythonhosted.org/packages/10/b5/0700d0b2fc8d383e462e9d6a0cfa71d1dd078ef525d5704b77e8b13a4912/pyexchange-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "4e3dccf6d243e8f0bf1ce79c9c10f222", "sha256": "aace53c083ce07dc25ee85d54ffcfc69641148777079f57b73be03407b09cc82" }, "downloads": -1, "filename": "pyexchange-0.3.1.macosx-10.9-intel.tar.gz", "has_sig": false, "md5_digest": "4e3dccf6d243e8f0bf1ce79c9c10f222", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 12679, "upload_time": "2014-04-18T22:15:09", "url": "https://files.pythonhosted.org/packages/a7/9c/bd28f938085e9734b8274a5d472941cbdd411326fa8146ae880a0839d297/pyexchange-0.3.1.macosx-10.9-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "b54ea19adc0aac705a75f592d1391ef9", "sha256": "fa001d3aa2d8f712ccf009f6c338577c1031da19ce9f20121b46d8dc9a0dbeb5" }, "downloads": -1, "filename": "pyexchange-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b54ea19adc0aac705a75f592d1391ef9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36688, "upload_time": "2014-04-18T22:15:19", "url": "https://files.pythonhosted.org/packages/5c/76/dd351380a35024c51f5a8c37b3cd3c531c4003dbf98a55b7e5f5ca0f0b54/pyexchange-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "e49e5203d292121ddd47cf5261cbb138", "sha256": "ecba57251613bd21f8f4b3f075dcab35f3b8a277c7c5f90973c9d613b39e2023" }, "downloads": -1, "filename": "pyexchange-0.4.tar.gz", "has_sig": false, "md5_digest": "e49e5203d292121ddd47cf5261cbb138", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41011, "upload_time": "2014-06-02T17:15:25", "url": "https://files.pythonhosted.org/packages/23/03/170084a774c57f228c0683e9dfcac692355bf9828f20c771f343f64acb0c/pyexchange-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "b46b39c110521c35217b180dc0ab9f0d", "sha256": "d50ee038ce07244b97a9fe6b688ff130817706a033a170ed39da3579fd71759e" }, "downloads": -1, "filename": "pyexchange-0.4.1.tar.gz", "has_sig": false, "md5_digest": "b46b39c110521c35217b180dc0ab9f0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41081, "upload_time": "2014-06-16T00:26:05", "url": "https://files.pythonhosted.org/packages/bb/b4/6e78bc4b514327879af492c385f0e37a44644f7214f163db3aa7acda516d/pyexchange-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "53a3b310f37b27ad8d3698e9ce5556f3", "sha256": "a9b202245d4f3f87933c733598cb4f0ae7130c945cb37ee9cff898204ea8f2fd" }, "downloads": -1, "filename": "pyexchange-0.4.2.tar.gz", "has_sig": false, "md5_digest": "53a3b310f37b27ad8d3698e9ce5556f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41765, "upload_time": "2014-10-03T20:12:09", "url": "https://files.pythonhosted.org/packages/c0/f7/30e26d6d991754b66406a4bf5a83d3d51f94b753a472ad51b2a0c4a3f168/pyexchange-0.4.2.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "cd88329ed3abf65285088174f30f8efb", "sha256": "6fc049021a22740cd3825bccf366f60717be3864fcabd655cf3bb52d8aa11524" }, "downloads": -1, "filename": "pyexchange-0.5.tar.gz", "has_sig": false, "md5_digest": "cd88329ed3abf65285088174f30f8efb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44214, "upload_time": "2014-10-16T00:25:08", "url": "https://files.pythonhosted.org/packages/51/4a/18a64584c4d4b6a4111b875d7ec015520623607db82d6212744067af78c3/pyexchange-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "b41a0d8765d12ddbf1652ee981b30b21", "sha256": "70fcf52be0acba8b84f77130359dd0d3a50a00dc055090a777121df178ca7570" }, "downloads": -1, "filename": "pyexchange-0.5.1.tar.gz", "has_sig": false, "md5_digest": "b41a0d8765d12ddbf1652ee981b30b21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21337, "upload_time": "2014-11-18T05:40:53", "url": "https://files.pythonhosted.org/packages/18/be/293324ac0fd6810477f3cbeb8d39b7ba28d5456cdc8cc45f1caf8e9bbc9b/pyexchange-0.5.1.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "009a9b2071a49d88cb64d0ad22953bbd", "sha256": "d22a0b6dc70f91c545d633fe686d2be8e5deb347943a51047482054ee1814794" }, "downloads": -1, "filename": "pyexchange-0.6.tar.gz", "has_sig": false, "md5_digest": "009a9b2071a49d88cb64d0ad22953bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21030, "upload_time": "2015-01-21T01:19:15", "url": "https://files.pythonhosted.org/packages/96/b2/4b3859002012d9485a2643256264c5b78d98050aa3668c96048672f30ab8/pyexchange-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "009a9b2071a49d88cb64d0ad22953bbd", "sha256": "d22a0b6dc70f91c545d633fe686d2be8e5deb347943a51047482054ee1814794" }, "downloads": -1, "filename": "pyexchange-0.6.tar.gz", "has_sig": false, "md5_digest": "009a9b2071a49d88cb64d0ad22953bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21030, "upload_time": "2015-01-21T01:19:15", "url": "https://files.pythonhosted.org/packages/96/b2/4b3859002012d9485a2643256264c5b78d98050aa3668c96048672f30ab8/pyexchange-0.6.tar.gz" } ] }