edq-lms-toolkit


Nameedq-lms-toolkit JSON
Version 1.0.8 PyPI version JSON
download
home_pageNone
SummaryA suite of CLI tools and Python library interfacing with Learning Management Systems (LMSs).
upload_time2025-10-26 23:03:34
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT License Copyright (c) 2023 Eriq Augustine Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords education lms canvas api
VCS
bugtrack_url
requirements edq-utils requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LMS Tools

A suite of tools and a Python interface for interacting with different
[Learning Management Systems (LMSs)](https://en.wikipedia.org/wiki/Learning_management_system).

This project is not affiliated with any LMS developer/provider.

Links:
 - [API Reference](https://edulinq.github.io/lms-toolkit)
 - [Development Notes](docs/development.md)
 - [Installation](#installation)
 - [CLI Configuration](#cli-configuration)
 - [Usage Notes](#usage-notes)
    - [Object Queries](#object-queries)
    - [Output Formats](#output-formats)
    - [Retrieval Operations](#retrieval-operations)
 - [CLI Tools](#cli-tools)
      - [List Course Users](#list-course-users)
      - [Get Course Users](#get-course-users)
      - [List Assignments](#list-assignments)
      - [Get Assignments](#get-assignments)
- [LMS Coverage](#lms-coverage)

## Installation

The project (tools and API) can be installed from PyPi with:
```
pip install edq-lms-toolkit
```

Standard Python requirements are listed in `pyproject.toml`.
The project and Python dependencies can be installed from source with:
```
pip3 install .
```

### Cloning

This repository includes submodules.
To fetch these submodules on clone, add the `--recurse-submodules` flag.
For example:
```sh
git clone --recurse-submodules git@github.com:edulinq/lms-toolkit.git
```

To fetch the submodules after cloning, you can use:
```sh
git submodule update --init --recursive
```

## Usage Notes

### Object Queries

LMS's typically require that you refer to objects using their specified identifier.
Because this may be difficult,
the LMS Toolkit provides a way for users to instead refer to object by other identifying fields.
Fields with this behavior are referred to as "queries".
Unless specified, all inputs into the CLI can be assumed to be queries.

A query can be the LMS identifier, another identifying field, or a combination of the two (referred to as a "label").
The allowed identifying fields varies depending on the object you are referring to,
but is generally straightforward.
For example, a user can also be identified by their email or full name,
while an assignment can be identified by its full name.
Labels combine the identifying field with the LMS id,
and are most commonly used by the LMS Toolkit when outputting information.
For example, a user may be identified by any of the following:

| Query Type    | Query                          |
|---------------|--------------------------------|
| Email         | `sslug@test.edulinq.org`       |
| Name          | `Sammy Slug`                   |
| ID            | `123`                          |
| Label (Email) | `sslug@test.edulinq.org (123)` |
| Label (Name)  | `Sammy Slug (123)`             |

### Output Formats

Many commands can output data in three different formats:
 - Text (`--format text`) -- A human-readable format (usually the default).
 - Table (`--format table`) -- A tab-separated table.
 - JSON (`--format json`) -- A [JSON](https://en.wikipedia.org/wiki/JSON) object/list.

### Retrieval Operations

When retrieving data from the LMS,
this project tends to use two different types of operations:
 - **list** -- List out all the available entries, e.g., list all the users in a course.
 - **get** -- Get a collection of entries by query, e.g., get several users by their email.

## CLI Tools

All CLI tools can be invoked with `-h` / `--help` to see the full usage and all options.

### List Course Users

Course users can be listed using the `lms.cli.courses.users.list` tool.
For example:
```
python3 -m lms.cli.courses.users.list
```

#### Get Course Users

To get information about course users, use the `lms.cli.courses.users.get` tool.
For example:
```
python3 -m lms.cli.courses.users.get sslug@test.edulinq.org
```

Any number of user queries may be specified.

#### List Assignments

Course assignments can be listed using the `lms.cli.courses.assignments.list` tool.
For example:
```
python3 -m lms.cli.courses.assignments.list
```

#### Get Assignments

To get information about course assignments, use the `lms.cli.courses.assignments.get` tool.
For example:
```
python3 -m lms.cli.courses.assignments.get 'Homework 1'
```

Any number of assignment queries may be specified.

## LMS Coverage

The LMS Toolkit is constantly expanding its support with hopes for supporting all major LMSs.

Legend:
 - `+` -- Supported
 - `-` -- Not Yet Supported
 - `x` -- Support Impossible (See Notes)

| Feature                                 | Canvas | Moodle |
|-----------------------------------------|--------|--------|
| lms.cli.courses.get                     | `+`    | `-`    |
| lms.cli.courses.list                    | `+`    | `-`    |
| lms.cli.courses.assignments.get         | `+`    | `-`    |
| lms.cli.courses.assignments.list        | `+`    | `-`    |
| lms.cli.courses.assignments.scores.get  | `+`    | `-`    |
| lms.cli.courses.assignments.scores.list | `+`    | `-`    |
| lms.cli.courses.users.get               | `+`    | `-`    |
| lms.cli.courses.users.list              | `+`    | `-`    |
| lms.cli.courses.users.scores.get        | `+`    | `-`    |
| lms.cli.courses.users.scores.list       | `+`    | `-`    |
| lms.cli.server.identify                 | `+`    | `+`    |

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "edq-lms-toolkit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "education, lms, canvas, api",
    "author": null,
    "author_email": "Eriq Augustine <eriq@edulinq.org>",
    "download_url": "https://files.pythonhosted.org/packages/6e/b7/b6443c4e329d711d30e1a9ca63a238487dd708ef70fef57ed8d24ef9eb7b/edq_lms_toolkit-1.0.8.tar.gz",
    "platform": null,
    "description": "# LMS Tools\n\nA suite of tools and a Python interface for interacting with different\n[Learning Management Systems (LMSs)](https://en.wikipedia.org/wiki/Learning_management_system).\n\nThis project is not affiliated with any LMS developer/provider.\n\nLinks:\n - [API Reference](https://edulinq.github.io/lms-toolkit)\n - [Development Notes](docs/development.md)\n - [Installation](#installation)\n - [CLI Configuration](#cli-configuration)\n - [Usage Notes](#usage-notes)\n    - [Object Queries](#object-queries)\n    - [Output Formats](#output-formats)\n    - [Retrieval Operations](#retrieval-operations)\n - [CLI Tools](#cli-tools)\n      - [List Course Users](#list-course-users)\n      - [Get Course Users](#get-course-users)\n      - [List Assignments](#list-assignments)\n      - [Get Assignments](#get-assignments)\n- [LMS Coverage](#lms-coverage)\n\n## Installation\n\nThe project (tools and API) can be installed from PyPi with:\n```\npip install edq-lms-toolkit\n```\n\nStandard Python requirements are listed in `pyproject.toml`.\nThe project and Python dependencies can be installed from source with:\n```\npip3 install .\n```\n\n### Cloning\n\nThis repository includes submodules.\nTo fetch these submodules on clone, add the `--recurse-submodules` flag.\nFor example:\n```sh\ngit clone --recurse-submodules git@github.com:edulinq/lms-toolkit.git\n```\n\nTo fetch the submodules after cloning, you can use:\n```sh\ngit submodule update --init --recursive\n```\n\n## Usage Notes\n\n### Object Queries\n\nLMS's typically require that you refer to objects using their specified identifier.\nBecause this may be difficult,\nthe LMS Toolkit provides a way for users to instead refer to object by other identifying fields.\nFields with this behavior are referred to as \"queries\".\nUnless specified, all inputs into the CLI can be assumed to be queries.\n\nA query can be the LMS identifier, another identifying field, or a combination of the two (referred to as a \"label\").\nThe allowed identifying fields varies depending on the object you are referring to,\nbut is generally straightforward.\nFor example, a user can also be identified by their email or full name,\nwhile an assignment can be identified by its full name.\nLabels combine the identifying field with the LMS id,\nand are most commonly used by the LMS Toolkit when outputting information.\nFor example, a user may be identified by any of the following:\n\n| Query Type    | Query                          |\n|---------------|--------------------------------|\n| Email         | `sslug@test.edulinq.org`       |\n| Name          | `Sammy Slug`                   |\n| ID            | `123`                          |\n| Label (Email) | `sslug@test.edulinq.org (123)` |\n| Label (Name)  | `Sammy Slug (123)`             |\n\n### Output Formats\n\nMany commands can output data in three different formats:\n - Text (`--format text`) -- A human-readable format (usually the default).\n - Table (`--format table`) -- A tab-separated table.\n - JSON (`--format json`) -- A [JSON](https://en.wikipedia.org/wiki/JSON) object/list.\n\n### Retrieval Operations\n\nWhen retrieving data from the LMS,\nthis project tends to use two different types of operations:\n - **list** -- List out all the available entries, e.g., list all the users in a course.\n - **get** -- Get a collection of entries by query, e.g., get several users by their email.\n\n## CLI Tools\n\nAll CLI tools can be invoked with `-h` / `--help` to see the full usage and all options.\n\n### List Course Users\n\nCourse users can be listed using the `lms.cli.courses.users.list` tool.\nFor example:\n```\npython3 -m lms.cli.courses.users.list\n```\n\n#### Get Course Users\n\nTo get information about course users, use the `lms.cli.courses.users.get` tool.\nFor example:\n```\npython3 -m lms.cli.courses.users.get sslug@test.edulinq.org\n```\n\nAny number of user queries may be specified.\n\n#### List Assignments\n\nCourse assignments can be listed using the `lms.cli.courses.assignments.list` tool.\nFor example:\n```\npython3 -m lms.cli.courses.assignments.list\n```\n\n#### Get Assignments\n\nTo get information about course assignments, use the `lms.cli.courses.assignments.get` tool.\nFor example:\n```\npython3 -m lms.cli.courses.assignments.get 'Homework 1'\n```\n\nAny number of assignment queries may be specified.\n\n## LMS Coverage\n\nThe LMS Toolkit is constantly expanding its support with hopes for supporting all major LMSs.\n\nLegend:\n - `+` -- Supported\n - `-` -- Not Yet Supported\n - `x` -- Support Impossible (See Notes)\n\n| Feature                                 | Canvas | Moodle |\n|-----------------------------------------|--------|--------|\n| lms.cli.courses.get                     | `+`    | `-`    |\n| lms.cli.courses.list                    | `+`    | `-`    |\n| lms.cli.courses.assignments.get         | `+`    | `-`    |\n| lms.cli.courses.assignments.list        | `+`    | `-`    |\n| lms.cli.courses.assignments.scores.get  | `+`    | `-`    |\n| lms.cli.courses.assignments.scores.list | `+`    | `-`    |\n| lms.cli.courses.users.get               | `+`    | `-`    |\n| lms.cli.courses.users.list              | `+`    | `-`    |\n| lms.cli.courses.users.scores.get        | `+`    | `-`    |\n| lms.cli.courses.users.scores.list       | `+`    | `-`    |\n| lms.cli.server.identify                 | `+`    | `+`    |\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2023 Eriq Augustine\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "A suite of CLI tools and Python library interfacing with Learning Management Systems (LMSs).",
    "version": "1.0.8",
    "project_urls": {
        "Homepage": "https://github.com/edulinq/lms-toolkit",
        "Repository": "https://github.com/edulinq/lms-toolkit"
    },
    "split_keywords": [
        "education",
        " lms",
        " canvas",
        " api"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e86c66bf1bb78c8d5edfa368edf8bf6c62169146f9a93f29f0816886474c34b5",
                "md5": "fdf76b33ec1d9ebf47236b71b0b4fc8d",
                "sha256": "cc89226ba2bf8977015543e5ca628168d3c2dc9aac41fd921cc1a7ec79d93fb8"
            },
            "downloads": -1,
            "filename": "edq_lms_toolkit-1.0.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fdf76b33ec1d9ebf47236b71b0b4fc8d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 140748,
            "upload_time": "2025-10-26T23:03:33",
            "upload_time_iso_8601": "2025-10-26T23:03:33.424540Z",
            "url": "https://files.pythonhosted.org/packages/e8/6c/66bf1bb78c8d5edfa368edf8bf6c62169146f9a93f29f0816886474c34b5/edq_lms_toolkit-1.0.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6eb7b6443c4e329d711d30e1a9ca63a238487dd708ef70fef57ed8d24ef9eb7b",
                "md5": "f8e09bdd4e2034d426a3e8349adf0eb6",
                "sha256": "5c4304ffbb072f1b76583fc16651e5fff71a7597cc4fe881947e2f4966d37a71"
            },
            "downloads": -1,
            "filename": "edq_lms_toolkit-1.0.8.tar.gz",
            "has_sig": false,
            "md5_digest": "f8e09bdd4e2034d426a3e8349adf0eb6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 82396,
            "upload_time": "2025-10-26T23:03:34",
            "upload_time_iso_8601": "2025-10-26T23:03:34.535886Z",
            "url": "https://files.pythonhosted.org/packages/6e/b7/b6443c4e329d711d30e1a9ca63a238487dd708ef70fef57ed8d24ef9eb7b/edq_lms_toolkit-1.0.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-26 23:03:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "edulinq",
    "github_project": "lms-toolkit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "edq-utils",
            "specs": [
                [
                    ">=",
                    "0.1.6"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.31.0"
                ]
            ]
        }
    ],
    "lcname": "edq-lms-toolkit"
}
        
Elapsed time: 2.15115s