altdesktop / python-dbus-next

🚌 The next great DBus library for Python with asyncio support
https://python-dbus-next.readthedocs.io/en/latest/
MIT License
187 stars 58 forks source link

Create_task() is only available in python 3.7 and later #127

Open yurac opened 1 year ago

yurac commented 1 year ago

Is it possible to fall back to ensure_future() instead create_task() in order to support python 3.6? The create_task() function is currently called in 1 place in file proxy_object.py Thanks!

garyvdm commented 1 year ago

I'm not the maintainer of this project, so my opinion may not be worth much.

Having said that, Python 3.6 is no longer supported. Source: https://peps.python.org/pep-0494/

Supporting 3.6 add some complexity to the build system since the main distribution of pip no longer supports 3.6. Hence pr #118 removes 3.6 support to get CI builds working again.

yurac commented 1 year ago

I'm not the maintainer of this project, so my opinion may not be worth much.

Having said that, Python 3.6 is no longer supported. Source: https://peps.python.org/pep-0494/

Supporting 3.6 add some complexity to the build system since the main distribution of pip no longer supports 3.6. Hence pr #118 removes 3.6 support to get CI builds working again.

@garyvdm I understand. I will have the following workaround for now:

# Dbus_next calls asyncio.create_task() which does not exist in python 3.6.                                             
# All else seem working. See issue #127                                                                                 
try:                                                                                                                    
    asyncio.create_task                                                                                                 
except AttributeError:                                                                                                  
    asyncio.create_task = asyncio.ensure_future                                                                         
import dbus_next as dbus                                                                                                
garyvdm commented 1 year ago

@garyvdm I understand. I will have the following workaround for now:

# Dbus_next calls asyncio.create_task() which does not exist in python 3.6.                                             
# All else seem working. See issue #127                                                                                 
try:                                                                                                                    
    asyncio.create_task                                                                                                 
except AttributeError:                                                                                                  
    asyncio.create_task = asyncio.ensure_future                                                                         
import dbus_next as dbus                                                                                                

As I mentioned, I'm not the maintainer/owner of this project, so it's not up to me.