Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#965059: Syntax warnings with Python 3.8

236 views
Skip to first unread message

Sam Morris

unread,
Jul 15, 2020, 6:40:03 AM7/15/20
to
Package: python3-yubico
Version: 1.3.3-0.3
Severity: normal

$ ipa user-find sam
/usr/lib/python3/dist-packages/netaddr/strategy/__init__.py:189: SyntaxWarning: "is not" with a literal. Did you mean "!="?
if word_sep is not '':
/usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:288: SyntaxWarning: "is" with a literal. Did you mean "=="?
if mode is 'nand':
/usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:294: SyntaxWarning: "is" with a literal. Did you mean "=="?
elif mode is 'and':
/usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:306: SyntaxWarning: "is" with a literal. Did you mean "=="?
if mode is 'nand':
/usr/lib/python3/dist-packages/yubico/yubikey_config.py:478: SyntaxWarning: "is" with a literal. Did you mean "=="?
if slot is 1:
/usr/lib/python3/dist-packages/yubico/yubikey_config.py:483: SyntaxWarning: "is" with a literal. Did you mean "=="?
elif slot is 2:
[...]

-- System Information:
Debian Release: 10.4
APT prefers stable-updates
APT policy: (535, 'stable-updates'), (535, 'stable'), (520, 'testing'), (510, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 4.19.0-8-686-pae (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python3-yubico depends on:
ii python3 3.7.3-1
pn python3-usb <none>

python3-yubico recommends no packages.

python3-yubico suggests no packages.

Ludovic Rousseau

unread,
Mar 31, 2021, 6:00:03 AM3/31/21
to
On Wed, 15 Jul 2020 11:34:38 +0100 Sam Morris <s...@robots.org.uk> wrote:
> Package: python3-yubico
> Version: 1.3.3-0.3
> Severity: normal
>
> $ ipa user-find sam
> /usr/lib/python3/dist-packages/netaddr/strategy/__init__.py:189: SyntaxWarning: "is not" with a literal. Did you mean "!="?
> if word_sep is not '':
> /usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:288: SyntaxWarning: "is" with a literal. Did you mean "=="?
> if mode is 'nand':
> /usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:294: SyntaxWarning: "is" with a literal. Did you mean "=="?
> elif mode is 'and':
> /usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:306: SyntaxWarning: "is" with a literal. Did you mean "=="?
> if mode is 'nand':
> /usr/lib/python3/dist-packages/yubico/yubikey_config.py:478: SyntaxWarning: "is" with a literal. Did you mean "=="?
> if slot is 1:
> /usr/lib/python3/dist-packages/yubico/yubikey_config.py:483: SyntaxWarning: "is" with a literal. Did you mean "=="?
> elif slot is 2:
> [...]

The problem is already fixed upstream in https://github.com/Yubico/python-yubico/commit/b4a53389c3e6ad41c836aa82998149f427fe1ad8 since September 2019.

But the change is not yet available in a released version of
python-yubico.

Maybe the Debian package could use the upstream patch?

Petter Reinholdtsen

unread,
Sep 9, 2021, 2:00:03 AM9/9/21
to
[Ludovic Rousseau]
> The problem is already fixed upstream in
> https://github.com/Yubico/python-yubico/commit/b4a53389c3e6ad41c836aa82998149f427fe1ad8
> since September 2019.
>
> But the change is not yet available in a released version of
> python-yubico.
>
> Maybe the Debian package could use the upstream patch?

Or perhaps upstream can make a new release?

I see the same messages, but my run is followed up with this crash.
Perhaps a releated issue?

% yubikey-totp
/usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:288: SyntaxWarning: "is" with a literal. Did you mean "=="?
if mode is 'nand':
/usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:294: SyntaxWarning: "is" with a literal. Did you mean "=="?
elif mode is 'and':
/usr/lib/python3/dist-packages/yubico/yubikey_usb_hid.py:306: SyntaxWarning: "is" with a literal. Did you mean "=="?
if mode is 'nand':
/usr/lib/python3/dist-packages/yubico/yubikey_config.py:478: SyntaxWarning: "is" with a literal. Did you mean "=="?
if slot is 1:
/usr/lib/python3/dist-packages/yubico/yubikey_config.py:483: SyntaxWarning: "is" with a literal. Did you mean "=="?
elif slot is 2:
Traceback (most recent call last):
File "/usr/bin/yubikey-totp", line 132, in <module>
sys.exit(main())
File "/usr/bin/yubikey-totp", line 120, in main
otp = make_totp(args)
File "/usr/bin/yubikey-totp", line 106, in make_totp
secret = struct.pack("> Q", args.time / args.step).ljust(64, chr(0x0))
struct.error: required argument is not an integer
%

--
Happy hacking
Petter Reinholdtsen

Petter Reinholdtsen

unread,
Sep 9, 2021, 2:20:03 AM9/9/21
to
[Petter Reinholdtsen]
> I see the same messages, but my run is followed up with this crash.
> Perhaps a releated issue?

I managed to get the tool working again using this patch:

--- /usr/bin/yubikey-totp 2020-03-31 06:00:00.000000000 +0200
+++ /tmp/yubikey-totp 2021-09-09 08:04:05.413315000 +0200
@@ -103,7 +103,7 @@
print("Serial : %i" % YK.serial())
print("")
# Do challenge-response
- secret = struct.pack("> Q", args.time / args.step).ljust(64, chr(0x0))
+ secret = struct.pack("> Q", int(args.time / args.step)).ljust(64, bytes.fromhex('00'))
if args.debug:
print("Sending challenge : %s\n" % (binascii.hexlify(secret)))
response = YK.challenge_response(secret, slot=args.slot)

Seem to me the problem is python3 making divisions return floating point
numbers and bytes.ljust() now only accepting bytes as its second
argument.

Harald Dunkel

unread,
Jun 19, 2023, 9:20:05 AM6/19/23
to
Metoo, now for Bookworm. :-(
0 new messages