Thanks for taking the time to check it out, spotting the log/lin mistake, and updating the file.
I have tested it, and it runs.
Regarding the offsets, the open and short are of different lengths, I asked an expert once, and they
mentioned that usually, the values are almost similar, but the offset length of the Short is usually very slightly (not a lot) longer than the offset length of the Open. That's for a high-end cal kit, whereas the SDR-Kits cal kit is low-cost, and the offset length of the Short is shorter than the Open offset length. In any case, both are normal positive values.
In the table screenshot earlier, I had written the values to be plugged into different VNAs in different columns. Some VNAs want the values as negative, apparently, even though the distance from the reference plane to the Open or Short is still in the usual direction, i.e., further away from the VNA.
The lengths of the open and short are (respectively) 42.35ps and 26.91ps, i.e. in millimeters they are
(by multiplying by 0.3 approx) 12.69 and 8.07 mm.
I have converted those lengths to units of wavelengths in the code, into two lists, called open_length[] and short_length[], both of the length of f_vector. My code is ugly there, I didn't know if there was an easier way to do it.
In any event, I now have the two lists and have built up s11_open_measured[] and s11_short_measured[] complex lists using the formula you mentioned (I may have got it wrong!).
However, it's not in a format that the add_single_reflect function understands, I know I somehow have to get it into a tuple with frequency_vector, but my Python knowledge is pretty basic.
I hate to take up anyone's time but if you get a chance to look at it some time, no hurry, (file attached), it would be gratefully appreciated.
It could help a lot of people since that calibration kit is very popular (since it's low-cost), and there are probably very many newcomers to VNAs (not just NanoVNA) and VNA calibration) who would benefit from your library. It's difficult enough to use a complex instrument, so being able to execute through easy-to-use Python software could be very attractive.
Once it's all working well, I plan to write beginners' documentation with screenshots, photos, etc., trial it with some guinea pigs here (and record a video while I do that), and I hope it will be useful for anyone to use for S11 purposes, even if they are Python beginners.