human
Complete this python program:
def create(nfkc=True, bidi=True, mappings=None, prohibited=None, unassigned=None):
assistant
#Here is the Python program you requested.

    """Create a profile of stringprep.
    :param bool nfkc:
    If `True`, perform NFKC Unicode normalization. Defaults to `True`.
    :param bool bidi:
    If `True`, perform bidirectional text checks. Defaults to `True`.
    :param list mappings:
    Optional list of functions for mapping characters to
    suitable replacements.
    :param list prohibited:
    Optional list of functions which check for the presence of
    prohibited characters.
    :param list unassigned:
    Optional list of functions for detecting the use of unassigned
    code points.
    :raises: StringPrepError
    :return: Unicode string of the resulting text passing the
    profile\s requirements.
    """
    def profile(data, query=False):
        try:
            data = unicode(data)
        except UnicodeError:
            raise StringPrepError
        data = map_input(data, mappings)
        data = normalize(data, nfkc)
        prohibit_output(data, prohibited)
        if bidi:
            check_bidi(data)
        if (query and unassigned):
            check_unassigned(data, unassigned)
        return data
    return profile