{ "info": { "author": "David Jones", "author_email": "David.jone4822@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# pyTeamUp\nPython API wrapper for TeamUp API. In early stages, only has event and calendar objects implemented. \n\n**version**: 0.1.1a\n\n## Features:\n * Pythonic access to TeamUp calendars and events.\n * Simple interface for gathering subcalendars and event containers. \n * Simple interface for creating and deleting events with `Calendar` object\n * `Event` Object features simple interface for updating event properties \n * Batch mode for reducing api calls for updating multiple event properties\n * If pandas is present, Calendar can return events as Series objects and event collections as DataFrame objects\n\n## Example usage\n```python\nfrom pyteamup import Calendar, Event\nfrom datetime import datetime\n\napi_key = 'example api key' # Get your own here: https://teamup.com/api-keys/request\ncalendar_id = 'example calendar id' # goto www.teamup.com to sign up and get your own calendar\n\n# Instantiate the calendar\ncalendar = Calendar(calendar_id, api_key)\n\n# Get Subcalendars\nsubcalendars = calendar.subcalendars\nsubcal = subcalendars[0]\n\n# Easily Create new events\nnew_event_dict = {'title': 'New Event Title',\n 'start_dt': datetime(2018,11,29, 14, 0, 0),\n 'end_dt': datetime(2018, 11, 29, 14, 0, 0),\n 'subcalendar_ids': subcal['id'],\n 'notes': 'This is the description!'}\nnew_event = Calendar.new_event(**new_event_dict, returnas='event')\nprint(new_event.event_id)\n\n# Gather Event Collections (returns a list)\nevent_list = Calendar.get_event_collection()\nevnt = event_list.pop()\n\n# Simple change of the title\nprint(evnt.title)\nevnt.title = 'New Title'\nprint(evnt.title)\n\n# Batch Mode Updates\nevnt.enable_batch_mode()\nevnt.title = 'New Title 2' # Will display a warning that no changes are made until batch_commit() is called\nprint(evnt.title) # Will still print the old title\nprint(evnt.notes)\nevnt.notes = 'New Notes!' # Will display a warning that no changes are made until batch_commit() is called\n\nevnt.batch_commit()\nprint(evnt.title)\nprint(evnt.notes)\n\n# Prevented from Editing Read-Only Attributes\nevnt.event_id = 123 # Will raise an error because attribute is read-only\n\n# Easy Delete and confirm\nevnt.delete()\nprint(evnt.is_deleted) # Will return True\n```\n\n## todo\n * Add support for updating recurring events\n * Build Subcalendar object with update support similar to Event object\n * Add Tests\n * Add more Event endpoints (get history, get auxilliary info)\n * Add More Calendar endpoints (searching for events)\n * Add Access Key Endpoints\n * Add Color Swatch Lookup (create simple assignments for red, blue, green, etc)\n * Add support for password protected calendars\n * Add support for beta features: undo, custom fields, comments, signup\n\n## Installation\nUsing pip Current Version: 0.1.0a1):\n```\npython -m pip install pyTeamUp\n```\n\n\n## Batch Mode\nEvents objects feature a batch mode for setting multiple values with a single api call, reducing your api usage and reducing the liklihood of TeamUp disabling your api key! Simply call `event.enable_batch_mode()` and begin making changes. When satisfied changes can be commited by calling `event.batch_commit()` which will automatically exit batch mode after, or call `event.disable_batch_mode(clear=True)` to discard changes. \n\nSetting event data without enabling batch mode will cause each change to use an api request. \n\n## Questions\nUse issue tracker please :)\n\n## FAQ\nnone\n\n\n## Change Log \n\n**0.1.1a**\n* Fixed versioning\n* Fixed file names, fixed import bug \n\n**0.1.0a2** \n* Added \"get_changed_events\" method to Calendar (credit: vranki)\n\n**0.1.0a1** \n* Initial realease\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/DJones4822/pyTeamUp", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyTeamUp", "package_url": "https://pypi.org/project/pyTeamUp/", "platform": "", "project_url": "https://pypi.org/project/pyTeamUp/", "project_urls": { "Homepage": "https://github.com/DJones4822/pyTeamUp" }, "release_url": "https://pypi.org/project/pyTeamUp/0.1.1a0/", "requires_dist": [ "requests", "datetime", "numpy" ], "requires_python": "", "summary": "Python wrapper for TeamUp Calendar's API", "version": "0.1.1a0" }, "last_serial": 5150704, "releases": { "0.1.0a1": [ { "comment_text": "", "digests": { "md5": "4bd8633144270c3a579a170eebe6457c", "sha256": "90aa9f6ad6eeac636e9c63e7a48819b3beea7090fef9ec56443aa6d962fadb54" }, "downloads": -1, "filename": "pyTeamUp-0.1.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "4bd8633144270c3a579a170eebe6457c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18683, "upload_time": "2018-11-30T19:36:37", "url": "https://files.pythonhosted.org/packages/95/8e/7220f6ed4d94c749a2c1c258d2421497d232b4625fac5274376931b11835/pyTeamUp-0.1.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2238d257f32e87c9346259566e8ab8c8", "sha256": "4ce7911fb3bbee07cfefddd82722b49673055d65fc4f1d6bdb52c3c1d35195df" }, "downloads": -1, "filename": "pyTeamUp-0.1.0a1.tar.gz", "has_sig": false, "md5_digest": "2238d257f32e87c9346259566e8ab8c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17227, "upload_time": "2018-11-30T19:36:39", "url": "https://files.pythonhosted.org/packages/52/36/7be721b64fc794dbe2c25da002951ed143ffb1df78a51041309e47853b46/pyTeamUp-0.1.0a1.tar.gz" } ], "0.1.0a2": [ { "comment_text": "", "digests": { "md5": "042ec07e4aea2da9561026c36e9cff5e", "sha256": "eaf67499bb41c2670b68d6fb6ac866fff303f339216615e25915e5d0bb7d169f" }, "downloads": -1, "filename": "pyTeamUp-0.1.0a2-py3-none-any.whl", "has_sig": false, "md5_digest": "042ec07e4aea2da9561026c36e9cff5e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18936, "upload_time": "2019-04-11T18:00:37", "url": "https://files.pythonhosted.org/packages/fc/86/e441fb4e0870731ae33c44c514a5bffce23750b15fac74fac720690e9788/pyTeamUp-0.1.0a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a915d5eabf713c1e0a0b1934b51aca38", "sha256": "d69ea7a3666298d30eee306b820815574439ce16ef4fe23c2c2de750c130ca23" }, "downloads": -1, "filename": "pyTeamUp-0.1.0a2.tar.gz", "has_sig": false, "md5_digest": "a915d5eabf713c1e0a0b1934b51aca38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17544, "upload_time": "2019-04-11T18:00:39", "url": "https://files.pythonhosted.org/packages/4c/d9/cb80cd6b24d4b4c2a921c4a8fd594a884e8c13a4a5ad2758314a8fdddf4d/pyTeamUp-0.1.0a2.tar.gz" } ], "0.1.1a0": [ { "comment_text": "", "digests": { "md5": "74f133db8ec42833a57b92a662706c09", "sha256": "af2c5e2a65c0a390b766c291199e9b7f8d0985b494d72be9acd64f2435dfa87f" }, "downloads": -1, "filename": "pyTeamUp-0.1.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "74f133db8ec42833a57b92a662706c09", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18994, "upload_time": "2019-04-16T15:41:23", "url": "https://files.pythonhosted.org/packages/11/e8/b2bebcc1047d79ea5a3d6abcaa32e9694686c15ef5c9ce27eafa2cd31c06/pyTeamUp-0.1.1a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8349179b4f87c257f6946991348f5f6e", "sha256": "c1e236e3690fb82104c5bfa0e177183e4eda82f198e51f859a7ed0a289eae621" }, "downloads": -1, "filename": "pyTeamUp-0.1.1a0.tar.gz", "has_sig": false, "md5_digest": "8349179b4f87c257f6946991348f5f6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17638, "upload_time": "2019-04-16T15:41:25", "url": "https://files.pythonhosted.org/packages/7a/69/172b9aac228314990d641ac718b4a4085fa7f20142d34415bfecca45cb59/pyTeamUp-0.1.1a0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "74f133db8ec42833a57b92a662706c09", "sha256": "af2c5e2a65c0a390b766c291199e9b7f8d0985b494d72be9acd64f2435dfa87f" }, "downloads": -1, "filename": "pyTeamUp-0.1.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "74f133db8ec42833a57b92a662706c09", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18994, "upload_time": "2019-04-16T15:41:23", "url": "https://files.pythonhosted.org/packages/11/e8/b2bebcc1047d79ea5a3d6abcaa32e9694686c15ef5c9ce27eafa2cd31c06/pyTeamUp-0.1.1a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8349179b4f87c257f6946991348f5f6e", "sha256": "c1e236e3690fb82104c5bfa0e177183e4eda82f198e51f859a7ed0a289eae621" }, "downloads": -1, "filename": "pyTeamUp-0.1.1a0.tar.gz", "has_sig": false, "md5_digest": "8349179b4f87c257f6946991348f5f6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17638, "upload_time": "2019-04-16T15:41:25", "url": "https://files.pythonhosted.org/packages/7a/69/172b9aac228314990d641ac718b4a4085fa7f20142d34415bfecca45cb59/pyTeamUp-0.1.1a0.tar.gz" } ] }