source: trunk/sphinxdocs/build/html/imports.html @ 1183

Last change on this file since 1183 was 1183, checked in by toby, 8 years ago

fixup number formatting; update produced doc files

  • Property svn:mime-type set to text/html
File size: 43.8 KB
Line 
1
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6
7<html xmlns="http://www.w3.org/1999/xhtml">
8  <head>
9    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10   
11    <title>GSAS-II Import Modules &mdash; GSAS-II 0.2.0 documentation</title>
12   
13    <link rel="stylesheet" href="_static/default.css" type="text/css" />
14    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
15   
16    <script type="text/javascript">
17      var DOCUMENTATION_OPTIONS = {
18        URL_ROOT:    '',
19        VERSION:     '0.2.0',
20        COLLAPSE_INDEX: false,
21        FILE_SUFFIX: '.html',
22        HAS_SOURCE:  true
23      };
24    </script>
25    <script type="text/javascript" src="_static/jquery.js"></script>
26    <script type="text/javascript" src="_static/underscore.js"></script>
27    <script type="text/javascript" src="_static/doctools.js"></script>
28    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
29    <link rel="top" title="GSAS-II 0.2.0 documentation" href="index.html" />
30    <link rel="prev" title="GSAS-II Export Modules" href="exports.html" /> 
31  </head>
32  <body>
33    <div class="related">
34      <h3>Navigation</h3>
35      <ul>
36        <li class="right" style="margin-right: 10px">
37          <a href="genindex.html" title="General Index"
38             accesskey="I">index</a></li>
39        <li class="right" >
40          <a href="py-modindex.html" title="Python Module Index"
41             >modules</a> |</li>
42        <li class="right" >
43          <a href="exports.html" title="GSAS-II Export Modules"
44             accesskey="P">previous</a> |</li>
45        <li><a href="index.html">GSAS-II 0.2.0 documentation</a> &raquo;</li> 
46      </ul>
47    </div> 
48
49    <div class="document">
50      <div class="documentwrapper">
51        <div class="bodywrapper">
52          <div class="body">
53           
54  <div class="section" id="gsas-ii-import-modules">
55<h1><em>GSAS-II Import Modules</em><a class="headerlink" href="#gsas-ii-import-modules" title="Permalink to this headline">¶</a></h1>
56<p>Imports are implemented by deriving a class from
57<a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPhase" title="GSASIIIO.ImportPhase"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportPhase</span></tt></a>, <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportStructFactor" title="GSASIIIO.ImportStructFactor"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportStructFactor</span></tt></a>
58or <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPowderData" title="GSASIIIO.ImportPowderData"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportPowderData</span></tt></a> (which are in turn
59derived from <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportBaseclass" title="GSASIIIO.ImportBaseclass"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportBaseclass</span></tt></a>)
60to implement import of
61a phase, a single crystal or a powder dataset, respectively.
62Module file names (<cite>G2phase_</cite>, <cite>G2pwd_</cite> and <cite>G2sfact_</cite>) are used to
63determine which menu an import routine should be placed into. (N.B. this
64was an unnecessary choice; this could be done from the class used.)</p>
65<div class="section" id="writing-an-import-routine">
66<h2>Writing an Import Routine<a class="headerlink" href="#writing-an-import-routine" title="Permalink to this headline">¶</a></h2>
67<p id="import-routines">When writing a import routine, one should create a new class derived
68from <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPhase" title="GSASIIIO.ImportPhase"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportPhase</span></tt></a>, <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportStructFactor" title="GSASIIIO.ImportStructFactor"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportStructFactor</span></tt></a>
69or <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPowderData" title="GSASIIIO.ImportPowderData"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportPowderData</span></tt></a>. As described below,
70all these classes will implement
71an <tt class="docutils literal"><span class="pre">__init__()</span></tt> and a <tt class="docutils literal"><span class="pre">Reader()</span></tt> method, and most will supply a
72<tt class="docutils literal"><span class="pre">ContentsValidator()</span></tt> method, too.
73See the <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPhase" title="GSASIIIO.ImportPhase"><tt class="xref py py-class docutils literal"><span class="pre">ImportPhase</span></tt></a>, <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportStructFactor" title="GSASIIIO.ImportStructFactor"><tt class="xref py py-class docutils literal"><span class="pre">ImportStructFactor</span></tt></a>
74or <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPowderData" title="GSASIIIO.ImportPowderData"><tt class="xref py py-class docutils literal"><span class="pre">ImportPowderData</span></tt></a> class documentation
75for details on what values each type of <tt class="docutils literal"><span class="pre">Reader()</span></tt> should set.</p>
76<div class="section" id="init">
77<h3>__init__()<a class="headerlink" href="#init" title="Permalink to this headline">¶</a></h3>
78<p>The class should supply a
79<tt class="docutils literal"><span class="pre">__init__</span></tt> method which calls the parent <tt class="docutils literal"><span class="pre">__init__</span></tt> method and
80specifies the following parameters:</p>
81<blockquote>
82<div><ul class="simple">
83<li><cite>extensionlist</cite>: a list of extensions that may be used for this type of file.</li>
84<li><cite>strictExtension</cite>: Should be True if only files with extensions in
85<cite>extensionlist</cite> are allows; False if all file types should be offered
86in the file browser. Also if False, the import class will be
87used on all files when &#8220;guess from format&#8221; is tried, though
88readers with matching extensions will be tried first.</li>
89<li><cite>formatName</cite>: a string to be used in the menu. Should be short.</li>
90<li><cite>longFormatName</cite>: a longer string to be used to describe the format in help.</li>
91</ul>
92</div></blockquote>
93</div>
94<div class="section" id="reader">
95<h3>Reader()<a class="headerlink" href="#reader" title="Permalink to this headline">¶</a></h3>
96<p>The class must supply a <tt class="docutils literal"><span class="pre">Reader</span></tt> method that actually performs the
97reading. All readers must have at a minimum these arguments:</p>
98<div class="highlight-python"><pre>def Reader(self, filename, filepointer, ParentFrame, **unused):</pre>
99</div>
100<p>where the arguments have the following uses:</p>
101<blockquote>
102<div><ul class="simple">
103<li><cite>filename</cite>: a string with the name of the file being read</li>
104<li><cite>filepointer</cite>: a file object (created by <tt class="xref py py-func docutils literal"><span class="pre">open()</span></tt>) that accesses
105the file and is points to the beginning of the file when Reader is
106called.</li>
107<li><cite>ParentFrame</cite>: a reference to the main GSAS-II (tree) windows, for
108the unusual <tt class="docutils literal"><span class="pre">Reader</span></tt> routines that will create GUI windows to ask
109questions.</li>
110</ul>
111</div></blockquote>
112<p>In addition, the following keyword parameters are defined that <tt class="docutils literal"><span class="pre">Reader</span></tt>
113routines may optionally use:</p>
114<blockquote>
115<div><ul class="simple">
116<li><cite>buffer</cite>: a dict that can be used to retain information between repeated calls of the routine</li>
117<li><cite>blocknum</cite>: counts the number of times that a reader is called</li>
118<li><cite>usedRanIdList</cite>: a list of previously used random Id values that can be checked to determine that a value is unique.</li>
119</ul>
120</div></blockquote>
121<p>As an example, the <cite>buffer</cite> dict is used for CIF reading to hold the parsed CIF file
122so that it can be reused without having to reread the file from
123scratch.</p>
124<div class="section" id="reader-return-values">
125<h4>Reader return values<a class="headerlink" href="#reader-return-values" title="Permalink to this headline">¶</a></h4>
126<p>The <tt class="docutils literal"><span class="pre">Reader</span></tt> routine should return the value of True if the file has been
127read successfully. Optionally, use <cite>self.warnings</cite> to indicate any
128problems.</p>
129<p>If the file cannot be read,  the <tt class="docutils literal"><span class="pre">Reader</span></tt> routine should
130return False or raise an <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportBaseclass.ImportException" title="GSASIIIO.ImportBaseclass.ImportException"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportBaseclass.ImportException</span></tt></a>
131exception. (Why either? Sometimes an exception is the easiest way to
132bail out of a called routine.) Place text in <cite>self.errors</cite> and/or use:</p>
133<div class="highlight-python"><div class="highlight"><pre><span class="n">ImportException</span><span class="p">(</span><span class="s">&#39;Error message&#39;</span><span class="p">)</span>
134</pre></div>
135</div>
136<p>to give the user information on what went wrong during the reading.</p>
137</div>
138<div class="section" id="self-warnings">
139<h4>self.warnings<a class="headerlink" href="#self-warnings" title="Permalink to this headline">¶</a></h4>
140<p>Use <cite>self.warnings</cite> to indicate any information
141that should be displayed to the user if the file is read successfully,
142but perhaps not completely or additional settings will need to be
143made.</p>
144</div>
145<div class="section" id="self-errors">
146<h4>self.errors<a class="headerlink" href="#self-errors" title="Permalink to this headline">¶</a></h4>
147<p>Use <cite>self.errors</cite> to give the user information on where and why a read
148error occurs in the file. Note that text supplied with the <tt class="docutils literal"><span class="pre">raise</span></tt>
149statement will be appended to <tt class="docutils literal"><span class="pre">self.errors</span></tt>.</p>
150</div>
151<div class="section" id="self-repeat">
152<h4>self.repeat<a class="headerlink" href="#self-repeat" title="Permalink to this headline">¶</a></h4>
153<p>Set <cite>self.repeat</cite> to True (the default is False) if a Reader should be
154called again to read a second block from a file. Most commonly
155(only?) used for reading multiple powder histograms from a single
156file. Variable <cite>self.repeatcount</cite> is used to keep track of the block
157numbers.</p>
158</div>
159<div class="section" id="support-routines">
160<h4><em>support routines</em><a class="headerlink" href="#support-routines" title="Permalink to this headline">¶</a></h4>
161<p>Note that the base class (<a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportBaseclass" title="GSASIIIO.ImportBaseclass"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportBaseclass</span></tt></a>) supplies two routines,
162<a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportBaseclass.BlockSelector" title="GSASIIIO.ImportBaseclass.BlockSelector"><tt class="xref py py-meth docutils literal"><span class="pre">BlockSelector()</span></tt></a> and
163<a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportBaseclass.MultipleBlockSelector" title="GSASIIIO.ImportBaseclass.MultipleBlockSelector"><tt class="xref py py-meth docutils literal"><span class="pre">MultipleBlockSelector()</span></tt></a> that are useful for
164selecting amongst one or more datasets (and perhaps phases) for
165<tt class="docutils literal"><span class="pre">Reader()</span></tt> routines that may encounter more than one set of information
166in a file.
167Likewise, when an operation will take some time to complete,
168use <tt class="xref py py-meth docutils literal"><span class="pre">ShowBusy()</span></tt> and
169<tt class="xref py py-meth docutils literal"><span class="pre">DoneBusy()</span></tt> to show the user
170that something is happening.</p>
171</div>
172</div>
173<div class="section" id="contentsvalidator">
174<h3>ContentsValidator()<a class="headerlink" href="#contentsvalidator" title="Permalink to this headline">¶</a></h3>
175<p>Defining a <tt class="docutils literal"><span class="pre">ContentsValidator</span></tt> method is optional, but is usually a
176good idea, particularly if the file extension is not a reliable
177identifier for the file type. The intent of this routine is to take a
178superficial look at the file to see if it has the expected
179characteristics of the expected file type. For example, are there
180numbers in the expected places?</p>
181<p>This routine is passed a single argument:</p>
182<ul class="simple">
183<li><cite>filepointer</cite>: a file object (created by <tt class="xref py py-func docutils literal"><span class="pre">open()</span></tt>) that accesses
184the file and is points to the beginning of the file when ContentsValidator is
185called.</li>
186</ul>
187<p>Note that <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportBaseclass.CIFValidator" title="GSASIIIO.ImportBaseclass.CIFValidator"><tt class="xref py py-meth docutils literal"><span class="pre">GSASIIIO.ImportBaseclass.CIFValidator()</span></tt></a> is a ContentsValidator
188for validating CIF files.</p>
189</div>
190<div class="section" id="reinitialize">
191<h3>ReInitialize()<a class="headerlink" href="#reinitialize" title="Permalink to this headline">¶</a></h3>
192<p>Import classes are substantiated only once and are used as needed.
193This means that if something needs to be initialized before the
194<tt class="docutils literal"><span class="pre">Reader()</span></tt> will be called to read a new file, it must be coded. The
195<tt class="docutils literal"><span class="pre">ReInitialize()</span></tt> method is provided for this and it is always called
196before the <tt class="docutils literal"><span class="pre">ContentsValidator</span></tt> method is called. Use care to call
197the parent class <tt class="docutils literal"><span class="pre">ReInitialize()</span></tt> method, if this is overridden.</p>
198<div class="section" id="contentsvalidator-return-values">
199<h4>ContentsValidator return values<a class="headerlink" href="#contentsvalidator-return-values" title="Permalink to this headline">¶</a></h4>
200<p>The <tt class="docutils literal"><span class="pre">ContentsValidator</span></tt> routine should return the value of True if
201the file appears to match the type expected for the class.</p>
202<p>If the file cannot be read by this class,  the routine should
203return False. Preferably one will also place text in <cite>self.errors</cite>
204to give the user information on what went wrong during the reading.</p>
205</div>
206</div>
207</div>
208<div class="section" id="currently-defined-phase-import-routines">
209<h2>Currently Defined Phase Import Routines<a class="headerlink" href="#currently-defined-phase-import-routines" title="Permalink to this headline">¶</a></h2>
210<p>Phase import routines are classes derived from
211<a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPhase" title="GSASIIIO.ImportPhase"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportPhase</span></tt></a>.
212They must be found in files named <cite>G2phase*.py</cite> that are in the Python path
213and the class must override the <tt class="docutils literal"><span class="pre">__init__</span></tt> method and add a <tt class="docutils literal"><span class="pre">Reader</span></tt> method.
214The distributed routines are:</p>
215<span class="target" id="module-G2phase"></span><div class="section" id="module-g2phase-pdb-and-exp">
216<h3><em>Module G2phase: PDB and .EXP</em><a class="headerlink" href="#module-g2phase-pdb-and-exp" title="Permalink to this headline">¶</a></h3>
217<p>A set of short routines to read in phases using routines that were
218previously implemented in GSAS-II: PDB and GSAS .EXP file formats</p>
219<dl class="class">
220<dt id="G2phase.EXP_ReaderClass">
221<em class="property">class </em><tt class="descclassname">G2phase.</tt><tt class="descname">EXP_ReaderClass</tt><a class="reference internal" href="_modules/G2phase.html#EXP_ReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.EXP_ReaderClass" title="Permalink to this definition">¶</a></dt>
222<dd><p>Routine to import Phase information from GSAS .EXP files</p>
223<dl class="method">
224<dt id="G2phase.EXP_ReaderClass.ContentsValidator">
225<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2phase.html#EXP_ReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.EXP_ReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
226<dd><p>Look for a VERSION tag in 1st line</p>
227</dd></dl>
228
229<dl class="method">
230<dt id="G2phase.EXP_ReaderClass.ReadEXPPhase">
231<tt class="descname">ReadEXPPhase</tt><big>(</big><em>G2frame</em>, <em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2phase.html#EXP_ReaderClass.ReadEXPPhase"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.EXP_ReaderClass.ReadEXPPhase" title="Permalink to this definition">¶</a></dt>
232<dd><p>Read a phase from a GSAS .EXP file.</p>
233</dd></dl>
234
235<dl class="method">
236<dt id="G2phase.EXP_ReaderClass.Reader">
237<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**unused</em><big>)</big><a class="reference internal" href="_modules/G2phase.html#EXP_ReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.EXP_ReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
238<dd><p>Read a phase from a GSAS .EXP file using <a class="reference internal" href="#G2phase.EXP_ReaderClass.ReadEXPPhase" title="G2phase.EXP_ReaderClass.ReadEXPPhase"><tt class="xref py py-meth docutils literal"><span class="pre">ReadEXPPhase()</span></tt></a></p>
239</dd></dl>
240
241</dd></dl>
242
243<dl class="class">
244<dt id="G2phase.PDB_ReaderClass">
245<em class="property">class </em><tt class="descclassname">G2phase.</tt><tt class="descname">PDB_ReaderClass</tt><a class="reference internal" href="_modules/G2phase.html#PDB_ReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.PDB_ReaderClass" title="Permalink to this definition">¶</a></dt>
246<dd><p>Routine to import Phase information from a PDB file</p>
247<dl class="method">
248<dt id="G2phase.PDB_ReaderClass.ContentsValidator">
249<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2phase.html#PDB_ReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.PDB_ReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
250<dd><p>Taking a stab a validating a PDB file
251(look for cell &amp; at least one atom)</p>
252</dd></dl>
253
254<dl class="method">
255<dt id="G2phase.PDB_ReaderClass.ReadPDBPhase">
256<tt class="descname">ReadPDBPhase</tt><big>(</big><em>filename</em>, <em>parent=None</em><big>)</big><a class="reference internal" href="_modules/G2phase.html#PDB_ReaderClass.ReadPDBPhase"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.PDB_ReaderClass.ReadPDBPhase" title="Permalink to this definition">¶</a></dt>
257<dd><p>Read a phase from a PDB file.</p>
258</dd></dl>
259
260<dl class="method">
261<dt id="G2phase.PDB_ReaderClass.Reader">
262<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**unused</em><big>)</big><a class="reference internal" href="_modules/G2phase.html#PDB_ReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase.PDB_ReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
263<dd><p>Read a PDF file using <a class="reference internal" href="#G2phase.PDB_ReaderClass.ReadPDBPhase" title="G2phase.PDB_ReaderClass.ReadPDBPhase"><tt class="xref py py-meth docutils literal"><span class="pre">ReadPDBPhase()</span></tt></a></p>
264</dd></dl>
265
266</dd></dl>
267
268</div>
269<span class="target" id="module-G2phase_GPX"></span><div class="section" id="module-g2phase-gpx-import-phase-from-gsas-ii-project">
270<h3><em>Module G2phase_GPX: Import phase from GSAS-II project</em><a class="headerlink" href="#module-g2phase-gpx-import-phase-from-gsas-ii-project" title="Permalink to this headline">¶</a></h3>
271<p>Copies a phase from another GSAS-II project file into the
272current project.</p>
273<dl class="class">
274<dt id="G2phase_GPX.PhaseReaderClass">
275<em class="property">class </em><tt class="descclassname">G2phase_GPX.</tt><tt class="descname">PhaseReaderClass</tt><a class="reference internal" href="_modules/G2phase_GPX.html#PhaseReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase_GPX.PhaseReaderClass" title="Permalink to this definition">¶</a></dt>
276<dd><p>Opens a .GPX file and pulls out a selected phase</p>
277<dl class="method">
278<dt id="G2phase_GPX.PhaseReaderClass.ContentsValidator">
279<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2phase_GPX.html#PhaseReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase_GPX.PhaseReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
280<dd><p>Test if the 1st section can be read as a cPickle block, if not it can&#8217;t be .GPX!</p>
281</dd></dl>
282
283<dl class="method">
284<dt id="G2phase_GPX.PhaseReaderClass.Reader">
285<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**unused</em><big>)</big><a class="reference internal" href="_modules/G2phase_GPX.html#PhaseReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase_GPX.PhaseReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
286<dd><p>Read a phase from a .GPX file. Does not (yet?) support selecting and reading
287more than one phase at a time.</p>
288</dd></dl>
289
290</dd></dl>
291
292</div>
293<span class="target" id="module-G2phase_CIF"></span><div class="section" id="module-g2phase-cif-coordinates-from-cif">
294<h3><em>Module G2phase_CIF: Coordinates from CIF</em><a class="headerlink" href="#module-g2phase-cif-coordinates-from-cif" title="Permalink to this headline">¶</a></h3>
295<p>Parses a CIF using  PyCifRW from James Hester and pulls out the
296structural information.</p>
297<p>If a CIF generated by ISODISTORT is encountered, extra information is
298added to the phase entry and constraints are generated.</p>
299<dl class="class">
300<dt id="G2phase_CIF.CIFPhaseReader">
301<em class="property">class </em><tt class="descclassname">G2phase_CIF.</tt><tt class="descname">CIFPhaseReader</tt><a class="reference internal" href="_modules/G2phase_CIF.html#CIFPhaseReader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase_CIF.CIFPhaseReader" title="Permalink to this definition">¶</a></dt>
302<dd><p>Implements a phase importer from a possibly multi-block CIF file</p>
303<dl class="method">
304<dt id="G2phase_CIF.CIFPhaseReader.ISODISTORT_proc">
305<tt class="descname">ISODISTORT_proc</tt><big>(</big><em>blk</em>, <em>atomlbllist</em>, <em>ranIdlookup</em><big>)</big><a class="reference internal" href="_modules/G2phase_CIF.html#CIFPhaseReader.ISODISTORT_proc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2phase_CIF.CIFPhaseReader.ISODISTORT_proc" title="Permalink to this definition">¶</a></dt>
306<dd><p>Process ISODISTORT items to create constraints etc.</p>
307</dd></dl>
308
309</dd></dl>
310
311</div>
312</div>
313<div class="section" id="currently-defined-powder-data-import-routines">
314<h2>Currently Defined Powder Data Import Routines<a class="headerlink" href="#currently-defined-powder-data-import-routines" title="Permalink to this headline">¶</a></h2>
315<p>Powder data import routines are classes derived from
316<a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportPowderData" title="GSASIIIO.ImportPowderData"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportPowderData</span></tt></a>.
317They must be found in files named <cite>G2pwd*.py</cite> that are in the Python path
318and the class must override the <tt class="docutils literal"><span class="pre">__init__</span></tt> method and add a <tt class="docutils literal"><span class="pre">Reader</span></tt> method.
319The distributed routines are:</p>
320<span class="target" id="module-G2pwd_GPX"></span><div class="section" id="module-g2pwd-gpx-gsas-ii-projects">
321<h3><em>Module G2pwd_GPX: GSAS-II projects</em><a class="headerlink" href="#module-g2pwd-gpx-gsas-ii-projects" title="Permalink to this headline">¶</a></h3>
322<p>Routine to import powder data from GSAS-II .gpx files</p>
323<dl class="class">
324<dt id="G2pwd_GPX.GSAS2_ReaderClass">
325<em class="property">class </em><tt class="descclassname">G2pwd_GPX.</tt><tt class="descname">GSAS2_ReaderClass</tt><a class="reference internal" href="_modules/G2pwd_GPX.html#GSAS2_ReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_GPX.GSAS2_ReaderClass" title="Permalink to this definition">¶</a></dt>
326<dd><p>Routines to import powder data from a GSAS-II file
327This should work to pull data out from a out of date .GPX file
328as long as the details of the histogram data itself don&#8217;t change</p>
329<dl class="method">
330<dt id="G2pwd_GPX.GSAS2_ReaderClass.ContentsValidator">
331<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2pwd_GPX.html#GSAS2_ReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_GPX.GSAS2_ReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
332<dd><p>Test if the 1st section can be read as a cPickle block, if not it can&#8217;t be .GPX!</p>
333</dd></dl>
334
335<dl class="method">
336<dt id="G2pwd_GPX.GSAS2_ReaderClass.Reader">
337<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**kwarg</em><big>)</big><a class="reference internal" href="_modules/G2pwd_GPX.html#GSAS2_ReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_GPX.GSAS2_ReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
338<dd><p>Read a dataset from a .GPX file.
339If multiple datasets are requested, use self.repeat and buffer caching.</p>
340</dd></dl>
341
342</dd></dl>
343
344</div>
345<span class="target" id="module-G2pwd_fxye"></span><div class="section" id="module-g2pwd-fxye-gsas-data-files">
346<h3><em>Module G2pwd_fxye: GSAS data files</em><a class="headerlink" href="#module-g2pwd-fxye-gsas-data-files" title="Permalink to this headline">¶</a></h3>
347<p>Routine to read in powder data in a variety of formats
348that are defined for GSAS.</p>
349<dl class="class">
350<dt id="G2pwd_fxye.GSAS_ReaderClass">
351<em class="property">class </em><tt class="descclassname">G2pwd_fxye.</tt><tt class="descname">GSAS_ReaderClass</tt><a class="reference internal" href="_modules/G2pwd_fxye.html#GSAS_ReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_fxye.GSAS_ReaderClass" title="Permalink to this definition">¶</a></dt>
352<dd><p>Routines to import powder data from a GSAS files</p>
353<dl class="method">
354<dt id="G2pwd_fxye.GSAS_ReaderClass.ContentsValidator">
355<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2pwd_fxye.html#GSAS_ReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_fxye.GSAS_ReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
356<dd><p>Validate by checking to see if the file has BANK lines</p>
357</dd></dl>
358
359<dl class="method">
360<dt id="G2pwd_fxye.GSAS_ReaderClass.Reader">
361<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**kwarg</em><big>)</big><a class="reference internal" href="_modules/G2pwd_fxye.html#GSAS_ReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_fxye.GSAS_ReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
362<dd><p>Read a GSAS (old formats) file of type FXY, FXYE, ESD or STD types.
363If multiple datasets are requested, use self.repeat and buffer caching.</p>
364</dd></dl>
365
366</dd></dl>
367
368<dl class="function">
369<dt id="G2pwd_fxye.sfloat">
370<tt class="descclassname">G2pwd_fxye.</tt><tt class="descname">sfloat</tt><big>(</big><em>S</em><big>)</big><a class="reference internal" href="_modules/G2pwd_fxye.html#sfloat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_fxye.sfloat" title="Permalink to this definition">¶</a></dt>
371<dd><p>convert a string to a float, treating an all-blank string as zero</p>
372</dd></dl>
373
374<dl class="function">
375<dt id="G2pwd_fxye.sint">
376<tt class="descclassname">G2pwd_fxye.</tt><tt class="descname">sint</tt><big>(</big><em>S</em><big>)</big><a class="reference internal" href="_modules/G2pwd_fxye.html#sint"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_fxye.sint" title="Permalink to this definition">¶</a></dt>
377<dd><p>convert a string to an integer, treating an all-blank string as zero</p>
378</dd></dl>
379
380</div>
381<span class="target" id="module-G2pwd_xye"></span><div class="section" id="module-g2pwd-xye-topas-xye-data">
382<h3><em>Module G2pwd_xye: Topas .xye data</em><a class="headerlink" href="#module-g2pwd-xye-topas-xye-data" title="Permalink to this headline">¶</a></h3>
383<p>Routine to read in powder data from a Topas-compatible .xye file</p>
384<dl class="class">
385<dt id="G2pwd_xye.xye_ReaderClass">
386<em class="property">class </em><tt class="descclassname">G2pwd_xye.</tt><tt class="descname">xye_ReaderClass</tt><a class="reference internal" href="_modules/G2pwd_xye.html#xye_ReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_xye.xye_ReaderClass" title="Permalink to this definition">¶</a></dt>
387<dd><p>Routines to import powder data from a .xye file</p>
388<dl class="method">
389<dt id="G2pwd_xye.xye_ReaderClass.ContentsValidator">
390<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2pwd_xye.html#xye_ReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_xye.xye_ReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
391<dd><p>Look through the file for expected types of lines in a valid Topas file</p>
392</dd></dl>
393
394<dl class="method">
395<dt id="G2pwd_xye.xye_ReaderClass.Reader">
396<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**unused</em><big>)</big><a class="reference internal" href="_modules/G2pwd_xye.html#xye_ReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_xye.xye_ReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
397<dd><p>Read a Topas file</p>
398</dd></dl>
399
400</dd></dl>
401
402</div>
403<span class="target" id="module-G2pwd_CIF"></span><div class="section" id="module-g2pwd-cif-cif-powder-data">
404<h3><em>Module G2pwd_CIF: CIF powder data</em><a class="headerlink" href="#module-g2pwd-cif-cif-powder-data" title="Permalink to this headline">¶</a></h3>
405<p>Routine to read in powder data from a CIF.</p>
406<dl class="class">
407<dt id="G2pwd_CIF.CIFpwdReader">
408<em class="property">class </em><tt class="descclassname">G2pwd_CIF.</tt><tt class="descname">CIFpwdReader</tt><a class="reference internal" href="_modules/G2pwd_CIF.html#CIFpwdReader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_CIF.CIFpwdReader" title="Permalink to this definition">¶</a></dt>
409<dd><p>Routines to import powder data from a CIF file</p>
410<dl class="method">
411<dt id="G2pwd_CIF.CIFpwdReader.ContentsValidator">
412<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2pwd_CIF.html#CIFpwdReader.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_CIF.CIFpwdReader.ContentsValidator" title="Permalink to this definition">¶</a></dt>
413<dd><p>Use standard CIF validator</p>
414</dd></dl>
415
416<dl class="method">
417<dt id="G2pwd_CIF.CIFpwdReader.Reader">
418<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**kwarg</em><big>)</big><a class="reference internal" href="_modules/G2pwd_CIF.html#CIFpwdReader.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2pwd_CIF.CIFpwdReader.Reader" title="Permalink to this definition">¶</a></dt>
419<dd><p>Read powder data from a CIF.
420If multiple datasets are requested, use self.repeat and buffer caching.</p>
421</dd></dl>
422
423</dd></dl>
424
425</div>
426</div>
427<div class="section" id="currently-defined-single-crystal-data-import-routines">
428<h2>Currently Defined Single Crystal Data Import Routines<a class="headerlink" href="#currently-defined-single-crystal-data-import-routines" title="Permalink to this headline">¶</a></h2>
429<p>Single crystal data import routines are classes derived from
430, <a class="reference internal" href="GSASIIGUIr.html#GSASIIIO.ImportStructFactor" title="GSASIIIO.ImportStructFactor"><tt class="xref py py-class docutils literal"><span class="pre">GSASIIIO.ImportStructFactor</span></tt></a>.
431They must be found in files named <cite>G2sfact*.py</cite> that are in the Python path
432and the class must override the <tt class="docutils literal"><span class="pre">__init__</span></tt> method and add a <tt class="docutils literal"><span class="pre">Reader</span></tt> method.
433The distributed routines are:</p>
434<span class="target" id="module-G2sfact"></span><div class="section" id="module-g2sfact-simple-hkl-import">
435<h3><em>Module G2sfact: simple HKL import</em><a class="headerlink" href="#module-g2sfact-simple-hkl-import" title="Permalink to this headline">¶</a></h3>
436<p>Read structure factors from a simple hkl file. Two routines are
437provided to read from files containing F or F<sup>2</sup> values.</p>
438<dl class="function">
439<dt id="G2sfact.ColumnValidator">
440<tt class="descclassname">G2sfact.</tt><tt class="descname">ColumnValidator</tt><big>(</big><em>parent</em>, <em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2sfact.html#ColumnValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact.ColumnValidator" title="Permalink to this definition">¶</a></dt>
441<dd><p>Validate a file to check that it contains columns of numbers</p>
442</dd></dl>
443
444<dl class="class">
445<dt id="G2sfact.HKLF2_ReaderClass">
446<em class="property">class </em><tt class="descclassname">G2sfact.</tt><tt class="descname">HKLF2_ReaderClass</tt><a class="reference internal" href="_modules/G2sfact.html#HKLF2_ReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact.HKLF2_ReaderClass" title="Permalink to this definition">¶</a></dt>
447<dd><p>Routines to import F**2, sig(F**2) reflections from a HKLF file</p>
448<dl class="method">
449<dt id="G2sfact.HKLF2_ReaderClass.ContentsValidator">
450<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2sfact.html#HKLF2_ReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact.HKLF2_ReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
451<dd><p>Make sure file contains the expected columns on numbers</p>
452</dd></dl>
453
454<dl class="method">
455<dt id="G2sfact.HKLF2_ReaderClass.Reader">
456<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**unused</em><big>)</big><a class="reference internal" href="_modules/G2sfact.html#HKLF2_ReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact.HKLF2_ReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
457<dd><p>Read the file</p>
458</dd></dl>
459
460</dd></dl>
461
462<dl class="class">
463<dt id="G2sfact.HKLF_ReaderClass">
464<em class="property">class </em><tt class="descclassname">G2sfact.</tt><tt class="descname">HKLF_ReaderClass</tt><a class="reference internal" href="_modules/G2sfact.html#HKLF_ReaderClass"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact.HKLF_ReaderClass" title="Permalink to this definition">¶</a></dt>
465<dd><p>Routines to import F, sig(F) reflections from a HKLF file</p>
466<dl class="method">
467<dt id="G2sfact.HKLF_ReaderClass.ContentsValidator">
468<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2sfact.html#HKLF_ReaderClass.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact.HKLF_ReaderClass.ContentsValidator" title="Permalink to this definition">¶</a></dt>
469<dd><p>Make sure file contains the expected columns on numbers</p>
470</dd></dl>
471
472<dl class="method">
473<dt id="G2sfact.HKLF_ReaderClass.Reader">
474<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**unused</em><big>)</big><a class="reference internal" href="_modules/G2sfact.html#HKLF_ReaderClass.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact.HKLF_ReaderClass.Reader" title="Permalink to this definition">¶</a></dt>
475<dd><p>Read the file</p>
476</dd></dl>
477
478</dd></dl>
479
480</div>
481<span class="target" id="module-G2sfact_CIF"></span><div class="section" id="module-g2sfact-cif-cif-import">
482<h3><em>Module G2sfact_CIF: CIF import</em><a class="headerlink" href="#module-g2sfact-cif-cif-import" title="Permalink to this headline">¶</a></h3>
483<p>Read structure factors from a CIF reflection table.</p>
484<dl class="class">
485<dt id="G2sfact_CIF.CIFhklReader">
486<em class="property">class </em><tt class="descclassname">G2sfact_CIF.</tt><tt class="descname">CIFhklReader</tt><a class="reference internal" href="_modules/G2sfact_CIF.html#CIFhklReader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact_CIF.CIFhklReader" title="Permalink to this definition">¶</a></dt>
487<dd><p>Routines to import Phase information from a CIF file</p>
488<dl class="method">
489<dt id="G2sfact_CIF.CIFhklReader.ContentsValidator">
490<tt class="descname">ContentsValidator</tt><big>(</big><em>filepointer</em><big>)</big><a class="reference internal" href="_modules/G2sfact_CIF.html#CIFhklReader.ContentsValidator"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact_CIF.CIFhklReader.ContentsValidator" title="Permalink to this definition">¶</a></dt>
491<dd><p>Use standard CIF validator</p>
492</dd></dl>
493
494<dl class="method">
495<dt id="G2sfact_CIF.CIFhklReader.Reader">
496<tt class="descname">Reader</tt><big>(</big><em>filename</em>, <em>filepointer</em>, <em>ParentFrame=None</em>, <em>**kwarg</em><big>)</big><a class="reference internal" href="_modules/G2sfact_CIF.html#CIFhklReader.Reader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#G2sfact_CIF.CIFhklReader.Reader" title="Permalink to this definition">¶</a></dt>
497<dd><p>Read single crystal data from a CIF.
498If multiple datasets are requested, use self.repeat and buffer caching.</p>
499</dd></dl>
500
501</dd></dl>
502
503</div>
504</div>
505</div>
506
507
508          </div>
509        </div>
510      </div>
511      <div class="sphinxsidebar">
512        <div class="sphinxsidebarwrapper">
513            <p class="logo"><a href="index.html">
514              <img class="logo" src="_static/G2_html_logo.png" alt="Logo"/>
515            </a></p>
516  <h3><a href="index.html">Table Of Contents</a></h3>
517  <ul>
518<li><a class="reference internal" href="#"><em>GSAS-II Import Modules</em></a><ul>
519<li><a class="reference internal" href="#writing-an-import-routine">Writing an Import Routine</a><ul>
520<li><a class="reference internal" href="#init">__init__()</a></li>
521<li><a class="reference internal" href="#reader">Reader()</a><ul>
522<li><a class="reference internal" href="#reader-return-values">Reader return values</a></li>
523<li><a class="reference internal" href="#self-warnings">self.warnings</a></li>
524<li><a class="reference internal" href="#self-errors">self.errors</a></li>
525<li><a class="reference internal" href="#self-repeat">self.repeat</a></li>
526<li><a class="reference internal" href="#support-routines"><em>support routines</em></a></li>
527</ul>
528</li>
529<li><a class="reference internal" href="#contentsvalidator">ContentsValidator()</a></li>
530<li><a class="reference internal" href="#reinitialize">ReInitialize()</a><ul>
531<li><a class="reference internal" href="#contentsvalidator-return-values">ContentsValidator return values</a></li>
532</ul>
533</li>
534</ul>
535</li>
536<li><a class="reference internal" href="#currently-defined-phase-import-routines">Currently Defined Phase Import Routines</a><ul>
537<li><a class="reference internal" href="#module-g2phase-pdb-and-exp"><em>Module G2phase: PDB and .EXP</em></a></li>
538<li><a class="reference internal" href="#module-g2phase-gpx-import-phase-from-gsas-ii-project"><em>Module G2phase_GPX: Import phase from GSAS-II project</em></a></li>
539<li><a class="reference internal" href="#module-g2phase-cif-coordinates-from-cif"><em>Module G2phase_CIF: Coordinates from CIF</em></a></li>
540</ul>
541</li>
542<li><a class="reference internal" href="#currently-defined-powder-data-import-routines">Currently Defined Powder Data Import Routines</a><ul>
543<li><a class="reference internal" href="#module-g2pwd-gpx-gsas-ii-projects"><em>Module G2pwd_GPX: GSAS-II projects</em></a></li>
544<li><a class="reference internal" href="#module-g2pwd-fxye-gsas-data-files"><em>Module G2pwd_fxye: GSAS data files</em></a></li>
545<li><a class="reference internal" href="#module-g2pwd-xye-topas-xye-data"><em>Module G2pwd_xye: Topas .xye data</em></a></li>
546<li><a class="reference internal" href="#module-g2pwd-cif-cif-powder-data"><em>Module G2pwd_CIF: CIF powder data</em></a></li>
547</ul>
548</li>
549<li><a class="reference internal" href="#currently-defined-single-crystal-data-import-routines">Currently Defined Single Crystal Data Import Routines</a><ul>
550<li><a class="reference internal" href="#module-g2sfact-simple-hkl-import"><em>Module G2sfact: simple HKL import</em></a></li>
551<li><a class="reference internal" href="#module-g2sfact-cif-cif-import"><em>Module G2sfact_CIF: CIF import</em></a></li>
552</ul>
553</li>
554</ul>
555</li>
556</ul>
557
558  <h4>Previous topic</h4>
559  <p class="topless"><a href="exports.html"
560                        title="previous chapter"><em>GSAS-II Export Modules</em></a></p>
561  <h3>This Page</h3>
562  <ul class="this-page-menu">
563    <li><a href="_sources/imports.txt"
564           rel="nofollow">Show Source</a></li>
565  </ul>
566<div id="searchbox" style="display: none">
567  <h3>Quick search</h3>
568    <form class="search" action="search.html" method="get">
569      <input type="text" name="q" />
570      <input type="submit" value="Go" />
571      <input type="hidden" name="check_keywords" value="yes" />
572      <input type="hidden" name="area" value="default" />
573    </form>
574    <p class="searchtip" style="font-size: 90%">
575    Enter search terms or a module, class or function name.
576    </p>
577</div>
578<script type="text/javascript">$('#searchbox').show(0);</script>
579        </div>
580      </div>
581      <div class="clearer"></div>
582    </div>
583    <div class="related">
584      <h3>Navigation</h3>
585      <ul>
586        <li class="right" style="margin-right: 10px">
587          <a href="genindex.html" title="General Index"
588             >index</a></li>
589        <li class="right" >
590          <a href="py-modindex.html" title="Python Module Index"
591             >modules</a> |</li>
592        <li class="right" >
593          <a href="exports.html" title="GSAS-II Export Modules"
594             >previous</a> |</li>
595        <li><a href="index.html">GSAS-II 0.2.0 documentation</a> &raquo;</li> 
596      </ul>
597    </div>
598    <div class="footer">
599        &copy; Copyright 2013, Von Dreele and Toby for Argonne National Laboratory.
600      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.2.
601    </div>
602  </body>
603</html>
Note: See TracBrowser for help on using the repository browser.