classroom-extensions


Nameclassroom-extensions JSON
Version 0.0.11 PyPI version JSON
download
home_page
SummaryIPython extensions used for teaching
upload_time2023-10-11 00:33:11
maintainer
docs_urlNone
author
requires_python<4,>=3.7
licenseMIT
keywords ipython extensions teaching
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/psf/black
.. image:: https://coveralls.io/repos/github/assuncaomarcos/classroom_extensions/badge.svg?branch=main
    :target: https://coveralls.io/github/assuncaomarcos/classroom_extensions?branch=main


IPython Extensions for Teaching
===============================

This project provides a set of IPython extensions used for teaching at the
Ecole de Technologie Superieure (ETS) of Montreal. The extensions work on
Google Colab, and Jupyter notebooks with some effort, and provide a set of
magics (e.g., `%%sql`) while customizing existing ones (e.g., `%%javascript`)
to enable lecturers and students to deploy software frameworks quickly and
provide notes with working examples.

The `notebooks` directory contains a set of Google Colab examples of how to
use the IPython extensions.

Installing the Extensions
-------------------------

You can use `pip` to install the extensions:

.. code-block::

    pip3 install classroom-extensions

or:

.. code-block::

    pip3 install git+https://github.com/assuncaomarcos/classroom_extensions.git

Or clone this git repository and load the required extensions from the `classroom_extensions` package.

MariaDB Magics
--------------

Two extensions are available for MariaDB. One extension (`mariadb`) uses some
components of the MariaDB Jupyter Kernel and creates a `%%sql` cell magic that enables
code cells to accept SQL commands that an instance of MariaDB interprets. However,
unlike the MariaDB Jupyter Kernel, this extension does not change the IPython kernel
and its magics, hence enabling one to continue coding in Python, JavaScript, etc.
To ease the creation of notebooks on Google Colab, a second extension (`mariadb_install`)
installs MariaDB and the required libraries to run the first extension without
worrying about setting things up.

Server-Side JavaScript
----------------------

This extension, called `web`, customizes the `%%javascript` cell magic to enable
executing JavaScript code on the server or container hosting the Jupyter Notebook or
on Google Colab. Node.js executes the code provided in a cell whose `--target` argument
receives the value `web`. It also enables starting long-running Node.js server
processes that will listen on given ports without blocking the code cell of
the notebook. In addition to executing JavaScript code on the server side, when run
on the browser, the magic enables printing the output of the browser's console in
the result section of the code cell.

Custom HTML Magic
-----------------

The `web` extension also customizes the `%%html` magic. After rendering the HTML code
inserted in the cell, the extension displays a high-level copy of the browser's
console. This behavior helps in teaching HTML or JavaScript that writes on the console.

PlantUML Magics
---------------

PlantUML is a textual Domain-Specific Language (DSL) used for creating diagrams,
primarily focused on software engineering and system design. It allows you to
express diagrams using a simple and intuitive syntax, which PlantUML transforms into
various types of visual diagrams, such as Unified Modeling Language (UML), sequence,
class, activity, and more.

MongoDB Shell Magics
--------------------

