Skip to main content

pick an option in the terminal with a simple GUI

Project description

pick [![Build Status](https://travis-ci.org/wong2/pick.svg?branch=master)](https://travis-ci.org/wong2/pick) [![PyPI](https://img.shields.io/pypi/v/pick.svg)](https://pypi-hypernode.com/pypi/pick)
====

**pick** is a small python library to help you create curses based interactive selection
list in the terminal. See it in action:

![Demo](example/basic.gif?raw=true)


### Installation

$ pip install pick

### Usage

**pick** comes with a simple api:

>>> from pick import pick

>>> title = 'Please choose your favorite programming language: '
>>> options = ['Java', 'JavaScript', 'Python', 'PHP', 'C++', 'Erlang', 'Haskell']
>>> option, index = pick(options, title)
>>> print option
>>> print index

**outputs**

>>> C++
>>> 4

**pick** multiselect example:

>>> from pick import pick

>>> title = 'Please choose your favorite programming language (press SPACE to mark, ENTER to continue): '
>>> options = ['Java', 'JavaScript', 'Python', 'PHP', 'C++', 'Erlang', 'Haskell']
>>> selected = pick(options, title, multi_select=True, min_selection_count=1)
>>> print selected

**outputs**

>>> [('Java', 0), ('C++', 4)]


#### Options

* `options`: a list of options to choose from
* `title`: (optional) a title above options list
* `indicator`: (optional) custom the selection indicator, defaults to *
* `default_index`: (optional) set this if the default selected option is not the first one
* `multi_select`: (optional), if set to True its possible to select multiple items by hitting SPACE
* `min_selection_count`: (optional) for multi select feature to dictate a minimum of selected items before continuing

#### Register custom handlers

sometimes you may need to register custom handlers to specific keys, you can use the `register_custom_handler` API:

>>> from pick import Picker
>>> title, options = 'Title', ['Option1', 'Option2']
>>> picker = Picker(options, title)
>>> def go_back(picker):
... return None, -1
>>> picker.register_custom_handler(ord('h'), go_back)
>>> option, index = picker.start()

* the custom handler will be called with the `picker` instance as it's parameter.
* the custom handler should either return a two element tuple, or None.
* if None is returned, the picker would continue to run, otherwise the picker will stop and return the tuple.

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

pick-0.6.3.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

pick-0.6.3-py2.py3-none-any.whl (5.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pick-0.6.3.tar.gz.

File metadata

  • Download URL: pick-0.6.3.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pick-0.6.3.tar.gz
Algorithm Hash digest
SHA256 176ca8bfb3f0601281e88f85eb28a8d1c0c2ad76f1a554ffbe939eee593ec9aa
MD5 5d7d36388f0d277940869d1152e42489
BLAKE2b-256 10565673bc0c9e768b78bee16ed4534938bd72a0cc8ca0510dab8b303d70b577

See more details on using hashes here.

File details

Details for the file pick-0.6.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pick-0.6.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d3b2385eed5b89b6387f6353663631fa53c8a9577a26eaa7dbe2df8bc1cc8fb6
MD5 595435a9782b7297d084f8c28d4d76b0
BLAKE2b-256 2a739caa6235f668b32213b21ea95c839da53008d709ed94b91505fe83d4233f

See more details on using hashes here.

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