Name | ask-question JSON |
Version |
1.2.8
JSON |
| download |
home_page | https://github.com/Hanra-s-work/ask_question |
Summary | A module that simplifies the boiling process when asking the user a question via a TTY interface. (A TUI version is being developed, to call it, just add TUI at the end of the class name) |
upload_time | 2024-08-28 18:52:08 |
maintainer | None |
docs_url | None |
author | Henry Letellier |
requires_python | None |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Ask Question
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ask_question)
![PyPI - Implementation](https://img.shields.io/pypi/implementation/ask_question)
![PyPI - Wheel](https://img.shields.io/pypi/wheel/ask_question)
![PyPI - Version](https://img.shields.io/pypi/v/ask_question?label=pypi%20package:%20ask_question)
![PyPI - Downloads](https://img.shields.io/pypi/dm/ask_question)
![PyPI - License](https://img.shields.io/pypi/l/ask_question)
![Execution status](https://github.com/Hanra-s-work/ask_question/actions/workflows/python-package.yml/badge.svg)
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/Hanra-s-work/ask_question/python-package.yml)
![GitHub repo size](https://img.shields.io/github/repo-size/Hanra-s-work/ask_question)
![GitHub Repo stars](https://img.shields.io/github/stars/Hanra-s-work/ask_question)
![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/Hanra-s-work/ask_question)
![GitHub last commit (branch)](https://img.shields.io/github/last-commit/Hanra-s-work/ask_question/main)
[![Static Badge](https://img.shields.io/badge/Buy_me_a_tea-Hanra-%235F7FFF?style=flat-square&logo=buymeacoffee&label=Buy%20me%20a%20coffee&labelColor=%235F7FFF&color=%23FFDD00&link=https%3A%2F%2Fwww.buymeacoffee.com%2Fhanra)](https://www.buymeacoffee.com/hanra)
## Description
This is a python package I created in order to simplify the boiling process when asking the user a question via TTY.
## Table of Content
1. [ask_question](#ask-question)
2. [Description](#description)
3. [Table of Content](#table-of-content)
4. [Installation](#installation)
1. [Using pip](#using-pip)
2. [Using python](#using-python)
5. [Usage](#usage)
1. [Importing](#importing)
2. [Initialising](#initialising)
3. [Calling the pause function](#calling-the-pause-function)
4. [Asking a question](#asking-a-question)
1. [Where do you live ?](#where-do-you-live)
2. [How old are you ?](#how-old-are-you)
3. [Do you like sugar ?](#do-you-like-sugar)
6. [Available boiling](#available-boiling)
7. [Change the initialisation content](#change-the-initialisation-content)
1. [Changing the forbidden characters](#changing-the-forbidden-characters)
2. [Changing the description](#changing-the-descriptions)
3. [Changing both](#changing-both)
8. [Author](#author)
9. [Version](#version)
## Installation
### Using pip
```sh
pip install -U ask-question
```
### Using python
Under windows:
```bat
py -m pip install -U ask-question
```
Under Linux/Mac OS:
```sh
python3 -m pip install -U ask-question
```
## Usage
### Importing
```py
import ask_question as aq
```
### Initialising
The generic class is: `AskQuestion(human_type:dict={}, illegal_characters_nb:str="")`
```py
AQI = aq.AskQuestion()
```
### Calling the pause function
The generic function is:
```py
pause(self, pause_message:str="Press enter to continue...")
```
The output is: None
```py
AQI.pause("Press enter to continue ...")
```
### Asking a Question
The generic function to ask a question is:
```py
ask_question(self, question:str, answer_type:str)
```
The outputs of this functions can be:
* str = a string
* int = a whole number
* float = a floating number
#### Where do you live
```py
answer = AQI.ask_question("Where are you from? ", "str")
print(f"You live in {answer}!")
```
#### How old are you
```py
answer = AQI.ask_question("How old are you?", "uint")
ADD_S = ""
if answer > 1:
ADD_S = "s"
print(f"You are {answer} year{ADD_S} old !")
```
#### Do you like sugar
```py
answer = AQI.ask_question("Do you like sugar? [(Y)es/(n)o]: ", "bool")
if answer == True:
print("You like sugar !")
else:
print("You do not like sugar.")
```
## Available boiling
Here are all the available boiling options and their explanation:
* int = whole number (-1, 0, 1, 2, 3, etc...)
* float = floating number (-1.2, 0.1, 1.2, etc...)
* uint = whole positive number (0, 1, 2, etc...)
* ufloat = whole positive floating number (0.1, 1.2, etc ...)
* num = numeric (numbers from 0 onwards)
* alnum = alphanumeric (only numbers and the alphabet)
* isalpha = alphabet (from a to z and A to Z)
* char = alphabet (from a to z and A to Z)
* ascii = ascii Table
* str = string (any character you can type)
* version = version (numbers seperated by '.' characters)
* ver = version (numbers seperated by '.' characters)
* bool = boolean (yes/True/1 or no/False/0 answer type)
## Change the initialisation content
When initialising the class it is possible to change the forbidden characters and/or the descriptions of the available types.
### changing the forbidden characters
```py
import ask_question as aq
illegal_characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \\t\\n\\r\\x0b\\x0c"
illegal_characters = illegal_characters.replace("0123456789","")
AQI = aq.AskQuestion(dict(), illegal_characters)
```
This initialisation has changed the characters that will be allowed for the number conversion in the 'int' and 'float' options.
### Changing the descriptions
```py
import ask_question as aq
human_type = {
"int":"whole number (-1, 0, 1, 2, 3, etc...)",
"float":"floating number (-1.2, 0.1, 1.2, etc...)",
"uint":"whole positive number (0, 1, 2, etc...)",
"ufloat":"whole positive floating number (0.1, 1.2, etc ...)",
"num":"numeric (numbers from 0 onwards)",
"alnum":"alphanumeric (only numbers and the alphabet)",
"isalpha":"alphabet (from a to z and A to Z)",
"char":"alphabet (from a to z and A to Z)",
"ascii":"ascii Table",
"str":"string (any character you can type)",
"version":"version (numbers seperated by '.' characters)",
"ver":"version (numbers seperated by '.' characters)",
"bool":"boolean (yes/True/1 or no/False/0 answer type)",
}
AQI = aq.AskQuestion(human_type)
```
This initialisation has changed the descriptions for the types.
When the user will enter a wrong answer, the description displayed for the type you were expecting will be taken from the human_type dictionnary you have entered.
### Changing both
```py
import ask_question as aq
illegal_characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \\t\\n\\r\\x0b\\x0c"
illegal_characters = illegal_characters.replace("0123456789","")
human_type = {
"int":"whole number (-1, 0, 1, 2, 3, etc...)",
"float":"floating number (-1.2, 0.1, 1.2, etc...)",
"uint":"whole positive number (0, 1, 2, etc...)",
"ufloat":"whole positive floating number (0.1, 1.2, etc ...)",
"num":"numeric (numbers from 0 onwards)",
"alnum":"alphanumeric (only numbers and the alphabet)",
"isalpha":"alphabet (from a to z and A to Z)",
"char":"alphabet (from a to z and A to Z)",
"ascii":"ascii Table",
"str":"string (any character you can type)",
"version":"version (numbers seperated by '.' characters)",
"ver":"version (numbers seperated by '.' characters)",
"bool":"boolean (yes/True/1 or no/False/0 answer type)",
}
AQI = aq.AskQuestion(human_type)
```
You have now impacted the int and float typing as well as the 'type' descriptions.
## Author
This module was written by (c) Henry Letellier
Attributions are appreciated.
Quick way (I assume you have already initialised the class):
```py
print(f"AskQuestion is written by {AQI.author}")
```
## Version
The current version is 1.0.0
An easy way to display the version is:
```py
import ask_question as aq
print(f"Version : {aq.__Version__}")
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Hanra-s-work/ask_question",
"name": "ask-question",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Henry Letellier",
"author_email": "henrysoftwarehouse@protonmail.com",
"download_url": "https://files.pythonhosted.org/packages/bf/73/d63114e938721d074d30739eb24d787e6adc23070a49d9d47591843b89cc/ask_question-1.2.8.tar.gz",
"platform": null,
"description": "# Ask Question\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ask_question)\n![PyPI - Implementation](https://img.shields.io/pypi/implementation/ask_question)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/ask_question)\n![PyPI - Version](https://img.shields.io/pypi/v/ask_question?label=pypi%20package:%20ask_question)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/ask_question)\n![PyPI - License](https://img.shields.io/pypi/l/ask_question)\n![Execution status](https://github.com/Hanra-s-work/ask_question/actions/workflows/python-package.yml/badge.svg)\n![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/Hanra-s-work/ask_question/python-package.yml)\n![GitHub repo size](https://img.shields.io/github/repo-size/Hanra-s-work/ask_question)\n![GitHub Repo stars](https://img.shields.io/github/stars/Hanra-s-work/ask_question)\n![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/Hanra-s-work/ask_question)\n![GitHub last commit (branch)](https://img.shields.io/github/last-commit/Hanra-s-work/ask_question/main)\n\n[![Static Badge](https://img.shields.io/badge/Buy_me_a_tea-Hanra-%235F7FFF?style=flat-square&logo=buymeacoffee&label=Buy%20me%20a%20coffee&labelColor=%235F7FFF&color=%23FFDD00&link=https%3A%2F%2Fwww.buymeacoffee.com%2Fhanra)](https://www.buymeacoffee.com/hanra)\n\n## Description\n\nThis is a python package I created in order to simplify the boiling process when asking the user a question via TTY.\n\n## Table of Content\n\n1. [ask_question](#ask-question)\n2. [Description](#description)\n3. [Table of Content](#table-of-content)\n4. [Installation](#installation)\n 1. [Using pip](#using-pip)\n 2. [Using python](#using-python)\n5. [Usage](#usage)\n 1. [Importing](#importing)\n 2. [Initialising](#initialising)\n 3. [Calling the pause function](#calling-the-pause-function)\n 4. [Asking a question](#asking-a-question)\n 1. [Where do you live ?](#where-do-you-live)\n 2. [How old are you ?](#how-old-are-you)\n 3. [Do you like sugar ?](#do-you-like-sugar)\n6. [Available boiling](#available-boiling)\n7. [Change the initialisation content](#change-the-initialisation-content)\n 1. [Changing the forbidden characters](#changing-the-forbidden-characters)\n 2. [Changing the description](#changing-the-descriptions)\n 3. [Changing both](#changing-both)\n8. [Author](#author)\n9. [Version](#version)\n\n## Installation\n\n### Using pip\n\n```sh\npip install -U ask-question\n```\n\n### Using python\n\nUnder windows:\n\n```bat\npy -m pip install -U ask-question\n```\n\nUnder Linux/Mac OS:\n\n```sh\npython3 -m pip install -U ask-question\n```\n\n## Usage\n\n### Importing\n\n```py\nimport ask_question as aq\n```\n\n### Initialising\n\nThe generic class is: `AskQuestion(human_type:dict={}, illegal_characters_nb:str=\"\")`\n\n```py\nAQI = aq.AskQuestion()\n```\n\n### Calling the pause function\n\nThe generic function is:\n\n```py\npause(self, pause_message:str=\"Press enter to continue...\")\n```\n\nThe output is: None\n\n```py\nAQI.pause(\"Press enter to continue ...\")\n```\n\n### Asking a Question\n\nThe generic function to ask a question is:\n\n```py\nask_question(self, question:str, answer_type:str)\n```\n\nThe outputs of this functions can be:\n\n* str = a string\n* int = a whole number\n* float = a floating number\n\n#### Where do you live\n\n```py\nanswer = AQI.ask_question(\"Where are you from? \", \"str\")\nprint(f\"You live in {answer}!\")\n```\n\n#### How old are you\n\n```py\nanswer = AQI.ask_question(\"How old are you?\", \"uint\")\nADD_S = \"\"\nif answer > 1:\n ADD_S = \"s\"\nprint(f\"You are {answer} year{ADD_S} old !\")\n```\n\n#### Do you like sugar\n\n```py\nanswer = AQI.ask_question(\"Do you like sugar? [(Y)es/(n)o]: \", \"bool\")\nif answer == True:\n print(\"You like sugar !\")\nelse:\n print(\"You do not like sugar.\")\n```\n\n## Available boiling\n\nHere are all the available boiling options and their explanation:\n\n* int = whole number (-1, 0, 1, 2, 3, etc...)\n* float = floating number (-1.2, 0.1, 1.2, etc...)\n* uint = whole positive number (0, 1, 2, etc...)\n* ufloat = whole positive floating number (0.1, 1.2, etc ...)\n* num = numeric (numbers from 0 onwards)\n* alnum = alphanumeric (only numbers and the alphabet)\n* isalpha = alphabet (from a to z and A to Z)\n* char = alphabet (from a to z and A to Z)\n* ascii = ascii Table\n* str = string (any character you can type)\n* version = version (numbers seperated by '.' characters)\n* ver = version (numbers seperated by '.' characters)\n* bool = boolean (yes/True/1 or no/False/0 answer type)\n\n## Change the initialisation content\n\nWhen initialising the class it is possible to change the forbidden characters and/or the descriptions of the available types.\n\n### changing the forbidden characters\n\n```py\nimport ask_question as aq\nillegal_characters = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\\\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~ \\\\t\\\\n\\\\r\\\\x0b\\\\x0c\"\nillegal_characters = illegal_characters.replace(\"0123456789\",\"\")\nAQI = aq.AskQuestion(dict(), illegal_characters)\n```\n\nThis initialisation has changed the characters that will be allowed for the number conversion in the 'int' and 'float' options.\n\n### Changing the descriptions\n\n```py\nimport ask_question as aq\nhuman_type = {\n \"int\":\"whole number (-1, 0, 1, 2, 3, etc...)\",\n \"float\":\"floating number (-1.2, 0.1, 1.2, etc...)\",\n \"uint\":\"whole positive number (0, 1, 2, etc...)\",\n \"ufloat\":\"whole positive floating number (0.1, 1.2, etc ...)\",\n \"num\":\"numeric (numbers from 0 onwards)\",\n \"alnum\":\"alphanumeric (only numbers and the alphabet)\",\n \"isalpha\":\"alphabet (from a to z and A to Z)\",\n \"char\":\"alphabet (from a to z and A to Z)\",\n \"ascii\":\"ascii Table\",\n \"str\":\"string (any character you can type)\",\n \"version\":\"version (numbers seperated by '.' characters)\",\n \"ver\":\"version (numbers seperated by '.' characters)\",\n \"bool\":\"boolean (yes/True/1 or no/False/0 answer type)\",\n}\nAQI = aq.AskQuestion(human_type)\n```\n\nThis initialisation has changed the descriptions for the types.\nWhen the user will enter a wrong answer, the description displayed for the type you were expecting will be taken from the human_type dictionnary you have entered.\n\n### Changing both\n\n```py\nimport ask_question as aq\nillegal_characters = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\\\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~ \\\\t\\\\n\\\\r\\\\x0b\\\\x0c\"\nillegal_characters = illegal_characters.replace(\"0123456789\",\"\")\nhuman_type = {\n \"int\":\"whole number (-1, 0, 1, 2, 3, etc...)\",\n \"float\":\"floating number (-1.2, 0.1, 1.2, etc...)\",\n \"uint\":\"whole positive number (0, 1, 2, etc...)\",\n \"ufloat\":\"whole positive floating number (0.1, 1.2, etc ...)\",\n \"num\":\"numeric (numbers from 0 onwards)\",\n \"alnum\":\"alphanumeric (only numbers and the alphabet)\",\n \"isalpha\":\"alphabet (from a to z and A to Z)\",\n \"char\":\"alphabet (from a to z and A to Z)\",\n \"ascii\":\"ascii Table\",\n \"str\":\"string (any character you can type)\",\n \"version\":\"version (numbers seperated by '.' characters)\",\n \"ver\":\"version (numbers seperated by '.' characters)\",\n \"bool\":\"boolean (yes/True/1 or no/False/0 answer type)\",\n}\nAQI = aq.AskQuestion(human_type)\n```\n\nYou have now impacted the int and float typing as well as the 'type' descriptions.\n\n## Author\n\nThis module was written by (c) Henry Letellier\nAttributions are appreciated.\n\nQuick way (I assume you have already initialised the class):\n\n```py\nprint(f\"AskQuestion is written by {AQI.author}\")\n```\n\n## Version\n\nThe current version is 1.0.0\n\nAn easy way to display the version is:\n\n```py\nimport ask_question as aq\nprint(f\"Version : {aq.__Version__}\")\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A module that simplifies the boiling process when asking the user a question via a TTY interface. (A TUI version is being developed, to call it, just add TUI at the end of the class name)",
"version": "1.2.8",
"project_urls": {
"Homepage": "https://github.com/Hanra-s-work/ask_question"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0eddae30cd1a47083d07409786979864a333e6aa781b70b638f19cf84f49bbe9",
"md5": "1eb675e1f2d51891822644dee9103ce7",
"sha256": "8b38fd162469b503e7b240459488d205f021e6f712fc9e670021863189a13cac"
},
"downloads": -1,
"filename": "ask_question-1.2.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1eb675e1f2d51891822644dee9103ce7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 14149,
"upload_time": "2024-08-28T18:52:07",
"upload_time_iso_8601": "2024-08-28T18:52:07.477542Z",
"url": "https://files.pythonhosted.org/packages/0e/dd/ae30cd1a47083d07409786979864a333e6aa781b70b638f19cf84f49bbe9/ask_question-1.2.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bf73d63114e938721d074d30739eb24d787e6adc23070a49d9d47591843b89cc",
"md5": "93d220170756461570c018e4ffa76022",
"sha256": "5f3a91c116381c6b7b5ea7fdc83239e8a86731f02197e240f42daeecc348a36e"
},
"downloads": -1,
"filename": "ask_question-1.2.8.tar.gz",
"has_sig": false,
"md5_digest": "93d220170756461570c018e4ffa76022",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12986,
"upload_time": "2024-08-28T18:52:08",
"upload_time_iso_8601": "2024-08-28T18:52:08.903603Z",
"url": "https://files.pythonhosted.org/packages/bf/73/d63114e938721d074d30739eb24d787e6adc23070a49d9d47591843b89cc/ask_question-1.2.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-28 18:52:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Hanra-s-work",
"github_project": "ask_question",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "ask-question"
}