{ "info": { "author": "bsmt", "author_email": "bsmt@bsmt.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Documentation", "Topic :: Utilities" ], "description": "wunderpy\n========\n\n|Build Status| |Version| |Downloads|\n\nThe goal of this project is to make `Wunderlist's`_ private and\nundocumented API less private and better documented, while also\nproviding a python client implementation. I've explained how I figured\nout the API in a blog post `here`_, in case anyone is curious or wants\nto contribute.\n\nYou can read the documentation at `readthedocs.`_\n\nDisclaimer\n----------\n\nIn no way is this project near complete or perfect. There are a lot of\nthings that can be done better, especially design-wise, that I'm trying\nto fix as I learn more. Things are liable to change or break\nunexpectedly.\n\nExample\n-------\n\n::\n\n from datetime import datetime\n from wunderpy import Wunderlist\n\n w = Wunderlist()\n w.login(\"username\", \"password\")\n w.update_lists() # you have to run this first, before you do anything else\n\n w.add_list(\"test\") # make a new list called \"test\"\n\n due = datetime.now().isoformat()\n w.add_task(\"test wunderpy\", list_title=\"test\", note=\"a note\",\n due_date=due, starred=True) # add a task to it\n w.complete_task(\"test wunderpy\", \"test\") # complete it\n w.delete_task(\"test wunderpy\", \"test\") # and delete it\n\n w.delete_list(\"test\") # and delete the list\n\nBuilding the Docs\n-----------------\n\nChances are, you're looking for information on how to use the API. I'm\nin the process of documenting everything in wunderpy. Information on the\nAPI, as well as the classes provided by wunderpy are documented with\nsphinx.\n\nTo generate the documentation:\n\n::\n\n cd docs\n make html # other options are available\n # look in the docs/build/html dir for the documentation\n\nRunning Tests\n-------------\n\nI'm working on writing tests for everything.\n\nIf you want to run said tests, make sure you have tox installed. After that, all you have to do is run tox.\n\nBy default, it will not run any tests for the API calls, as they take around 30 seconds to run.\nIf you want to run those tests, you can either store your email and password in\nthe WUNDERPY_EMAIL and WUNDERPY_PASSWORD env vars, or you can create an ini file like this:\n\n::\n\n [login]\n email = test@email.web\n password = password\n\nThen you would run tox -- --tc-file your_config.ini.\n\nContributing\n------------\n\nFirst off, I can't thank you enough. This is my first open source project that receives even a small amount of attention, so I'm a bit new to all of this. I don't have many guidelines, just make sure your code passes PEP8, and try to have pull requests merge to the develop branch. I like to follow something akin to the `gitflow`_ branching model, so merging to develop makes that a lot easier.\n\nChangelog\n---------\n\n0.2.5\n^^^^^\n* Fix python 3 support\n\n0.2.3 - 0.2.4\n^^^^^\n\n* Bugfixes\n\n0.2.2\n^^^^^\n\n* Client\n\n * Add TaskList and Task classes\n * Add filtering methods\n * Add tests for new classes and most Wunderlist functionality\n\n* CLI\n\n * Add --today and --week options\n * Only display incomplete tasks by default, add --show-complete option.\n \n\n0.2.1\n^^^^^\n* Add a CLI interface\n* Ensure session headers are included in all requests\n\nLicense\n-------\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 bsmt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n.. _Wunderlist's: https://wunderlist.com\n.. _here: http://bsmt.me/reverse-engineering-the-wunderlist-api/\n.. _readthedocs.: http://wunderpy.readthedocs.org/en/latest/\n\n.. |Build Status| image:: https://travis-ci.org/bsmt/wunderpy.png\n :target: https://travis-ci.org/bsmt/wunderpy\n.. |Version| image:: https://pypip.in/v/wunderpy/badge.png\n :target: https://pypi.python.org/pypi/wunderpy\n.. |Downloads| image:: https://pypip.in/d/wunderpy/badge.png\n :target: https://crate.io/packages/wunderpy/\n\n.. _gitflow: http://nvie.com/posts/a-successful-git-branching-model/", "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/bsmt/wunderpy", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "wunderpy", "package_url": "https://pypi.org/project/wunderpy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/wunderpy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/bsmt/wunderpy" }, "release_url": "https://pypi.org/project/wunderpy/0.2.5/", "requires_dist": null, "requires_python": null, "summary": "An experimental wrapper for the Wunderlist 2 API", "version": "0.2.5" }, "last_serial": 1004297, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "a5ebac29a445682fb47dc3857de071b9", "sha256": "c68a5a526581d85f9b352a784a11098d57f1e18d2dcd769ed2a875ed2bbcc16d" }, "downloads": -1, "filename": "wunderpy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a5ebac29a445682fb47dc3857de071b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5262, "upload_time": "2013-09-29T17:19:37", "url": "https://files.pythonhosted.org/packages/62/e3/19dfdb90f1f5dbb9c1ee43a9346e2d29c8dfdd9c4322d277f839cb6a9ccd/wunderpy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c07d1350a55df7707d7f4b9a2abe1011", "sha256": "cb13a64112d34f0da1e7388425f695e75dffda963939d2f5669a227f2b38324c" }, "downloads": -1, "filename": "wunderpy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "c07d1350a55df7707d7f4b9a2abe1011", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11641, "upload_time": "2013-11-22T23:59:29", "url": "https://files.pythonhosted.org/packages/60/76/30e554281ed5db1a7486e3bb39ef3cd975173f4c254a3ad850f2918abf1e/wunderpy-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "9259e5e3980051c95d35de34bbcf5549", "sha256": "17492f5609a27011a63436cdbfd0879a084cbea1c6640d0ebbea212ef6387789" }, "downloads": -1, "filename": "wunderpy-0.2.2.tar.gz", "has_sig": false, "md5_digest": "9259e5e3980051c95d35de34bbcf5549", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14951, "upload_time": "2014-02-06T18:25:43", "url": "https://files.pythonhosted.org/packages/9a/3d/caff3b7a38486face08322c81ee5b38937185d21854a7519ae4dfd8d6149/wunderpy-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "af09140daf2fb823016768d4d331a3fa", "sha256": "fb6d6195830c0685ff7d207e66a74e8038c97b3eb7a75e647c5fc00a017cb2a7" }, "downloads": -1, "filename": "wunderpy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "af09140daf2fb823016768d4d331a3fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14965, "upload_time": "2014-02-16T16:49:11", "url": "https://files.pythonhosted.org/packages/44/de/3b34385d962676021dc61e8208df6b9ad8533d3267cc24ab7d843dcb662a/wunderpy-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "e2836ec99134da4e7e0cf9109ef3740d", "sha256": "5cd034dbb357ddba9819f2d141b2aafa1f384a736abe24e04d9f8769fa766ad3" }, "downloads": -1, "filename": "wunderpy-0.2.4.tar.gz", "has_sig": false, "md5_digest": "e2836ec99134da4e7e0cf9109ef3740d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14974, "upload_time": "2014-02-16T19:24:49", "url": "https://files.pythonhosted.org/packages/6c/e8/31055ebe274b57ddebe119292642efb5b089f7793f92f1bd14fdea466bd2/wunderpy-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "dfd1f44310ebf8e93975d53715c5f6c7", "sha256": "d092df21113c14c1498164a6ecea5b9912fda90c500abb9e6f2e51ac918f31ad" }, "downloads": -1, "filename": "wunderpy-0.2.5.tar.gz", "has_sig": false, "md5_digest": "dfd1f44310ebf8e93975d53715c5f6c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20634, "upload_time": "2014-02-18T22:15:37", "url": "https://files.pythonhosted.org/packages/a0/41/58682c1be2a39e829e8df15fc6ae09a853274a404ec05ff48ce25508922c/wunderpy-0.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dfd1f44310ebf8e93975d53715c5f6c7", "sha256": "d092df21113c14c1498164a6ecea5b9912fda90c500abb9e6f2e51ac918f31ad" }, "downloads": -1, "filename": "wunderpy-0.2.5.tar.gz", "has_sig": false, "md5_digest": "dfd1f44310ebf8e93975d53715c5f6c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20634, "upload_time": "2014-02-18T22:15:37", "url": "https://files.pythonhosted.org/packages/a0/41/58682c1be2a39e829e8df15fc6ae09a853274a404ec05ff48ce25508922c/wunderpy-0.2.5.tar.gz" } ] }