https://github.com/offerrall/functogui
Easily turn your Python functions into GUI applications
https://github.com/offerrall/functogui
gui kivy python typer ui
Last synced: about 1 year ago
JSON representation
Easily turn your Python functions into GUI applications
- Host: GitHub
- URL: https://github.com/offerrall/functogui
- Owner: offerrall
- License: mit
- Created: 2025-01-03T15:34:24.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-25T14:54:50.000Z (over 1 year ago)
- Last Synced: 2025-04-24T03:45:27.971Z (about 1 year ago)
- Topics: gui, kivy, python, typer, ui
- Language: Python
- Homepage:
- Size: 1.36 MB
- Stars: 69
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README

**Easily turn your Python functions into GUI applications.**
Perfect for internal tools, quick testing, or prototypes. FuncToGUI is cross-platform, updates in real-time, and requires no additional UI code. Implemented in 1500 lines of code!
FuncToGUI is built on top of [Kivy](https://kivy.org/) and [pyler](https://github.com/kivy/plyer) for file handling.
## Quick Start
Normal function (no data limits):
```python
from functogui import App
def is_even(number: int = 4) -> bool:
return number % 2 == 0
App(is_even)
```
Function with UI types (limits the input data):
```python
from functogui import App, intUi, intReturn
from typing import Annotated
def time_to_seconds(hours: Annotated[int, intUi(max_value=24)] = 1,
minutes: Annotated[int, intUi(max_value=59)] = 30
) -> int:
return (hours * 3600) + (minutes * 60)
App(time_to_seconds)
```
## Key Features
- **Function-to-GUI Transformation**: Turn your function parameters into a GUI interface with minimal setup.
- **No Complex Configuration**: Just define your function with the desired [`ui_types`](./functogui/core/ui_types.py) and let FuncToGUI generate the window.
- **Supports Various Parameter Types**:
- `intUi`
- `boolUi`
- `strUi`
- `passwordUi`
- `listUi`
- `selectedUi`
- `floatUi`
- `fileUi`
- `folderUi`
- `colorUi`
- `timeUi`
- `dateUi`
- **Supports Various Return Types**:
- `boolReturn`
- `intReturn`
- `strReturn`
- `floatReturn`
- `imageFileReturn`
- **Error Handling**: FuncToGUI treats the exceptions already for you.
## Installation
```bash
git clone https://github.com/offerrall/FuncToGUI
cd FuncToGUI
pip install .
```
## How to Use
This library is designed to be as simple as possible. You only need look at the examples to understand how to use it.
- [Examples](./examples)