def async_partial(func, *args, **keywords):
    'async functools.partial'

    async def newfunc(*fargs, **fkeywords):
        'the mocked function'
        newkeywords = keywords.copy()
        newkeywords.update(fkeywords)
        return (await func(*args, *fargs, **newkeywords))
    newfunc.func = func
    newfunc.args = args
    newfunc.keywords = keywords
    return newfunc
async functools.partial
def async_partial(func, *args, **keywords):
    

    async def newfunc(*fargs, **fkeywords):
        'the mocked function'
        newkeywords = keywords.copy()
        newkeywords.update(fkeywords)
        return (await func(*args, *fargs, **newkeywords))
    newfunc.func = func
    newfunc.args = args
    newfunc.keywords = keywords
    return newfunc