The quick and easy way to add versatile graphical interfaces with networking capabilities to your Python programs.

Overview

Python version of the Atlas toolkit

Run on Repl.it About online demonstrations

Version 0.13 license: MIT Documentation

Version

The Atlas toolkit is available for:

         Language Online demonstrations Repo. #1 #2 #3 Stars
Java Java Run on Replit Framagit GitHub GitLab Stars for atlas-java
Node.js Node.js Run on Replit Framagit GitHub GitLab Stars for atlas-node
Perl Perl Run on Replit Framagit GitHub GitLab Stars for atlas-perl
Python Python Run on Replit Framagit GitHub GitLab Stars
Ruby Ruby Run on Replit Framagit GitHub GitLab Stars for 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.


A GUI with Python in a couple of minutes

Click the animation to see a screencast of programming this "Hello, World!" program with Python in a matter of minutes:

Building a GUI in with Python in less then 10 minutes

Same video on Peertube: https://q37.info/s/qfcng9j4.

Source code:


Greetings displayed here!
""" def ac_connect(dom): dom.inner("", BODY) dom.focus("Input") def ac_submit(dom): name = dom.get_value("Input") dom.begin("Output", f"
Hello, {name}!
") dom.set_value("Input", "") dom.focus("Input") CALLBACKS = { "": ac_connect, "Submit": ac_submit } atlastk.launch(CALLBACKS)">
import atlastk
 
BODY = """

   

