Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/baggerfast/pyconsolemenu

A simple Python menu in the terminal using curses. Ideal for people who want to quickly make a menu without writing their own complicated crutches. Includes: SelectorMenu, MultipleSelectorMenu, FunctionalMenu.
https://github.com/baggerfast/pyconsolemenu

console-application console-library console-menu curses-library library menu menusystem pip python python-menu

Last synced: 8 days ago
JSON representation

A simple Python menu in the terminal using curses. Ideal for people who want to quickly make a menu without writing their own complicated crutches. Includes: SelectorMenu, MultipleSelectorMenu, FunctionalMenu.

Awesome Lists containing this project

README

        

# PyConsoleMenu

[![CodeFactor](https://www.codefactor.io/repository/github/baggerfast/pyconsolemenu/badge)](https://www.codefactor.io/repository/github/baggerfast/pyconsolemenu)
[![BUILD-STATUS](https://github.com/BaggerFast/PyConsoleMenu/workflows/CI/badge.svg)](https://github.com/BaggerFast/PyConsoleMenu/actions)

A simple Python menu in the terminal using curses.
Ideal for people who want to quickly make a menu without writing their own complicated crutches.
Includes: SelectorMenu, MultipleSelectorMenu, FunctionalMenu.

## Preview
![Selector](https://github.com/BaggerFast/PyConsoleMenu/blob/main/assets/selector.gif?raw=true)

[See other](https://github.com/BaggerFast/PyConsoleMenu/tree/main/assets)

## Installation ๐Ÿ’พ
- using pip
```
$ pip install PyConsoleMenu
```

- using GitHub *(ั‚ั€ะตะฑัƒะตั‚ัั [git](https://git-scm.com/downloads))*
```
$ git clone https://github.com/BaggerFast/PyConsoleMenu
$ cd PyConsoleMenu
$ pip install -r requirements.txt
```

## Additionally โŒจ๏ธ
- Docs in code
- Type hints

## Usage example ๐Ÿ‘จโ€๐Ÿ’ป

```py
from PyConsoleMenu import MultiSelectorMenu, FunctionalOption, SelectorMenu, FunctionalMenu

def multi_selector():
menu = MultiSelectorMenu(['Cheburashka', 'Parrot', 'Snake', 'Gena'], title='MultiSelector', count=3)
ans = menu.input()
print(ans)

def selector():
menu = SelectorMenu(['Cheburashka', 'Parrot', 'Snake', 'Gena'], title='Selector')
ans = menu.input()
print(ans)

def functional():
data = [
FunctionalOption('Cheburashka', lambda: print('I am a Parrot')),
FunctionalOption('Parrot', lambda: print('I am a Cheburashka')),
]
menu = FunctionalMenu(data, title='Functional')
ans = menu.input()
ans()
```
*[See more examples](https://github.com/BaggerFast/PyConsoleMenu/tree/main/examples)*

**Was written in these videos on YouTube ๐Ÿ‘€** \
[Video#1](https://www.youtube.com/watch?v=wgK90PIzlng&t=118s) \
[Stream#1](https://www.youtube.com/watch?v=7eHcjkM-mTs&t=6046s) \
[Stream#2](https://www.youtube.com/watch?v=ppZoCcmPhpc&t=2941s)