Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Continuous Integration - Ubuntu Continuous Integration - OSX Continuous Integration - Windows Test coverage PyPI - version PyPI - Python Version

thonny-sealed is a plug-in for Thonny IDE to restrict writing to certain blocks of text based on code comments.

This is especially practical for instructional sessions such as classroom exercises. The teacher prepares the exercises and demarcates the “sealed” blocks using special comments (# sealed: on and # sealed: off or, more visually appealing, # sealed: 🡻 and # sealed: 🡹, respectively).

Since we do not want the students to inadvertently introduce new sealed blocks during the exercises, the comment blocks are further sealed by using a hash of the content and their order. To that end, the plug-in provides a command-line utility thonny-seal.

Once the content was properly sealed, the teacher distributes the exercises. The students open them in Thonny with thonny-sealed plug-in installed. The sealed blocks can be copied in the editor, but not modified anymore.

Screenshot of the code view with the sealed content

Installation

In Thonny

The plug-in can be easily installed via Thonny. Go to Tools menu and select Manage plug-ins...:

Tools -> Manage plug-ins...

Search for thonny-sealed on PyPI and click on the link to install it:

Search on PyPI

With pip

In your virtual environment, invoke:

pip install --user thonny-sealed

Usage

Thonny-sealed inspects the blocks of code in your files based on the special comments. The user is prevented from editing the content within the sealed blocks.

  • Mark the start of every block with a comment line # sealed: on. Analogously, mark the end of a sealed block with # sealed: off. Alternatively, you can use the visually more appealing comments # sealed: 🡻 and # sealed: 🡹, respectively.

    Here is an example file:

"""Provide some service."""

# sealed: on
def some_func() -> None:
    """Do something."""
    # sealed: off
  • Call in the terminal (where plug-in has been installed) to “seal” the blocks with the hashes:

thonny-seal --input path/to/the/file.py --write
  • Your file is now sealed and can be loaded in the plug-in. The content of the file is:

"""Provide some service."""

# sealed: on 3a9ff394
def some_func() -> None:
    """Do something."""
    # sealed: off 3a9ff394

Alternatively, you can write the output to the STDOUT if you do not want to overwrite the file by omitting the --write argument:

thonny-sealed --input path/to/the/file.py

Contributing

Feature requests or bug reports are always very, very welcome!

Please see quickly if the issue does not already exist in the issue section and, if not, create a new issue.

You can also contribute in code. Please see CONTRIBUTING.rst.

Versioning

We follow Semantic Versioning. The version X.Y.Z indicates:

  • X is the major version (backward-incompatible),

  • Y is the minor version (backward-compatible), and

  • Z is the patch version (backward-compatible bug fix).

Metadata

Release files for thonny-sealed 1.0.0b2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for thonny-sealed 1.0.0b2
File Size Uploaded
thonny-sealed-1.0.0b2.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for thonny-sealed 1.0.0b2
File Interpreter ABI Platform
thonny_sealed-1.0.0b2-py3-none-any.whl Python 3 none any Details

Total release size: 33.6 kB

Release files / thonny-sealed-1.0.0b2.tar.gz

Download URL thonny-sealed-1.0.0b2.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b1062cbaa23417da81bc2072f7be5cec4322d0a6ba129e9c472a33c5a0c887e2
BLAKE2b-256 checksum
How to use checksums
2d247e47dc0d79010234d8d3c190347716e7b9fe44f79c1e34019fd2f6d779f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

Release files / thonny_sealed-1.0.0b2-py3-none-any.whl

Download URL thonny_sealed-1.0.0b2-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e8b625378462e7e3e695db328cb81c2d128b0b6f3610ee440658e944f9ae32f
BLAKE2b-256 checksum
How to use checksums
5df8ce78a3fc44c74de4ef3964eed6d460f8fd6760f6cdd761a1b878c1ac80ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5

Release history Release notifications | RSS feed

This release

1.0.0b2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page