Project

General

Profile

Actions

Bug #9927

closed

Failed to clone: module 'collections' has no attribute 'Callable'

Added by Bruce Emehiser almost 2 years ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
06/24/2022
Due date:
% Done:

0%

Estimated time:
Chirp Version:
daily
Model affected:
Baofeng BF-F8hp
Platform:
Linux
Debug Log:
I read the instructions above:

Description

Chirp 0.3.0dev on Python 3.10.4 wxPython 4.0.7 gtk3 (phoenix) wxWidgets 3.0.5
Pop!_OS 22.04 LTS

When cloning from a Baofeng BF-F8HP on Pop-OS 22.04 (basically Ubuntu), the clone completes (the loading bar is full), then the following error message is immediately displayed, and the clone fails.

Failed to clone: module 'collections' has no attribute 'Callable'

I see this in the terminal output (in the terminal I used to launch chirpw

ERROR: Failed to clone: module 'collections' has no attribute 'Callable'
ERROR: uv5r._ident_radio: Radio did not respond
ERROR: Failed to clone: Radio did not respond
ERROR: Failed to clone: module 'collections' has no attribute 'Callable'

I see this in logs

[2022-06-24 09:09:49,664] chirp.drivers.uv5r - INFO: Radio Version is b'N5R340B \xff\xff\xff\xff\xff\xff'
[2022-06-24 09:09:49,664] chirp.drivers.uv5r - DEBUG: downloading main block...
[2022-06-24 09:10:03,332] chirp.drivers.uv5r - DEBUG: done.
[2022-06-24 09:10:03,332] chirp.drivers.uv5r - DEBUG: downloading aux block...
[2022-06-24 09:10:04,043] chirp.drivers.uv5r - DEBUG: done.
[2022-06-24 09:10:04,044] chirp.wxui.clone - ERROR: Failed to clone: module 'collections' has no attribute 'Callable'

Files

Actions #1

Updated by Bruce Emehiser over 1 year ago

There is now a known solution, which was provided to me via email.

Hi Bruce.

Don't know if you have solved it but I've had the same problem you had with CHIRP. I have Ubuntu too and trying to find a solution I founded your report.

The problem appeared when I upgraded certain system files so I found this problem:

When upgrading the python files, the module collections give you the ABC method Callable.
The chirp file pyPEG.py call this method as "collections.Callable" three times.
You can found the file under: /usr/lib/python3/dist-packages/chirp/

I've try this solution and works fine for me:

duplicate the file pyPEG.py and save the copy with another name (only for backup, I use to do so)
edit pyPEG.py with root permission (sudo...)
substitute the three calls "collections.Callable" with "collections.abc.Callable", so the line remains like isinstance(pattern, collections.abc.Callable):

That works for me.
Regards, Tomy.

I'm guessing we should add conditional checking to try collections.abc.Callable, and fallback to collections.Callable if that doesn't exist. Does anyone know the correct process for making those changes, or how I would go about making them and submitting a pull request?

Actions #2

Updated by Tony Fuller over 1 year ago

Hi Bruce,

Dan accepts pull requests on github.com and also via mailing list (I can't get emails from the mailing list since outlook.com appears to be silently blocking them so I go through github.com). https://github.com/kk7ds/chirp/tree/py3

The developer mailing list is at http://intrepid.danplanet.com/mailman/listinfo/chirp_devel
and the mercurial "how to" page is at https://chirp.danplanet.com/projects/chirp/wiki/DevelopersProcess

I'm guessing we should add conditional checking to try collections.abc.Callable, and fallback to collections.Callable

Python2 is dead. In my opinion, I would target the py3 branch, use only the python 3 syntax (e.g. from collections.abc import Callable), and only make changes which you're able to test :) This will make things a lot smoother if anything comes up.

Tony

Actions #3

Updated by Bruce Emehiser over 1 year ago

It looks like the bug has already been fixed in the py3 branch on Github, so I guess I'll close this ticket and just use that branch until it is merged to master and released.

https://github.com/kk7ds/chirp/pull/14/files

Many thanks for all the help.

Actions #4

Updated by Martin Cooper over 1 year ago

  • Status changed from New to Closed
Actions

Also available in: Atom PDF