Skip to main content

Concur UI Framework for Python

Project description

Python Concur

Build Status

Concur is a Python UI framework based on synchronous generators.

It is a port of Concur for Purescript, implemented on top of the Dear ImGui C++ UI library.

For introduction to core concepts, see the documentation. A more comprehensive introduction can be found in the Documentation for the Haskell/Purescript versions. This obviously uses Haskell/Purescript syntax and semantics, but many of the concepts will apply to the Python version.

Being an abstraction over ImGui, Concur is best used for debugging, prototyping and data analysis, rather than user-facing applications. ImGui functions can be used directly for any functionality that is not wrapped by Concur. See the PyImGui docs for additional widgets, or ImGui itself.

Installation

The only dependencies are a C++ compiler, GLFW and Python >= 3.6. Concur is available on PyPI and can be installed using pip:

pip install concur

This command should produce a very simple GUI app:

python -c 'import concur as c; c.main("Hello", c.button("Close"), 500, 500)'

Use any of the examples as a starting point for your app.

For Concur development, clone the repo and install it using pip:

git clone https://github.com/potocpav/python-concur.git
cd python-concur
pip install -e.

examples/all.py # Run the examples to verify installation

To build documentation, install pdoc3 (pip install pdoc3) and run the script ./mkdocs.sh.

Project details


Download files

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

Source Distribution

concur-0.6.0.tar.gz (21.6 kB view hashes)

Uploaded Source

Built Distribution

concur-0.6.0-py3-none-any.whl (30.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page