I tried it out now and got it working. Nicely done! :)
However, I have a few questions/concerns/suggestions. For testing I'm using an input path with mixed subdirectories, some with rars some without. I also use a separate output path.
1.
In the —auto-reconstruct mode, one would assume that it would also check for missing/incorrect extras as well, but it seems it is only looking for the default extensions (cleverly ignoring samples) and recreating full releases of those.
So I tried combining it with the —check-extras option, like this: -vafc
… but it seems that as soon as you include -c then it ONLY does that.
Don't get me wrong, this is still very useful to not have to manually download the .srr files from srrDB and doing this yourself manually one by one, but it would be nice to have a way of running the script that truly does it all.
2.
And —check-extras doesn't seem to actually "check" anything, but rather just extract the stored files and recreate the sample, regardless of whether any existing files are already good. It seems that the intention is more to just identify the release(s) and extract/create all the extras, so that you can copy them all into your folders, overwriting any existing extras, good or bad, just to be safe.
The concern I have with this is that you lose the original file dates for these file. Would it be possible to have a way of actually comparing existing files with the newly extracted ones and only keeping the new ones that are actually needed?
However, actually comparing extras to each other maybe falls outside what pyReScene can do natively…
3.
I was pleased that there also was an —check-crc option. One concern with this though is that if it doesn't find an .sfv in the input path, it does report this on screen, but directly after the script fails with this error message:
UnboundLocalError: local variable 'sfv_f' referenced before assignment
It would of course be better it if would continue with the other releases.
And even if you would not use a separate output path, then it would still fail on this, because it attempts to run the CRC check before extracting the .srr file. If it would do those two steps in the reverse order, then it would in theory be able to run the CRC check with the newly extracted .sfv file.
So I think the best would be to extract before the check and then always run the check with the newly extracted .sfv file, even if it's in another output directory.