1. So now they're only defined in one place.
2. config.py does an import of them, and `from config import ...` then
chains through, so no need to update other users.
3. No need to ' # noqa E402' the killswitch/config imports now.
I specifically made set_shutdown() *not* take an argument and only ever
set this true so no-one else can monkey with it, so might as well mangle
it too.
This *should* be functionally equivalent to 4.0.6, but with the addition
of proper logging. There's a chance some of the per-file code cleanups
might have inadvertently introduced bugs.
This remove all dependencies on the keyring lib, updates the
requirements.txt to reflect that, and ensures that setup.py does not
attempt to package it.
Any use of the "old" keyring code will now return None and warn about
its deprecation.
* py2exe only supports Major.Minor.Patch(.Revision), so pass only
Major.Minor.Patch to it. 'File version' of generated EXEs will have
a `.0` appended as .Revision.
* Set 'product_version' in py2exe with the full version string. This
ends up in the EXE 'Product version' property.
* WinSparkle accidentally suppoorts semver -prerelease correctly, but
not +buildmetadata. So trim the latter off and set that as the version
for checks.
* When I changed 'company_name' in setup.py to 'EDCD' this caused WinSparkle to
store, and look for, its keys there.
* There's code in config.py that attempts to set some WinSparkle options, only
if they weren't already there. This is hardcoded to use the old 'Marginal'
Registry Key.
So, explicitly do this WinSparkle setup under 'EDCD', and *always* set the
update_interval value to match what we expect. Leave the 'CheckForUpdates'
under the 'is it already here?' check so that we respect the user's choice.