<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hi everyone,
<div class="">I wanted to thank everyone for the constructive discussion at NIAC-2020. I thought it was a helpful exchange of views. In case you didn’t copy it from the chat window, here is a link to the Jupyter notebook that you can run online in a Googe colab
 if you want to find out more about how it works.</div>
<div class=""><br class="">
</div>
<div class=""><a href="https://colab.research.google.com/github/nexpy/nexusformat/blob/master/src/nexusformat/notebooks/nexusformat.ipynb" class="">https://colab.research.google.com/github/nexpy/nexusformat/blob/master/src/nexusformat/notebooks/nexusformat.ipynb</a></div>
<div class=""><br class="">
</div>
<div class="">Expanded documentation is available in the section on “Python Interface to NeXus” in the NeXpy documentation at  <a href="https://nexpy.github.io/nexpy/" class="">https://nexpy.github.io/nexpy/</a>.</div>
<div class=""><br class="">
</div>
<div class="">If you don’t mind, I would like to reiterate one argument that only occurred to me during the discussion. It concerns the maintainability of code accessing NeXus files. If you use h5py directly, then if there is a change to the NeXus standard,
 such as the signal/axes change a few years ago, you will have to update all the h5py code manually to ensure continued compatibility. If backward compatibility is important, you will have to ensure that both the obsolete and new standards are handled correctly.
 For those of you who keep track of the standard, this might not be too big an issue, but for large projects, managed by groups that are not so committed to maintaining compatibility (e.g., Mantid), this could lead to a host of issues down the line. </div>
<div class=""><br class="">
</div>
<div class="">Of course, the same is true for the nexusformat package, but its raison d’etre is to maintain compatibility with an evolving standard, and it is the reason why I am keen to get more developers involved in maintaining it. Backward-compatible fixes
 within ’nexusformat’ would work for everyone using the  API without any extra coding, potentially saving a lot of time.</div>
<div class=""><br class="">
</div>
<div class="">If you try out the Jupyter notebook and have any feedback, I will try to attend as much of the code camp as I can.</div>
<div class=""><br class="">
</div>
<div class="">Ray</div>
<div class="">P.S. I should warn anyone using h5py that the upcoming v3.0.0 will now always return byte strings, rather than unicode, so if you have assumed that h5py[’text’][()] returns a string, you are in for a surprise. For backward compatibility, you will
 have to check for the h5py version. There is example code in <a href="https://gist.github.com/takluyver/32512eb5367d11d013029af5fbf1d3e1" class="">https://gist.github.com/takluyver/32512eb5367d11d013029af5fbf1d3e1</a>. This is already handled in the nexusformat
 package. <br class="">
<div class="">
<div class="">-- <br class="">
Ray Osborn, Senior Scientist<br class="">
Materials Science Division<br class="">
Argonne National Laboratory<br class="">
Argonne, IL 60439, USA<br class="">
Phone: +1 (630) 252-9011<br class="">
<a href="mailto:ROsborn@anl.gov" class="">Email: ROsborn@anl.gov</a><br class="">
<br class="">
</div>
<br class="">
</div>
</div>
</body>
</html>