Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/antaripchatterjee/pymsgprompt
PyMsgPrompt is a python module to embed prompt functionality in your code.
https://github.com/antaripchatterjee/pymsgprompt
Last synced: about 2 months ago
JSON representation
PyMsgPrompt is a python module to embed prompt functionality in your code.
- Host: GitHub
- URL: https://github.com/antaripchatterjee/pymsgprompt
- Owner: antaripchatterjee
- License: mit
- Created: 2020-10-12T16:01:44.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-04-01T17:59:22.000Z (almost 4 years ago)
- Last Synced: 2024-11-05T00:05:05.734Z (2 months ago)
- Language: Python
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PyMsgPrompt
PyMsgPrompt is a python module to embed prompt functionality in your code.
## Version
The current version of this module is `1.3.0` and this is the third BETA release after first BETA version `1.2.2`, however, you can run the below command to check the version of the module.
```bash
python -m pymsgprompt.version
```## Platform Supports
This is a cross platform module and supported both in python 2 and 3.
## Installation
To install this module you can use clone with git or just simply run pip install command.
### Using git
```bash
git clone https://github.com/antaripchatterjee/PyMsgPrompt.git
cd PyMsgPrompt
python setup.py install
```### Using pip
```bash
pip install pymsgprompt
```## Uninstallation
Uninstallation can be done by running pip uninstall command.
```bash
pip uninstall pymsgpropmt
```## Usage
To test this module, you can run the below simple code.
```python
from pymsgprompt.prompt import ask, log
from pymsgprompt.logger import perror, pinfo, pwarn
import time
if __name__ == '__main__':
answer = ask('Do you want to close?', choices=['yes', 'no', 'not sure'], default='yes', timestamp=True, regexp=True, ignore_case=False)
# with open('test.txt', 'w') as test:
# print (log('Answer is %s'%answer, logtype='error', timestamp=True, file=test))
if answer.startswith('n'):
log('Answer is %s'%answer, logtype='error', timestamp=False, reset=True)
else:
log('Answer is %s'%answer, logtype='info', timestamp=False, reset=True)
for i in range(1000, 0, -1):
log('The message is %d'%i, timestamp=True, end=None if i > 1 else '\n', reset=i==1)
time.sleep(0.01)
pinfo('I am a Python Developer')
pwarn('Some kind of warning message')
perror('Some kind of error message')
```Below is the output,
```output
[QUES] 2021-Apr-01 22:27:50: Do you want to close? (yes/ no/ not sure)[yes]not
not sure
Answer is not sure
[INFO] 2021-Apr-01 22:28:11: The message is 1
[INFO] 2021-Apr-01 22:28:11: I am a Python Developer
[WARN] 2021-Apr-01 22:28:11: Some kind of warning message
[ERROR] 2021-Apr-01 22:28:11: Some kind of error message
```## API Reference
`pymsgprompt.prompt.ask` function takes two positional arguments `on_success` and `on_error`, and they expect two callback functions, which will be called after validating the answer. The default value of them are `pymsgprompt.handler.default_on_success` and `pymsgprompt.handler.default_on_error` respectively.
The callback function for `on_success` takes three arguments, which are `question`, `actual_answer` and `original_answer`. The `ask` function returns the same value, actually returned by the callback function. The default function returns the `original_answer`.
The callback function for `on_error` takes four arguments, which are `question`, `choices`, `default`, and `error`. This value must return either `True`, means the question should be reasked, or `False`, means no need to ask the question again. The default function returns the `False`.
A good documentation, specially for the developers, will be provided later.
## License
This module is licensed under [MIT License](https://github.com/antaripchatterjee/PyMsgPrompt/blob/master/LICENSE).
## Contribution
Pull requests are always awesome, but please make sure of raising request, before making any changes.