Fingerprints could be lost on concurrent update
As the fingerprints are load at __init__
if the file is changed in between by another client, this last changes will be lost.
The best option would be to lock the file but Python standard lib does not have a cross-platform file locking mechanism.
Loading the content just before saving limit this case and it should be enough for our use case.