Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 17 additions & 18 deletions docs/scenarios/cli.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,12 @@ Command-line Applications

.. image:: /_static/photos/34435690330_11930b5987_k_d.jpg

Command-line applications, also referred to as
`Console Applications <http://en.wikipedia.org/wiki/Console_application>`_,
are computer programs designed to be used from a text interface, such as a
`shell <http://en.wikipedia.org/wiki/Shell_(computing)>`_. Command-line
applications usually accept various inputs as arguments, often referred to as
parameters or sub-commands, as well as options, often referred to as flags or
switches.
Command-line applications, also referred to as `Console Applications
<http://en.wikipedia.org/wiki/Console_application>`_, are computer programs
designed to be used from a text interface, such as a `shell
<http://en.wikipedia.org/wiki/Shell_(computing)>`_. Command-line applications
usually accept various inputs as arguments, often referred to as parameters or
sub-commands, as well as options, often referred to as flags or switches.

Some popular command-line applications include:

Expand All @@ -29,9 +28,9 @@ Click
*****

`click <http://click.pocoo.org/>`_ is a Python package for creating
command-line interfaces in a composable way with as little code as
possible. This “Command-Line Interface Creation Kit” is highly
configurable but comes with good defaults out of the box.
command-line interfaces in a composable way with as little code as possible.
This “Command-Line Interface Creation Kit” is highly configurable but comes
with good defaults out of the box.


******
Expand All @@ -50,8 +49,8 @@ Plac
`Plac <https://pypi.python.org/pypi/plac>`_ is a simple wrapper
over the Python standard library `argparse <http://docs.python.org/2/library/argparse.html>`_,
which hides most of its complexity by using a declarative interface: the
argument parser is inferred rather than written down by imperatively. This
module targets especially unsophisticated users, programmers, sysadmins,
argument parser is inferred rather than written down imperatively. This
module targets unsophisticated users, programmers, sysadmins,
scientists, and in general people writing throw-away scripts for themselves,
who choose to create a command-line interface because it is quick and simple.

Expand All @@ -72,12 +71,12 @@ sub-command to do the work.
Cement
******

`Cement <http://builtoncement.com/>`_ is an advanced CLI Application Framework.
Its goal is to introduce a standard and feature-full platform
for both simple and complex command line applications as well
as support rapid development needs without sacrificing quality.
Cement is flexible, and its use cases span from the simplicity of a micro-framework
to the complexity of a mega-framework.
`Cement <http://builtoncement.com/>`_ is an advanced CLI Application
Framework. Its goal is to introduce a standard and feature-full platform for
both simple and complex command line applications as well as support rapid
development needs without sacrificing quality. Cement is flexible, and its use
cases span from the simplicity of a micro-framework to the complexity of a
mega-framework.


***********
Expand Down
75 changes: 38 additions & 37 deletions docs/scenarios/gui.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ Camelot
*******

`Camelot <http://www.python-camelot.com>`_ provides components for building
applications on top of Python, SQLAlchemy, and Qt. It is inspired by
the Django admin interface.
applications on top of Python, SQLAlchemy, and Qt. It is inspired by the Django
admin interface.

The main resource for information is the website:
http://www.python-camelot.com
Expand All @@ -33,19 +33,17 @@ Cocoa
GTk
***

PyGTK provides Python bindings for the GTK+ toolkit. Like the GTK+ library
itself, it is currently licensed under the GNU LGPL. It is worth noting that
PyGTK only currently supports the Gtk-2.X API (NOT Gtk-3.0). It is currently
recommended that PyGTK not be used for new projects and that existing
applications be ported from PyGTK to PyGObject.
.. note:: PyGTK provides Python bindings for the GTK+ toolkit. However, it has been superseded by PyGObject. PyGTK should not be used for new projects and existing projects should be ported to PyGObject.


********************
PyGObject aka (PyGi)
********************

`PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_ provides Python bindings which gives access to the entire GNOME software platform.
It is fully compatible with GTK+ 3. Here is a tutorial to get started with `Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs.io/en/latest/>`_.
`PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_ provides Python
bindings which gives access to the entire GNOME software platform. It is fully
compatible with GTK+ 3. Here is a tutorial to get started with `Python GTK+ 3
Tutorial <https://python-gtk-3-tutorial.readthedocs.io/en/latest/>`_.

`API Reference <http://lazka.github.io/pgi-docs/>`_

Expand All @@ -56,8 +54,8 @@ Kivy

`Kivy <http://kivy.org>`_ is a Python library for development of multi-touch
enabled media rich applications. The aim is to allow for quick and easy
interaction design and rapid prototyping, while making your code reusable
and deployable.
interaction design and rapid prototyping, while making your code reusable and
deployable.

