Public bug reported: After upgrading my MythTV machine to Ubuntu 25.04, `mythtv.getRecordings()` no longer works.
$ dpkg --list | grep mythtv ii libmythtv-perl 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all Perl library to access some MythTV features ii mythtv 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all Personal video recorder application (client and server) ii mythtv-backend 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Personal video recorder application (server) ii mythtv-common 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Personal video recorder application (common data) ii mythtv-database 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all Personal video recorder application (database) ii mythtv-frontend 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Personal video recorder application (client) ii mythtv-transcode-utils 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Utilities used for transcoding MythTV tasks ii php-mythtv 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all PHP Bindings for MythTV $ python3 -V Python 3.13.3 $ python3 Python 3.13.3 (main, Apr 8 2025, 19:55:40) [GCC 14.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from MythTV import MythBE >>> mythtv = MythBE() >>> mythtv.getRecordings() Traceback (most recent call last): File "<python-input-2>", line 1, in <module> mythtv.getRecordings() ~~~~~~~~~~~~~~~~~~~~^^ File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 776, in __call__ return self.sortedrun(*args, **kwargs) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 812, in sortedrun return iter(sorted(self.run(*args, **kwargs), ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ key=lambda p: p.starttime)) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 805, in run pg = self.handler(res[offs:offs+pgfieldcount], db=self.inst.db) File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 880, in __init__ DictData.__init__(self, raw) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 129, in __init__ data = self._process(data) File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 145, in _process data[i] = self._trans[self._field_type[i]](v) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^ File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 86, in <lambda> .astimezone(datetime.localTZ()), ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/MythTV/utility/dt.py", line 538, in astimezone return self.fromDatetime(super(datetime, self).astimezone(tz)) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^ TypeError: datetime.__new__() got an unexpected keyword argument 'fold' ** Affects: mythtv (Ubuntu) Importance: Undecided Status: New ** Description changed: After upgrading my MythTV machine to Ubuntu 25.04, `mythtv.getRecordings()` no longer works. - ``` + $ dpkg --list | grep mythtv + ii libmythtv-perl 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all Perl library to access some MythTV features + ii mythtv 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all Personal video recorder application (client and server) + ii mythtv-backend 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Personal video recorder application (server) + ii mythtv-common 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Personal video recorder application (common data) + ii mythtv-database 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all Personal video recorder application (database) + ii mythtv-frontend 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Personal video recorder application (client) + ii mythtv-transcode-utils 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 amd64 Utilities used for transcoding MythTV tasks + ii php-mythtv 2:35.0+fixes.20250302.f3f012aa3f-0ubuntu3 all PHP Bindings for MythTV + $ python3 -V Python 3.13.3 - ``` - ``` $ python3 Python 3.13.3 (main, Apr 8 2025, 19:55:40) [GCC 14.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from MythTV import MythBE >>> mythtv = MythBE() >>> mythtv.getRecordings() Traceback (most recent call last): - File "<python-input-2>", line 1, in <module> - mythtv.getRecordings() - ~~~~~~~~~~~~~~~~~~~~^^ - File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 776, in __call__ - return self.sortedrun(*args, **kwargs) - ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 812, in sortedrun - return iter(sorted(self.run(*args, **kwargs), - ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ - key=lambda p: p.starttime)) - ^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 805, in run - pg = self.handler(res[offs:offs+pgfieldcount], - db=self.inst.db) - File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 880, in __init__ - DictData.__init__(self, raw) - ~~~~~~~~~~~~~~~~~^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 129, in __init__ - data = self._process(data) - File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 145, in _process - data[i] = self._trans[self._field_type[i]](v) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^ - File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 86, in <lambda> - .astimezone(datetime.localTZ()), - ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/MythTV/utility/dt.py", line 538, in astimezone - return self.fromDatetime(super(datetime, self).astimezone(tz)) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^ + File "<python-input-2>", line 1, in <module> + mythtv.getRecordings() + ~~~~~~~~~~~~~~~~~~~~^^ + File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 776, in __call__ + return self.sortedrun(*args, **kwargs) + ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 812, in sortedrun + return iter(sorted(self.run(*args, **kwargs), + ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ + key=lambda p: p.starttime)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 805, in run + pg = self.handler(res[offs:offs+pgfieldcount], + db=self.inst.db) + File "/usr/lib/python3/dist-packages/MythTV/mythproto.py", line 880, in __init__ + DictData.__init__(self, raw) + ~~~~~~~~~~~~~~~~~^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 129, in __init__ + data = self._process(data) + File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 145, in _process + data[i] = self._trans[self._field_type[i]](v) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^ + File "/usr/lib/python3/dist-packages/MythTV/altdict.py", line 86, in <lambda> + .astimezone(datetime.localTZ()), + ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/MythTV/utility/dt.py", line 538, in astimezone + return self.fromDatetime(super(datetime, self).astimezone(tz)) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^ TypeError: datetime.__new__() got an unexpected keyword argument 'fold' - ``` ** Summary changed: - mythtv.getRecordings() doesn't work with MythTV 0.35 / Python 3.13 + mythtv.getRecordings() doesn't work with MythTV 35 / Python 3.13 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2109911 Title: mythtv.getRecordings() doesn't work with MythTV 35 / Python 3.13 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/mythtv/+bug/2109911/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs