-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Normal
-
Affects Version/s: 2.4.0b2
-
Component/s: None
-
None
-
Environment:I'm testing this with 2.4.0b2 source on Windows 10 and Python 3.8.3
I am seeing a crash when I try to run a scan (acoustic fingerprint) on a .flac file with a pre-existing bad date in the metadata.
Here is the crash:
Traceback (most recent call last):
File ".\picard\webservice\__init__.py", line 462, in _process_reply
self._handle_reply(reply, request)
File ".\picard\webservice\__init__.py", line 449, in _handle_reply
handler(document, reply, error)
File ".\picard\acoustid\__init__.py", line 125, in _on_lookup_finished
next_func(doc, http, error)
File ".\picard\file.py", line 735, in _lookup_finished
trackmatch = self._match_to_track(tracks, threshold=threshold)
File ".\picard\file.py", line 762, in _match_to_track
best_match = find_best_match(candidates, no_match)
File ".\picard\util\__init__.py", line 593, in find_best_match
sorted_results = sort_by_similarity(candidates)
File ".\picard\util\__init__.py", line 585, in sort_by_similarity
return sorted(
File ".\picard\file.py", line 759, in candidates
yield self.metadata.compare_to_track(track, self.comparison_weights)
File ".\picard\metadata.py", line 349, in compare_to_track
release_parts = self.compare_to_release_parts(release, weights)
File ".\picard\metadata.py", line 270, in compare_to_release_parts
metadata_year = extract_year_from_date(metadata_date)
File ".\picard\util\__init__.py", line 660, in extract_year_from_date
parsed_dt = parse(dt)
File "C:\Python\Python38-32\lib\site-packages\dateutil\parser\_parser.py", line 1374, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "C:\Python\Python38-32\lib\site-packages\dateutil\parser\_parser.py", line 649, in parse
raise ParserError("Unknown string format: %s", timestr)
dateutil.parser._parser.ParserError: Unknown string format: 2015; 2015
Definitely a bad date "2015; 2015", but it shouldn't crash.