Greetings displayed here!
""" def ac_connect(dom): dom.inner("", BODY) dom.focus("Input") def ac_submit(dom): name = dom.get_value("Input") dom.begin("Output", f"
Hello, {name}!
"
) dom.set_value("Input", "") dom.focus("Input") CALLBACKS = { "": ac_connect, "Submit": ac_submit } atlastk.launch(CALLBACKS)

See for yourself right now - it's quick and easy!

Online, with nothing to install

To run above "Hello, World!" program directly in your browser, as seen in corresponding video, follow this link: https://replit.com/@AtlasTK/hello-python.

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 About online demonstrations.

To see more examples, like the following TodoMVC, simply:

  • go here (also accessible with the Run on Repl.it 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.

TodoMVC

With Python on your computer

# You can replace 'github.com' with 'framagit.org' or 'gitlab.com'.
# DON'T copy/paste this and above line!
git clone http://github.com/epeios-q37/atlas-python
cd atlas-python/examples
python Hello/

Android devices

Programs made with the Atlas toolkit work perfectly on your Android devices (smartphone or tablet) using the Termux application. Simply install (pkg intall …) the git and python packages. That's all!

Jupyter notebooks

When using the Atlas toolkit in a Jupyter notebook, the GUI is embedded in the notebook, as shown here:

Jupyter notebook examples can be found in the tutorials directory.

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,
  • Notes: note taking program,
  • TodoMVC: TodoMVC,
  • Hangman: Hangman game,
  • 15-puzzle: 15-puzzle game,
  • Contacts: a basic address book,
  • Widgets: some widgets handled with the Atlas toolkit,
  • Chatrooms : same as above Chatroom, but with several rooms,
  • PigGame: Pig game for one or two players,
  • Reversi: Reversi game for one or two players,
  • MatPlotLib : the Atlas toolkit displaying some graphics made with matplotlib; this example needs, of course, the matplotlib package to be installed…

Other examples are detailed in the next section.

Except for the ErgoJr, GPIO and RGB applications, which are detailed in the next section, to run an example, launch, from within the repository, python main.py, and select the example you want to run.
You can also directly launch, from within the examples directory, python / (don't forget the final /), where is the name of the example (Blank, Chatroom…).

The Stars application is an example where the Atlas toolkit is used to control a Pygame based application. Of course, Pygame needs to be installed.

The tutorials directory contains some Jupyter notebooks about the Atlas toolkit.

Raspberry Pi/ODROID-C2

If the applications does not work on your Raspberry Pi, please see this issue: https://github.com/epeios-q37/atlas-python/issues/1

The GPIO and RGB applications are designed to be used on a Raspberry Pi or a ODROID-C2.

Here is how the WebGPIO application looks like:

WebGPIO interface

For the Raspberry Pi, the RPi.GPIO Python module have to be installed (this is probably already the case).

For the ODROID-C2, The Python version of WiringPi must be installed, and the application has to be launched, from within the examples directory, with sudo (sudo python GPIO/ or sudo python RGB/).

The ErgoJr application is experimental and to control a Poppy Ergo Jr robot.

The RGB application is dedicated to the control of a RGB led, and the GPIO (aka WebGPIO) application allows to control the basic pins. Click below picture to see a YouTube video on how they work (same video on PeerTube: https://q37.info/s/49pbmwv9):

RGB video

You might also like...
A quick GUI script to pseudo-anonymize patient videos for use in the GRK

grk_patient_sorter A quick GUI script to pseudo-anonymize patient videos for use in the GRK. Source directory — the highest level folder that will be

 Example GUI for Command line capable machine learning programs
Example GUI for Command line capable machine learning programs

Example GUI for Command line capable machine learning programs This is an example GUI made in PysimpleGUI and Tkinter, mainly for machine learning pro

Win32mica: a simple module to add the Mica effect on legacy python windows.
Win32mica: a simple module to add the Mica effect on legacy python windows.

Win32mica (aka PyMica): A simple module to add the Mica effect on legacy python windows The aim of this project is to apply the Mica effect on python

Key Cast - Cast your key presses and mouse clicks on the screen, while casting your favorite application on the screen. Better than the rest.
Key Cast - Cast your key presses and mouse clicks on the screen, while casting your favorite application on the screen. Better than the rest.

Key Cast Screen cast your keyboard and mouse clicks in style Project Homepage » View Demo · Report Bug · Request Feature Table of Contents Introductio

EZ Presence - A GUI-Python app which makes it easy to set a custom Discord Rich Presence. (BETA)
EZ Presence - A GUI-Python app which makes it easy to set a custom Discord Rich Presence. (BETA)

EZ Presence EZ Presence is a GUI-Python app which makes it easy to set any custom Discord Rich Presence. Using the App How to Run Since the app is in

Build GUI for your Python program with JavaScript, HTML, and CSS
Build GUI for your Python program with JavaScript, HTML, and CSS

https://pywebview.flowrl.com pywebview is a lightweight cross-platform wrapper around a webview component that allows to display HTML content in its o

Small Python scripts to take screenshot from a KaiOS/FFOS device and to mirror the screen of your phone.

This version of kaiscr is written by tkinter and can run in windows(use kailive-tk.py). "kailive-tk-speed.py" is speed optimization version. The sourc

A simple yet powerful TUI framework for your Python (3.7+) applications
A simple yet powerful TUI framework for your Python (3.7+) applications

A simple yet powerful TUI framework for your Python (3.7+) applications

Create shortcuts on Windows to your Python, EXE, Batch files or any other file using a GUI made with PySimpleGUI
Create shortcuts on Windows to your Python, EXE, Batch files or any other file using a GUI made with PySimpleGUI

shor Windows Shortcut Creation Create Windows Shortcuts to your python programs and any other file easily using this application created using PySimpl

Comments
  • console (not only)

    console (not only)

    congratulations and thank you for this project

    I wondered if an access to the user console would be possible, as the only debug tool I see at present is to fire an alert()

    also : disable-element() blocks silently when [erroneously] called on a div, could possibly be a no-op or yield a warning

    opened by chdelfosse 9
  • Deadlock demonstration and solution (using your GPIO example)

    Deadlock demonstration and solution (using your GPIO example)

    Hello,

    Firstly I have to say many thanks for this really useful code!

    ...had a hard time with deadlocks with code derived from GPIO example. I think having a demonstration (see my fork's GPIOexample_DeadlockDemonstration branch), as well as a solution (see my fork's master branch).

    Please take a look at the multi line commit messages (of the commits in the two branches). Feel free to ask any further questions. We could also talk over phone in French, if you wish to do so.

    Un bonjour de Bretagne, Bernt Weber

    opened by splashelec 6
  • License question

    License question

    Thanks for your work on Atlastk, it's pretty cool.

    I notice that Atlastk is released under the MIT license, but the public server and its code are under the AGPLv3. I interpret the AGPLv3 as requiring the source code of any program running on the server must be made available to users. That interpretation means that any Atlas app code that runs on, and is served by, the AGPLv3 server must make its source code available to users.

    Can you clarify on whether your interpretation of the AGPLv3 is different from mine, and if you intend to require that all apps using the Atlas toolkit must be made open source by virtue of being served by an AGPLv3 server?

    opened by alexdelorenzo 3
Owner
Claude SIMON
Software engineer.
Claude SIMON
Criando interfaces gráficas com Python e Qt 6 (PyQt6)

Criando interfaces gráficas com Python e Qt 6 (PyQt6) Qt O Qt é um framework para criação de interfaces gráficas multiplataforma, atualmente ele é des

Renato Cruz 1 Jun 7, 2022
Dress up your code with a beautiful graphical user interface !

Dresscode Dress up your code with a beautiful graphical user interface ! This project is part of the Pyrustic Ecosystem. Look powered by the cyberpunk

null 20 Aug 24, 2022
A simple one-line quick entry GUI for your Obsidian daily notes in markdown format.

Quick-note-entry-for-Obsidian A simple one-line quick entry GUI for your Obsidian daily notes in markdown format. Log your day quickly with this simpl

Adrian Papineau 22 Oct 4, 2022
HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities.

HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities. Looking for Artwork This project is looking for an Icon an

null 8 Dec 3, 2022
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 4, 2023
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies

(This library is available under a free and permissive license however, if you Enjoy Dear PyGui please consider becoming a Sponsor) Dear PyGui is a si

Jonathan Hoffstadt 9.4k Jan 7, 2023
A graphical user interface calendar with python

GUI-Calendar A graphical user interface calendar with python In this project I used tkinter module If you dont have tkinter module you can install it

Arone Sadegh 1 Dec 18, 2021
Py address book gui - An address book with graphical user interface developed with Python Tkinter

py_address_book_gui An address book with graphical user interface developed with

Milton 4 Feb 1, 2022
Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp .

ZolaCabs Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp. < Logs > username : zoho password : zoho [ Deve

Mastermind 9 Nov 18, 2021
Custom GUI for your Blender add-ons using Dear ImGui

Dear Imgui for Blender Use the infamous Dear ImGui library directly in your Blender scripts! This means custom GUI drawing in your operators: Normally

Elie Michel 83 Dec 25, 2022