Since RiceDB is only in contact with files when it is instructed to move them, it will need to perform integrity checks in the swapout.py and in the event that files indicated in sysinfo.json or index.json are missing, it should ask the user whether or not they want to redownload the rice or delete it. In the case of both a redownload and delete, all files indicated in index.json and sysinfo.json will be deleted, but if redownload is requested, download.py will be called for that rice. In addition, swapout.py must check all files it moves against their corresponding sha256 hashes to verify integrity. If files have been modified, the user will be asked if they want to keep modifications, delete the rice, or redownload the rice. The latter two options will be performed identically as above, and if the user chooses to keep modifications the swapout will simply proceed as normal
Since RiceDB is only in contact with files when it is instructed to move them, it will need to perform integrity checks in the swapout.py and in the event that files indicated in sysinfo.json or index.json are missing, it should ask the user whether or not they want to redownload the rice or delete it. In the case of both a redownload and delete, all files indicated in index.json and sysinfo.json will be deleted, but if redownload is requested, download.py will be called for that rice. In addition, swapout.py must check all files it moves against their corresponding sha256 hashes to verify integrity. If files have been modified, the user will be asked if they want to keep modifications, delete the rice, or redownload the rice. The latter two options will be performed identically as above, and if the user chooses to keep modifications the swapout will simply proceed as normal