Open MichaelMonashev opened 2 years ago
I have the same problem. This is very annoying! Unfortunately, the development of this module does not seem super active... I fixed it like this until the underlying issue gets fixed:
Go to the implementation of process_file
and look at the first try
except
block, it looks like this:
try:
offset, endian, fake_exif = _determine_type(fh)
except ExifNotFound as err:
logger.warning(err)
return {}
except InvalidExif as err:
logger.debug(err)
return {}
logger.warning(err)
is what prints the warning. You can get rid of it like this:
try:
offset, endian, fake_exif = _determine_type(fh)
except ExifNotFound as err:
if warnings:
logger.warning(err)
return {}
except InvalidExif as err:
logger.debug(err)
return {}
and just add a warnings
parameter to the function declaration:
def process_file(fh: BinaryIO, stop_tag=DEFAULT_STOP_TAG,
details=True, strict=False, debug=False,
truncate_tags=True, auto_seek=True, warnings=False):
Now if you really need the warning, you can still set warnings
to True
.
Without hacking the module, in your main code where you call exifread, try:
import logging
then
logging.getLogger("exifread").setLevel(logging.ERROR)
I am opening many image file and see absolutely useless warning:
module version:
If image file does not have exif data we just get empty dict.