Vorrei abilitare il rilevamento di coroutine non ceduto di Asyncio, ma non ci sono riuscito.Esempio di debug di asyncio di Python
Questo semplice codice implementa le raccomandazioni su:
https://docs.python.org/3/library/asyncio-dev.html#asyncio-logger
ma in realtà non prendere il 'manichino' coroutine non-dato.
import sys, os
import asyncio
import logging
import warnings
os.environ['PYTHONASYNCIODEBUG'] = '1'
logging.basicConfig(level=logging.DEBUG)
warnings.resetwarnings()
@asyncio.coroutine
def dummy():
print('yeah, dummy ran!!')
@asyncio.coroutine
def startdummy():
print('creating dummy')
dummy()
if __name__ == '__main__':
lp = asyncio.get_event_loop()
lp.run_until_complete(startdummy())
mi aspettavo che il programma sarebbe finita con un avvertimento circa l'coroutine 'manichino', creato ma non ceduto da.
In realtà, i risultati sono:
DEBUG:asyncio:Using selector: SelectSelector
creating dummy
sys:1: ResourceWarning: unclosed <socket object at 0x02DCB6F0>
c:\python34\lib\importlib\_bootstrap.py:2150: ImportWarning: sys.meta_path is empty
sys:1: ResourceWarning: unclosed <socket object at 0x02DE10C0>
nessun accenno di un coroutine abbandonata. Cosa mi manca?
che era, grazie. – Rdbhost
s/import sys/import os/ – djh
Risolto. @ djh grazie! –