Open ChrisVine opened 3 years ago
Thanks for reporting this as an issue. I do hope to be Python 3.10 compatible in the future, but for reasons I'll detail below, this probably isn't something I can get to right away. Given that 3.10 was just released, I hope this isn't a big problem.
The panwid
bug is an easy fix -- that import statement is leftover from before MutableMapping was moved, and it's not even used in that module any longer, so I've simply removed it.
The story isn't as simple for the dependency on Pony ORM, which is at this point central to the functionality of the application's data model. Removing it as a dependency is simply not an option in the foreseeable future.
I do understand the desire for a smaller number of dependencies, and agree in principle that fewer dependencies is often better. However, despite its roots as a command-line utility for fetching MLB games, streamglob is not "a small program" at this point. I do understand there are people who just use it as a CLI tool to pull MLB games (the original purpose of mlbstreamer) and don't care to use it in TUI mode or for other streaming providers, and I can certainly aim to restructure the build configuration in the future to allow for a more streamlined install for those users, but at this point use of Pony ORM for managing listings is built into the core of the data model, and ripping that out would break so much functionality that it's not a reasonable request.
I've reached out to the Pony ORM maintainer for more clarity on the path forward for Pon ORM in Python >= 3.10 and will post an update here when I know more.
Thanks for the update. I patched the problem with panwid (which as you say is trivial) before then butting up against the removal of the parser module. I quit at that stage since I am not going to spend my time porting pony to the currently supported AST generator. When you have a version-sensitive dependency like that I suppose that you live or die by your dependency.
Unfortunately my distribution has moved to python-3.10 (I wish it left that for a few months) and of the projects I use streamglob is the one which won't go with it (all the others are OK). Happily the MLB.TV web interface is reasonably usable now and I imagine this will have reached a conclusion by the start of next season so I look forward to streamglobbing again then.
streamglob has a dependency on panwid-0.3.3. panwid-0.3.3 will not run correctly with python-3.10 because panwid/datatable/rows.py has a defect: it tries to import MutableMappings from collections, whereas it should import it from collections.abc (compare panwid/datatable/datatable.py which is correct).
In addition streamglob has a dependency on pony which will not run correctly because it depends on the parser module which was previously deprecated and is now removed in python-3.10.
As a general observation, streamglob seems to have a large number of dependencies for such a small program. Reducing them a bit might reduce the risk of breakage like this.