bitdiff.py is from before we had GUI developer tools, and is not py3
compliant anyway.
img2thd72.py is no longer useful now that the thd72 driver can open
those files directly, and is not py3 compliant anyway.
elib_intl.py is something to do with internationalization on win32
(it seems). Not sure if/when we ever used that, but we don't anymore
and thus it is removed.
This makes cpep8 run flake8 on anything *not* in the manifest or
*not* in the blacklist. Thus, all new files will get flake8 run against
them by default. It adds a bunch of files to the blacklist that were
not in manifest and thus still aren't compliant. Those need to get
cleaned up, obviously.
No new files should be added to cpep8.manifest going forward so that
the stricter flake8 rules get applied by default. Ideally we'd also
remove files from cpep8.manifest as well so we can move to just one
set of rules for everything, but that will take a while.
Long ago, an anti-pattern was introduced by a driver whereby the prompt
string were marked for translation, but wrapped around a call to
dedent() for formatting. In order for gettext to pick up the strings
when building the catalog, the actual literals must be marked. Even
though the gettext call works at runtime, the static analysis does not
understand enough python to push through that call.
This is the first step of re-writing all those instances to avoid
using dedent() and instead use multiple string lines inside the gettext
call. This was done en masse, so it's possible that some of this is
not right, but it's a good start and much more reasonable than doing
it manually in so many places.
This also includes a dumb rule in check_commit.sh to help prevent
future introduction of this, although it won't catch all cases.
Related to #10434
The Q-MAC HF-90 radio was in production during the 1990's and 2000's.
In 2009, Q-MAC Electronics was acquired by Barrett Communications and
Barrett was acquired by Motorola Solutions in 2022.
Several models were produced: HF-90A (Australia), HF-90E (export),
HF-90H (frequency hopping) and HF-90M (military). The aim of this driver
is to support HF-90A and HF-90E as that's the hardware I have available.
Most likely this driver is also compatible with HF-90H.
There were numerous firmware changes over the years and some radios
can't be programmed with the latest PC software from Q-MAC. Here's the
warning from Qmac.exe v3.0.4 (from 2004):
This programming software is for use on radios with Export Version
firmware (HF-90E or HF-90H) and firmware version 301 or greater.
Earlier firmware versions will be corrupted if programmed using this
software and will render the HF-90 inoperable.
Consequently, this driver comes in two flavours: "v300 or earlier" which
imitates the older v2 dealer software for use with early firmware, and
"v301 or later" which imitates the more recent v3 dealer software and
is not for use with early firmware.
Perhaps technical documentation will come to light that would explain
the quirks of the various firmware revisions. If that should happen,
the v300/v301 scheme could be improved upon. For now, it's the best
I can do.
Fixes: #10428
This removes the legacy GTK GUI from the tree. This is not being
maintained, doesn't work very well, and I'm tired of accidentally
editing files here when I mean to edit wxui/*. When we announce the
chirp-next stuff to the users, I don't want packagers to be confused
about which version to use, what the required dependencies are, etc.
Data files outside the package are not installed in binary distributions, so move them inside. Use importlib_resources to load icon and stock configs.
- use only the newer files(), as_files() and namespace APIs introduced in Python 3.10
- use the importlib_resources package if Python < 3.10
- remove obviated pkg_path()
- bump minimum Python version to 3.7
Fix test paths to account for the move
This is for drivers that share a cloning protocol module with other
tested drivers *and* are tested on a static image in the tree. For
example, all the kenwood live drivers use the same few routines for
communicating with the radio. Icom clone-mode radios (with one
exception) use the icf module for cloning and thus there's really
nothing to convert in the drivers themselves.
First, I was imperfect in my matching of models with special
characters (spaces, parens, slashes, etc) so those were not
represented here.
Second, I wasn't including aliases in the market share for the parent
radio.
This substantially alters the stats (in a good way for total
completion).
This adds some stats about which models are the most widely used to
the test matrix to help guide decisions about total testing versus
relevant testing.
Model stats are captured from our own databases, and are far from
perfect, but are probably sufficiently useful. Stats captured on
9-Dec-2022.
This should be used for drivers that are either exactly identical to
another (i.e. a subclass with only vendor/model changes) or which
can be tested with another model radio with only constraint
differences (i.e. a GMRS-locked version of an amateur model).
Converting a driver to pass tests on python3 is not quite the same
as it actually working in the real world. We need to keep track of
which drivers have been tested in the wild, separate from those that
merely pass tests.
This adds a file tests/py3_driver-testers.txt, which is a simple list
of the driver ID key and the person/date when it was tested. Running
the "makesupported" tox target will also generate
tests/Python3_Driver_Testing.md, which will be render-able in github
for easy viewing.
If you test a driver on python3, please add a line to the tracking
file, run the makesupported target, and update the markdown file.