** Description changed: [IMPACT] * Allow broader Ops/Eng team to consume Ansible from our packages instead of the upstream PyPi repositories in order to fix this warning. * Sanitize package installation: Setting up python3-jmespath (0.9.4-2) ... /usr/lib/python3/dist-packages/jmespath/visitor.py:32: SyntaxWarning: "is" with a literal. Did you mean "=="? [TEST CASE] ** Scenario #1 ** This could be reproduced outside python-jmespath as follows (a little script I have written to compare result between py2 and py3 : # reproducer_test.py ---- def reproducer(x,y): if x is 0 or x is 1: return y is True or y is False elif y is 0 or y is 1: return x is True or x is False print(reproducer(1,0)) print(reproducer(0,1)) --- $ python2 reproducer_test.py False False - $ python3 -W ignore reproducer_test.py + $ python3 -W ignore reproducer_test.py False False $ python3 reproducer_test.py test.py:2: SyntaxWarning: "is" with a literal. Did you mean "=="? if x is 0 or x is 1: test.py:2: SyntaxWarning: "is" with a literal. Did you mean "=="? if x is 0 or x is 1: test.py:4: SyntaxWarning: "is" with a literal. Did you mean "=="? elif y is 0 or y is 1: test.py:4: SyntaxWarning: "is" with a literal. Did you mean "=="? elif y is 0 or y is 1: False False With the fix in a small scale (Again, using my reproducer_test.py): # reproducer_test.py ---- def reproducer(x,y): # if x is 0 or x is 1: if type(x) is int and (x == 0 or x == 1): return y is True or y is False # elif y is 0 or y is 1: elif type(y) is int and (y == 0 or y == 1): return x is True or x is False print(reproducer(1,0)) print(reproducer(0,1)) --- # python2 reproducer_test.py False False $ python3 reproducer_test.py False False The above proves that it maintains compatibility in py2 while fixing the "SyntaxWarning "in py3. [WHERE PROBLEM COULD OCCURS] - Only thing I could see is backward compatibility between py2 and py3 where both python releases are available in main (e.g. bionic). + + Risk: Low + + * Only thing I could see is backward compatibility between py2 and py3 + where both python releases are available in main (e.g. bionic). But the backward compatibility has been tested already and it didn't exhibit any potential issue so far. - All I could think of atm. + + * No observed regression caused by this fix in upstream issues nor in the Ubuntu release where the fix has landed (Focal/Hirsute). + + * No other py3.8 commits (either fix and/or regression fix) found in the project git log. + [OTHER INFORMATIONS] Upstream issue: https://github.com/jmespath/jmespath.py/issues/187 Upstream commit: https://github.com/jmespath/jmespath.py/commit/56263b84cdb0feb7c8d54e426ec472f4dd0de44f [ORIGINAL DESCRIPTIONS] As reported upstream https://github.com/jmespath/jmespath.py/issues/201 Problems installing jmespath in Ubuntu 20.04 LTS Setting up python3-jmespath (0.9.4-2) ... /usr/lib/python3/dist-packages/jmespath/visitor.py:32: SyntaxWarning: "is" with a literal. Did you mean "=="? Fixed upstream in https://github.com/jmespath/jmespath.py/commit/56263b84cdb0feb7c8d54e426ec472f4dd0de44f Impact: this causes applications like Ansible that have dependencies on python-jmespath to send out warnings. Caused by language changes in Python 3.8. System is Ubuntu 20.04 LTS on a Pi 4. emv@pinnatus:~$ apt-cache policy python3-jmespath python3-jmespath: Installed: 0.9.4-2 Candidate: 0.9.4-2 Version table: *** 0.9.4-2 500 500 http://ports.ubuntu.com/ubuntu-ports focal/main arm64 Packages 100 /var/lib/dpkg/status
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1877792 Title: jmespath SyntaxWarning: "is" with a literal. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ansible/+bug/1877792/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs