<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#467886;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:979308848;
mso-list-template-ids:895795182;}
@list l1
{mso-list-id:2127038245;
mso-list-template-ids:-1775993438;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7 ;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0A7 ;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:\F0A7 ;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7 ;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0A7 ;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:\F0A7 ;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7 ;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">I am happy to announce that we have just issued the first beta-release of NXvalidate (<a href="https://github.com/nexpy/nxvalidate">https://github.com/nexpy/nxvalidate</a>), a new Python package used to inspect and validate NeXus files.
It is currently available for installation on the PyPI server and the source code can be downloaded from Github. When it is more mature, it will be merged into the nexusformat package, with a GUI interface in NeXpy (<a href="https://nexpy.github.io/nexpy/">https://nexpy.github.io/nexpy/</a>).
I hope to discuss this at the upcoming meeting of the NeXus International Advisory Committee and would welcome any feedback if you try it out before then. Please note that this is not a production release. Please post any issues to
<a href="https://github.com/nexpy/nxvalidate/issues">https://github.com/nexpy/nxvalidate/issues</a>.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Installation<o:p></o:p></b></p>
<p class="MsoNormal">Released versions of nxvalidate can be installed using “pip install nxvalidate” and the source code can be downloaded from the NeXpy Git repository:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> <span style="font-size:10.0pt">% git clone http://github.com/nexpy/nxvalidate.git<o:p></o:p></span></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>Usage<o:p></o:p></b></p>
<p class="MsoNormal">The nxvalidate package provides a single command-line script.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt">% nxinspect -h<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt">usage: nxinspect [-h] [-f FILENAME] [-p PATH] [-a [APPLICATION]]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> [-b BASECLASS] [-i] [-w] [-e] [-v]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt">Inspects and validates NeXus files.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt">options:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -h, --help show this help message and exit<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -f FILENAME, --filename FILENAME<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> name of the NeXus file to be validated<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -p PATH, --path PATH <o:p>
</o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> path to group to be validated in the NeXus file<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -b BASECLASS, --baseclass BASECLASS<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> name of the base class to be listed<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -a [APPLICATION], --application [APPLICATION]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> validate the NeXus file against its application definition<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -i, --info output info messages in addition to warnings and errors<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -w, --warning output info messages in addition to warnings and errors<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -e, --error output info messages in addition to warnings and errors<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"> -v, --version show program's version number and exit<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><i>N.B.</i>, the command is “nxinspect,” rather than “nxvalidate” to avoid confusion with the existing “cnxvalidate” application (<a href="https://github.com/nexusformat/cnxvalidate">https://github.com/nexusformat/cnxvalidate</a>).<o:p></o:p></p>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal"><b>Examples<o:p></o:p></b></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1">To compare the contents of a NeXus file with the base classes defined by the NeXus standard and print conflicting fields or groups, type:<br>
<br>
<span style="font-size:10.0pt">% nxinspect -f <filename.nxs> -e<br>
</span><br>
The --info, --warning and --error switches control how much information is output. The default is --warning.<br>
<br>
<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">To check whether the contents of the NeXus file conform to the required contents of the application definition specified in the file, type:<br>
<br>
<span style="font-size:10.0pt">% nxinspect -f <filename.nxs> -a<br>
<br>
<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">To check whether the contents of the NeXus file conform to the required contents of an application definition file, type:<br>
<br>
<span style="font-size:10.0pt">% nxinspect -f <filename.nxs> -a <application.nxdl.xml><br>
<br>
</span><o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1">To print the contents of a base class, type:<br>
<br>
<span style="font-size:10.0pt">% nxinspect -b <base-class-name><o:p></o:p></span></li></ol>
<p class="MsoNormal"><b><o:p> </o:p></b></p>
<p class="MsoNormal">With regards,</p>
<p class="MsoNormal">Ray Osborn</p>
<div>
<div>
<p class="MsoNormal"><span style="mso-ligatures:none">-- <br>
Ray Osborn, Senior Scientist<br>
Materials Science Division<br>
Argonne National Laboratory<br>
Lemont, IL 60439, USA<br>
Phone: +1 (630) 252-9011<br>
Email: ROsborn@anl.gov<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>