Skip to main content

weblablib

documentation Version Python versions build status Coverage Status

weblablib is a library for creating WebLab-Deusto remote laboratories.

A remote laboratory is a software and hardware system that enables students to access real laboratories through the Internet. For example, a student can be learning how to program a robot by writing code in a computer at home and sending it to a remote laboratory, where the student can see how the program behaves in a real environment.

Creating a remote laboratory may imply many layers, such as authentication, authorization, scheduling, etc., so Remote Laboratory Management Systems (RLMS) were created to make the common layers of remote laboatories. WebLab-Deusto is an Open Source RLMS, and it has multiple ways (see the docs) to create a remote laboratory (in different programming languages, etc.).

In the case of Python, with the popular Flask microframework, weblablib is the wrapper used to create unmanaged labs. Unmanaged labs is a term used in WebLab-Deusto to refer laboratories where the authors develop the full stack (server, client, deployment), as opposed to managed labs.

If you are familiar with Flask and with Web development, and want to be able to customize everything but not need to implement all the layers of authentication, administration, etc., this library would be very useful. Furthermore, this library allows you to develop remote laboratories for many environments (from regular computers with Linux to systems such as Raspberry Pi). And it integrates very well with other Flask components such as Flask-SocketIO, Flask-SQLAlchemy for databases or Flask-Assets.

Documentation

Read the documentation: https://developers.labsland.com/weblablib/

Installation

Simply use pip:

  pip install weblablib

Simple usage

from flask import Flask, url_for
from weblablib import WebLab, weblab_user, requires_active

app = Flask(__name__)
app.config.update({
    'SECRET_KEY': 'secret', # MUST CHANGE
    'WEBLAB_USERNAME': 'weblabdeusto',
    'WEBLAB_PASSWORD': 'password',
})

weblab = WebLab(app)

@weblab.on_start
def on_start(client_data, server_data):
    # ...
    print("Starting user")

@weblab.on_dispose
def on_dispose():
    # ...
    print("Ending user")

@weblab.initial_url
def initial_url():
    return url_for('index')

@app.route('/')
@requires_active
def index():
    return "Hello, {}".format(weblab_user.username)

if __name__ == '__main__':
    app.run(debug=True)

Advance examples

You may find here the following examples:

  • simple: basic usage, all in one file.
  • advanced: more advanced usage, with separation of files, tasks, more complex session management
  • complete: based on advanced, but using WebSockets with Flask-SocketIO, internationalization with Flask-Babel and minimified static files with Flask-Assets.

There is another example called quickstart, which is the one used in the documentation, which is something in between simple and advanced.

Download files

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

Source Distribution

weblablib-0.5.8.tar.gz (48.8 kB view details)

Uploaded Source

Built Distribution

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

weblablib-0.5.8-py2.py3-none-any.whl (53.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file weblablib-0.5.8.tar.gz.

File metadata

  • Download URL: weblablib-0.5.8.tar.gz
  • Upload date:
  • Size: 48.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for weblablib-0.5.8.tar.gz
Algorithm Hash digest
SHA256 a191d703e9903eb61959ec7159f34b51f0d677a668f2e5a93495208b625842e2
MD5 a7d68bec26ce52474dab4d50c6fd347a
BLAKE2b-256 562140ce45b25690f8828a24845444d0a129cb9598ce90ef88c23718bf828aab

See more details on using hashes here.

File details

Details for the file weblablib-0.5.8-py2.py3-none-any.whl.

File metadata

  • Download URL: weblablib-0.5.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 53.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.17

File hashes

Hashes for weblablib-0.5.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b57355e1c4548aff8aa5c9daf0ba2fc22ce828b93e335c92e6e95244fdb01ba7
MD5 3dba115a6cbfee64f635c48d32adf068
BLAKE2b-256 52baa8a77385a2bf8b92cd6106319cf24f7d81cdf7139623a38da4e8cae8b1d6

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.9

2 files

This release

0.5.8 This release

2 files

0.5.7

3 files

0.5.6

3 files

0.5.5

3 files

0.5.4

3 files

0.5.3

3 files

0.5.2

3 files

0.5.1

3 files

0.5.0

2 files

0.4.2

1 file

0.4.1

1 file

0.4

2 files

0.3

2 files

0.2

1 file

Supported by

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