File size: 465 Bytes
383cb38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# Fix for Flask async views
import asgiref.sync
import flask

# Monkey patch Flask to handle async views
original_ensure_sync = flask.Flask.ensure_sync

def patched_ensure_sync(self, func):
    if hasattr(func, '__code__') and hasattr(func.__code__, 'co_flags'):
        if func.__code__.co_flags & 0x80:  # CO_COROUTINE
            return asgiref.sync.async_to_sync(func)
    return original_ensure_sync(self, func)

flask.Flask.ensure_sync = patched_ensure_sync