Sometimes sfv files don't have the crc32 string in upper case hexadecimal but rather in lower case hexadecimal. When this happens, file hash.verify_sfv returns failed matches even though the crc32 expected vs actual is technically correct. Should the check be:
expected_crc32.upper() == actual_crc32.upper()
to be more resilient/forgiving?