Source code for bowtie.feedback.message

"""Messages provide a temporary message that will disappear after a few seconds.

Reference
^^^^^^^^^
https://ant.design/components/message/
"""

import flask
from flask_socketio import emit
import eventlet

from bowtie._component import pack
from bowtie._utils import func_name


def _message(status, content):
    """Send message interface.

    Parameters
    ----------
    status : str
        The type of message
    content : str

    """
    event = f'message.{status}'
    if flask.has_request_context():
        emit(event, dict(data=pack(content)))
    else:
        sio = flask.current_app.extensions['socketio']
        sio.emit(event, dict(data=pack(content)))
    eventlet.sleep()


[docs]def success(content): """Success message. Parameters ---------- content : str Message to show user. """ _message(func_name(), content)
[docs]def error(content): """Error message. Parameters ---------- content : str Message to show user. """ _message(func_name(), content)
[docs]def info(content): """Info message. Parameters ---------- content : str Message to show user. """ _message(func_name(), content)
[docs]def warning(content): """Warning message. Parameters ---------- content : str Message to show user. """ _message(func_name(), content)
[docs]def loading(content): """Load message. Parameters ---------- content : str Message to show user. """ _message(func_name(), content)