Sorry about my tersness. The last thing you need at this point is to be distracted from the py3 work.
I submitted the memedit.py patch as a standalone instead of part of my RO channel patch because I know you prefer simple standalone patches where possible, and for good reason.
The problem is that I added TX Frequency validation to the validate_memory method of my driver. After failing using other approaches, I went back to a March 14 e-mail on the devel list where Jim Unroe pointed me at gmrs_uv1.py. He extends the validate_memory method. I did the same for my new code. The problem is that that the mem structure passed to validate_memory is not the same as the one later passed to mem_set: Specifically, If the "duplex" field is "off" in the UI column, mem.duplex is set to "" when it reaches validate_memory. If it is "split" in the UI column, it gets changed in some other way that makes it different from what is passed to set_memory. I looked for and failed to find the spot where the value is changed back to "off" or "split".
Without this change, My modifed driver rejects an RO channel (i.e., one that has duplex "off") that has a frequency that is invalid for TX, and the UI "duplex" column is forced back to "". With this change, my driver works.
I have not yet looked at the py3 branch, but I will after I get this patch into the main branch.
How would you like me to provide the modified driver for your testing? Just as a patch in the usual manner? No new image is needed.