Azure/azure-storage-python

[Storage] Storage data-plane track 1 SDK triggers SyntaxWarning on Python 3.8

jiasli opened this issue · 3 comments

Describe the bug

When the source of Storage data-plane track 1 SDK is compiled for the first time (no __pycache__ folders present), Python 3.8 gives warning:

>>> import azure.storage.blob
d:\cli\env38\lib\site-packages\azure\storage\blob\_upload_chunking.py:403: SyntaxWarning: "is" with a literal. Did you mean "=="?
  if n is 0 or self._buffer.closed:
d:\cli\env38\lib\site-packages\azure\storage\blob\baseblobservice.py:1009: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if lease_duration is not -1 and \
d:\cli\env38\lib\site-packages\azure\storage\blob\baseblobservice.py:2660: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if lease_duration is not -1 and \
d:\cli\env38\lib\site-packages\azure\storage\common\_connection.py:82: SyntaxWarning: "is" with a literal. Did you mean "=="?
  self.protocol = self.protocol if parsed_url.scheme is '' else parsed_url.scheme

This usage is against the Python 3.8 definition:

https://docs.python.org/3.8/whatsnew/3.8.html#changes-in-python-behavior

The compiler now produces a SyntaxWarning when identity checks (is and is not) are used with certain types of literals (e.g. strings, numbers). These can often work by accident in CPython, but are not guaranteed by the language spec. The warning advises users to use equality tests (== and !=) instead.

To Reproduce

Clear azure\storage\blob\__pycache__ and azure\storage\common\__pycache__, then run

import azure.storage.blob

Expected behavior

No warning should appear.

Additional context

Internal ticket and screenshots: https://dev.azure.com/azuretracking/Azure%20tracking/_workitems/edit/1271

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @xgithubtriage.

a note: this is an issue discussed with @jiasli offline, this is a issue for track1. storage will discuss about whether this will be fixed by a release or not

ping @xiafu-msft what do you think the ETA will be for this?