{
"info": {
"author": "",
"author_email": "",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 1 - Planning",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3.6",
"Topic :: Software Development :: Libraries :: Application Frameworks",
"Topic :: Software Development :: User Interfaces"
],
"description": "whaaaaat?\n=========\n\nA collection of common interactive command line user interfaces.\n\nTable of Contents\n-----------------\n\n1. `Documentation <#documentation>`__\n\n 1. `Installation <#installation>`__\n 2. `Examples <#examples>`__\n 3. `Quickstart <#quickstart>`__\n 4. `Question Types <#types>`__\n 5. `Question Properties <#properties>`__\n 6. `User Interfaces and Styles <#styles>`__\n\n2. `Windows Platform <#windows>`__\n3. `Support <#support>`__\n4. `Contributing <#contributing>`__\n5. `Acknowledgments <#acknowledgements>`__\n6. `License <#license>`__\n\nGoal and Philosophy\n-------------------\n\n**``whaaaaat``** strives to be an easily embeddable and beautiful\ncommand line interface for `Python `__.\n**``whaaaaat``** wants to make it easy for existing Inquirer.js users to\nwrite immersive command line applications in Python. We are convinced\nthat its feature-set is the most complete for building immersive CLI\napplications. We also hope that **``whaaaaat``** proves itself useful to\nPython users.\n\n**``whaaaaat``** should ease the process of - providing *error feedback*\n- *asking questions* - *parsing* input - *validating* answers - managing\n*hierarchical prompts*\n\n**Note:** **``whaaaaat``** provides the user interface and the inquiry\nsession flow. > If you're searching for a scaffolding utility, then\ncheck out `banana `__, the\nwhaaaaat's sister utility.\n\nDocumentation\n-------------\n\nInstallation\n~~~~~~~~~~~~\n\nLike most Python packages whaaaaat is available on `PyPi `__.\nSimply use pip to install the whaaaaat package\n\n.. code:: shell\n\n pip install whaaaaat\n\nQuickstart\n~~~~~~~~~~\n\nLike Inquirer.js, using inquirer is structured into two simple steps:\n\n- you define a **list of questions** and hand them to **prompt**\n- promt returns a **list of answers**\n\n.. code:: python\n\n from __future__ import print_function, unicode_literals\n from whaaaaat import prompt, print_json\n\n questions = [\n {\n 'type': 'input',\n 'name': 'first_name',\n 'message': 'What\\'s your first name',\n }\n ]\n\n answers = prompt(questions)\n print_json(answers) # use the answers as input for your app\n\nA good starting point from here is probably the examples section.\n\nExamples\n~~~~~~~~\n\nMost of the examples intend to demonstrate a single question type or\nfeature:\n\n- bottom-bar.py\n- expand.py\n- list.py\n- password.py\n- when.py\n- checkbox.py\n- hierarchical.py\n- pizza.py - demonstrate using different question types\n- editor.py\n- input.py\n- rawlist.py\n\nQuestion Types\n~~~~~~~~~~~~~~\n\n``questions`` is a list of questions. Each question has a type.\n\nList - ``{type: 'list'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``, ``choices``\\ [, ``default``,\n``filter``] properties. (Note that default must be the choice ``index``\nin the array or a choice ``value``)\n\n.. figure:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/input-prompt.png\n :alt: List prompt\n\n List prompt\n\n--------------\n\nRaw List - ``{type: 'rawlist'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``, ``choices``\\ [, ``default``,\n``filter``] properties. (Note that default must the choice ``index`` in\nthe array)\n\n.. figure:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/raw-list.png\n :alt: Raw list prompt\n\n Raw list prompt\n\n--------------\n\nExpand - ``{type: 'expand'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``, ``choices``\\ [, ``default``]\nproperties. (Note that default must be the choice ``index`` in the\narray. If ``default`` key not provided, then ``help`` will be used as\ndefault choice)\n\nNote that the ``choices`` object will take an extra parameter called\n``key`` for the ``expand`` prompt. This parameter must be a single\n(lowercased) character. The ``h`` option is added by the prompt and\nshouldn't be defined by the user.\n\nSee ``examples/expand.py`` for a running example.\n\n|Expand prompt closed| |Expand prompt expanded|\n\n--------------\n\nCheckbox - ``{type: 'checkbox'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``, ``choices``\\ [, ``filter``,\n``validate``, ``default``] properties. ``default`` is expected to be an\nArray of the checked choices value.\n\nChoices marked as ``{checked: true}`` will be checked by default.\n\nChoices whose property ``disabled`` is truthy will be unselectable. If\n``disabled`` is a string, then the string will be outputted next to the\ndisabled choice, otherwise it'll default to ``\"Disabled\"``. The\n``disabled`` property can also be a synchronous function receiving the\ncurrent answers as argument and returning a boolean or a string.\n\n.. figure:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/checkbox-prompt.png\n :alt: Checkbox prompt\n\n Checkbox prompt\n\n--------------\n\nConfirm - ``{type: 'confirm'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``\\ [, ``default``] properties.\n``default`` is expected to be a boolean if used.\n\n.. figure:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/confirm-prompt.png\n :alt: Confirm prompt\n\n Confirm prompt\n\n--------------\n\nInput - ``{type: 'input'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``\\ [, ``default``, ``filter``,\n``validate``] properties.\n\n.. figure:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/input-prompt.png\n :alt: Input prompt\n\n Input prompt\n\n--------------\n\nPassword - ``{type: 'password'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``\\ [, ``default``, ``filter``,\n``validate``] properties.\n\n.. figure:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/password-prompt.png\n :alt: Password prompt\n\n Password prompt\n\n--------------\n\nEditor - ``{type: 'editor'}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nTake ``type``, ``name``, ``message``\\ [, ``default``, ``filter``,\n``validate``] properties\n\nLaunches an instance of the users preferred editor on a temporary file.\nOnce the user exits their editor, the contents of the temporary file are\nread in as the result. The editor to use is determined by reading the\n$VISUAL or $EDITOR environment variables. If neither of those are\npresent, notepad (on Windows) or vim (Linux or Mac) is used.\n\nQuestion Properties\n~~~~~~~~~~~~~~~~~~~\n\nA question is a dictionary containing question related values:\n\n- type: (String) Type of the prompt. Defaults: input - Possible values:\n input, confirm, list, rawlist, expand, checkbox, password, editor\n- name: (String) The name to use when storing the answer in the answers\n hash. If the name contains periods, it will define a path in the\n answers hash.\n- message: (String\\|Function) The question to print. If defined as a\n function, the first parameter will be the current inquirer session\n answers.\n- default: (String\\|Number\\|Array\\|Function) Default value(s) to use if\n nothing is entered, or a function that returns the default value(s).\n If defined as a function, the first parameter will be the current\n inquirer session answers.\n- choices: (Array\\|Function) Choices array or a function returning a\n choices array. If defined as a function, the first parameter will be\n the current inquirer session answers. Array values can be simple\n strings, or objects containing a name (to display in list), a value\n (to save in the answers hash) and a short (to display after\n selection) properties. The choices array can also contain a\n Separator.\n- validate: (Function) Receive the user input and should return true if\n the value is valid, and an error message (String) otherwise. If false\n is returned, a default error message is provided.\n- filter: (Function) Receive the user input and return the filtered\n value to be used inside the program. The value returned will be added\n to the Answers hash.\n- when: (Function, Boolean) Receive the current user answers hash and\n should return true or false depending on whether or not this question\n should be asked. The value can also be a simple boolean.\n- pageSize: (Number) Change the number of lines that will be rendered\n when using list, rawList, expand or checkbox.\n\nUser Interfaces and Styles\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTODO\n\nWindows Platform\n----------------\n\n**``whaaaaat``** is build on prompt\\_toolkit which is cross platform,\nand everything that you build on top should run fine on both Unix and\nWindows systems. On Windows, it uses a different event loop\n(WaitForMultipleObjects instead of select), and another input and output\nsystem. (Win32 APIs instead of pseudo-terminals and VT100.)\n\nIt's worth noting that the implementation is a \"best effort of what is\npossible\". Both Unix and Windows terminals have their limitations. But\nin general, the Unix experience will still be a little better.\n\nFor Windows, it's recommended to use either cmder or conemu.\n\nSupport\n-------\n\nMost of the questions are probably related to using a question type or\nfeature. Please lookup and study the appropriate examples.\n\nIssue on Github TODO link\n\nFor many issues like for example common Python programming issues\nstackoverflow might be a good place to search for an answer. TODO link\n\nVisit the finklabs slack channel for announcements and news. TODO link\n\nContributing\n------------\n\nUnit test Unit test are written using pytest. Please add a unit test for\nevery new feature or bug fix.\n\nDocumentation Add documentation for every API change. Feel free to send\ntypo fixes and better docs!\n\nWe're looking to offer good support for multiple prompts and\nenvironments. If you want to help, we'd like to keep a list of testers\nfor each terminal/OS so we can contact you and get feedback before\nrelease. Let us know if you want to be added to the list.\n\nAcknowledgments\n---------------\n\nMany thanks to our friends at Inquirer.js. We think they did a great job\ndeveloping the tooling to support the nodejs technology.\n\nLicense\n-------\n\nCopyright (c) 2016-2017 Mark Fink (twitter: @markfink) Licensed under\nthe MIT license.\n\n.. |Expand prompt closed| image:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/expand-prompt-1.png\n.. |Expand prompt expanded| image:: https://raw.githubusercontent.com/finklabs/whaaaaat/develop/docs/images/expand-prompt-2.png\n\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/finklabs/whaaaaat/",
"keywords": "",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "whaaaaat",
"package_url": "https://pypi.org/project/whaaaaat/",
"platform": "",
"project_url": "https://pypi.org/project/whaaaaat/",
"project_urls": {
"Homepage": "https://github.com/finklabs/whaaaaat/"
},
"release_url": "https://pypi.org/project/whaaaaat/0.5.2/",
"requires_dist": null,
"requires_python": "",
"summary": "Collection of common interactive command line user interfaces, based on Inquirer.js",
"version": "0.5.2"
},
"last_serial": 2745429,
"releases": {
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "0219ca610ca039f5568ed9ee662355fb",
"sha256": "ff3c03424b435bb6858a7c1657655c013c81e21a86db894f3ae850cb0c6d68eb"
},
"downloads": -1,
"filename": "whaaaaat-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "0219ca610ca039f5568ed9ee662355fb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16173,
"upload_time": "2017-01-06T16:09:40",
"url": "https://files.pythonhosted.org/packages/c7/7c/0e998a55929b845ae26f8f7ce926ae9528e24c8637c7b850b318c17915fb/whaaaaat-0.2.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "08152dfe9ce959b302323c8be42d9f1e",
"sha256": "8850fe3ef72e7265de0d44ce66b93c938e5bd9d29d77c73f8f97e74c78932898"
},
"downloads": -1,
"filename": "whaaaaat-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "08152dfe9ce959b302323c8be42d9f1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12947,
"upload_time": "2017-01-08T17:04:51",
"url": "https://files.pythonhosted.org/packages/c0/2e/ec627bc66b68f6a44d17c63ffafa1fc17461fa542523e6722b5752634c40/whaaaaat-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "2fce03d343fd203eb92471e2fe29a8ce",
"sha256": "66f745ff77c403aa54f3aea3e161fad12f3d1d8a9921873c1836df6e2353b0aa"
},
"downloads": -1,
"filename": "whaaaaat-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "2fce03d343fd203eb92471e2fe29a8ce",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13017,
"upload_time": "2017-01-15T07:52:33",
"url": "https://files.pythonhosted.org/packages/67/a6/e5e6bfdc3018caafcc051891623d61adfa2c246d1cc2785be90d39b16df8/whaaaaat-0.3.1.tar.gz"
}
],
"0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "9780a0d34e1f8df37ddc76220305e91c",
"sha256": "47b99abb7e9913c8ef745061ea64cf2d6e24e8168fbf6d86c275a02afabb1cb7"
},
"downloads": -1,
"filename": "whaaaaat-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "9780a0d34e1f8df37ddc76220305e91c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13047,
"upload_time": "2017-01-15T07:59:58",
"url": "https://files.pythonhosted.org/packages/f3/e2/73188e9cb840fac9e5400194a5c3250ed95d15b3e02f682842ed319cece5/whaaaaat-0.3.2.tar.gz"
}
],
"0.3.3": [
{
"comment_text": "",
"digests": {
"md5": "bc0b08f0212e83640c43901121df3e59",
"sha256": "9248feff0e5a3207294818f4e1ab8bbf97b5cfbd54982a2742e54b3ffe06d3e2"
},
"downloads": -1,
"filename": "whaaaaat-0.3.3.tar.gz",
"has_sig": false,
"md5_digest": "bc0b08f0212e83640c43901121df3e59",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13007,
"upload_time": "2017-01-15T08:35:09",
"url": "https://files.pythonhosted.org/packages/13/18/b23b2009bdb80e476f7a96fb2bf764d9f143fbd81fc7da2d5ad5ebe73dec/whaaaaat-0.3.3.tar.gz"
}
],
"0.3.4": [
{
"comment_text": "",
"digests": {
"md5": "f37cfa1acaca4e4da52923b91472fb44",
"sha256": "7542f98d365bfc2dab4566113c4d0bde1280932d1d90d8755a9c68f501d667b7"
},
"downloads": -1,
"filename": "whaaaaat-0.3.4.tar.gz",
"has_sig": false,
"md5_digest": "f37cfa1acaca4e4da52923b91472fb44",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13033,
"upload_time": "2017-01-15T13:06:18",
"url": "https://files.pythonhosted.org/packages/a1/ab/95e667302c9355ea2ceee21113828eaa5562567879114fbb155a67cc7b42/whaaaaat-0.3.4.tar.gz"
}
],
"0.3.5": [
{
"comment_text": "",
"digests": {
"md5": "6a5cc64d733f500df33c9c9a251b0eb8",
"sha256": "e5d3939e89e92bf5e1ece13ccbacc8eb9393af8fe58879f0f83c4f06a6ca6d8d"
},
"downloads": -1,
"filename": "whaaaaat-0.3.5.tar.gz",
"has_sig": false,
"md5_digest": "6a5cc64d733f500df33c9c9a251b0eb8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13923,
"upload_time": "2017-01-15T13:42:42",
"url": "https://files.pythonhosted.org/packages/66/f3/0c93907f95e3fe6447eda0882c0ef6b12f2f68108fc5163f6d1628ae2661/whaaaaat-0.3.5.tar.gz"
}
],
"0.3.6": [
{
"comment_text": "",
"digests": {
"md5": "1a0489e7aa9bde8238b1b295deffe36a",
"sha256": "136fc12a4f8257cdd1c1445cdd536fb79e98bd4d5f549850b9b5d1001139010c"
},
"downloads": -1,
"filename": "whaaaaat-0.3.6.tar.gz",
"has_sig": false,
"md5_digest": "1a0489e7aa9bde8238b1b295deffe36a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14288,
"upload_time": "2017-01-15T17:06:08",
"url": "https://files.pythonhosted.org/packages/a5/0b/7e7241511fbd138a5eaaed590b9f1d309df48b2bf9e741521a517b7d4cd8/whaaaaat-0.3.6.tar.gz"
}
],
"0.3.7": [
{
"comment_text": "",
"digests": {
"md5": "1a979fcb2d65551751d0c77dd4a12302",
"sha256": "a1a4dfe5d84be40899c855f203389833dd09d0dbace900bbeade3eb2f3b59e8f"
},
"downloads": -1,
"filename": "whaaaaat-0.3.7.tar.gz",
"has_sig": false,
"md5_digest": "1a979fcb2d65551751d0c77dd4a12302",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13421,
"upload_time": "2017-01-21T17:44:25",
"url": "https://files.pythonhosted.org/packages/82/ce/094bc340160776191ee59dc26c1375f709c0839d30ccb13e078fd32416bc/whaaaaat-0.3.7.tar.gz"
}
],
"0.3.8": [
{
"comment_text": "",
"digests": {
"md5": "1ad865d4ffc3a87a1daaed79b557fec1",
"sha256": "ed664e7c1e227884c1aa0a6bbfeac345947ef4aa1b3c3bd66c5d102a18429a2e"
},
"downloads": -1,
"filename": "whaaaaat-0.3.8.tar.gz",
"has_sig": false,
"md5_digest": "1ad865d4ffc3a87a1daaed79b557fec1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14371,
"upload_time": "2017-02-11T08:01:20",
"url": "https://files.pythonhosted.org/packages/a7/4e/8a72968f7df16a55daa777c6012f404dc0e46a124178ceee39a983b0d2f1/whaaaaat-0.3.8.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "01bab52c1e71d4bd17d3e333b8665cd0",
"sha256": "2755cb6b694e85763d01a8b44f2ac71ffedb471a481b513903d732c2ba5015a3"
},
"downloads": -1,
"filename": "whaaaaat-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "01bab52c1e71d4bd17d3e333b8665cd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16957,
"upload_time": "2017-03-24T10:29:43",
"url": "https://files.pythonhosted.org/packages/e9/be/b8c86c4b0a72592336d672dddc8b6dc1b9bd4042cc49d1decb76ddf2748c/whaaaaat-0.4.0.tar.gz"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "97e4207337f7b95bd8d801339fac3f93",
"sha256": "2ab02e8e3627919fffdab3dfb2068fafaae74b486c4da81567d4fb16d0183be2"
},
"downloads": -1,
"filename": "whaaaaat-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "97e4207337f7b95bd8d801339fac3f93",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14505,
"upload_time": "2017-03-29T18:53:37",
"url": "https://files.pythonhosted.org/packages/b4/9b/1a23d70f64d737d7c4a2844e8d072d0426ba9ba4ddc31574e5fb1a99d8d3/whaaaaat-0.5.0.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "251cf587176ffa5313eee2352b0ad052",
"sha256": "86cd5dfc38fb1cded3eb6150028dfbcf9f67a1f7a7b91f0dd732701d91ed310f"
},
"downloads": -1,
"filename": "whaaaaat-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "251cf587176ffa5313eee2352b0ad052",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14510,
"upload_time": "2017-03-29T19:04:17",
"url": "https://files.pythonhosted.org/packages/b0/14/dfc0797c0aa601475373085aeed5d2fa37c3bee9c0e32e7de5f1fb75bdfb/whaaaaat-0.5.1.tar.gz"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "79d6cac0b4a4d4c84188c656f033c1be",
"sha256": "cda3c149dc3e6dacdbc1f6d445ee8005c9fc540aa7d8b00c1553a6f7e37e917e"
},
"downloads": -1,
"filename": "whaaaaat-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "79d6cac0b4a4d4c84188c656f033c1be",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14505,
"upload_time": "2017-04-01T03:56:57",
"url": "https://files.pythonhosted.org/packages/85/06/299520d293ec7a654f3b71453fee348011e6366f80cb6140181e438f6f9c/whaaaaat-0.5.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "79d6cac0b4a4d4c84188c656f033c1be",
"sha256": "cda3c149dc3e6dacdbc1f6d445ee8005c9fc540aa7d8b00c1553a6f7e37e917e"
},
"downloads": -1,
"filename": "whaaaaat-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "79d6cac0b4a4d4c84188c656f033c1be",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14505,
"upload_time": "2017-04-01T03:56:57",
"url": "https://files.pythonhosted.org/packages/85/06/299520d293ec7a654f3b71453fee348011e6366f80cb6140181e438f6f9c/whaaaaat-0.5.2.tar.gz"
}
]
}