Kivy is written in Python, based on OpenGL, and supports different input devices
such as: Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch, Apple's products,
Expand Down Expand Up @@ -101,52 +99,55 @@ http://www.riverbankcomputing.co.uk/software/pyqt/download


*****************************
PyjamasDesktop (pyjs Desktop)
Pyjs Desktop (formerly Pyjamas Desktop)
*****************************

PyjamasDesktop is a port of Pyjamas. PyjamasDesktop is application widget set
for desktop and a cross-platform framework. (After release v0.6 PyjamasDesktop
is a part of Pyjamas (Pyjs)). Briefly, it allows the exact same Python web
application source code to be executed as a standalone desktop application.
Pyjs Desktop is a application widget set for desktop and a cross-platform
framework. It allows the exact same Python web application source code to be
executed as a standalone desktop application.

`Python Wiki for PyjamasDesktop <http://wiki.python.org/moin/PyjamasDesktop>`_.

The main website: `pyjs Desktop <http://pyjs.org/>`_.
The main website: `pyjs <http://pyjs.org/>`_.


**
Qt
**

`Qt <http://qt-project.org/>`_ is a cross-platform application framework that
is widely used for developing software with a GUI but can also be used for
non-GUI applications.
`Qt <http://qt-project.org/>`_ is a cross-platform application framework that is
widely used for developing software with a GUI but can also be used for non-GUI
applications.


***********
PySimpleGUI
***********

`PySimpleGUI <https://pysimplegui.readthedocs.io/>`_ is a wrapper for Tkinter and Qt (others on the way). The amount of code required to implement custom GUIs is much shorter using PySimpleGUI than if the same GUI were written directly using Tkinter or Qt. PySimpleGUI code can be "ported" between GUI frameworks by changing import statements.
`PySimpleGUI <https://pysimplegui.readthedocs.io/>`_ is a wrapper for Tkinter
and Qt (others on the way). The amount of code required to implement custom
GUIs is much shorter using PySimpleGUI than if the same GUI were written
directly using Tkinter or Qt. PySimpleGUI code can be "ported" between GUI
frameworks by changing import statements.

.. code-block:: console

$ pip install pysimplegui

PySimpleGUI is contained in a single PySimpleGUI.py file. Should pip installation be impossible, copying the PySimpleGUI.py file into a project's folder is all that's required to import and begin using.
PySimpleGUI is contained in a single PySimpleGUI.py file. Should pip
installation be impossible, copying the PySimpleGUI.py file into a project's
folder is all that's required to import and begin using.


****
Toga
****

`Toga <https://toga.readthedocs.io/en/latest/>`_ is a Python native, OS
native, cross platform GUI toolkit. Toga consists of a library of base
components with a shared interface to simplify platform-agnostic GUI
development.
`Toga <https://toga.readthedocs.io/en/latest/>`_ is a Python native, OS native,
cross platform GUI toolkit. Toga consists of a library of base components with a
shared interface to simplify platform-agnostic GUI development.

Toga is available on mOS, Windows, Linux (GTK), and mobile platforms such
as Android and iOS.
Toga is available on mOS, Windows, Linux (GTK), and mobile platforms such as
Android and iOS.


**
Expand All @@ -161,21 +162,21 @@ Both Tk and Tkinter are available on most Unix platforms, as well as on Windows
and Macintosh systems. Starting with the 8.0 release, Tk offers native look and
feel on all platforms.

There's a good multi-language Tk tutorial with Python examples at
`TkDocs <http://www.tkdocs.com/tutorial/index.html>`_. There's more information
There's a good multi-language Tk tutorial with Python examples at `TkDocs
<http://www.tkdocs.com/tutorial/index.html>`_. There's more information
available on the `Python Wiki <http://wiki.python.org/moin/TkInter>`_.


********
wxPython
********

wxPython is a GUI toolkit for the Python programming language. It allows
Python programmers to create programs with a robust, highly functional
graphical user interface, simply and easily. It is implemented as a Python
extension module (native code) that wraps the popular wxWidgets cross platform
GUI library, which is written in C++.
wxPython is a GUI toolkit for the Python programming language. It allows Python
programmers to create programs with a robust, highly functional graphical user
interface, simply and easily. It is implemented as a Python extension module
(native code) that wraps the popular wxWidgets cross platform GUI library, which
is written in C++.

**Install (Stable) wxPython**
*go to http://www.wxpython.org/download.php#stable and download the appropriate
*go to https://www.wxpython.org/pages/downloads/ and download the appropriate
package for your OS.*
2 changes: 1 addition & 1 deletion docs/writing/structure.rst
Original file line number Diff line number Diff line change
Expand Up @@ -891,4 +891,4 @@ Further Reading
***************

- http://docs.python.org/3/library/
- http://www.diveintopython.net/toc/index.html
- https://www.diveinto.org/python3/