While writing type stubs for ExifRead (python/typeshed#9403), I've come across a few inconsistencies/bugs that are probably related to the str/bytes changes from Python 2 to Python 3.
ord_ is only ever called with a bytes argument, but checks for a str and returns a bytes argument unchanged:
I believe this method is mostly obsolete and could be replaced by straight calls to ord().
special_mode() in tags/makernote/olympus.py is (I think) passed a bytes string and returns a regular str. But in the case where the passed in string is empty, it will just return it unchanged (i.e. it will return bytes instead of str), possibly raise a TypeError:
While writing type stubs for ExifRead (python/typeshed#9403), I've come across a few inconsistencies/bugs that are probably related to the str/bytes changes from Python 2 to Python 3.
ord_
is only ever called with abytes
argument, but checks for astr
and returns abytes
argument unchanged:https://github.com/ianare/exif-py/blob/51d5c5adf638219632dd755c6b7a4ce2535ada62/exifread/utils.py#L9-L12
I believe this method is mostly obsolete and could be replaced by straight calls to
ord()
.special_mode()
in tags/makernote/olympus.py is (I think) passed abytes
string and returns a regularstr
. But in the case where the passed in string is empty, it will just return it unchanged (i.e. it will returnbytes
instead ofstr
), possibly raise aTypeError
:https://github.com/ianare/exif-py/blob/51d5c5adf638219632dd755c6b7a4ce2535ada62/exifread/tags/makernote/olympus.py#L5-L26