{ "info": { "author": "Tyson Bailey", "author_email": "tyson@onaclovtech.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Installation\n\n## Test Repo\nThis will be updated with the \"formal\" pypi repo eventually, but for now it's located here.\n\n python3 -m pip install --upgrade --index-url https://test.pypi.org/simple/ canvas-lms-api\n\n## Formal Repo\nThis will be updated with the \"formal\" pypi repo eventually, but for now it's located here.\n\n python3 -m pip install --upgrade canvas-lms-api\n\nAlternatively, you can download the source code and pip install from that:\n\n git clone https://github.gatech.edu/omscs-ta/canvas-lms-api\n cd canvas-lms-api\n pip install .\n\nI would also *strongly* encourage you to use a .ta folder and house a .yml file in your home directory so you can just point to it with any/all scripts.\n\n\n# Usage:\n## Get Canvas Token\nFound here: Canvas > Account > Settings > Approved Integrations: > New Access Token.\n\n## Get Course Number\nThere are really 2 ways. \n1. Use this tool to find all the courses and then use the number below (course is optional so you can set it later)\n````\nfrom canvas_lms_api import Canvas\ngrader = Canvas(base=\"https://gatech.instructure.com\", token=YOUR TOKEN)\ngrader.GetCourses()\n````\n2. Login to canvas\n * Go to your course\n * eg: https://gatech.instructure.com/courses/46234\n * The value for canvas_course is \"46234\"\n\n## Get Assignments Example\n\n````\nfrom canvas_lms_api import Canvas\ngrader = Canvas(base=\"https://gatech.instructure.com\", token=YOUR TOKEN, course=Your Course Number)\ngrader.GetAssignments()\n````\n\n## Get Course Users Example\n````\nfrom canvas_lms_api import Canvas\ngrader = Canvas(base=\"https://gatech.instructure.com\", token=YOUR TOKEN, course=Your Course Number)\ngrader.GetCourseUsers()\n````\n\n## Submit Grades Example\n````\nfrom canvas_lms_api import Canvas\ngrader = Canvas(base=\"https://gatech.instructure.com\", token=YOUR TOKEN, course=Your Course Number)\n# Find your assignment id number see Get Assignments Example\nassignment_id = \"\"\n# Find your student id number see Get Course Users Example\nstudent_id = \"\"\n\n# Set score and comment\nscore = \"75\"\ncomment = \"The student failed to complete the assignment\\nAnd they got thse points wrong\\n(-10) for poor guessing\"\ngrader.SubmitGrade(assignment_id, student_id, score, comment, visibility=False)\n````\n\n## Get StudentID by sortable name\n````\nfrom canvas_lms_api import Canvas\ngrader = Canvas(base=\"https://gatech.instructure.com\", token=YOUR TOKEN, course=Your Course Number)\n# If you have downloaded all submissions from canvas, the students files should be named with their sortable name in the string\n# For your use case you'll need to parse them, but then when you have them you can get the student id from there. This will allow you to use the submit grades function.\nsortable_name = \"deanjimmy\"\ngrader.GetIDBySortableName(sortable_name)\n````\n\n## GetCourseModules\nIf you include \"True\" in GetCourseModules, this should allow you to get all full urls to modules.\n\nI use the following to post links to lectures in my weekly announcements. (Though I have a shared repo for this if you ask for the url).\n\n````\ndef lectures_to_dict(modules):\n res = {}\n for i in modules:\n # The lectures in my course use the form P#L# but you can tweak this to match how you name your sections, or even make a dictionary of your titles.\n m = re.search('(P\\dL\\d).*', i[\"name\"]) \n if m:\n for j in i[\"items\"]:\n if j[\"position\"] == 1:\n print (j)\n res[m.group(1)] = j[\"html_url\"]\n return res\n````\n\n````\ndef replace_content(schedule, post_content, week_number, post_numbers, classID, lectures):\n # This is where we replace \"variable content\" in our weekly announcements.\n post_content = post_content.replace(\"|||HW1RELEASEDATE|||\", schedule[\"hw1_assigned\"] + ' T11:59:59Z')\n post_content = post_content.replace(\"|||HW2RELEASEDATE|||\", schedule[\"hw2_assigned\"] + ' T11:59:59Z')\n....\n new_content = \"\"\n for j in post_content.split('\\n'):\n found = False\n for i in lectures:\n if i in j:\n new_content += \"* \" + i + \"\" # Here is where we plop in the lectures. I just search for the dictionary strings in the weekly post content I have.\n found = True\n if not found:\n new_content += j + \"\\n\"\n post_content = str(new_content) \n return post_content\n````\n\n\n````\n# get_week_announcement(week_number) # This just returns the content of the weeks announcement.\n\n# this is the high level series of functions I'll call to get a post put together, I also post to piazza in later functions not noted here.\ngrader = Canvas(base=_config[\"base\"], token=_config[\"canvas_api\"], course=_config[\"canvas_course\"])\n\n\n# This is the important function!\nstudents_canvas = grader.GetCourseModules(True) # True will get all modules\n\nres = lectures_to_dict (students_canvas)\npost_content = get_week_announcement(week_number)\npost_content = replace_content(_schedule, post_content, week_number, post_numbers, _config[\"piazzaclass\"], res)\n````\n\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.gatech.edu/omscs-ta/canvas_lms_api", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "canvas-lms-api", "package_url": "https://pypi.org/project/canvas-lms-api/", "platform": "", "project_url": "https://pypi.org/project/canvas-lms-api/", "project_urls": { "Homepage": "https://github.gatech.edu/omscs-ta/canvas_lms_api" }, "release_url": "https://pypi.org/project/canvas-lms-api/0.4.1/", "requires_dist": [ "requests" ], "requires_python": ">=3", "summary": "Pip installable canvas API used by GT classes", "version": "0.4.1", "yanked": false, "yanked_reason": null }, "last_serial": 8031705, "releases": { "0.1.3": [ { "comment_text": "", "digests": { "md5": "e2727c3b56e3eecf87c327e4e4159722", "sha256": "f7cd558691d84f50aad2b60fcdb3fc6cabb1d4df5b6d087e0ab87dd2b4943993" }, "downloads": -1, "filename": "canvas_lms_api-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e2727c3b56e3eecf87c327e4e4159722", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 19472, "upload_time": "2019-09-05T23:10:23", "upload_time_iso_8601": "2019-09-05T23:10:23.831276Z", "url": "https://files.pythonhosted.org/packages/44/c9/d8e9b25f4b3c001cef7d2afe1735095c3b74fd6e6c0f5a61d6a5e1ff7b3e/canvas_lms_api-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e802f46cf2c7b2c1e972ef270eca6314", "sha256": "c02836652eeae92612c4d33faef856d6fa1d269410559ecaf2f81b7a790f6fc3" }, "downloads": -1, "filename": "canvas-lms-api-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e802f46cf2c7b2c1e972ef270eca6314", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6783, "upload_time": "2019-09-05T23:10:26", "upload_time_iso_8601": "2019-09-05T23:10:26.038948Z", "url": "https://files.pythonhosted.org/packages/e5/5e/25abbd99608efa8eee81df13e73fb87905f9b39c152f05400d380b7e3b64/canvas-lms-api-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "fbfca99e49a2c63032b9e122a5c9fb67", "sha256": "714df39a55a9fad6fed28b5864371d6f7b107e6538ad644d3d69e16a54e745f1" }, "downloads": -1, "filename": "canvas_lms_api-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "fbfca99e49a2c63032b9e122a5c9fb67", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 19981, "upload_time": "2019-09-11T00:56:15", "upload_time_iso_8601": "2019-09-11T00:56:15.495102Z", "url": "https://files.pythonhosted.org/packages/42/35/91a83d586d5be79a9d64c235c8632743cbda52778fc911f85914bef93e77/canvas_lms_api-0.1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "11ddb59f2a5f57c81ff1a603125d171c", "sha256": "c85d81bcb7e11351e012b982ffc74ff269e9a5ba2d42515c5a8c0c9dc7d9fe3f" }, "downloads": -1, "filename": "canvas-lms-api-0.1.5.tar.gz", "has_sig": false, "md5_digest": "11ddb59f2a5f57c81ff1a603125d171c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7064, "upload_time": "2019-09-11T00:56:17", "upload_time_iso_8601": "2019-09-11T00:56:17.882781Z", "url": "https://files.pythonhosted.org/packages/62/d8/f4b53c9eb01b47271d025d4e877e88647783a61fa8e412fa3fef931f3276/canvas-lms-api-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "12ea34d818124182010a3c9928f51f08", "sha256": "0d63443793dd011e7dc9a05455a734e6f607d55a657addbedc41ba82933601a9" }, "downloads": -1, "filename": "canvas_lms_api-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "12ea34d818124182010a3c9928f51f08", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 20242, "upload_time": "2019-10-09T12:34:24", "upload_time_iso_8601": "2019-10-09T12:34:24.175937Z", "url": "https://files.pythonhosted.org/packages/e1/81/0f61295d78c060189300aba2d6bb97d471afad082011b18e941de4f68099/canvas_lms_api-0.1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "72e795c823c033f52440e58ec408dc0b", "sha256": "0d50f6d8668dbc02ac1adfb614f2583e9762b6fe67c988e2e8298a8ac7fb071d" }, "downloads": -1, "filename": "canvas-lms-api-0.1.6.tar.gz", "has_sig": false, "md5_digest": "72e795c823c033f52440e58ec408dc0b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7289, "upload_time": "2019-10-09T12:34:25", "upload_time_iso_8601": "2019-10-09T12:34:25.462774Z", "url": "https://files.pythonhosted.org/packages/73/da/8a3f48b0106baf9250f6c1e573503f55f5506ece051ea570363c78bdf446/canvas-lms-api-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c0fabb9143eac900516defee5a78171c", "sha256": "801e1acc3f206e627b279cf85a50174e3c43f5512bd178252b55d5a4afda294a" }, "downloads": -1, "filename": "canvas_lms_api-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c0fabb9143eac900516defee5a78171c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 20238, "upload_time": "2019-10-29T13:43:41", "upload_time_iso_8601": "2019-10-29T13:43:41.067842Z", "url": "https://files.pythonhosted.org/packages/03/db/b3ac64fd00c3b33cb58a95b13f067eb84c776643ec408382da8a49167aac/canvas_lms_api-0.1.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5ddc0d65ca32ac6eb5b8b216faa4c8ef", "sha256": "300597905bee89943f6cd41adc84e425cd033b38b0581368dcb98def6fe0749a" }, "downloads": -1, "filename": "canvas-lms-api-0.1.7.tar.gz", "has_sig": false, "md5_digest": "5ddc0d65ca32ac6eb5b8b216faa4c8ef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7285, "upload_time": "2019-10-29T13:43:42", "upload_time_iso_8601": "2019-10-29T13:43:42.544923Z", "url": "https://files.pythonhosted.org/packages/c9/e1/165978010b484129e445fd50245730bbb9b678190ce5286e1a9d668720b9/canvas-lms-api-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "19e36def973f35ea330a7b6df0c03fd4", "sha256": "1d2ba185b07bf5824e7469ea0e72a57ff9df44c9adc41028d74866ca485f3d36" }, "downloads": -1, "filename": "canvas_lms_api-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "19e36def973f35ea330a7b6df0c03fd4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 20961, "upload_time": "2020-01-31T18:00:56", "upload_time_iso_8601": "2020-01-31T18:00:56.981144Z", "url": "https://files.pythonhosted.org/packages/e0/8e/7742af22c20d2c15d7270cdd5cdd5c6e60e60aa35790ff5b7e0428a24676/canvas_lms_api-0.1.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e68815e56d2867060540248eea94aa62", "sha256": "e11832e9fccc4583130620e6c640b06c093adad300a7b7dd8da462a9aea02a7b" }, "downloads": -1, "filename": "canvas-lms-api-0.1.8.tar.gz", "has_sig": false, "md5_digest": "e68815e56d2867060540248eea94aa62", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7899, "upload_time": "2020-01-31T18:00:58", "upload_time_iso_8601": "2020-01-31T18:00:58.594363Z", "url": "https://files.pythonhosted.org/packages/96/9d/0a1cd35b0bab7d4cfd5ffb2dc39943e2562b6a570f243f8ecb9f00064ceb/canvas-lms-api-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "e8ad93e2aa59d5cc420c76c822ff85e3", "sha256": "fca621c334899f99404b8ef882a6c78327840974a80f7fa0267d0d1ebc7d08f4" }, "downloads": -1, "filename": "canvas_lms_api-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "e8ad93e2aa59d5cc420c76c822ff85e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 21444, "upload_time": "2020-01-31T19:20:00", "upload_time_iso_8601": "2020-01-31T19:20:00.425156Z", "url": "https://files.pythonhosted.org/packages/62/f8/47b297cb7595c694fc447d7de6e60033b0c7bb6da7536cee21e098e3b5ed/canvas_lms_api-0.1.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fe6f6cc62b51e85067cb6181052cb68e", "sha256": "87481c06d22e4072689249b24eece8addabccc2a80f0bed07386aa887b2571c6" }, "downloads": -1, "filename": "canvas-lms-api-0.1.9.tar.gz", "has_sig": false, "md5_digest": "fe6f6cc62b51e85067cb6181052cb68e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8398, "upload_time": "2020-01-31T19:20:02", "upload_time_iso_8601": "2020-01-31T19:20:02.531417Z", "url": "https://files.pythonhosted.org/packages/bb/ea/bd8884fa9325a6c63714f75cca833880081e7b93cde3a32b6dfc2a942180/canvas-lms-api-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c6ab6dab7acb22a4248e96c3969bb5e5", "sha256": "f3d8a29b2ca5c407ba1f4b75cf4e590e4ed5771e0b3b0f085a5fd07fce0cf87b" }, "downloads": -1, "filename": "canvas_lms_api-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6ab6dab7acb22a4248e96c3969bb5e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 21563, "upload_time": "2020-01-31T19:47:16", "upload_time_iso_8601": "2020-01-31T19:47:16.801483Z", "url": "https://files.pythonhosted.org/packages/5a/28/cb60edbcc7a480395f8fbfe8d472acfe460f44719ae71be54abce3c8fd1e/canvas_lms_api-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "913cce068ac3e1d827c3bbeb0fa0a5ea", "sha256": "5599b424e31b9328bfd9624aff9edcd424ec9e4bc6e6cd1e50d46f0a84d541f4" }, "downloads": -1, "filename": "canvas-lms-api-0.2.0.tar.gz", "has_sig": false, "md5_digest": "913cce068ac3e1d827c3bbeb0fa0a5ea", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8505, "upload_time": "2020-01-31T19:47:18", "upload_time_iso_8601": "2020-01-31T19:47:18.414206Z", "url": "https://files.pythonhosted.org/packages/2b/cc/0d4766896d3f6ce8d05b1e8f54325d8cd8114b35713effe731ca8049f5b3/canvas-lms-api-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "279e96a0e5d9be38be481c7107f0dd5d", "sha256": "9c3f0fe35f0efb64fa753686045f955ba5caf11e4e5c102a6f28ec14abb0eb86" }, "downloads": -1, "filename": "canvas_lms_api-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "279e96a0e5d9be38be481c7107f0dd5d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 21539, "upload_time": "2020-01-31T22:25:31", "upload_time_iso_8601": "2020-01-31T22:25:31.769883Z", "url": "https://files.pythonhosted.org/packages/9e/e1/7997e3909f6c712d27c4736f8c8ce7db24c0678f9e4892b9cc66fce32510/canvas_lms_api-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0fdf5de7c0acd83bf3dfb9f58322f359", "sha256": "7be29572cd7376aad4788b00da6d0f8e823d3869b94d9580cbd20fc825810c89" }, "downloads": -1, "filename": "canvas-lms-api-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0fdf5de7c0acd83bf3dfb9f58322f359", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8484, "upload_time": "2020-01-31T22:25:33", "upload_time_iso_8601": "2020-01-31T22:25:33.396541Z", "url": "https://files.pythonhosted.org/packages/40/b4/0592eb115db4f9855c70282c4c377248c0a43a42e507f0bfbe23bdef6436/canvas-lms-api-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "f1788dba952b4e4d1317bcefb54b19d0", "sha256": "46e8366b6b9c0dadc3f0951b44432ea98fe1d7e84e2d41dcdadab9f02101559e" }, "downloads": -1, "filename": "canvas_lms_api-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f1788dba952b4e4d1317bcefb54b19d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 21608, "upload_time": "2020-05-28T21:34:54", "upload_time_iso_8601": "2020-05-28T21:34:54.243835Z", "url": "https://files.pythonhosted.org/packages/24/0d/a6e2befb794203dadfd680671dc04e1340e30687492d250f469f7d05729b/canvas_lms_api-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fb475b84640b10efbf068161b0ac0fb7", "sha256": "135d28f9e741e56725b1c09d4da87dd7675c04d2fb062358e96d806130ce3664" }, "downloads": -1, "filename": "canvas-lms-api-0.3.0.tar.gz", "has_sig": false, "md5_digest": "fb475b84640b10efbf068161b0ac0fb7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8578, "upload_time": "2020-05-28T21:34:55", "upload_time_iso_8601": "2020-05-28T21:34:55.234786Z", "url": "https://files.pythonhosted.org/packages/a6/85/f4ba849fd739d14fb2e27c52dc393c3df9751c6d680778d14a6bb5eeaf2c/canvas-lms-api-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "2ccfcf19804ec6ed821766634603b0a1", "sha256": "87416539e3764807c1b2dc63180a52228063feb69299b9e0a8a22c9a70f76972" }, "downloads": -1, "filename": "canvas_lms_api-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2ccfcf19804ec6ed821766634603b0a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 22548, "upload_time": "2020-08-24T22:58:05", "upload_time_iso_8601": "2020-08-24T22:58:05.546540Z", "url": "https://files.pythonhosted.org/packages/cb/2b/e178c3ca430fd8e19b013366cf613f28aa73bc584ee038b70381b74d1b7a/canvas_lms_api-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "16cc4747c35bf64db09d29db45f73628", "sha256": "8a11fc9403faa2083126413dd42eff1ace1e9b5d75cff3c98c4a2a4ff6707522" }, "downloads": -1, "filename": "canvas-lms-api-0.4.0.tar.gz", "has_sig": false, "md5_digest": "16cc4747c35bf64db09d29db45f73628", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 9677, "upload_time": "2020-08-24T22:58:07", "upload_time_iso_8601": "2020-08-24T22:58:07.002939Z", "url": "https://files.pythonhosted.org/packages/b1/91/834de6f0f13862906dc65aff6ae601d2990f3c5f976517f2aa775e6420af/canvas-lms-api-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "85bcb4fa41e18074ec196c2e6df20dd9", "sha256": "dedeb9664d457bf8023732bdf782132e1613a7adf14137da16b50e95f33f15fb" }, "downloads": -1, "filename": "canvas_lms_api-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "85bcb4fa41e18074ec196c2e6df20dd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 22577, "upload_time": "2020-08-24T22:59:48", "upload_time_iso_8601": "2020-08-24T22:59:48.340895Z", "url": "https://files.pythonhosted.org/packages/1b/17/29dededc4e5eaa7ccfadfc0a99dda0648e4e1640aad551a87601b6ad4cff/canvas_lms_api-0.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b75c06d2b94efa283af8964672a61c32", "sha256": "ee9e3ff0f160e1a984cc9baa855a337d6a75b89e55201b4883123170926ec177" }, "downloads": -1, "filename": "canvas-lms-api-0.4.1.tar.gz", "has_sig": false, "md5_digest": "b75c06d2b94efa283af8964672a61c32", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 9688, "upload_time": "2020-08-24T22:59:49", "upload_time_iso_8601": "2020-08-24T22:59:49.604987Z", "url": "https://files.pythonhosted.org/packages/c4/12/d6a10540c501b42275cdbd5714591c4699f070b3c278d4678372a042e35f/canvas-lms-api-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "85bcb4fa41e18074ec196c2e6df20dd9", "sha256": "dedeb9664d457bf8023732bdf782132e1613a7adf14137da16b50e95f33f15fb" }, "downloads": -1, "filename": "canvas_lms_api-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "85bcb4fa41e18074ec196c2e6df20dd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 22577, "upload_time": "2020-08-24T22:59:48", "upload_time_iso_8601": "2020-08-24T22:59:48.340895Z", "url": "https://files.pythonhosted.org/packages/1b/17/29dededc4e5eaa7ccfadfc0a99dda0648e4e1640aad551a87601b6ad4cff/canvas_lms_api-0.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b75c06d2b94efa283af8964672a61c32", "sha256": "ee9e3ff0f160e1a984cc9baa855a337d6a75b89e55201b4883123170926ec177" }, "downloads": -1, "filename": "canvas-lms-api-0.4.1.tar.gz", "has_sig": false, "md5_digest": "b75c06d2b94efa283af8964672a61c32", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 9688, "upload_time": "2020-08-24T22:59:49", "upload_time_iso_8601": "2020-08-24T22:59:49.604987Z", "url": "https://files.pythonhosted.org/packages/c4/12/d6a10540c501b42275cdbd5714591c4699f070b3c278d4678372a042e35f/canvas-lms-api-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }