Files
Jungfraujoch/python_client/docs/PowderCalibrationQuality.html
T
2026-10-06 20:38:39 +00:00

14 lines
23 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang=en data-content_root="../../"> <meta charset=utf-8 /> <meta name=viewport content="width=device-width, initial-scale=1.0" /><meta name=viewport content="width=device-width, initial-scale=1" /> <meta name=viewport content="width=device-width,initial-scale=1"> <meta http-equiv=x-ua-compatible content="ie=edge"> <meta name="lang:clipboard.copy" content="Copy to clipboard"> <meta name="lang:clipboard.copied" content="Copied to clipboard"> <meta name="lang:search.language" content=en > <meta name="lang:search.pipeline.stopwords" content=True > <meta name="lang:search.pipeline.trimmer" content=True > <meta name="lang:search.result.none" content="No matching documents"> <meta name="lang:search.result.one" content="1 matching document"> <meta name="lang:search.result.other" content="# matching documents"> <meta name="lang:search.tokenizer" content="[\s\-]+"> <link href="https://fonts.gstatic.com/" rel=preconnect crossorigin> <link href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700|Roboto:300,400,400i,700&display=fallback" rel=stylesheet > <style> body, input { font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif } code, kbd, pre { font-family: "Roboto Mono", "Courier New", Courier, monospace } </style> <link rel=stylesheet href="../../_static/stylesheets/application.css"/> <link rel=stylesheet href="../../_static/stylesheets/application-palette.css"/> <link rel=stylesheet href="../../_static/stylesheets/application-fixes.css"/> <link rel=stylesheet href="../../_static/fonts/material-icons.css"/> <meta name=theme-color content="#3f51b5"> <script src="../../_static/javascripts/modernizr.js"></script> <title>PowderCalibrationQuality &#8212; Jungfraujoch 1.0.0-rc.174 documentation</title> <link rel=stylesheet type="text/css" href="../../_static/pygments.css?v=83e35b93" /> <link rel=stylesheet type="text/css" href="../../_static/material.css?v=79c92029" /> <script src="../../_static/documentation_options.js?v=3dccfb20"></script> <script src="../../_static/doctools.js?v=9bcbadda"></script> <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <link rel=icon href="../../_static/jfjoch.png"/> <link rel=index title=Index href="../../genindex.html" /> <link rel=search title=Search href="../../search.html" /> <link rel=next title=PowderCalibrationSpotCheck href=PowderCalibrationSpotCheck.html /> <link rel=prev title=PowderCalibrationOutput href=PowderCalibrationOutput.html /> <body dir=ltr data-md-color-primary=indigo data-md-color-accent=lime> <svg class=md-svg > <defs data-children-count=0 > <svg xmlns="http://www.w3.org/2000/svg" width=500 height=500 viewBox="0 0 500 500" id=__gitlab ><path fill=currentColor d="M93.667 473.347l90.684-279.097H2.983l90.684 279.097z" transform="translate(156.198 1.16)"/><path fill=currentColor d="M221.333 473.345L130.649 194.25H3.557l217.776 279.095z" transform="translate(28.531 1.16)" opacity=.7 /><path fill=currentColor d="M32 195.155L4.441 279.97a18.773 18.773 0 0 0 6.821 20.99l238.514 173.29L32 195.155z" transform="translate(.089 .256)" opacity=.5 /><path fill=currentColor d="M2.667-84.844h127.092L75.14-252.942c-2.811-8.649-15.047-8.649-17.856 0L2.667-84.844z" transform="translate(29.422 280.256)"/><path fill=currentColor d="M2.667 473.345L93.351 194.25h127.092L2.667 473.345z" transform="translate(247.198 1.16)" opacity=.7 /><path fill=currentColor d="M221.334 195.155l27.559 84.815a18.772 18.772 0 0 1-6.821 20.99L3.557 474.25l217.777-279.095z" transform="translate(246.307 .256)" opacity=.5 /><path fill=currentColor d="M130.667-84.844H3.575l54.618-168.098c2.811-8.649 15.047-8.649 17.856 0l54.618 168.098z" transform="translate(336.974 280.256)"/></svg> </defs> </svg> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer > <input class=md-toggle data-md-toggle=search type=checkbox id=__search > <label class=md-overlay data-md-component=overlay for=__drawer ></label> <a href="#python_client/docs/PowderCalibrationQuality" tabindex=1 class=md-skip > Skip to content </a> <header class=md-header data-md-component=header > <nav class="md-header-nav md-grid"> <div class="md-flex navheader"> <div class="md-flex__cell md-flex__cell--shrink"> <a href="../../index.html" title="Jungfraujoch 1.0.0-rc.174 documentation" class="md-header-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--menu md-header-nav__button" for=__drawer ></label> </div> <div class="md-flex__cell md-flex__cell--stretch"> <div class="md-flex__ellipsis md-header-nav__title" data-md-component=title > <span class=md-header-nav__topic >PSI Jungfraujoch</span> <span class=md-header-nav__topic > PowderCalibrationQuality </span> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--search md-header-nav__button" for=__search ></label> <div class=md-search data-md-component=search role=dialog > <label class=md-search__overlay for=__search ></label> <div class=md-search__inner role=search > <form class=md-search__form action="../../search.html" method=get name=search > <input type=text class=md-search__input name=q placeholder=""Search"" autocapitalize=off autocomplete=off spellcheck=false data-md-component=query data-md-state=active > <label class="md-icon md-search__icon" for=__search ></label> <button type=reset class="md-icon md-search__icon" data-md-component=reset tabindex=-1 > &#xE5CD; </button> </form> <div class=md-search__output > <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=result > <div class=md-search-result__meta > Type to start searching </div> <ol class=md-search-result__list ></ol> </div> </div> </div> </div> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <div class=md-header-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> </div> <script src="../../_static/javascripts/version_dropdown.js"></script> <script> var json_loc = "../../"versions.json"", target_loc = "../../../", text = "Versions"; $( document ).ready( add_version_dropdown(json_loc, target_loc, text)); </script> </div> </nav> </header> <div class=md-container > <nav class=md-tabs data-md-component=tabs > <div class="md-tabs__inner md-grid"> <ul class=md-tabs__list > <li class=md-tabs__item ><a href="../../index.html" class=md-tabs__link >Jungfraujoch 1.0.0-rc.174 documentation</a> <li class=md-tabs__item ><a href="../../PYTHON_CLIENT.html" class=md-tabs__link >OpenAPI Python client</a> </ul> </div> </nav> <main class=md-main > <div class="md-main__inner md-grid" data-md-component=container > <div class="md-sidebar md-sidebar--primary" data-md-component=navigation > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--primary" data-md-level=0 > <label class="md-nav__title md-nav__title--site" for=__drawer > <a href="../../index.html" title="Jungfraujoch 1.0.0-rc.174 documentation" class="md-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> <a href="../../index.html" title="Jungfraujoch 1.0.0-rc.174 documentation">PSI Jungfraujoch</a> </label> <div class=md-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> <ul class=md-nav__list > <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >rugnux — data processing</span></span> <li class=md-nav__item > <a href="../../RUGNUX.html" class=md-nav__link >Rugnux</a> <li class=md-nav__item > <a href="../../RUGNUX_OVERVIEW.html" class=md-nav__link >What Rugnux does</a> <li class=md-nav__item > <a href="../../RUGNUX_INSTALL.html" class=md-nav__link >Installing Rugnux</a> <li class=md-nav__item > <a href="../../RUGNUX_FORMATS.html" class=md-nav__link >What Rugnux reads</a> <li class=md-nav__item > <a href="../../RUGNUX_TUTORIAL.html" class=md-nav__link >Running Rugnux</a> <li class=md-nav__item > <a href="../../RUGNUX_INTEGRATION.html" class=md-nav__link >Rugnux with other programs</a> <li class=md-nav__item > <a href="../../RUGNUX_REPORT.html" class=md-nav__link >The results report</a> <li class=md-nav__item > <a href="../../RUGNUX_ADVANCED.html" class=md-nav__link >Advanced Rugnux</a> <li class=md-nav__item > <a href="../../RUGNUX_CALIBRATION.html" class=md-nav__link >Detector calibration from powder rings (<code class="docutils literal notranslate"><span class=pre >rugnux</span> <span class=pre >--mode</span> <span class=pre >calibration</span></code>)</a> <li class=md-nav__item > <a href="../../CPU_DATA_ANALYSIS.html" class=md-nav__link >CPU-side crystallographic data analysis (Jungfraujoch)</a> <li class=md-nav__item > <a href="../../CPU_DATA_ANALYSIS_IMAGE.html" class=md-nav__link >Data analysis: from images to spots (§0–§3)</a> <li class=md-nav__item > <a href="../../CPU_DATA_ANALYSIS_INDEXING.html" class=md-nav__link >Data analysis: indexing and geometry (§4–§7)</a> <li class=md-nav__item > <a href="../../CPU_DATA_ANALYSIS_INTEGRATION.html" class=md-nav__link >Data analysis: integration, scaling and merging (§8–§12)</a> <li class=md-nav__item > <a href="../../CPU_DATA_ANALYSIS_DECISIONS.html" class=md-nav__link >Data analysis: space group and validation (§13–§14)</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Jungfraujoch — acquisition</span></span> <li class=md-nav__item > <a href="../../JFJOCH_BROKER.html" class=md-nav__link >jfjoch_broker</a> <li class=md-nav__item > <a href="../../JFJOCH_WRITER.html" class=md-nav__link >jfjoch_writer</a> <li class=md-nav__item > <a href="../../JFJOCH_VIEWER.html" class=md-nav__link >jfjoch_viewer</a> <li class=md-nav__item > <a href="../../SOFTWARE_INTEGRATION.html" class=md-nav__link >Integration with MX data processing software</a> <li class=md-nav__item > <a href="../../TOOLS.html" class=md-nav__link >Tools</a> <li class=md-nav__item > <a href="../../DEPLOYMENT.html" class=md-nav__link >Deployment</a> <li class=md-nav__item > <a href="../../DETECTORS.html" class=md-nav__link >Supported detectors</a> <li class=md-nav__item > <a href="../../HARDWARE.html" class=md-nav__link >Hardware requirements</a> <li class=md-nav__item > <a href="../../SOFTWARE.html" class=md-nav__link >Software requirements</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >FPGA</span></span> <li class=md-nav__item > <a href="../../FPGA.html" class=md-nav__link >FPGA smartNIC</a> <li class=md-nav__item > <a href="../../FPGA_LICENSE.html" class=md-nav__link >FPGA license</a> <li class=md-nav__item > <a href="../../FPGA_DESIGN.html" class=md-nav__link >FPGA data flow</a> <li class=md-nav__item > <a href="../../FPGA_NETWORK.html" class=md-nav__link >FPGA network</a> <li class=md-nav__item > <a href="../../FPGA_PCIE_DRIVER.html" class=md-nav__link >FPGA PCIe driver</a> <li class=md-nav__item > <a href="../../FPGA_SETTINGS.html" class=md-nav__link >FPGA advanced reference</a> <li class=md-nav__item > <a href="../../FPGA_DATA_ANALYSIS.html" class=md-nav__link >FPGA data analysis</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Reference</span></span> <li class=md-nav__item > <a href="../../DETECTOR_GEOMETRY.html" class=md-nav__link >Detector geometry</a> <li class=md-nav__item > <a href="../../OPENAPI.html" class=md-nav__link >OpenAPI</a> <li class=md-nav__item > <a href="../../OPENAPI_SPECS.html" class=md-nav__link >OpenAPI specification</a> <li class=md-nav__item > <a href="../../PYTHON_CLIENT.html" class=md-nav__link >OpenAPI Python client</a> <li class=md-nav__item > <a href="../../CBOR.html" class=md-nav__link >CBOR messages</a> <li class=md-nav__item > <a href="../../HDF5.html" class=md-nav__link >HDF5 / NeXus data format</a> <li class=md-nav__item > <a href="../../IMAGE_STREAM.html" class=md-nav__link >Data streams</a> <li class=md-nav__item > <a href="../../PIXEL_MASK.html" class=md-nav__link >Pixel mask</a> <li class=md-nav__item > <a href="../../WEB_FRONTEND.html" class=md-nav__link >Web frontend</a> <li class=md-nav__item > <a href="../../TESTS.html" class=md-nav__link >Tests</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Project</span></span> <li class=md-nav__item > <a href="../../ACKNOWLEDGEMENT.html" class=md-nav__link >Acknowledgements</a> <li class=md-nav__item > <a href="../../EXTERNAL_TEST_DATA.html" class=md-nav__link >External test data</a> <li class=md-nav__item > <a href="../../LICENSE.html" class=md-nav__link >License</a> <li class=md-nav__item > <a href="../../THIRD_PARTY_NOTICES.html" class=md-nav__link >Third-party software notices</a> <li class=md-nav__item > <a href="../../VERSIONING.html" class=md-nav__link >Semantic versioning</a> <li class=md-nav__item > <a href="../../SECURITY.html" class=md-nav__link >Security</a> <li class=md-nav__item > <a href="../../RELEASE_CONTENTS.html" class=md-nav__link >Release contents</a> <li class=md-nav__item > <a href="../../REPOSITORIES.html" class=md-nav__link >Linux package repositories</a> <li class=md-nav__item > <a href="../../NAMING.html" class=md-nav__link >Naming</a> <li class=md-nav__item > <a href="../../CHANGELOG.html" class=md-nav__link >Changelog</a> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=toc > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--secondary"> <ul class=md-nav__list data-md-scrollfix=""> </ul> </nav> </div> </div> </div> <div class=md-content > <article class="md-content__inner md-typeset" role=main > <section class="tex2jax_ignore mathjax_ignore" id=powdercalibrationquality > <h1 id=python-client-docs-powdercalibrationquality--page-root >PowderCalibrationQuality<a class=headerlink href="#python-client-docs-powdercalibrationquality--page-root" title="Link to this heading"></a></h1> <p>What a powder calibration knows about the geometry it produced. A calibration that has gone wrong - the wrong standard named, a header too far out for the rings to be found - looks exactly like one that has not until these are read.</p> <section id=properties > <h2 id=properties >Properties<a class=headerlink href="#properties" title="Link to this heading"></a></h2> <table> <thead> <tr class=row-odd ><th class=head ><p>Name</p> <th class=head ><p>Type</p> <th class=head ><p>Description</p> <th class=head ><p>Notes</p> <tr class=row-even ><td><p><strong>converged</strong></p> <td><p><strong>bool</strong></p> <td><p>Whether the geometry beside this is a measurement of the data at all. False means at least one of its parameters was carried over from the input file rather than fitted - which looks exactly like a good fit in every other field here - and see not_converged_reason for which. rugnux –mode calibration writes no .poni file in that case, a PONI file having no field in which to say it, and exits non-zero.</p> <td><p>[optional]</p> <tr class=row-odd ><td><p><strong>not_converged_reason</strong></p> <td><p><strong>str</strong></p> <td><p>What made converged false, in words. Absent when the calibration converged.</p> <td><p>[optional]</p> <tr class=row-even ><td><p><strong>calibrant</strong></p> <td><p><strong>str</strong></p> <td><p>The powder standard the rings were fitted to, or the unit cell given in its place</p> <td><p>[optional]</p> <tr class=row-odd ><td><p><strong>method</strong></p> <td><p><strong>str</strong></p> <td><p>How the rings were measured. rings fits the arcs of the run-summed (q x azimuth) azimuthal profile; spots fits the pooled per-image spot lists.</p> <td><p>[optional]</p> <tr class=row-even ><td><p><strong>ring_points</strong></p> <td><p><strong>int</strong></p> <td><p>Ring measurements the fit used</p> <td><p>[optional]</p> <tr class=row-odd ><td><p><strong>rms_radial_pxl</strong></p> <td><p><strong>float</strong></p> <td><p>Scatter of those measurements about the fitted rings, as a radial distance [pixels]. The single number that separates a calibration that worked from one that did not.</p> <td><p>[optional]</p> <tr class=row-even ><td><p><strong>beam_sigma_pxl</strong></p> <td><p><strong>float</strong></p> <td><p>Standard error the scatter implies on the beam centre [pixels], for a ring of that many points. See powder_calibration_fit_sigma for what the fit itself says, which is not the same and is the larger of the two whenever the tilt is poorly separated.</p> <td><p>[optional]</p> <tr class=row-odd ><td><p><strong>direct_beam_x_pxl</strong></p> <td><p><strong>float</strong></p> <td><p>Where the direct beam lands [pixels]. NOT dataset_settings.beam_x_pxl, which is the PONI: the two part company by distance*tan(tilt)/pixel as soon as the detector is tilted.</p> <td><p>[optional]</p> <tr class=row-even ><td><p><strong>direct_beam_y_pxl</strong></p> <td><p><strong>float</strong></p> <td><p>Where the direct beam lands, y [pixels]</p> <td><p>[optional]</p> <tr class=row-odd ><td><p><strong>header_distance_mm</strong></p> <td><p><strong>float</strong></p> <td><p>The detector distance the input file declared, for comparison [mm]</p> <td><p>[optional]</p> <tr class=row-even ><td><p><strong>ring_seed_distance_mm</strong></p> <td><p><strong>float</strong></p> <td><p>The distance measured from the ring radii before the fit ran [mm]. It is taken from the radii, the wavelength and the pixel size alone, so a large gap from header_distance_mm is the answer to the question the calibration was run to ask. Absent when the profile showed too few rings to fix a scale.</p> <td><p>[optional]</p> <tr class=row-odd ><td><p><strong>tilt_refined</strong></p> <td><p><strong>bool</strong></p> <td><p>Whether the reported rot1/rot2 were measured by this fit. False means they were declined and pinned at the input file’s values, because the rings could not separate a tilt from a shift of the beam centre.</p> <td><p>[optional]</p> <tr class=row-even ><td><p><strong>tilt_significance</strong></p> <td><p><strong>float</strong></p> <td><p>How many of its own sigmas the fitted tilt stands from zero. Below about 3 it is not a measurement of a tilt but of a beam-centre shift, and the tilt is declined. Passing does not certify a tilt: that estimator is limited by systematics rather than by this sigma.</p> <td><p>[optional]</p> <tr class=row-odd ><td><p><strong>fit_sigma</strong></p> <td><p><a class="reference internal" href=PowderCalibrationFitSigma.html ><span class="std std-doc"><strong>PowderCalibrationFitSigma</strong></span></a></p> <td><p></p> <td><p>[optional]</p> <tr class=row-even ><td><p><strong>spot_cross_check</strong></p> <td><p><a class="reference internal" href=PowderCalibrationSpotCheck.html ><span class="std std-doc"><strong>PowderCalibrationSpotCheck</strong></span></a></p> <td><p></p> <td><p>[optional]</p> </table> </section> <section id=example > <h2 id=example >Example<a class=headerlink href="#example" title="Link to this heading"></a></h2> <div class="highlight-python notranslate"><div class=highlight ><pre><span></span><span class=kn >from</span> <span class=nn >jfjoch_client.models.powder_calibration_quality</span> <span class=kn >import</span> <span class=n >PowderCalibrationQuality</span>
<span class=c1 ># TODO update the JSON string below</span>
<span class=n >json</span> <span class=o >=</span> <span class=s2 >"</span><span class=si >{}</span><span class=s2 >"</span>
<span class=c1 ># create an instance of PowderCalibrationQuality from a JSON string</span>
<span class=n >powder_calibration_quality_instance</span> <span class=o >=</span> <span class=n >PowderCalibrationQuality</span><span class=o >.</span><span class=n >from_json</span><span class=p >(</span><span class=n >json</span><span class=p >)</span>
<span class=c1 ># print the JSON string representation of the object</span>
<span class=nb >print</span><span class=p >(</span><span class=n >PowderCalibrationQuality</span><span class=o >.</span><span class=n >to_json</span><span class=p >())</span>
<span class=c1 ># convert the object into a dict</span>
<span class=n >powder_calibration_quality_dict</span> <span class=o >=</span> <span class=n >powder_calibration_quality_instance</span><span class=o >.</span><span class=n >to_dict</span><span class=p >()</span>
<span class=c1 ># create an instance of PowderCalibrationQuality from a dict</span>
<span class=n >powder_calibration_quality_from_dict</span> <span class=o >=</span> <span class=n >PowderCalibrationQuality</span><span class=o >.</span><span class=n >from_dict</span><span class=p >(</span><span class=n >powder_calibration_quality_dict</span><span class=p >)</span>
</pre></div> </div> <p><a class="reference internal" href="../README.html#documentation-for-models"><span class="std std-ref">[Back to Model list]</span></a> <a class="reference internal" href="../README.html#documentation-for-api-endpoints"><span class="std std-ref">[Back to API list]</span></a> <a class="reference internal" href="../README.html"><span class="std std-doc">[Back to README]</span></a></p> </section> </section> </article> </div> </div> </main> </div> <footer class=md-footer > <div class=md-footer-nav > <nav class="md-footer-nav__inner md-grid"> <a href=PowderCalibrationOutput.html title=PowderCalibrationOutput class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel=prev > <div class="md-flex__cell md-flex__cell--shrink"> <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> </div> <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> <span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Previous" </span> PowderCalibrationOutput </span> </div> </a> <a href=PowderCalibrationSpotCheck.html title=PowderCalibrationSpotCheck class="md-flex md-footer-nav__link md-footer-nav__link--next" rel=next > <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"><span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Next" </span> PowderCalibrationSpotCheck </span> </div> <div class="md-flex__cell md-flex__cell--shrink"><i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-footer-copyright > <div class=md-footer-copyright__highlight > &#169; Copyright 2024, Paul Scherrer Institute. </div> Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 8.1.3. and <a href="https://github.com/bashtage/sphinx-material/">Material for Sphinx</a> </div> </div> </div> </footer> <script src="../../_static/javascripts/application.js"></script> <script>app.initialize({version: "1.0.4", url: {base: ".."}})</script>