Make await text appear in async Member method docs

This commit is contained in:
Sebastian Law 2021-03-24 05:22:50 -07:00 committed by GitHub
parent 456a5dfa59
commit a06d00f554
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,6 +24,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE. DEALINGS IN THE SOFTWARE.
""" """
import inspect
import itertools import itertools
import sys import sys
from operator import attrgetter from operator import attrgetter
@ -106,8 +107,13 @@ def flatten_user(cls):
# It probably breaks something in Sphinx. # It probably breaks something in Sphinx.
# probably a member function by now # probably a member function by now
def generate_function(x): def generate_function(x):
def general(self, *args, **kwargs): # We want sphinx to properly show coroutine functions as coroutines
return getattr(self._user, x)(*args, **kwargs) if inspect.iscoroutinefunction(value):
async def general(self, *args, **kwargs):
return await getattr(self._user, x)(*args, **kwargs)
else:
def general(self, *args, **kwargs):
return getattr(self._user, x)(*args, **kwargs)
general.__name__ = x general.__name__ = x
return general return general