Simple web based Python 3 IDE with Brython and Github integration
Project description
Brython-Server
Brython-Server is a Flask-based web application focused on providing a simple Python 3 development environment where source files are hosted on Github.
You can try Brython-Server to get a feel for how it works.
Brief Instructions
When the page loads, you can begin writing Python 3 code right away. To execute your code, press the GO! button.
To load Python 3 source code hosted on Github, you must should first log in to Github with the login button. Github will ask you to authorize Brython-Server in the next page.
To load your source, paste the Github URL of your source file or repository
into the text control at the top of the page. Press <Enter>
or the load
button to retrieve the source from Github.
You may make any changes you want to the source code and re-run it. If you would like to save your work back to Github, just press the commit button.
Turtle
Brython-Server supports the Python turtle to the extent that it is supported by the underlying Brython interpreter. Its usage is simple, but slightly non-standard. For example:
from brythonserver import turtle
t = turtle.Turtle()
t.forward(100)
t.right(90)
t.forward(100)
turtle.done()
Ggame
Brython-Server includes built-in support for the Ggame graphics engine. For example, a trivial program from the Ggame documentation:
from ggame import App, ImageAsset, Sprite
# Create a displayed object at 100,100 using an image asset
Sprite(ImageAsset("bunny.png"), (100, 100))
# Create the app, with a default stage
APP = App()
# Run the app
APP.run()
Deployment
The best way to install Brython-Server is with pip and virtualenv. Create and activate your virtual environment then install Brython-Server with:
pip install brython-server
Requirements
The essential requirements for Brython-Server are met when you install with pip. In addition, you will need to install memcached and, for a production install, gunicorn.
Brython-Server will use Brython as its Python interpreter and and Ggame as its graphics engine. The correct versions of each will automatically be used when you install Brython-Server using pip.
Environment
A full Brython-Server installation that is capable of interacting with Github should have several environment variables set for production use:
- githubtoken (an optional Github personal access token)
- githubsecret (Github oauth secret)
- githubclientid (Github oauth client id)
- flasksecret (A Flask application secret key)
- sitetitle (A string that will be displayed as the "name of the site")
- sitecontact (An e-mail address to use for contact)
- siteurl (A full URL to the website)
Note: to generate a unique, random Flask secret key, enter the following in a Python console:
>>> import os
>>> os.urandom(24)
Use the string that results as the value of the flasksecret environment variable.
Execution
To run the server in stand-alone development mode (never in production!) execute (for example) from the Python 3 shell:
Python 3.7.0 (default, Oct 4 2018, 21:19:26)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from brythonserver.main import APP
Update Brython scripts to verion 3.7.3
>>> APP.run(host="0.0.0.0", port=3000)
* Serving Flask app "brythonserver.main" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:3000/ (Press CTRL+C to quit)
To run the server in a production environment, use gunicorn:
$ gunicorn -b 0.0.0.0:3000 -w 4 brythonserver.main:APP
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for brython_server-2.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3886919e7f469149e7b988c7d89858871b3dafaae00684e3ca27b3e459455b21 |
|
MD5 | bafec2f05d68eb83c77d928b970526d3 |
|
BLAKE2b-256 | 52a77419b79b66c1722b69b5cb7530ba9ed201af42c5679f4831ae42ce827e0e |