iancmcc/ouimeaux

cElementTree removed in Python 3.9

knight-of-ni opened this issue · 0 comments

Fedora rawhide (33) fails to run ouimeaux:

Traceback (most recent call last):
  File "/usr/bin/wemo", line 11, in <module>
    load_entry_point('ouimeaux==0.8.2', 'console_scripts', 'wemo')()
  File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 490, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2853, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2453, in load
    return self.resolve()
  File "/usr/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2459, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3.9/site-packages/ouimeaux/cli.py", line 6, in <module>
    from .environment import Environment
  File "/usr/lib/python3.9/site-packages/ouimeaux/environment.py", line 7, in <module>
    from ouimeaux.device import DeviceUnreachable
  File "/usr/lib/python3.9/site-packages/ouimeaux/device/__init__.py", line 4, in <module>
    from .api.service import Service
  File "/usr/lib/python3.9/site-packages/ouimeaux/device/api/service.py", line 2, in <module>
    from xml.etree import cElementTree as et
ImportError: cannot import name 'cElementTree' from 'xml.etree' (/usr/lib64/python3.9/xml/etree/__init__.py)

cElementTree was deprecated in Python 3.3 and removed Python 3.9.

Here are the files affected:

ouimeaux/device/api/service.py
ouimeaux/device/api/xsd/service.py
ouimeaux/device/api/xsd/device.py
ouimeaux/device/maker.py
ouimeaux/device/bridge.py
ouimeaux/subscribe.py

Looks like ElementTree might be a drop in replacement for cElementTree.

This is an action item that has come out of the Fedora review to get ouimeaux added.
I should have a patch for this shortly.