Skip to main content

Library which uses Canvasapi (see https://canvasapi.readthedocs.io) to provide a CanvasRobot class.

Project description

CanvasRobot

Library which uses Canvasapi (minimally patched to allow more flexible user search) to provide a CanvasRobot class for GUI and commandline use. You can install canvasrobot and urltransform (special edition to translate video urls in Canvas pages) using UV Tip: use brew to install on macOS and winget on Windows. Check if the path is correct, after reopening terminal/Powershell

uv tool install canvasrobot

canvasrobot --help
urltransform --help

Uses

  • CanvasAPI
  • rich
  • rich_click
  • keyring (safe store for API key)
  • pydal (local database)
  • pywebview (HTML reporting)
  • [opt] pymemcache (install to add caching canvas interaction)

Used

In word2quiz library. (Not yet ready for general use...)

Examples

import rich
import canvasrobot as cr

if __name__ == '__main__':

    console = rich.console.Console(width=160, force_terminal=True)

    robot = cr.CanvasRobot(reset_api_keys=False,
                           console=console)

    # robot.update_database_from_canvas()
    robot.create_folder_in_all_courses('Tentamens')



    # result = robot.enroll_in_course("", 4472, 'u752058',
    # 'StudentEnrollment') #  (enrollment={'type': 'StudentEnrollment'}
    
    # user = robot.search_user('u752058')
    # print(user)
    # if not user:
    #   print(robot.errors)

    #COURSE_ID = 9999  # test course
    #result = robot.create_folder_in_course_files(COURSE_ID, 'Tentamens')

    # print(robot.course_metada(COURSE_ID))
    # print(robot.unpublish_folderitems_in_course(COURSE_ID,
    #                                            foldername,
    #                                            files_too=True))

    #course = robot.get_course(COURSE_ID)
    # tab = robot.get_course_tab_by_label(COURSE_ID, "Files")
    # print(tab.visibility)

    # for course_id in (COURSE_ID, COURSE_ID2):
    #     result = robot.create_folder_in_course_files(course_id, 'Tentamens')

    # result = robot.unpublish_subfolder_in_all_courses(foldername,
    #                                                  files_too=True,
    #                                                  check_only=True)
    # if course_ids_missing_folder:
    #    logging.info(f"Courses with missing folder {foldername}: {course_ids_missing_folder}")


    # QUIZZES -----------------------------

    # filename = 'Q_A.docx'
    # robot.create_quizzes_from_document(filename=filename,
    #                                    course_id=COURSE_ID,
    #                                    question_format='Vraag {}. Vertaal:',
    #                                    adjust_fontsize=True,
    #                                    testrun=False
    #                                    )

[PyPI version]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canvasrobot-0.9.0.tar.gz (3.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

canvasrobot-0.9.0-py3-none-any.whl (3.0 MB view details)

Uploaded Python 3

File details

Details for the file canvasrobot-0.9.0.tar.gz.

File metadata

  • Download URL: canvasrobot-0.9.0.tar.gz
  • Upload date:
  • Size: 3.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.18

File hashes

Hashes for canvasrobot-0.9.0.tar.gz
Algorithm Hash digest
SHA256 6ab3d10e897118e0ca4ea6f6b5d1179cbbd5bfc4260ff15058b08960cfb5a054
MD5 4910c21528a95b9a72965cba695ed4c9
BLAKE2b-256 d464e1b6f46052d1c93ac63972588574099c0484871c0f603f82d374266c373d

See more details on using hashes here.

File details

Details for the file canvasrobot-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for canvasrobot-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82ec2f143db7a50d0e51d3d1ea6b3ce60a34e8f1178d1e47d706e2b9f0e156db
MD5 e6acac28c68a63843228d328cc62dda8
BLAKE2b-256 399c78c3fe9a27a0596c29825757ab655838cdf799f0a28d9eaec4cbf7f53033

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page