Issue to track the blockers for fully supporting Python 3.7
Once fixed, we need to enable the tests again.
Hey, I just tried Python 3.7 with current home-assistant (0.77.2) and can confirm that it works nicely once hbmqtt is updated to 0.9.4. Not sure about geo_rss, not using that.
The install docs say just "3.5.3 or later" everywhere. Should something be done about that, e.g. change it to "3.5.3+ or 3.6.x" until this is resolved?
Well, 99.9% of Home Assistant works. At this point it's just the GeoRSS sensor. And when Python 3.7.1 rolls around and it's not fixed, we'll just move forward. We're not going to let a single integration hold us back.
Not sure if we are taking external packages into account, but the Apple TV component isn't ready for 3.7 yet.
Related PR upstream: https://github.com/postlund/pyatv/pull/154
I don't see any mention of ATV not working on 3.7, just that it is officially supported now.
ATV is not working on 3.7; getting error:
2018-09-22 15:54:31 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was
never retrieved
Traceback (most recent call last):
File "/Users/Media/homeassistant/lib/python3.7/site-packages/homeassistant/components/apple_tv.py", line 176, in atv_discovered
CONF_START_OFF: False
File "/Users/Media/homeassistant/lib/python3.7/site-packages/homeassistant/components/apple_tv.py", line 199, in _setup_atv
import pyatv
File "/Users/Media/homeassistant/lib/python3.7/site-packages/pyatv/__init__.py", line 13, in
from pyatv.internal.apple_tv import AppleTVInternal
File "/Users/Media/homeassistant/lib/python3.7/site-packages/pyatv/internal/apple_tv.py", line 363
run_async = asyncio.async # pylint: disable=no-member
^
SyntaxError: invalid syntax
Looking at pull request log; seems this is going to get fixed in 0.3.11 however that one isn't released yet.
Not a blocker per se, but I believe the feedreader component is also affected, i.e. will fail at runtime, if you fetch data from a feed that defines data within a geo rss namespace. The feedparser library fails during the parsing process under Python 3.7.
There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.
Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment :+1:
bump
I've almost finished an alternative solution for the geo_rss_events sensor replacing feedparser with a built-in solution. I'm having trouble with library interdependencies at the moment, but I hope I can find a solution in the next couple of days.
Alright, the geo_rss_events sensor is not dependent on feedparser anymore, and I've also re-enabled its unit tests for Python 3.7.
What's the appetite on removing the feedparser dependency from the feedreader component?
I could extend my georss_client library to expose RSS/Atom feeds without the need to specify home coordinates. However, my library is a little less sophisticated at the moment when fetching data as it does not use ETags and Last-Modified-Date like feedparser does.
I'm not using the feedreader component myself, and would only make this change if there is a real need. As an alternative, what I could offer is to create a PR with a unit test that "proves" that feedreader does not work with a feed containing GeoRSS data in Python 3.7, and then we can take it from there...
I don't think that georss_client should be used to power the feedreader component. That seems odd.
Most helpful comment
Well, 99.9% of Home Assistant works. At this point it's just the GeoRSS sensor. And when Python 3.7.1 rolls around and it's not fixed, we'll just move forward. We're not going to let a single integration hold us back.