Python version of the Atlas toolkit
The Atlas toolkit is available for:
Language GitHub repository Online démonstrations Java https://github.com/epeios-q37/atlas-java Node.js https://github.com/epeios-q37/atlas-node Perl https://github.com/epeios-q37/atlas-perl Python https://github.com/epeios-q37/atlas-python Ruby https://github.com/epeios-q37/atlas-ruby
WebGPIO (Raspberry Pi/ODROID-C2): the WebGPIO application, with which you can control the Raspberry Pi/ODROID-C2 (and probably other similar devices) GPIOs with your smartphone, is described in the Raspberry Pi/ODROID-C2 below section.
Quick example: the "Hello, World!" program
Source code
import atlastk
body = """
<fieldset>
<input id="input" maxlength="20" placeholder="Enter a name here" type="text"
data-xdh-onevent="Submit" value="World"/>
<div style="display: flex; justify-content: space-around; margin: 5px auto auto auto;">
<button data-xdh-onevent="Submit">Submit</button>
<button data-xdh-onevent="Clear">Clear</button>
</div>
</fieldset>
"""
def ac_connect(dom):
dom.inner("", body)
dom.focus("input")
def ac_submit(dom):
dom.alert("Hello, " + dom.get_value("input") + "!")
dom.focus("input")
def ac_clear(dom):
if ( dom.confirm("Are you sure?") ):
dom.set_value("input", "")
dom.focus("input")
callbacks = {
"": ac_connect, # The action label for a new connection is an empty string.
"Submit": ac_submit,
"Clear": ac_clear,
}
atlastk.launch(callbacks)
Result
See for yourself right now - it's quick and easy!
Online, with nothing to install
Thanks to Replit, an online IDE, you can write and run programs using the Atlas toolkit directly in your web browser, without having to install Python on your computer .
To see some examples, like the following TodoMVC application or the above "Hello, World!" program, simply:
- go here (also accessible with the button at the top of this page),
- click on the green
run
button, - choose the demonstration to launch,
- open the then displayed URL in a browser (should be clickable),
- … and, as you wish, run your own tests directly in your browser, by modifying the code of the examples or by writing your own code.
With Python on your computer
git clone http://github.com/epeios-q37/atlas-python
cd atlas-python/examples
python Hello/
Your turn
If you want to take your code to the next level, from CLI to GUI, then you found the right toolkit.
With the Atlas toolkit, you transform your programs in modern web applications (SPA) without the usual hassles:
- no JavaScript to write; only HTML(/CSS) and Python,
- no front and back end architecture to bother with,
- no web server (Apache, Nginx…) to install,
- no need to deploy your application on a remote server,
- no incoming port to open on your internet box or routeur.
The Atlas toolkit is written in pure Python, with no native code and no dependencies, allowing the Atlas toolkit to be used on all environments where Python is available.
And simply by running them on a local computer connected to internet, applications using the Atlas toolkit will be accessible from the entire internet on laptops, smartphones, tablets…
The Atlas toolkit is particularly well suited for educational purposes, to write modern programming exercises, i.e. with a true graphical interface instead of the usual outdated textual one. More about this can be found here.
Python is much more powerful then Excel macros to automate (boring) tasks, and you can also work with PDF, Word, Google files…. And with the Atlas toolkit, you have much more possibilities then with VBA forms. There are some examples here.
There is also a stub to for this library at address https://q37.info/s/zzcn3wnx.
Content of the repository
The atlastk
directory contains the Python source code of the Atlas toolkit, which is the directory you have to reference in PYTHONPATH
in order to use the Atlas toolkit in your own program, unless you have installed the atlastk package with pip install atlastk
.
In the examples
directory, you will found following examples:
Blank
: very basic example,Hello
: "Hello, World!",Chatroom
: multi-user chatroom,ReversiTXT
: Reversi game withX
andO
for token,Notes
: note taking program,TodoMVC
: TodoMVC,Hangman
: Hangman game,15-puzzle
: 15-puzzle game,Contacts
: a basic address book,ReversiIMG
: Reversi game with more evolved graphics,ReversiXSL
: Reversi game using XSL,Widgets
: some widgets handled with the Atlas toolkit,Chatrooms
: same as aboveChatroom
, but with several rooms,MatPlotLib
: the Atlas toolkit displaying some graphics made with matplotlib; this example needs, of course, the matplotlib package to be installed…
Other examples are