A lightweight Python interface for annotating things.
Project description
Questioner
A human-friendly Python library for asking people questions on the command-line.
Motivation
Data often needs a human eye. I found myself writing over and over the code to help me investigate data manually on the command-line; questioner is my attempt to make this tool the right way once.
It’s suitable for:
Labelling data manually faster than you can in excel spreadsheets or similar setups
Active learning loops where you and a machine-learnining agent collaborate, reducing the need for training data
Short question-based UIs on the command-line where you need a user’s input to continue
Usage
Python API
You write a simple Python api that asks you things.
import questioner
with questioner.Cli() as c:
is_hurt = c.yes_or_no('Are you hurt')
symptom_set = c.choose_many(
'What symptoms do you have?',
['pain', 'nausea', 'anxiety'],
)
rating = c.give_an_int(
'How would you rate this experience (1-5)', 1, 5
)
choice = c.choose_one('Which do you like best',
['dogs', 'cats', 'horses'])
On the terminal
When run, the experience on the terminal looks like the following:
$ python -m questioner.demo
Are you hurt? (y/n) n
What symptoms do you have?
pain? (y/n) y
nausea? (y/n) n
anxiety? (y/n) n
How would you rate this experience (1-5)
3
Which do you like best
0. dogs
1. cats
2. horses
1
The user can by default skip a question (raising QuestionSkipped) by pressing enter, or quit the entire cli by pressing q (raising QuitCli).
Features
Support for boolean, numeric, single-choice and multiple-choice questions
Uses single-keystroke input where possible
License
MIT licensed.
History
0.1.0 (2019-02-15)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for questioner-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aecfc3ce751a8cd04b2273349e65d19f1502b125d9867e14723cb9021dcb0db |
|
MD5 | b88c7dfefb9e295060caab069d059cd7 |
|
BLAKE2b-256 | dd2405a68eea43eacf57341f8a358f526d176f77d77bd960b7ead16623dcff19 |