The IPython extension `%%mongo` enables seamless interaction with MongoDB using
the `mongosh` CLI. By simply prefixing a cell with `%%mongo`, users can execute queries
and commands against a MongoDB database directly within their IPython environment
or Colab. The extension leverages the power of the `mongosh` CLI to provide a simple
and familiar MongoDB Shell experience, allowing for data exploration, manipulation,
and administration tasks.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "classroom-extensions",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "<4,>=3.7",
    "maintainer_email": "Marcos Dias de Assuncao <assuncao@acm.org>",
    "keywords": "IPython,extensions,teaching",
    "author": "",
    "author_email": "Marcos Dias de Assuncao <assuncao@acm.org>",
    "download_url": "https://files.pythonhosted.org/packages/41/5e/48de51fd1ca7274483f952ebfcdd7c009d93438d1c753a56ae8dde13bfab/classroom_extensions-0.0.11.tar.gz",
    "platform": null,
    "description": ".. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n.. image:: https://coveralls.io/repos/github/assuncaomarcos/classroom_extensions/badge.svg?branch=main\n    :target: https://coveralls.io/github/assuncaomarcos/classroom_extensions?branch=main\n\n\nIPython Extensions for Teaching\n===============================\n\nThis project provides a set of IPython extensions used for teaching at the\nEcole de Technologie Superieure (ETS) of Montreal. The extensions work on\nGoogle Colab, and Jupyter notebooks with some effort, and provide a set of\nmagics (e.g., `%%sql`) while customizing existing ones (e.g., `%%javascript`)\nto enable lecturers and students to deploy software frameworks quickly and\nprovide notes with working examples.\n\nThe `notebooks` directory contains a set of Google Colab examples of how to\nuse the IPython extensions.\n\nInstalling the Extensions\n-------------------------\n\nYou can use `pip` to install the extensions:\n\n.. code-block::\n\n    pip3 install classroom-extensions\n\nor:\n\n.. code-block::\n\n    pip3 install git+https://github.com/assuncaomarcos/classroom_extensions.git\n\nOr clone this git repository and load the required extensions from the `classroom_extensions` package.\n\nMariaDB Magics\n--------------\n\nTwo extensions are available for MariaDB. One extension (`mariadb`) uses some\ncomponents of the MariaDB Jupyter Kernel and creates a `%%sql` cell magic that enables\ncode cells to accept SQL commands that an instance of MariaDB interprets. However,\nunlike the MariaDB Jupyter Kernel, this extension does not change the IPython kernel\nand its magics, hence enabling one to continue coding in Python, JavaScript, etc.\nTo ease the creation of notebooks on Google Colab, a second extension (`mariadb_install`)\ninstalls MariaDB and the required libraries to run the first extension without\nworrying about setting things up.\n\nServer-Side JavaScript\n----------------------\n\nThis extension, called `web`, customizes the `%%javascript` cell magic to enable\nexecuting JavaScript code on the server or container hosting the Jupyter Notebook or\non Google Colab. Node.js executes the code provided in a cell whose `--target` argument\nreceives the value `web`. It also enables starting long-running Node.js server\nprocesses that will listen on given ports without blocking the code cell of\nthe notebook. In addition to executing JavaScript code on the server side, when run\non the browser, the magic enables printing the output of the browser's console in\nthe result section of the code cell.\n\nCustom HTML Magic\n-----------------\n\nThe `web` extension also customizes the `%%html` magic. After rendering the HTML code\ninserted in the cell, the extension displays a high-level copy of the browser's\nconsole. This behavior helps in teaching HTML or JavaScript that writes on the console.\n\nPlantUML Magics\n---------------\n\nPlantUML is a textual Domain-Specific Language (DSL) used for creating diagrams,\nprimarily focused on software engineering and system design. It allows you to\nexpress diagrams using a simple and intuitive syntax, which PlantUML transforms into\nvarious types of visual diagrams, such as Unified Modeling Language (UML), sequence,\nclass, activity, and more.\n\nMongoDB Shell Magics\n--------------------\n\nThe IPython extension `%%mongo` enables seamless interaction with MongoDB using\nthe `mongosh` CLI. By simply prefixing a cell with `%%mongo`, users can execute queries\nand commands against a MongoDB database directly within their IPython environment\nor Colab. The extension leverages the power of the `mongosh` CLI to provide a simple\nand familiar MongoDB Shell experience, allowing for data exploration, manipulation,\nand administration tasks.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "IPython extensions used for teaching",
    "version": "0.0.11",
    "project_urls": {
        "Bug Reports": "https://github.com/assuncaomarcos/classroom_extensions",
        "Homepage": "https://github.com/assuncaomarcos/classroom_extensions",
        "Say Thanks!": "https://saythanks.io/to/assuncaomarcos",
        "Source": "https://github.com/assuncaomarcos/classroom_extensions"
    },
    "split_keywords": [
        "ipython",
        "extensions",
        "teaching"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8266fefb0eadf5aeb3513f70a3299af2df1b69f8ccac89dde68406c39eed0ff4",
                "md5": "10c546ce2d61c75f0c1bdb4abe891bdd",
                "sha256": "a93b664fc66b552e8a9d4755abdcc9bddda7cf3b8bd7bd8af547d61bfb4c792c"
            },
            "downloads": -1,
            "filename": "classroom_extensions-0.0.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "10c546ce2d61c75f0c1bdb4abe891bdd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.7",
            "size": 21794,
            "upload_time": "2023-10-11T00:33:10",
            "upload_time_iso_8601": "2023-10-11T00:33:10.190687Z",
            "url": "https://files.pythonhosted.org/packages/82/66/fefb0eadf5aeb3513f70a3299af2df1b69f8ccac89dde68406c39eed0ff4/classroom_extensions-0.0.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "415e48de51fd1ca7274483f952ebfcdd7c009d93438d1c753a56ae8dde13bfab",
                "md5": "c603f478dfd7a789f4a462e849caed22",
                "sha256": "36b7784c0b2f5614c5155c79f2be4f767fb49cdd6add1f900500f12e9946f20e"
            },
            "downloads": -1,
            "filename": "classroom_extensions-0.0.11.tar.gz",
            "has_sig": false,
            "md5_digest": "c603f478dfd7a789f4a462e849caed22",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.7",
            "size": 21624,
            "upload_time": "2023-10-11T00:33:11",
            "upload_time_iso_8601": "2023-10-11T00:33:11.516217Z",
            "url": "https://files.pythonhosted.org/packages/41/5e/48de51fd1ca7274483f952ebfcdd7c009d93438d1c753a56ae8dde13bfab/classroom_extensions-0.0.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-11 00:33:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "assuncaomarcos",
    "github_project": "classroom_extensions",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [],
    "lcname": "classroom-extensions"
}
        
Elapsed time: 0.15082s