quantized-lab 0.27.0__tar.gz → 0.30.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- quantized_lab-0.30.0/PKG-INFO +198 -0
- quantized_lab-0.30.0/pyproject.toml +178 -0
- quantized_lab-0.30.0/src/quantized/__init__.py +11 -0
- quantized_lab-0.30.0/src/quantized/app.py +287 -0
- quantized_lab-0.30.0/src/quantized/auth.py +129 -0
- quantized_lab-0.30.0/src/quantized/body_limit.py +120 -0
- quantized_lab-0.30.0/src/quantized/calc/_hull_query.py +40 -0
- quantized_lab-0.30.0/src/quantized/calc/_rsm_grid.py +295 -0
- quantized_lab-0.30.0/src/quantized/calc/decimate.py +177 -0
- quantized_lab-0.30.0/src/quantized/calc/encoding_text.py +91 -0
- quantized_lab-0.30.0/src/quantized/calc/figure.py +498 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_autoscale.py +128 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_axis_titles.py +83 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_break.py +245 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_categorical.py +281 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_category_axis.py +375 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_colorscatter.py +155 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_decor.py +227 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_excluded.py +88 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_facets.py +469 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_facets_excluded.py +97 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_facets_grid.py +60 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_facets_map.py +224 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_greyscale.py +257 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_group_notes.py +224 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_inset.py +224 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_labels.py +238 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_legend_memo.py +93 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_log_ticks.py +211 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_map.py +378 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_overrides.py +308 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_page.py +477 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_page_facets.py +446 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_polar.py +171 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_render.py +206 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_scale.py +156 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_stat_colors.py +101 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_stat_marks.py +347 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_statplots.py +427 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_ticks.py +315 -0
- quantized_lab-0.30.0/src/quantized/calc/figure_y2.py +340 -0
- quantized_lab-0.30.0/src/quantized/calc/fit_model_compare.py +135 -0
- quantized_lab-0.30.0/src/quantized/calc/global_curve_fit.py +340 -0
- quantized_lab-0.30.0/src/quantized/calc/interp2d.py +499 -0
- quantized_lab-0.30.0/src/quantized/calc/magnetometry.py +499 -0
- quantized_lab-0.30.0/src/quantized/calc/peak_batch.py +146 -0
- quantized_lab-0.30.0/src/quantized/calc/peaks.py +309 -0
- quantized_lab-0.30.0/src/quantized/calc/plot_waterfall_x.py +114 -0
- quantized_lab-0.30.0/src/quantized/calc/plotting.py +400 -0
- quantized_lab-0.30.0/src/quantized/calc/plotting_encoded.py +324 -0
- quantized_lab-0.30.0/src/quantized/calc/plotting_encoded_facets.py +150 -0
- quantized_lab-0.30.0/src/quantized/calc/refl_dream.py +473 -0
- quantized_lab-0.30.0/src/quantized/calc/refl_dream_bands.py +78 -0
- quantized_lab-0.30.0/src/quantized/calc/refl_fit.py +251 -0
- quantized_lab-0.30.0/src/quantized/calc/refl_graded.py +211 -0
- quantized_lab-0.30.0/src/quantized/calc/refl_model.py +285 -0
- quantized_lab-0.30.0/src/quantized/calc/report_emit_peaks.py +204 -0
- quantized_lab-0.30.0/src/quantized/calc/sims_compare.py +170 -0
- quantized_lab-0.30.0/src/quantized/calc/sims_depth.py +349 -0
- quantized_lab-0.30.0/src/quantized/calc/sims_process.py +249 -0
- quantized_lab-0.30.0/src/quantized/calc/sims_region.py +377 -0
- quantized_lab-0.30.0/src/quantized/calc/unit_convert.py +461 -0
- quantized_lab-0.30.0/src/quantized/cli.py +247 -0
- quantized_lab-0.30.0/src/quantized/client.py +339 -0
- quantized_lab-0.30.0/src/quantized/csv_safe.py +70 -0
- quantized_lab-0.30.0/src/quantized/data_roots.py +48 -0
- quantized_lab-0.30.0/src/quantized/desktop_bridge_dialogs.py +391 -0
- quantized_lab-0.30.0/src/quantized/desktop_bridge_pack.py +456 -0
- quantized_lab-0.30.0/src/quantized/desktop_bridge_pack_state.py +195 -0
- quantized_lab-0.30.0/src/quantized/io/_decimal_comma.py +244 -0
- quantized_lab-0.30.0/src/quantized/io/_delimited_fast.py +309 -0
- quantized_lab-0.30.0/src/quantized/io/_delimited_layout.py +497 -0
- quantized_lab-0.30.0/src/quantized/io/_error_roles.py +38 -0
- quantized_lab-0.30.0/src/quantized/io/_hdf5_layout.py +330 -0
- quantized_lab-0.30.0/src/quantized/io/_jcamp_asdf.py +152 -0
- quantized_lab-0.30.0/src/quantized/io/_map_schema.py +67 -0
- quantized_lab-0.30.0/src/quantized/io/_ncnr_blocks.py +181 -0
- quantized_lab-0.30.0/src/quantized/io/_orso_yaml.py +265 -0
- quantized_lab-0.30.0/src/quantized/io/_refl_columns.py +97 -0
- quantized_lab-0.30.0/src/quantized/io/_row_width.py +65 -0
- quantized_lab-0.30.0/src/quantized/io/_safe_xml.py +47 -0
- quantized_lab-0.30.0/src/quantized/io/_sims_header.py +140 -0
- quantized_lab-0.30.0/src/quantized/io/_spc_axes.py +64 -0
- quantized_lab-0.30.0/src/quantized/io/_xrdml_scan.py +280 -0
- quantized_lab-0.30.0/src/quantized/io/base.py +170 -0
- quantized_lab-0.30.0/src/quantized/io/bruker_brml.py +269 -0
- quantized_lab-0.30.0/src/quantized/io/bruker_brml_map.py +307 -0
- quantized_lab-0.30.0/src/quantized/io/bruker_raw.py +205 -0
- quantized_lab-0.30.0/src/quantized/io/consolidated.py +169 -0
- quantized_lab-0.30.0/src/quantized/io/delimited.py +493 -0
- quantized_lab-0.30.0/src/quantized/io/error_binding_confidence.py +215 -0
- quantized_lab-0.30.0/src/quantized/io/error_binding_suggestions.py +347 -0
- quantized_lab-0.30.0/src/quantized/io/error_unit_evidence.py +162 -0
- quantized_lab-0.30.0/src/quantized/io/excel.py +345 -0
- quantized_lab-0.30.0/src/quantized/io/excel_sheets.py +75 -0
- quantized_lab-0.30.0/src/quantized/io/import_parse.py +218 -0
- quantized_lab-0.30.0/src/quantized/io/import_preview.py +499 -0
- quantized_lab-0.30.0/src/quantized/io/jcamp.py +274 -0
- quantized_lab-0.30.0/src/quantized/io/lakeshore.py +154 -0
- quantized_lab-0.30.0/src/quantized/io/ncnr.py +330 -0
- quantized_lab-0.30.0/src/quantized/io/ncnr_polarized.py +179 -0
- quantized_lab-0.30.0/src/quantized/io/netcdf.py +250 -0
- quantized_lab-0.30.0/src/quantized/io/opus.py +258 -0
- quantized_lab-0.30.0/src/quantized/io/origin.py +431 -0
- quantized_lab-0.30.0/src/quantized/io/orso.py +354 -0
- quantized_lab-0.30.0/src/quantized/io/qd.py +419 -0
- quantized_lab-0.30.0/src/quantized/io/qd_companions.py +97 -0
- quantized_lab-0.30.0/src/quantized/io/refl1d.py +147 -0
- quantized_lab-0.30.0/src/quantized/io/registry.py +373 -0
- quantized_lab-0.30.0/src/quantized/io/report_export.py +370 -0
- quantized_lab-0.30.0/src/quantized/io/sims.py +400 -0
- quantized_lab-0.30.0/src/quantized/io/spc.py +457 -0
- quantized_lab-0.30.0/src/quantized/io/technique.py +205 -0
- quantized_lab-0.30.0/src/quantized/io/xrd_csv.py +318 -0
- quantized_lab-0.30.0/src/quantized/io/xrd_export_read.py +135 -0
- quantized_lab-0.30.0/src/quantized/io/xrdml.py +433 -0
- quantized_lab-0.30.0/src/quantized/portable/attention.py +88 -0
- quantized_lab-0.30.0/src/quantized/routes/_columns.py +122 -0
- quantized_lab-0.30.0/src/quantized/routes/_datasetcache.py +357 -0
- quantized_lab-0.30.0/src/quantized/routes/_disconnect.py +50 -0
- quantized_lab-0.30.0/src/quantized/routes/_offloop.py +75 -0
- quantized_lab-0.30.0/src/quantized/routes/_plainimport.py +40 -0
- quantized_lab-0.30.0/src/quantized/routes/aggregate.py +70 -0
- quantized_lab-0.30.0/src/quantized/routes/corrections.py +93 -0
- quantized_lab-0.30.0/src/quantized/routes/datasets.py +65 -0
- quantized_lab-0.30.0/src/quantized/routes/export.py +288 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figure_batch.py +105 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures.py +500 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures_aux.py +262 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures_axis_titles.py +70 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures_encoded.py +210 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures_facets.py +196 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures_labels.py +123 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures_polar.py +143 -0
- quantized_lab-0.30.0/src/quantized/routes/export_figures_schema.py +277 -0
- quantized_lab-0.30.0/src/quantized/routes/export_page.py +241 -0
- quantized_lab-0.30.0/src/quantized/routes/export_statplots.py +422 -0
- quantized_lab-0.30.0/src/quantized/routes/fitting_global.py +212 -0
- quantized_lab-0.30.0/src/quantized/routes/fitting_stats.py +147 -0
- quantized_lab-0.30.0/src/quantized/routes/magnetic.py +146 -0
- quantized_lab-0.30.0/src/quantized/routes/parsers.py +500 -0
- quantized_lab-0.30.0/src/quantized/routes/peaks.py +379 -0
- quantized_lab-0.30.0/src/quantized/routes/plot.py +202 -0
- quantized_lab-0.30.0/src/quantized/routes/reflectivity.py +327 -0
- quantized_lab-0.30.0/src/quantized/routes/reflectivity_graded.py +68 -0
- quantized_lab-0.30.0/src/quantized/routes/rsm.py +338 -0
- quantized_lab-0.30.0/src/quantized/routes/sims.py +227 -0
- quantized_lab-0.30.0/src/quantized/routes/stats.py +455 -0
- quantized_lab-0.30.0/src/quantized/routes/structures.py +147 -0
- quantized_lab-0.30.0/src/quantized/routes/transform.py +96 -0
- quantized_lab-0.30.0/src/quantized/security.py +185 -0
- quantized_lab-0.30.0/src/quantized/server_launch.py +332 -0
- quantized_lab-0.30.0/src/quantized/unit_display.py +59 -0
- quantized_lab-0.30.0/src/quantized/web/assets/AnnotationTextDialog-C7Y33tY0.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/AuxFigurePanels-4_roYN-2.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/BackgroundPlotWindow-TFogZqek.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/BaselinePanel-Crs5PNAG.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/BatchIntegrateWindow-D1ra3_k4.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/BufferedNumberField-ZYDztOae.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/CalcOnlyApp-COXi2qeC.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/CalculatorsContent-BFRENlEc.js +9 -0
- quantized_lab-0.30.0/src/quantized/web/assets/CalculatorsPanel-BR00bSHK.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/Card-DKpKAxOL.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/CollectionsSection-5lOv67ru.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ColumnSwitcher-DxpJaUHH.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/CombineWorkbooksDialog-BAJVvY7m.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/CompareModelsSection-XZ9FnQP7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ConfirmDialog-BETSxDHu.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ConfirmDialogBody-COYf0ZuV.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/CurveFitPanel-Kvo2esAK.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/DataFilterPanel-cPDSXHIy.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/DatasetMathPanel-CI0TrIt3.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/DatasetRow-BXDuFI4W.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/DemagCustomFields-B9BsD3Dh.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/DigitizerView-CuqL0dlW.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/DistributionPanel-Bl4y2es5.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/EditableFiguresSection-lVr6k-1u.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/EmptyProjectStage-BsgTpsin.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/FigureBuilderView-D9OADSl_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/FigurePageView-DcWRBxqA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/FigureRow-BGDt2mz8.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/FiguresSection-Dv_aHnaM.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/FitBandsSection-Bg5Q4w1u.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/FitDiagnosticsSection-CZjxdAL8.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/FitYByXPanel-DlqyYkpA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/GlobalFitSection-DDDzjATd.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/GradedLayerEditor-C43KjXdY.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/GraphBuilderPanel-BCafRnyE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/HelpDialog-BaFYzCAQ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/HomeScreen-d2bi0469.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/HysteresisPanel-CC20n-Cx.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ImportWizardPanel-BPcVwmy_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/InsetPlot-k3dKKgET.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/Inspector-Be_9A47g.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/InteractionHintsCard-DLxUgVQE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- quantized_lab-0.30.0/src/quantized/web/assets/LegendResizeHandles-CBcEIqti.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/LevelOrderPanel-DAzgk0IP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/LibraryDetails-AGEHOpzV.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/LibraryFlatRows-DbfHT7L3.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/LibraryTree-CNKd-neN.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/LibraryWorkspace-B6n8mWiH.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/MagToolsPanel-By3yVMXF.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/MapStage-DbCxsnIm.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/MetaFactorsPanel-DG7_ykx6.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/MultiPanelStage-BWy5Oq_s.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/MultiSelectBar-Be1aUjU-.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/MultivarPanel-CdLV9ggP.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/OdrSection-Bb2i4dWf.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/OriginBulkRecoveryWindow-CoUEGjdw.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/OriginFidelitySection-DZAl2-Ye.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/OriginRecoveryWindow-DJ9XOOa7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/OriginSavedPreviewWindow-DvIrrvJI.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/OutlierScreeningPanel-Bv4hL2IE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PackProjectPanel-CP4eOraV.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PagesSection-CKA3vXyX.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PanelPlotWindow-C4VvJk2F.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ParamDialog-Ceit1RCM.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ParamDialogBody-C_c383wM.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PeakFindAdvanced-DltP2vEr.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PeakWizardPanel-BpOV52rC.js +4 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PeaksPanel-B80J2o0V.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PipelinePanel-DnrFzbyT.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PlotContextMenu-BP7YREnd.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PlotRecipeApplyDialog-B5uUAIBZ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PlotResultChips-DYsXrAy3.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PolarStage-B3AKhGtW.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PolarStageCore-C16XZDPY.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/PreferencesDialog-COu5x0Lk.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/QuickFigureBuilderWorkspace-D_NW0Yyh.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/QuickPlotWithDialog-C1jTqaxe.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RecipeLibraryPanel-By0am1uh.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RecipeManagerPanel-DWZ1WbwG.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RecipeThumbnail-CIU7OGV7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RecodePanel-_xw5reqT.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RecoveryChoiceDialog-Cv1GHQOB.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ReductionsPanel-DWoDtmnw.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ReflView-DTmbY3Rs.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ReflectivityPanel-Cv6he6jq.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ReimportAllDialog-D7GTwyNb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RelinkPanel-BNAmHzPC.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ReportPanel-DnztlGWU.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ReportsSection-DPzpHeli.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ResamplePanel-DCo59v6B.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ReshapePanel-BoNdWJcq.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RichLabelInput-BNU_Xh_Y.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RoiCutsPanel-aWHssdtH.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/RsmPanel-Cp-eCJaf.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SavedFiguresSection-Bf7MeQjx.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SearchPanel-txJJcP40.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SegmentedControl-BIUIInGF.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SeparateWorksheetsDialog-CuBjDqdC.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ShortcutsDialog-cA_rXAzz.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SimsPanel-Ba93lfmM.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SliderRow-Epu_1DVG.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SmartFoldersSection-DQkmuVR7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SnapshotPlotWindow-USiZRV9s.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SpatialPanelLegend-BPmIuSgf.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SpinAsymmetryView-DENIeloR.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SplitDatasetDialog-DYvnKtbI.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/SqliteQueryDialog-DiaBXT91.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/StatStage-CmdkjHDY.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/StatsChooserPanel-D7dR67uE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/StatsTestsPanel-B3UxH8ln.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/StructurePresetPicker-VA7N3Hgn.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/Switch-BQoEwDUO.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/TabulatePanel-DJO4vBnx.js +3 -0
- quantized_lab-0.30.0/src/quantized/web/assets/TechniqueWorkspace-DgQz72ad.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/TextFormatHelp-BK5v5q1f.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ToolWindow-DApPbIBy.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/TransformPreviewTable-tFmWuUqT.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/TransformStepEditor-DdsmgOuI.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/TrashPanel-B3FjxcDc.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/VariabilityChartPanel-BI3fK7W_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/WaterfallView-C5elYEYH.js +3 -0
- quantized_lab-0.30.0/src/quantized/web/assets/WhatIsThis-C596zTg8.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/WindowWorkspaceControls-DjGLlOjy.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/WorkbookPropertiesDialog-Be60HhxP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/Worksheet-CUFWJuae.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/WorksheetPane-DmsYARbK.js +4 -0
- quantized_lab-0.30.0/src/quantized/web/assets/WorkspaceFailure-Ba64MmY8.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/ZoneWell-DA23CpOb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/addReportWithProvenance-C-usUjzd.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/annotationTextDialog-BvDtuE81.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/api-BX2Xc1j_.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/appMenuModel-DUSnIzmE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/axisLimFields-DTiIH62k.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/axisspec-SqTZbcyy.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/barMatrix-C9eYOjUd.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/barlayout-OE9ZE8vb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/baseline-BfkPQXcU.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/batchFigureRequest-Dk-NjMQO.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/bookData-Chwydnp_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/channelRemapDocs-BCZuaRxT.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/clipboard-Duw3HLJy.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/clipboardExtras-Soga6EbY.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/collections-3vwPDTKa.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/commands-B5Wi7Zyd.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/composition-DyX8uo_H.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/confirmDialog-Ck9FfBgo.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/copyFigureCommand-4VbSOusb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/copySvgBudget-BxbaeRfY.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/correctionsRun-DtX_7f3s.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/crystalStructures-CmBaIdjT.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/csvCell-BOVmNvWR.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/curvefit-DwcMsYue.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/datasetPatch-BDfd5NaY.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/datasetRowMenu-ToylDTDP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/datasetsplit-DvEyVG33.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/dependencyImpact-PjXam9uk.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/derivedColumn-BJfRGS8O.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/derivedColumnRun-DZY_63wI.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/derivedFitRefs-xWQmoPa_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/desktopBridge-De3OobXh.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/desktopLockProvider-BNv71agt.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/desktopRelinkBridge-B9Hd6ANA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/desktopSaveBridge-BBagEAaa.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/diagnostics-BHBvuY_7.js +3 -0
- quantized_lab-0.30.0/src/quantized/web/assets/drawnSeriesStyle-C7shKAM0.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/errorRoleConfirm-BI5Qesaj.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/errorRoles-BL3mXsXh.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/errorbars-Cy3HxH61.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/excludedRowsChoice-_k3ww0_Y.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/excludedRowsExport-hSvjuHSX.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/exportActive-Dvo7Tlvf.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/exportFigureCommand-C0T2P2Fv.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/exportPageCommand-D7LHuMmT.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/facet-DKtQtBpw.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/facetDomains-CkGfQxD3.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/facetExcluded-Bas5ua5K.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/facetGrid-BJ4eyy5I.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figureCompatibility-wq_dVsUk.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figureDocument-CRrk58VM.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figureDocumentReimport-uMCHDsUR.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figureEncoding-CwuTg31e.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figureLifecycleUi-CesR4Tjk.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figureOutputConstants-BhkPupOO.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figurePage-B8bMhb-M.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figureSpec-Dq5hKATt.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/figures-NQsU2G_B.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/fileCommandsLazy-DHCoAZn2.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/fitRefsRun-AwY6X4HA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/fitStats-CUsBJAQi.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/fitmodels-D2idKktP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/fitselectionActions-DgPdyKRe.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/focusGuard-DA70tga1.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/folderOps-Cp1XNXvL.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/foldertree-CSBav-8y.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/foldertreeQueries-D1j4tb30.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/formula-wKTeGf3Q.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/frameCoalesce-jdvGhBDR.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/gadgetReport-s6PL84BR.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/gadgetRun-PBEJn93e.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/gestureCancel-CgXYJnPJ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/globalPlotRecipes-Dhipfs0y.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/gridwindow-Dd1rIHr7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/grouping-CuigSLTf.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/help-Cwu37_iz.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/http-1tz5OAiV.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/idSeq-rPksfOmC.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/importAppendRun-CLf4EFnP.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/importBatch-Dy82QvuC.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/importDatasets-D0H8EXF2.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/importNotes-Dz-B8bxg.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/index-CfPIu6rI.css +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/index-sxyo-dDL.js +10 -0
- quantized_lab-0.30.0/src/quantized/web/assets/inset-C3TDLXpt.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/katexRender-DzFXvcrH.css +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/katexRender-gWelazc9.js +257 -0
- quantized_lab-0.30.0/src/quantized/web/assets/legendAutoPlace-BioWQqee.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/libraryDetails-C3TdqNPk.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/libraryHierarchy-DqNbLMZ4.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/libraryOpen-B-L_Tc5h.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/librarySearch-CJjTZiig.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/libraryTreeNav-DcLYtS1K.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/macro-B8A7DFhi.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/magDataKind-BESTgxuB.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/magnetometry-y9UBmKni.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/mapView-DFotvW-i.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/markers-DvK9KEo3.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/measure-BOvjPvTh.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/metadata-DQevENSN.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/metadataCleanup-CfUxKaId.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/metadataKeys-B8pvMvMZ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/metadataRun-gBkwnAB6.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/modalInert-ka8RzhWr.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/modeling-pY6HhojN.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/multipanel-Citv_yWE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/nestedLevels-Dfn9-5bl.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/niceTicks-BYookEMn.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/openFilePicker-Ds8uQPbO.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/openWorkspaceReplace-BQa9uEih.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originApplyRun-Dh0p69Wo.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originCurveText-OYIkLIuX.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originFallback-XlkEYACo.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originFigureSelection-BjggKI9p.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originFigures-BnmY2IVz.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originOverlay-DIZbbM84.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originPreview-vDzO83F7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originProjectExport-BYrCPtCS.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originSources-D8LzpsZN.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originSpatialPanels-BVxdDEh6.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originTemplate-DTW3wpTB.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/originTextColumns-CjajdrxP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/packProject-ovz0QZj4.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/packProjectCommands-BSjDP-DR.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/packProjectRun-CG_zWkTP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pageDocumentActions-ByyajuYy.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pageGeometry-BdGC0Pv-.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pageGreyscale-DUF1SoSM.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pageSetupCommand-C4lxAR3-.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/paletteContextActions-BONet1rf.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/panelLayout-B0fFdPsb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/panelResolve-BtPHYq-s.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/paramDialog-C6BhnTR-.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/peakFitRange-DNFs_tY_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/peakMarkerHit-BZSUhbHp.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/peakTables-BjYS3Hhz.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/peakwizard-C6afchw2.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pendingOps-C8MfijmJ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pipeline-06jNAcMk.js +3 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pipelineEditPreview-D9MZTBno.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/pipelineStep-ByNtI_WQ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotColumnOps-B6p5cLvC.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotColumns-0o_IyzHt.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotDecimate-4PMPzsxR.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotEncoding-CK8Fay3q.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotEncodingWire-C8TcNFdP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotRecipe-C51xCfJs.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotRecipeApply-D8wVRgEu.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotRecipeIO-BVBf9mJv.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotRecipeMatch-By7Wi2_W.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotRecipeMigrate-Cfnn0iOB.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotRecipePreview-COvzbepA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotRecipeView-C6kZJt_v.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotSelectedTogetherRun-myeWmbfF.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotViewSettings-Xq8N09dn.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotdata-BXknhEL_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotspec-1jAQ3K9o.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/plotview-BbLIuGNN.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/polar-dZCK2D91.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/previewCanvas-DLl8mtIB.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/previewKey-C1lAjUPI.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/projectLockRun-9y9SnWiO.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/quickPlotActions-BHi83E7-.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/quickPlotErrorReview-Bg_5_ict.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/quickPlotRun-ZQldIUgM.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/quickPlotTemplates-BFI95mb4.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/quickfit-Cwbynp9d.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/react-Cvdyeg_0.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/react-dom-B-VxWsjA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/react-kkgycRwS.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/recentProjectReopen-D4vReAxu.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/recipeManager-BmaypqjE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/recipePreflight-SzBCJjs9.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/recode-TO88gYq8.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/recodeMappings-D3qDE_JP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/reductions-CcVk8xXe.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/reimport-D2d3CYNX.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/reimportAllRun-DcLavfWY.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/relink-jdjrte3J.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/relinkCommit-Dwyi3jiO.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/relinkPreview-DOYe8hMZ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/reportTransformProvenance-H7QBAjP4.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/resampleForm-CzH48YTO.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/rowSidecars-NaUG4Ysm.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/rowstate-CKtPbt1r.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/runLazy-DHYRwR9d.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/runTemplate-L3cSYWcp.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/saveFigureAsRecipe-ClXh-ELm.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/sendFigureToReport-BBvPzPRP.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/sequentialBatch-VFxJKN1f.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/shallow-LsP0zONs.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/shortcuts-D2oLi8go.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/splitCompute-C4ZIW96E.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/splitRun-D38LXokO.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/stackRows-DiCiOy2V.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/statColor-DlODrER2.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/statFigureCommands-DI-eKhBN.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/statStageBridge-CztZnqD7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/stats-DZrSNk8W.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/statsDescriptive-DwmAcK9H.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/statschooser-C4VyUSNl.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/statstage-C-D1AbAb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/techniqueDefaults-D8ZXbqAF.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/techniqueViewMemory-CxrA-zn2.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/template-CEvou8PD.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/templateKey-C44QwJMA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/templatesProject-BCDF_06F.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/toasts-ofU0ncfx.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/toolwindow-Cif12cuq.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/transformPreviewCompute-CNExY6sb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/transformProvenance-IO4TuXV7.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/transformReplay-Cor7mePy.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/transformRun-khvm2CFL.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/transformWarnings-CG9W5LBD.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/trash-DbRbrgku.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/trashRestore-Cc96KZC4.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/types-bvxE_h-n.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/uPlot.min-DpwQ9nM9.js +3 -0
- quantized_lab-0.30.0/src/quantized/web/assets/uniqueName-BDHlm_2R.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/unitDisplay-CBHtdGGy.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/uplotLivePaint-D0mmfge-.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/uplotOpts-_x1-hOCA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/uplotOverlays-f4crqYnX.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/uplotShapes-CIvuEFRn.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useByPartition-BOn5-pug.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useCutLanding-COEjgfa6.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useDatasetMath-DWwisvdR.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useDialogFocus-D0S3iMdX.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useFigureBuilder-BAr2_lGM.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useFollowColumnPicks-wQYwU2ie.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useLibraryStore-CtiuVQV-.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useListVirtualization-D9mLeO5L.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useMapColorLimitsField-Ols5r0gZ.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useRoiCuts-BsWQK8VL.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useStatStage-BpfAPKLk.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/useStatStageCompute-CgRbJWdi.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/waterfallOffset-CzTTPOyE.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/waterfallX-8gsA-b2e.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/windowDocuments-DezlozXe.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/windows-CNYM4g0j.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workbookRowMenu-CUwx47i5.js +2 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workbookSeparate-3hGkG8rA.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workbookSheets-D7kgZsgM.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workbookTransfer-DLplluz3.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workbookTransferRun-G3YMRCz1.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workbooks-CnBEFN5W.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workflowWorkspace-09HnR_6D.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workingPaths-D9lf7ePW.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/worksheetReveal-CfIgCcBm.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workspace-C3Ic6mBb.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workspaceIO-DPOYdhs_.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workspaceMerge-2X5RWppI.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workspaceParse.worker-1t9CcMu0.js +11 -0
- quantized_lab-0.30.0/src/quantized/web/assets/workspaceParseCore-BPCpc8YU.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/assets/xrdWavelength-du1LFf8X.js +1 -0
- quantized_lab-0.30.0/src/quantized/web/index.html +95 -0
- quantized_lab-0.30.0/src/quantized/web/loading.css +41 -0
- quantized_lab-0.30.0/src/quantized/web/loading.html +18 -0
- quantized_lab-0.30.0/src/quantized/web/loading.js +10 -0
- quantized_lab-0.30.0/src/quantized/web_guard.py +211 -0
- quantized_lab-0.27.0/PKG-INFO +0 -198
- quantized_lab-0.27.0/pyproject.toml +0 -178
- quantized_lab-0.27.0/src/quantized/__init__.py +0 -11
- quantized_lab-0.27.0/src/quantized/app.py +0 -288
- quantized_lab-0.27.0/src/quantized/calc/_rsm_grid.py +0 -289
- quantized_lab-0.27.0/src/quantized/calc/decimate.py +0 -155
- quantized_lab-0.27.0/src/quantized/calc/figure.py +0 -493
- quantized_lab-0.27.0/src/quantized/calc/figure_break.py +0 -167
- quantized_lab-0.27.0/src/quantized/calc/figure_categorical.py +0 -255
- quantized_lab-0.27.0/src/quantized/calc/figure_category_axis.py +0 -281
- quantized_lab-0.27.0/src/quantized/calc/figure_colorscatter.py +0 -53
- quantized_lab-0.27.0/src/quantized/calc/figure_decor.py +0 -209
- quantized_lab-0.27.0/src/quantized/calc/figure_facets.py +0 -493
- quantized_lab-0.27.0/src/quantized/calc/figure_facets_map.py +0 -222
- quantized_lab-0.27.0/src/quantized/calc/figure_greyscale.py +0 -159
- quantized_lab-0.27.0/src/quantized/calc/figure_group_notes.py +0 -189
- quantized_lab-0.27.0/src/quantized/calc/figure_labels.py +0 -206
- quantized_lab-0.27.0/src/quantized/calc/figure_map.py +0 -281
- quantized_lab-0.27.0/src/quantized/calc/figure_overrides.py +0 -234
- quantized_lab-0.27.0/src/quantized/calc/figure_page.py +0 -458
- quantized_lab-0.27.0/src/quantized/calc/figure_page_facets.py +0 -445
- quantized_lab-0.27.0/src/quantized/calc/figure_render.py +0 -177
- quantized_lab-0.27.0/src/quantized/calc/figure_scale.py +0 -128
- quantized_lab-0.27.0/src/quantized/calc/figure_stat_marks.py +0 -215
- quantized_lab-0.27.0/src/quantized/calc/figure_statplots.py +0 -397
- quantized_lab-0.27.0/src/quantized/calc/figure_ticks.py +0 -295
- quantized_lab-0.27.0/src/quantized/calc/figure_y2.py +0 -285
- quantized_lab-0.27.0/src/quantized/calc/global_curve_fit.py +0 -305
- quantized_lab-0.27.0/src/quantized/calc/interp2d.py +0 -498
- quantized_lab-0.27.0/src/quantized/calc/magnetometry.py +0 -462
- quantized_lab-0.27.0/src/quantized/calc/peak_batch.py +0 -128
- quantized_lab-0.27.0/src/quantized/calc/peaks.py +0 -298
- quantized_lab-0.27.0/src/quantized/calc/plotting.py +0 -397
- quantized_lab-0.27.0/src/quantized/calc/refl_dream.py +0 -464
- quantized_lab-0.27.0/src/quantized/calc/refl_dream_bands.py +0 -77
- quantized_lab-0.27.0/src/quantized/calc/refl_fit.py +0 -246
- quantized_lab-0.27.0/src/quantized/calc/refl_model.py +0 -260
- quantized_lab-0.27.0/src/quantized/calc/report_emit_peaks.py +0 -190
- quantized_lab-0.27.0/src/quantized/calc/sims_compare.py +0 -170
- quantized_lab-0.27.0/src/quantized/calc/sims_depth.py +0 -283
- quantized_lab-0.27.0/src/quantized/calc/sims_process.py +0 -241
- quantized_lab-0.27.0/src/quantized/calc/sims_region.py +0 -373
- quantized_lab-0.27.0/src/quantized/calc/unit_convert.py +0 -419
- quantized_lab-0.27.0/src/quantized/cli.py +0 -232
- quantized_lab-0.27.0/src/quantized/client.py +0 -321
- quantized_lab-0.27.0/src/quantized/desktop_bridge_dialogs.py +0 -386
- quantized_lab-0.27.0/src/quantized/desktop_bridge_pack.py +0 -446
- quantized_lab-0.27.0/src/quantized/desktop_bridge_pack_state.py +0 -176
- quantized_lab-0.27.0/src/quantized/io/_delimited_fast.py +0 -303
- quantized_lab-0.27.0/src/quantized/io/_delimited_layout.py +0 -334
- quantized_lab-0.27.0/src/quantized/io/_hdf5_layout.py +0 -308
- quantized_lab-0.27.0/src/quantized/io/_jcamp_asdf.py +0 -135
- quantized_lab-0.27.0/src/quantized/io/_xrdml_scan.py +0 -291
- quantized_lab-0.27.0/src/quantized/io/base.py +0 -106
- quantized_lab-0.27.0/src/quantized/io/bruker_brml.py +0 -177
- quantized_lab-0.27.0/src/quantized/io/bruker_raw.py +0 -158
- quantized_lab-0.27.0/src/quantized/io/consolidated.py +0 -127
- quantized_lab-0.27.0/src/quantized/io/delimited.py +0 -468
- quantized_lab-0.27.0/src/quantized/io/error_binding_suggestions.py +0 -353
- quantized_lab-0.27.0/src/quantized/io/excel.py +0 -135
- quantized_lab-0.27.0/src/quantized/io/import_parse.py +0 -180
- quantized_lab-0.27.0/src/quantized/io/import_preview.py +0 -486
- quantized_lab-0.27.0/src/quantized/io/jcamp.py +0 -233
- quantized_lab-0.27.0/src/quantized/io/lakeshore.py +0 -154
- quantized_lab-0.27.0/src/quantized/io/ncnr.py +0 -452
- quantized_lab-0.27.0/src/quantized/io/netcdf.py +0 -198
- quantized_lab-0.27.0/src/quantized/io/opus.py +0 -231
- quantized_lab-0.27.0/src/quantized/io/origin.py +0 -346
- quantized_lab-0.27.0/src/quantized/io/qd.py +0 -371
- quantized_lab-0.27.0/src/quantized/io/refl1d.py +0 -133
- quantized_lab-0.27.0/src/quantized/io/registry.py +0 -250
- quantized_lab-0.27.0/src/quantized/io/report_export.py +0 -367
- quantized_lab-0.27.0/src/quantized/io/sims.py +0 -437
- quantized_lab-0.27.0/src/quantized/io/spc.py +0 -472
- quantized_lab-0.27.0/src/quantized/io/technique.py +0 -163
- quantized_lab-0.27.0/src/quantized/io/xrd_csv.py +0 -308
- quantized_lab-0.27.0/src/quantized/io/xrdml.py +0 -394
- quantized_lab-0.27.0/src/quantized/routes/_datasetcache.py +0 -305
- quantized_lab-0.27.0/src/quantized/routes/aggregate.py +0 -47
- quantized_lab-0.27.0/src/quantized/routes/corrections.py +0 -92
- quantized_lab-0.27.0/src/quantized/routes/export.py +0 -282
- quantized_lab-0.27.0/src/quantized/routes/export_figures.py +0 -437
- quantized_lab-0.27.0/src/quantized/routes/export_figures_aux.py +0 -236
- quantized_lab-0.27.0/src/quantized/routes/export_figures_facets.py +0 -117
- quantized_lab-0.27.0/src/quantized/routes/export_figures_labels.py +0 -121
- quantized_lab-0.27.0/src/quantized/routes/export_figures_schema.py +0 -225
- quantized_lab-0.27.0/src/quantized/routes/export_page.py +0 -234
- quantized_lab-0.27.0/src/quantized/routes/export_statplots.py +0 -315
- quantized_lab-0.27.0/src/quantized/routes/magnetic.py +0 -128
- quantized_lab-0.27.0/src/quantized/routes/parsers.py +0 -493
- quantized_lab-0.27.0/src/quantized/routes/peaks.py +0 -351
- quantized_lab-0.27.0/src/quantized/routes/plot.py +0 -185
- quantized_lab-0.27.0/src/quantized/routes/reflectivity.py +0 -301
- quantized_lab-0.27.0/src/quantized/routes/rsm.py +0 -337
- quantized_lab-0.27.0/src/quantized/routes/sims.py +0 -219
- quantized_lab-0.27.0/src/quantized/routes/stats.py +0 -453
- quantized_lab-0.27.0/src/quantized/routes/transform.py +0 -95
- quantized_lab-0.27.0/src/quantized/security.py +0 -174
- quantized_lab-0.27.0/src/quantized/server_launch.py +0 -317
- quantized_lab-0.27.0/src/quantized/web/assets/AnnotationTextDialog-C4Mbp9O_.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/BackgroundPlotWindow-AhKlkMNm.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/BaselinePanel-CU61wTpu.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/BufferedNumberField-Bj9v2gD_.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/CalcOnlyApp-DmkI9_j0.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/CalculatorsContent-5Zvh7MWN.js +0 -8
- quantized_lab-0.27.0/src/quantized/web/assets/CalculatorsPanel-BIp7pV-o.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/Card-BsTEMvM0.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/CollectionsSection-D6nDmclB.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ColumnSwitcher-CFW-bZ48.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/CombineWorkbooksDialog--HK_peQW.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ConfirmDialog-DxSoAU8A.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/ConfirmDialogBody-YBYnI5xo.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/CurveFitPanel-LIDYMbqI.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/DataFilterPanel-CAds3MYt.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/DatasetMathPanel-CSOgU7Zw.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/DatasetRow-Bj-W0BHl.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/DigitizerView-DJDOKkva.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/DistributionPanel-DBlwB1sF.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/EditableFiguresSection-CERu1SAI.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/FigureBuilderView-CTLYGXFb.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/FigurePageView-BAFh_zAl.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/FigureRow-BVECDpPG.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/FiguresSection-BpAGEU-7.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/FitYByXPanel-Bx0BiUJl.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/GraphBuilderPanel-C4XvJW8p.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/GraphPreview-Cmwbt_9A.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/HelpDialog-MUESDDZJ.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/HomeScreen-CK6qBHn2.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/HysteresisPanel-DIPnKLvK.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ImportWizardPanel-maWjWaXo.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/Inspector-xKm8CDxI.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/LevelOrderPanel-BKul5O-U.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/LibraryDetails-BHDg2bqq.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/LibraryFlatRows-B0GwsuUn.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/LibraryTree-B02FwPId.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/LibraryWorkspace-DG7g-JhN.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/MagToolsPanel-BzpiU3oy.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/MapStage-CSJSU0f-.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/MetaFactorsPanel-uSGugd_j.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/MultiPanelStage-D_ufw_Wr.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/MultiSelectBar-FmLluK6b.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/MultivarPanel-DnVuTEDB.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/OriginFidelitySection-CCvFHPDh.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/OriginSavedPreviewWindow-Bb1eYQm-.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/OutlierScreeningPanel-DIWAo59A.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PackProjectPanel-PRPIQ4LB.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PagesSection-DepkbDx4.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PanelPlotWindow-DEgHztgH.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ParamDialog-CZ2bEHGh.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/ParamDialogBody-CEr6NAsf.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PeakWizardPanel-CPyb1YWZ.js +0 -3
- quantized_lab-0.27.0/src/quantized/web/assets/PeaksPanel-DnJp8Qp4.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PipelinePanel-CDYxyRsH.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PlotContextMenu-D_ZwUkrb.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PlotRecipeApplyDialog-De-STAng.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PlotResultChips-DMt2kFAV.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PolarStage-CmNl3wSh.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PolarStageCore-DFuFcbXc.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/PreferencesDialog-Rmu2o1NT.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/QuickFigureBuilderWorkspace-Dc9vtmRx.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/QuickPlotWithDialog-BlsXp3rB.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/RecipeLibraryPanel-Bu93n-jE.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/RecipeManagerPanel-CwtY0oB7.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/RecodePanel-l3MWCjBs.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/RecoveryChoiceDialog-BlMRRsLM.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ReductionsPanel-C1GmFQza.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ReflView-CDkbVvIo.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ReflectivityPanel-BFqybNrR.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ReimportAllDialog-BdWTwo9s.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/RelinkPanel-vxA0EMjH.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ReportPanel-Bhi0d79c.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ReportsSection-DaRVLRV9.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ResamplePanel-7rn5kCOm.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ReshapePanel-D1FjrKvd.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/RichLabelInput-CE4xENw4.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/RoiCutsPanel-CF4C8iew.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/RsmPanel-CnmPGrMq.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SavedFiguresSection-Ca6813_j.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SearchPanel-DH6awCYK.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SegmentedControl-B0nUpGzj.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SeparateWorksheetsDialog-BkGxfw4G.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ShortcutsDialog-0B_cSJD1.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SimsPanel-CRYGRXao.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SliderRow-B3FcajZK.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SmartFoldersSection-BkSx_WCW.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SnapshotPlotWindow-DKGyXGsd.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SplitDatasetDialog-DV4UtLO7.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/SqliteQueryDialog-BDay9GUI.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/StatStage-R_g_aKSj.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/StatStageCanvas-T9EIC0Nu.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/StatsChooserPanel-DrGVUwGH.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/Switch-D6sQS6ed.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/TabulatePanel-C0sYGNPn.js +0 -3
- quantized_lab-0.27.0/src/quantized/web/assets/TextFormatHelp-DFB7NVOg.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/ToolWindow-D6VG722r.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/TransformPreviewTable-U7sJrCJA.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/TrashPanel-Cl3hb23d.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/VariabilityChartPanel-CnBPLLLx.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/WaterfallView-BSqdLWfE.js +0 -3
- quantized_lab-0.27.0/src/quantized/web/assets/WhatIsThis-BDfXiJsn.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/WorkbookPropertiesDialog-CujqS5SZ.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/Worksheet-fgUbwzRz.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/WorksheetPane-BFhgPN5e.js +0 -4
- quantized_lab-0.27.0/src/quantized/web/assets/ZoneWell-SeSn81N7.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/annotationTextDialog-BU61_yA6.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/axisspec-xQx9jsVR.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/baseline-CwT6bA3A.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/bookData-BOJWGAgZ.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/clipboard-02oM0LWi.js +0 -3
- quantized_lab-0.27.0/src/quantized/web/assets/collections-DsQHIR2H.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/columnmeta-BXtssiqw.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/commands-C8Sv1fcw.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/copyFigureCommand-C2me4y9T.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/curvefit-D-akw3zc.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/datasetRowMenu-C3kdplsR.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/datasetsplit-mKM2PWE3.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/dependencyImpact-B1QIH_87.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/derivedColumnRun-_-Ss5tnP.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/derivedFitRefs-DHN83lQl.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/desktopBridge-DnoGkBQK.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/desktopLockProvider-B2FqTnr5.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/desktopRelinkBridge-DtfJyZAw.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/diagnostics-w5eX8LDF.js +0 -3
- quantized_lab-0.27.0/src/quantized/web/assets/errorbars-CB4bfEAj.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/exportActive-I-WEByZJ.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/exportFigureCommand-DY8E3I2w.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/exportPageCommand-Du4xCHDI.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/figureCompatibility-gkgsoghW.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/figureDocument-EoalFDD2.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/figureDocumentReimport-CcKuldgP.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/figureSpec-Bo-I1Eno.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/figureSpecStage-fkQ8H4Pk.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/figures-D20KSM1F.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/fileCommandsLazy-DCJOqnEL.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/fitRefsRun-DUyYHeDM.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/fitmodels-9EYuPKVq.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/fitselectionActions-DLSDBGFI.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/folderOps-DwR5yqVw.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/gestureCancel-CIoXlFFV.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/globalPlotRecipes-Bs-KiQ11.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/gridwindow-DITcrjM7.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/grouping-TfMCm8yL.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/help-DD3ltL_N.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/idSeq-B8Lt9LKw.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/importDatasets-B6ncf6bK.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/importEntry-QZbFHCd8.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/index-BYOadRiN.js +0 -10
- quantized_lab-0.27.0/src/quantized/web/assets/index-CL8dh5NN.css +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/libraryDetails-61urWjWL.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/librarySearch-CTsDvj_9.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/magnetometry-D5zYzYaP.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/markers-IElxdZc4.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/metadata-BF9ahE5P.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/metadataKeys-DqPle93j.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/metadataRun-CPU8iodG.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/modeling-DdMYZzEe.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/originFallback-BO0PYx8E.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/originFigureSelection-C9PEokQP.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/originFigures-BumquS0h.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/originOverlay-Cu14cSzs.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/originSources-DvNKv-6u.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/originSpatialPanels-QhE_Xlgh.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/packProject-BB-PdS91.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/packProjectCommands-Dl9_C_wF.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/packProjectRun-Bwcgwqxs.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/pageDocumentActions-B7gFcA7n.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/pageGreyscale-BGkK4WEf.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/pageSetupCommand-0Cr_QOcR.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/panelLayout-DizjSWgK.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/panelResolve-CC0-aRiZ.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/paramDialog-BHEO8ql1.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/parseWorkspaceFile-BuKeNGgo.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/peakFitRange-Dyy9-mXt.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/peakMarkerHit-DwDbZnDC.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/peakTables-CK6-krLC.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/peakwizard-KefgzBwd.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/pendingOps-DhfCzscd.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/pipeline-BdXgDW8p.js +0 -3
- quantized_lab-0.27.0/src/quantized/web/assets/plotRecipe-CZpNW-mg.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/plotRecipeApply-D8uZ6OiX.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/plotRecipeIO-Dd4qPqXE.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/plotRecipeMatch-Ctfnjysm.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/plotRecipeSchema-Dq9dTqAM.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/plotdata-Bh4NpZIo.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/previewKey-wusvcbGr.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/primitives-BFReuQ27.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/quickPlotTemplates-CGrHCKQ3.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/quickPlotWithDialog-PxdLKcw9.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/quickfit-lG9lI5M4.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/react-cnG9icBN.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/react-dom-B9UagBK-.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/recentProjects-ABvXhL3J.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/recipeManager-C0G3oXAZ.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/recipeManagerActions-BE3dv7PF.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/recordRecipeUse-Bxz-zn05.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/reimport-BJHTssLp.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/reimportAllRun-hWf2OtJs.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/relink-DKxe6iUc.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/relinkCommit-WOF0BnDk.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/relinkPreview-BmzAif3e.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/rowstate-DgdaPi3S.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/runTemplate-CtxCpJWq.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/saveFigureAsRecipe-CzgJwdsc.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/sendFigureToReport-eS-L8SAO.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/splitCompute-DBRNIJh1.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/splitRun-bZFVPln8.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/stats-mg7O1PbI.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/techniqueDefaults-R0WO3YZo.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/techniqueViewMemory-DHCpcEbb.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/template-BNhXUcd3.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/templatesProject-DiYUfzw4.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/toasts-CHnsnA_T.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/toolwindow-BW6vaJFF.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/transformReplay-DCdnU90j.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/transformRun-px0z2soi.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/transformWarnings-C9gKyrDz.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/trash-C4vmLM61.js +0 -2
- quantized_lab-0.27.0/src/quantized/web/assets/trashRestore-C8m9jV1E.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/uPlot.min-CWikSVZk.js +0 -3
- quantized_lab-0.27.0/src/quantized/web/assets/uplotOpts-fNmDoiDa.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/uplotShapes-BDtcAcln.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useByPartition-DGeuf4l2.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useCutLanding-C62-fNgt.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useDialogFocus-BVVSmkrD.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useFigureBuilder-Ccdji99E.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useLibraryStore-BKA_Omqz.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useListVirtualization-Cse1KFPD.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useMapColorLimitsField-CGdtSjdU.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useMultiPanelStage-BARWZPsH.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useRoiCuts-CQPbNOQc.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/useStatStage-CwWP2Qyv.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/windowDocuments-aV0hZqku.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/workbookRowMenu-DscOS3xP.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/workbookTransfer-Bk3TFi2i.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/workbooks-BK_Iiepz.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/workspace-BPrEHDYJ.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/workspaceIO-Bs6PFHS2.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/workspaceParse.worker-S_S21PRO.js +0 -11
- quantized_lab-0.27.0/src/quantized/web/assets/workspaceParseCore-DC-ozBLx.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/assets/xrdWavelength-DtSqc0R3.js +0 -1
- quantized_lab-0.27.0/src/quantized/web/index.html +0 -75
- quantized_lab-0.27.0/src/quantized/web/loading.html +0 -69
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/.gitignore +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/LICENSE +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/NOTICE +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/README.md +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/assets/branding/README.md +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/docs/theory/README.md +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/__main__.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/api.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/__init__.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/_bounded_lsq.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/_clipfit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/_grid_detect.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/_natural_neighbor.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/_semiconductor_materials.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/_warn.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/aggregate.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/backgrounds.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/baseline.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/batch_fit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/bond_geometry.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/boxcut.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/constants.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/corrections.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/crystallography.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/diffusion.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/dream_seed.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/electrical.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/electrochemistry.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/element_data.json +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/element_data.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/errors.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_corner.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_errorbars.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_field.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_group_styles.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_hitmap.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_multivar.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_page_layout.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_page_panel_labels.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_page_validate.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_shapes.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_styles.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/figure_ternary.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_autoguess.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_bootstrap.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_bumps.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_constraints.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_equation.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_equation_syntax.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_findxy.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_holds.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_models.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_models_special.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_odr.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_scan.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fit_stats.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/fitting.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/formula.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/global_fit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/ion_range.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/linecut.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/magnetic.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/map.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/mcmc.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/miller_bravais.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/optics.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/pawley.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peak_fit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peak_integrate.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peak_model.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peak_model_batch.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peak_model_fit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peak_multifit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peak_track.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/peakshapes.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/plane_spacings.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/plot_log_offsets.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/processing.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/qspace.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/reductions.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/reductions_fft.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/refl_sld_presets.json +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/reflectivity.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/registry.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/relaxation.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/render_lock.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/report.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/report_emit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/report_emit_sims.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/resample.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/resample_align.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/rsm.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/rsm_analyze.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/sectorcut.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/semiconductor.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/sims_correct.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/sld.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/sld_formula.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/spectral.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/statplots.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_anova2.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_anova_ext.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_band.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_contingency.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_dist.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_glm.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_multivar.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_outliers.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_roc.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_survival.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_tests.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/stats_varcomp.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/substrates.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/superconductor.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/surface_fit.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/surface_models.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/thermal.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/thin_film.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/units.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/units_data.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/vacuum.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/calc/xray.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/cat_levels.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/datastruct.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_bridge.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_bridge_common.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_consent.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_project_file.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_project_lock.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_project_lock_oslock.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_project_lock_record.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_project_lock_write.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_source_identity.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/desktop_source_probe.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/heavy_import.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/__init__.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/cif.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/error_inference.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/error_label_candidates.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/error_label_classify.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/hdf5.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/import_categorical_guards.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/import_error_bindings.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/import_filters.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/import_metadata.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_com.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/__init__.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/annotation_marks.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/container.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/curve_style_color.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/fidelity.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/figure_geometry.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/figure_layers.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/figure_text.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/figures.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/figures_opju.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/graph_preview.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/notes.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opj.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opj_curves.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opj_shapes.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_axis_real_form.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_axis_specimen_form.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_codec.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_curves.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_curves_allcols.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_figure_curves.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_figure_text.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/opju_reports.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/origin_richtext.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/preview.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/templates.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/tree.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/tree_opju.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/windows.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/windows_opju.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/writer.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/origin_project/writer_blocks.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/report_blocks.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/report_figures.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/report_office.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/rigaku.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/sqlite_query.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/workbook_transfer_header.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/io/workbook_transfer_store.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/jobs.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/plugins/__init__.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/plugins/contract.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/plugins/loader.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/plugins/steps.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/__init__.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/atomic_rename.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/copy_stream.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/copying.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/grouping.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/layout.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/manifest.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/naming.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/pack.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/project_rewrite.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/publish.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/portable/staging.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/__init__.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/_bookcache.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/_errors.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/_export_common.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/_payload.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/_uploadcache.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/_uploadstream.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/baseline.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/books.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/calc.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/crystallography.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/database.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/diffusion.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/electrical.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/electrochemistry.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/export_multivar.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/fitting.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/fitting_bumps.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/import_template.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/import_wizard.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/jobs_api.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/magnetometry.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/optics.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/peaks_batch.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/reductions.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/reference.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/report_export.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/report_figures.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/samples.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/semiconductor.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/sld.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/spectral.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/statplots.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/stats_design.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/stats_outliers.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/stats_varcomp.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/substrates.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/superconductor.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/thermal.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/thin_film.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/vacuum.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/workbook_transfer.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/routes/xray.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/row_sidecars.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/samples/demo_vsm.csv +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/time_units.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/Checkbox-CdF8blm7.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/DataTable-BUsp9T89.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/IconButton-KLXEL0Oj.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/JetBrainsMono-Bold-CUogYd9I.woff2 +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/JetBrainsMono-Regular-CA-Os4ii.woff2 +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/MetaRow-BdF1fLAJ.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/NumberField-CLNLD-6z.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/Pill-R75WECb5.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/TabulateTable-B0zhohRN.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/TransformWarningList-ovuOuLgg.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/appShortcuts-Dron7BKC.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/autosaveGenerations-B023G-vn.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/browserLockProvider-WonU-LkS.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/clsx-DB0hHKMi.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/distribution-DtRUmVv3.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/errorDetail-CvwyP3f2.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/format-wNo0e3_y.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/formatBytes-BPCGNWDJ.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/jitter-WCHwU_Li.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/jsx-runtime-NZYk81nU.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/labelRows-BbLP8H_v.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/lockState-Ur5JH-bI.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/order-CaU5eZS8.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/originFidelity-zQ_uQ_ci.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/pageDocument-DrQFaZ0Z.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/peakTable-D0ITgAhS.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/plural-8RsGguy9.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/preload-helper-BZ1Pz5am.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/recipeIndex-B0d3MaXv.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/relink-Bw3O17OU.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/reportBlocks-DcDd7mdf.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/richtext-DqEouiF0.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/rolldown-runtime-hePW80VL.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/scrollOutFocus-CORvTP-j.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/shapeHit-BWKoKfgO.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/tickFormat-DhmvIZc_.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/uPlot-CnsZ1jie.css +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/assets/workbookIds-DVtAJq88.js +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/web/favicon.png +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/src/quantized/x_units.py +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/tools/origin_compare/README.md +0 -0
- {quantized_lab-0.27.0 → quantized_lab-0.30.0}/tools/visual/README.md +0 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: quantized-lab
|
|
3
|
+
Version: 0.30.0
|
|
4
|
+
Summary: Plot, analyze, and publish lab data - magnetometry, XRD, reflectometry - with OriginPro file interop, golden-verified analysis, and reproducible pipelines.
|
|
5
|
+
Project-URL: Homepage, https://github.com/pquarterman17/quantized
|
|
6
|
+
Project-URL: Documentation, https://github.com/pquarterman17/quantized/wiki
|
|
7
|
+
Project-URL: Repository, https://github.com/pquarterman17/quantized
|
|
8
|
+
Project-URL: Releases, https://github.com/pquarterman17/quantized/releases
|
|
9
|
+
Project-URL: Issues, https://github.com/pquarterman17/quantized/issues
|
|
10
|
+
Author: Paige Quarterman
|
|
11
|
+
License-Expression: Apache-2.0
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
License-File: NOTICE
|
|
14
|
+
Requires-Python: >=3.11
|
|
15
|
+
Requires-Dist: fastapi>=0.139.0
|
|
16
|
+
Requires-Dist: h5py>=3.10
|
|
17
|
+
Requires-Dist: matplotlib>=3.11.0
|
|
18
|
+
Requires-Dist: numpy>=1.26
|
|
19
|
+
Requires-Dist: openpyxl>=3.1
|
|
20
|
+
Requires-Dist: periodictable>=1.7
|
|
21
|
+
Requires-Dist: platformdirs>=4.10.0
|
|
22
|
+
Requires-Dist: pydantic>=2.7
|
|
23
|
+
Requires-Dist: python-multipart>=0.0.32
|
|
24
|
+
Requires-Dist: scipy>=1.11
|
|
25
|
+
Requires-Dist: uvicorn[standard]>=0.51.0
|
|
26
|
+
Provides-Extra: bumps
|
|
27
|
+
Requires-Dist: bumps>=1.0; extra == 'bumps'
|
|
28
|
+
Provides-Extra: client
|
|
29
|
+
Requires-Dist: httpx>=0.27; extra == 'client'
|
|
30
|
+
Provides-Extra: desktop
|
|
31
|
+
Requires-Dist: pywebview>=5.1; extra == 'desktop'
|
|
32
|
+
Provides-Extra: office
|
|
33
|
+
Requires-Dist: python-docx>=1.1; extra == 'office'
|
|
34
|
+
Requires-Dist: python-pptx>=1.0; extra == 'office'
|
|
35
|
+
Provides-Extra: origin-com
|
|
36
|
+
Requires-Dist: pywin32; (sys_platform == 'win32') and extra == 'origin-com'
|
|
37
|
+
Provides-Extra: stats
|
|
38
|
+
Requires-Dist: lifelines>=0.27; extra == 'stats'
|
|
39
|
+
Requires-Dist: statsmodels>=0.14; extra == 'stats'
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
41
|
+
|
|
42
|
+
# quantized
|
|
43
|
+
|
|
44
|
+
<p align="center">
|
|
45
|
+
<!-- Absolute URL, not a repo-relative path: this README is also the PyPI
|
|
46
|
+
long_description (pyproject `readme`), and PyPI cannot resolve
|
|
47
|
+
repo-relative images. -->
|
|
48
|
+
<img src="https://raw.githubusercontent.com/pquarterman17/quantized/main/assets/branding/quantized-app-icon.png" alt="Quantized logo" width="180">
|
|
49
|
+
</p>
|
|
50
|
+
|
|
51
|
+
**Plot, analyze, and publish lab data — magnetometry, X-ray/neutron
|
|
52
|
+
diffraction & reflectometry, transport — in one fast, reproducible app.**
|
|
53
|
+
|
|
54
|
+
A clean-architecture Python (FastAPI) + React application, born as a port
|
|
55
|
+
of the `quantized_matlab` scientific toolbox and grown into a full
|
|
56
|
+
OriginPro-class daily driver. Backend math is **golden-verified** against
|
|
57
|
+
the MATLAB original; the GUI is a ground-up revamp.
|
|
58
|
+
|
|
59
|
+
> **Install:** `pip install quantized-lab` → run `qz`
|
|
60
|
+
> (the PyPI name is `quantized-lab`; the package you import and the
|
|
61
|
+
> commands you run are plain `quantized` / `qz`)
|
|
62
|
+
|
|
63
|
+
## What it does
|
|
64
|
+
|
|
65
|
+
**Import instrument data** — Quantum Design VSM/PPMS/MPMS, Lake Shore VSM,
|
|
66
|
+
PANalytical XRDML (1-D scans *and* 2-D reciprocal-space maps with Q-space),
|
|
67
|
+
Rigaku, NCNR reflectometry/PNR, refl1d, SIMS, generic CSV/Excel — with
|
|
68
|
+
content sniffing for ambiguous extensions, drag-drop, paste, guided import
|
|
69
|
+
wizard, and one-click re-import when the source file changes.
|
|
70
|
+
|
|
71
|
+
**Read and write OriginPro files** — native, clean-room `.opj`/`.opju`
|
|
72
|
+
readers recover workbooks, figures (with styles, legends, annotations),
|
|
73
|
+
and notes; the `.opj` writer produces projects real Origin loads; plus
|
|
74
|
+
Origin-ASCII + `.ogs` scripts, `.otp` template import, and an optional
|
|
75
|
+
Windows COM "Send to Origin" bridge.
|
|
76
|
+
|
|
77
|
+
**Explore interactively** — an Origin-style pointer tool (drag, resize,
|
|
78
|
+
and pin plot text; draggable legends), multi-window MDI with linked
|
|
79
|
+
zoom/cursor groups, a ctrl-click panel builder (side-by-side / grid /
|
|
80
|
+
overlay with automatic dual-Y by unit family), linked row selection and
|
|
81
|
+
masking across every view, worksheet with formulas and filters, and
|
|
82
|
+
app-wide **undo/redo**.
|
|
83
|
+
|
|
84
|
+
**Analyze with domain depth** — 29+ fit models plus a no-eval custom
|
|
85
|
+
equation builder, AICc model scanning, global/batch/ODR fits, an optional
|
|
86
|
+
[bumps](https://github.com/bumps/bumps) engine with DREAM posterior
|
|
87
|
+
sampling; a Peak Analyzer wizard; baselines from ALS to Shirley to
|
|
88
|
+
interactive anchor points; Parratt reflectivity; RSM strain analysis;
|
|
89
|
+
Williamson-Hall, FFT film thickness, and reflectivity-FFT reductions;
|
|
90
|
+
hysteresis, relaxation, and a full statistics suite.
|
|
91
|
+
|
|
92
|
+
**Publish** — every plot window is a durable **figure document**: save,
|
|
93
|
+
reopen, rename, and duplicate figures without losing errors, secondary
|
|
94
|
+
axes, styles, or annotations. **Publication Preview** edits that same
|
|
95
|
+
document at output size — tweak fonts, ticks, margins, axis breaks, and
|
|
96
|
+
annotations in a live WYSIWYG preview (drag the legend, right-click any
|
|
97
|
+
element), then Apply as one undoable change or Cancel cleanly. Export is
|
|
98
|
+
vector PDF/SVG (server-rendered matplotlib) that matches the screen:
|
|
99
|
+
rich-text labels (µ₀H, Å⁻¹, χ″…), journal size presets
|
|
100
|
+
(APS/Nature/thesis…), per-series styles, fills, color-mapped scatter,
|
|
101
|
+
and a multi-panel figure composer for Fig. 1(a)–(d)-style pages.
|
|
102
|
+
|
|
103
|
+
**Stay reproducible** — every correction is a replayable pipeline step
|
|
104
|
+
with a recalculation DAG, a macro recorder emits runnable scripts,
|
|
105
|
+
workspaces save to a single `.dwk` file, and everything is scriptable
|
|
106
|
+
through the HTTP API and a plugin system.
|
|
107
|
+
|
|
108
|
+
**DiraCulator** — the built-in materials calculators (units, X-ray/neutron,
|
|
109
|
+
crystallography, SLD, semiconductors, superconductors, magnetism, optics,
|
|
110
|
+
vacuum, and more) also launch standalone: `diraculator` (or
|
|
111
|
+
`qz --calc`), with its own Start Menu entry in the Windows installer.
|
|
112
|
+
|
|
113
|
+
## Scope
|
|
114
|
+
|
|
115
|
+
Magnetometry / XRD / reflectometry / lab-data analysis. Electron-microscopy
|
|
116
|
+
tooling (EELS/EDS, imaging) is **out of scope** and lives in the separate
|
|
117
|
+
`fermiviewer` project.
|
|
118
|
+
|
|
119
|
+
## Run it
|
|
120
|
+
|
|
121
|
+
| Method | Command | Notes |
|
|
122
|
+
|--------|---------|-------|
|
|
123
|
+
| pipx (recommended) | `pipx install quantized-lab && qz` | isolated env, `qz` on PATH, no dev tools needed |
|
|
124
|
+
| uv tool | `uv tool install quantized-lab && qz` | same idea, via `uv` |
|
|
125
|
+
| pip | `pip install quantized-lab && qz` | into whatever env is active |
|
|
126
|
+
| Native installer | download from [Releases](https://github.com/pquarterman17/quantized/releases) | Windows `.exe` (NSIS, auto-updates), macOS `.dmg` (Apple silicon only — no Intel/x86-64 build), Linux `.deb` — no Python required |
|
|
127
|
+
| From source | see below | for development |
|
|
128
|
+
|
|
129
|
+
Once installed, `qz` serves the app at `http://127.0.0.1:8000` and opens a
|
|
130
|
+
browser tab. An empty library shows a **"Drop files here, or use ⊞ to import
|
|
131
|
+
/ ✚ for a demo"** hint — click **✚** for an instant synthetic dataset, so a
|
|
132
|
+
fresh install has something to plot within seconds.
|
|
133
|
+
|
|
134
|
+
**From source — double-click a launcher** (builds the UI + installs deps on
|
|
135
|
+
first run, then opens the app in your browser):
|
|
136
|
+
|
|
137
|
+
- **Windows:** double-click `run.cmd`
|
|
138
|
+
- **macOS:** double-click `run.command` (first time: right-click → Open)
|
|
139
|
+
|
|
140
|
+
**Or one command** (after `uv` + Node.js are installed):
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# first time only: build the UI bundle the app serves
|
|
144
|
+
cd frontend && npm install && npm run build && cd ..
|
|
145
|
+
|
|
146
|
+
uv run qz # serve on :8000 and open a browser tab
|
|
147
|
+
uv run qz --port 9000 # different port
|
|
148
|
+
uv run qz --no-browser # headless (don't open a tab; never auto-exits)
|
|
149
|
+
uv run qz --desktop # native window (needs: pip install quantized-lab[desktop])
|
|
150
|
+
uv run qz --dev # contributor mode: Vite HMR + reloading backend
|
|
151
|
+
uv run diraculator # the materials calculators, standalone
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The default mode behaves like an app: closing the last browser tab shuts
|
|
155
|
+
the server down (a page refresh doesn't). Set `QZ_AUTO_SHUTDOWN=0` to opt
|
|
156
|
+
out, use `--no-browser` for a persistent/headless server, or stop any mode
|
|
157
|
+
with **Ctrl+C** in its window. A busy port falls back to a free one
|
|
158
|
+
automatically, so the app and a standalone DiraCulator coexist.
|
|
159
|
+
|
|
160
|
+
Building your own wheel/sdist? Build the frontend **first** —
|
|
161
|
+
`cd frontend && npm ci && npm run build` — before `uv build`, or the wheel
|
|
162
|
+
ships without a UI.
|
|
163
|
+
|
|
164
|
+
## Documentation
|
|
165
|
+
|
|
166
|
+
- **[Wiki](https://github.com/pquarterman17/quantized/wiki)** — installation,
|
|
167
|
+
getting started, feature guides, Origin interop
|
|
168
|
+
- **[Releases](https://github.com/pquarterman17/quantized/releases)** —
|
|
169
|
+
installers + changelogs
|
|
170
|
+
- [`CHANGELOG.md`](https://github.com/pquarterman17/quantized/blob/main/CHANGELOG.md)
|
|
171
|
+
— plain-language changes per release, Keep a Changelog format
|
|
172
|
+
- [`RELEASE.md`](https://github.com/pquarterman17/quantized/blob/main/RELEASE.md)
|
|
173
|
+
— how releases are built and published
|
|
174
|
+
- In-app: **⌘K** command palette, **Help ▸ Keyboard shortcuts**, and
|
|
175
|
+
**Help ▸ Text formatting** for the rich-text label syntax
|
|
176
|
+
|
|
177
|
+
## Architecture (for contributors)
|
|
178
|
+
|
|
179
|
+
Pure `io/` + `calc/` libraries (data in → results out, no web imports),
|
|
180
|
+
thin FastAPI `routes/`, a 500-line per-module ceiling, ~400-line React
|
|
181
|
+
component ceiling, and **golden tests** that freeze MATLAB outputs as the
|
|
182
|
+
parity oracle — enforced by tests, not convention. See
|
|
183
|
+
[`CLAUDE.md`](https://github.com/pquarterman17/quantized/blob/main/CLAUDE.md)
|
|
184
|
+
for the rules and
|
|
185
|
+
[`CONTRIBUTING.md`](https://github.com/pquarterman17/quantized/blob/main/CONTRIBUTING.md)
|
|
186
|
+
for the gate and the flake-fix evidence standard.
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
uv sync --group dev # backend deps
|
|
190
|
+
uv run python tools/gate.py # the whole gate, one command (~8 min)
|
|
191
|
+
|
|
192
|
+
# what it runs, if you want to run a step by hand:
|
|
193
|
+
uv run pytest -n auto # backend tests (+ `-m golden` for MATLAB parity)
|
|
194
|
+
uv run ruff check src tests tools && uv run mypy src
|
|
195
|
+
cd frontend && npm test && npm run build
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
License: Apache-2.0.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "quantized-lab"
|
|
3
|
+
version = "0.30.0"
|
|
4
|
+
description = "Plot, analyze, and publish lab data - magnetometry, XRD, reflectometry - with OriginPro file interop, golden-verified analysis, and reproducible pipelines."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
license = "Apache-2.0"
|
|
8
|
+
authors = [{ name = "Paige Quarterman" }]
|
|
9
|
+
dependencies = [
|
|
10
|
+
"fastapi>=0.139.0",
|
|
11
|
+
"uvicorn[standard]>=0.51.0",
|
|
12
|
+
"numpy>=1.26",
|
|
13
|
+
"scipy>=1.11",
|
|
14
|
+
"pydantic>=2.7",
|
|
15
|
+
"openpyxl>=3.1",
|
|
16
|
+
"h5py>=3.10",
|
|
17
|
+
"python-multipart>=0.0.32",
|
|
18
|
+
"matplotlib>=3.11.0",
|
|
19
|
+
"periodictable>=1.7",
|
|
20
|
+
"platformdirs>=4.10.0",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Homepage = "https://github.com/pquarterman17/quantized"
|
|
25
|
+
Documentation = "https://github.com/pquarterman17/quantized/wiki"
|
|
26
|
+
Repository = "https://github.com/pquarterman17/quantized"
|
|
27
|
+
Releases = "https://github.com/pquarterman17/quantized/releases"
|
|
28
|
+
Issues = "https://github.com/pquarterman17/quantized/issues"
|
|
29
|
+
|
|
30
|
+
[project.scripts]
|
|
31
|
+
qz = "quantized.cli:main"
|
|
32
|
+
quantized = "quantized.cli:main"
|
|
33
|
+
diraculator = "quantized.cli:main_calc"
|
|
34
|
+
|
|
35
|
+
[project.optional-dependencies]
|
|
36
|
+
# Word/PowerPoint report export (#37). MIT-licensed, pure-python. Optional so
|
|
37
|
+
# the core install stays lean — io/report_export.py guards these imports and
|
|
38
|
+
# LaTeX/HTML export always work; `pip install quantized[office]` enables .docx/.pptx.
|
|
39
|
+
office = [
|
|
40
|
+
"python-docx>=1.1",
|
|
41
|
+
"python-pptx>=1.0",
|
|
42
|
+
]
|
|
43
|
+
# COM "Send to Origin" (item 25) — Windows-only optional, behind QZ_ORIGIN_COM=1
|
|
44
|
+
# (architecture guard #10: never a hard dependency, never a CI requirement).
|
|
45
|
+
# io/origin_com.py imports win32com lazily and guards its absence; the
|
|
46
|
+
# cross-platform fallback (Origin-ASCII / .ogs, always available) is
|
|
47
|
+
# io/origin.py. `pip install quantized[origin-com]` adds the live COM path.
|
|
48
|
+
origin-com = [
|
|
49
|
+
"pywin32; sys_platform == 'win32'",
|
|
50
|
+
]
|
|
51
|
+
# `qz --desktop` native window (PORT_PLAN #3): pure-Python pywebview shell for
|
|
52
|
+
# dev/daily use; the Tauri shell (src-tauri/) stays the packaged path (W8).
|
|
53
|
+
# BSD-3 licensed. server_launch.py guards the import — without this extra,
|
|
54
|
+
# `qz --desktop` prints an install hint and every other mode works normally.
|
|
55
|
+
desktop = [
|
|
56
|
+
"pywebview>=5.1",
|
|
57
|
+
]
|
|
58
|
+
# Advanced statistics: GLM, survival analysis, Cox PH (gap #30). BSD-3 / MIT
|
|
59
|
+
# licensed. Optional so core install stays lean — calc/stats_glm.py and
|
|
60
|
+
# calc/stats_survival.py guard these imports; ROC is pure numpy and always
|
|
61
|
+
# available. `pip install quantized[stats]` enables GLM/survival methods.
|
|
62
|
+
stats = [
|
|
63
|
+
"statsmodels>=0.14",
|
|
64
|
+
"lifelines>=0.27",
|
|
65
|
+
]
|
|
66
|
+
# Optional bumps fit engine (GOTO #10). BSD-3 licensed. calc/fit_bumps.py
|
|
67
|
+
# guards the import — the MATLAB-parity fitter (calc/fitting.py, golden-locked)
|
|
68
|
+
# stays the default engine everywhere; bumps adds amoeba/lm/de/dream as an
|
|
69
|
+
# ADDITIONAL engine. `pip install quantized[bumps]` enables it.
|
|
70
|
+
bumps = [
|
|
71
|
+
"bumps>=1.0",
|
|
72
|
+
]
|
|
73
|
+
# quantized.client (scripting/API slice 1) — a network client for an
|
|
74
|
+
# ALREADY-RUNNING `qz` server, distinct from the in-process `quantized.api`.
|
|
75
|
+
# BSD-licensed. client.py guards the import; `pip install quantized[client]`
|
|
76
|
+
# enables `QuantizedClient`. Already a dev dependency (TestClient), so this
|
|
77
|
+
# adds no new package to CI, only a new extras group.
|
|
78
|
+
client = [
|
|
79
|
+
"httpx>=0.27",
|
|
80
|
+
]
|
|
81
|
+
|
|
82
|
+
[dependency-groups]
|
|
83
|
+
dev = [
|
|
84
|
+
"pytest>=8",
|
|
85
|
+
"httpx>=0.27",
|
|
86
|
+
"ruff>=0.15.21",
|
|
87
|
+
"mypy>=2.2.0",
|
|
88
|
+
# exercise the optional office exporters (#37) in CI
|
|
89
|
+
"python-docx>=1.1",
|
|
90
|
+
"python-pptx>=1.0",
|
|
91
|
+
# exercise the optional stats methods (GLM/survival/Cox) in CI
|
|
92
|
+
"statsmodels>=0.14",
|
|
93
|
+
"lifelines>=0.27",
|
|
94
|
+
# exercise the optional bumps fit engine (GOTO #10) in CI
|
|
95
|
+
"bumps>=1.0",
|
|
96
|
+
"pytest-xdist>=3.8.0",
|
|
97
|
+
]
|
|
98
|
+
# Desktop packaging only — used by the release workflow to freeze the server
|
|
99
|
+
# into a self-contained sidecar (tools/bundle/qz-server.spec). Never a runtime
|
|
100
|
+
# dependency; CI installs it with `uv sync --group bundle`.
|
|
101
|
+
bundle = [
|
|
102
|
+
"pyinstaller>=6.10",
|
|
103
|
+
]
|
|
104
|
+
|
|
105
|
+
[build-system]
|
|
106
|
+
requires = ["hatchling"]
|
|
107
|
+
build-backend = "hatchling.build"
|
|
108
|
+
|
|
109
|
+
# Hatchling's default sdist has no include/exclude list, so it sweeps in the
|
|
110
|
+
# whole repo (frontend/node_modules alone is 5000+ files) — scope it to just
|
|
111
|
+
# what a build needs: the package sources (including src/quantized/web/, the
|
|
112
|
+
# gitignored Vite build output, and src/quantized/samples/, the bundled demo
|
|
113
|
+
# dataset — both walked from disk, not from git, so they're picked up when
|
|
114
|
+
# present) plus top-level metadata. Build the SPA BEFORE `uv build` / `python
|
|
115
|
+
# -m build` (`cd frontend && npm ci && npm run build`) or the wheel ships
|
|
116
|
+
# without a UI (qz still runs — see cli.py's "UI not built" warning).
|
|
117
|
+
[tool.hatch.build.targets.sdist]
|
|
118
|
+
include = ["src/quantized", "README.md", "LICENSE", "NOTICE"]
|
|
119
|
+
# Hatchling force-includes LICENSE*/README*-named files project-wide by
|
|
120
|
+
# default (a footgun here: every vendored npm package under
|
|
121
|
+
# frontend/node_modules ships its own LICENSE + README.md) — exclude wins
|
|
122
|
+
# over that default, so this is required even with the include list above.
|
|
123
|
+
exclude = ["frontend/**"]
|
|
124
|
+
# The Vite SPA output (src/quantized/web/**) is gitignored, so hatchling's
|
|
125
|
+
# VCS-aware sdist drops it even though it's under the `include` path above.
|
|
126
|
+
# `uv build`/`python -m build` build the WHEEL FROM THIS SDIST, so if the SPA
|
|
127
|
+
# is missing here it's missing from the wheel too (the wheel target's own
|
|
128
|
+
# artifacts= can't re-add what the sdist never carried). Force-include it in
|
|
129
|
+
# BOTH targets. (Regression fixed 2026-07-08: v0.5.0's wheel shipped UI-less.)
|
|
130
|
+
artifacts = ["src/quantized/web/**"]
|
|
131
|
+
|
|
132
|
+
[tool.hatch.build.targets.wheel]
|
|
133
|
+
packages = ["src/quantized"]
|
|
134
|
+
# `packages` alone only reliably ships src/quantized/web/ when hatchling
|
|
135
|
+
# builds directly against a live git checkout; building the wheel FROM an
|
|
136
|
+
# sdist (what `uv build`/`python -m build` do by default, and what the
|
|
137
|
+
# publish workflow does) drops it, since that step can't see this repo's
|
|
138
|
+
# .git and treats the gitignored build output as excluded. `artifacts` is
|
|
139
|
+
# hatchling's explicit "include this even though it looks ignored" escape
|
|
140
|
+
# hatch — force it so the SPA ships in both the direct-build and
|
|
141
|
+
# build-from-sdist paths.
|
|
142
|
+
artifacts = ["src/quantized/web/**"]
|
|
143
|
+
|
|
144
|
+
[tool.ruff]
|
|
145
|
+
line-length = 100
|
|
146
|
+
target-version = "py311"
|
|
147
|
+
src = ["src", "tests"]
|
|
148
|
+
|
|
149
|
+
[tool.ruff.lint]
|
|
150
|
+
select = ["E", "F", "I", "UP", "B"]
|
|
151
|
+
|
|
152
|
+
[tool.ruff.lint.per-file-ignores]
|
|
153
|
+
# Miller indices are conventionally named h, k, l — `l` is unavoidable and clear
|
|
154
|
+
# in crystallographic context (E741 "ambiguous variable name").
|
|
155
|
+
"src/quantized/calc/crystallography.py" = ["E741"]
|
|
156
|
+
"src/quantized/calc/miller_bravais.py" = ["E741"]
|
|
157
|
+
"src/quantized/calc/plane_spacings.py" = ["E741"]
|
|
158
|
+
"src/quantized/routes/crystallography.py" = ["E741"]
|
|
159
|
+
"tests/test_crystallography.py" = ["E741"]
|
|
160
|
+
"tests/test_calc_planespacings.py" = ["E741"]
|
|
161
|
+
|
|
162
|
+
[tool.mypy]
|
|
163
|
+
python_version = "3.11"
|
|
164
|
+
strict = true
|
|
165
|
+
|
|
166
|
+
[[tool.mypy.overrides]]
|
|
167
|
+
# Third-party libs without bundled type stubs — skeleton-safe.
|
|
168
|
+
module = ["scipy.*", "uvicorn.*", "openpyxl.*", "h5py.*", "periodictable.*", "docx.*", "pptx.*", "mpl_toolkits.*", "win32com.*", "statsmodels.*", "lifelines.*", "pandas.*", "webview.*", "bumps.*"]
|
|
169
|
+
ignore_missing_imports = true
|
|
170
|
+
|
|
171
|
+
[tool.pytest.ini_options]
|
|
172
|
+
addopts = "--strict-markers"
|
|
173
|
+
markers = [
|
|
174
|
+
"golden: compares output against frozen quantized_matlab reference values",
|
|
175
|
+
"realdata: needs the local-only instrument corpus (auto-skips when absent)",
|
|
176
|
+
"perf: wall-time regression tripwires with generous ceilings (not benchmarks)",
|
|
177
|
+
"perfguard: R7 bounded large-map regression guard, run in a dedicated non-blocking CI job",
|
|
178
|
+
]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""quantized — Python backend for the quantized toolbox port.
|
|
2
|
+
|
|
3
|
+
Layered, enforced architecture (see CLAUDE.md):
|
|
4
|
+
- ``datastruct`` + ``io`` + ``calc`` are pure libraries (no web imports).
|
|
5
|
+
- ``routes`` are thin FastAPI adapters.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
__version__ = "0.30.0"
|
|
11
|
+
__all__ = ["__version__"]
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"""FastAPI application factory for quantized.
|
|
2
|
+
|
|
3
|
+
Thin transport layer only — business logic lives in ``calc/`` and ``io/``.
|
|
4
|
+
Composes the per-domain routers; each router is a thin adapter.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import asyncio
|
|
10
|
+
import logging
|
|
11
|
+
import os
|
|
12
|
+
from collections.abc import Collection
|
|
13
|
+
from contextlib import asynccontextmanager
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
|
|
17
|
+
from fastapi.exceptions import RequestValidationError
|
|
18
|
+
from fastapi.middleware.cors import CORSMiddleware
|
|
19
|
+
from fastapi.staticfiles import StaticFiles
|
|
20
|
+
|
|
21
|
+
from quantized import __version__
|
|
22
|
+
from quantized.auth import resolve_token
|
|
23
|
+
from quantized.body_limit import BodyLimitMiddleware
|
|
24
|
+
from quantized.io.workbook_transfer_store import cleanup_transfer_dir
|
|
25
|
+
from quantized.jobs import jobs
|
|
26
|
+
from quantized.plugins import load_plugins
|
|
27
|
+
from quantized.routes import (
|
|
28
|
+
_datasetcache,
|
|
29
|
+
aggregate,
|
|
30
|
+
baseline,
|
|
31
|
+
books,
|
|
32
|
+
calc,
|
|
33
|
+
corrections,
|
|
34
|
+
crystallography,
|
|
35
|
+
database,
|
|
36
|
+
datasets,
|
|
37
|
+
diffusion,
|
|
38
|
+
electrical,
|
|
39
|
+
electrochemistry,
|
|
40
|
+
export,
|
|
41
|
+
export_figure_batch,
|
|
42
|
+
export_figures,
|
|
43
|
+
export_figures_aux,
|
|
44
|
+
export_multivar,
|
|
45
|
+
export_page,
|
|
46
|
+
export_statplots,
|
|
47
|
+
fitting,
|
|
48
|
+
fitting_bumps,
|
|
49
|
+
fitting_global,
|
|
50
|
+
fitting_stats,
|
|
51
|
+
import_template,
|
|
52
|
+
import_wizard,
|
|
53
|
+
jobs_api,
|
|
54
|
+
magnetic,
|
|
55
|
+
magnetometry,
|
|
56
|
+
optics,
|
|
57
|
+
parsers,
|
|
58
|
+
peaks,
|
|
59
|
+
peaks_batch,
|
|
60
|
+
plot,
|
|
61
|
+
reductions,
|
|
62
|
+
reference,
|
|
63
|
+
reflectivity,
|
|
64
|
+
reflectivity_graded,
|
|
65
|
+
report_export,
|
|
66
|
+
rsm,
|
|
67
|
+
samples,
|
|
68
|
+
semiconductor,
|
|
69
|
+
sims,
|
|
70
|
+
sld,
|
|
71
|
+
spectral,
|
|
72
|
+
statplots,
|
|
73
|
+
stats,
|
|
74
|
+
stats_design,
|
|
75
|
+
stats_outliers,
|
|
76
|
+
stats_varcomp,
|
|
77
|
+
structures,
|
|
78
|
+
substrates,
|
|
79
|
+
superconductor,
|
|
80
|
+
thermal,
|
|
81
|
+
thin_film,
|
|
82
|
+
transform,
|
|
83
|
+
vacuum,
|
|
84
|
+
workbook_transfer,
|
|
85
|
+
xray,
|
|
86
|
+
)
|
|
87
|
+
from quantized.routes._errors import validation_error_handler
|
|
88
|
+
from quantized.security import dev_origins_from_env, host_allowed
|
|
89
|
+
from quantized.web_guard import authorized, origin_ok, security_guard
|
|
90
|
+
|
|
91
|
+
__all__ = ["create_app", "app"]
|
|
92
|
+
|
|
93
|
+
# Built SPA (vite build → src/quantized/web/). A build artifact, gitignored;
|
|
94
|
+
# present in packaged/installed runs, absent in a bare dev checkout.
|
|
95
|
+
#
|
|
96
|
+
# One resolution serves both cases: Path(__file__).parent always points at
|
|
97
|
+
# wherever the ``quantized`` package itself lives, so a PyPI/pipx install
|
|
98
|
+
# (the built wheel bundles ``web/`` alongside app.py — see
|
|
99
|
+
# [tool.hatch.build.targets.wheel] artifacts in pyproject.toml and the
|
|
100
|
+
# "build frontend first" step in README.md) and a dev checkout that has run
|
|
101
|
+
# ``npm run build`` resolve to the same relative path with no branching.
|
|
102
|
+
_WEB_DIR = Path(__file__).parent / "web"
|
|
103
|
+
|
|
104
|
+
# ── Desktop-style lifecycle (client presence over /api/ws) ──────────────────
|
|
105
|
+
# The SPA holds a WebSocket open; the status bar's connected dot reflects it.
|
|
106
|
+
# Auto-shutdown on last-tab-close is opt-in (env QZ_AUTO_SHUTDOWN=1, for the
|
|
107
|
+
# future `qz --desktop` run model) so dev/tests are never killed.
|
|
108
|
+
_clients = 0
|
|
109
|
+
_ever_connected = False
|
|
110
|
+
_AUTO_SHUTDOWN = os.environ.get("QZ_AUTO_SHUTDOWN") == "1"
|
|
111
|
+
_SHUTDOWN_GRACE_S = 1.5 # tab refresh disconnects + reconnects within ~1 s
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
async def _lifecycle_ws(ws: WebSocket) -> None:
|
|
115
|
+
"""Client-presence socket: count live tabs; (optionally) shut down when the
|
|
116
|
+
last one drops past a refresh-safe grace window. Module-level to keep
|
|
117
|
+
create_app simple."""
|
|
118
|
+
global _clients, _ever_connected
|
|
119
|
+
# The HTTP middleware doesn't run on the WS upgrade — enforce the same
|
|
120
|
+
# Host + Origin + API-token checks here (closing before accept()).
|
|
121
|
+
if not host_allowed(ws.headers.get("host")):
|
|
122
|
+
await ws.close(code=1008) # policy violation
|
|
123
|
+
return
|
|
124
|
+
if not origin_ok(ws) or not authorized(ws):
|
|
125
|
+
await ws.close(code=1008) # policy violation
|
|
126
|
+
return
|
|
127
|
+
await ws.accept()
|
|
128
|
+
_clients += 1
|
|
129
|
+
_ever_connected = True
|
|
130
|
+
try:
|
|
131
|
+
while True:
|
|
132
|
+
await ws.receive_text() # idles until disconnect
|
|
133
|
+
except WebSocketDisconnect:
|
|
134
|
+
pass
|
|
135
|
+
finally:
|
|
136
|
+
_clients -= 1
|
|
137
|
+
if _AUTO_SHUTDOWN and _clients == 0:
|
|
138
|
+
asyncio.get_running_loop().create_task(_grace_check())
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
async def _grace_check() -> None:
|
|
142
|
+
"""Exit unless a client reconnected within the grace window."""
|
|
143
|
+
await asyncio.sleep(_SHUTDOWN_GRACE_S)
|
|
144
|
+
if _AUTO_SHUTDOWN and _ever_connected and _clients == 0:
|
|
145
|
+
os._exit(0)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
@asynccontextmanager
|
|
149
|
+
async def _app_lifespan(app: FastAPI): # type: ignore[no-untyped-def]
|
|
150
|
+
"""App lifespan: clean up the executor pool + dataset cache on shutdown."""
|
|
151
|
+
# Startup: sweep expired large-workbook transfer packages (Group F) from
|
|
152
|
+
# an EXISTING transfer dir -- never creates it, never fails startup.
|
|
153
|
+
try:
|
|
154
|
+
cleanup_transfer_dir()
|
|
155
|
+
except OSError:
|
|
156
|
+
logging.getLogger(__name__).warning("transfer-package cleanup failed", exc_info=True)
|
|
157
|
+
yield
|
|
158
|
+
# Shutdown: terminate the job executor with pending cancellation
|
|
159
|
+
jobs._pool.shutdown(wait=False, cancel_futures=True)
|
|
160
|
+
# RSM_CUTS_PLAN item 18: drop every cached dataset (local-server-
|
|
161
|
+
# hardening -- lifespan hook, never atexit).
|
|
162
|
+
_datasetcache.clear_cache()
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def create_app(
|
|
166
|
+
*, dev_origins: Collection[str] | None = None, api_token: str | None = None
|
|
167
|
+
) -> FastAPI:
|
|
168
|
+
"""Build the FastAPI app and wire the domain routers.
|
|
169
|
+
|
|
170
|
+
``dev_origins`` are the only cross-origin pages (besides the Tauri shell)
|
|
171
|
+
allowed to call /api. None reads them from the environment, where
|
|
172
|
+
``qz --dev`` exports the Vite port (``security.dev_origins_from_env``);
|
|
173
|
+
every other run mode leaves it unset, so the set is empty there.
|
|
174
|
+
|
|
175
|
+
``api_token`` is the secret every /api route but /api/health needs
|
|
176
|
+
(``quantized.auth``). None takes ``QZ_API_TOKEN``, which the ``qz``
|
|
177
|
+
launcher exports, else a fresh random token."""
|
|
178
|
+
allowed_dev = frozenset(dev_origins_from_env() if dev_origins is None else dev_origins)
|
|
179
|
+
application = FastAPI(title="quantized", version=__version__, lifespan=_app_lifespan)
|
|
180
|
+
application.state.dev_origins = allowed_dev
|
|
181
|
+
application.state.api_token = resolve_token() if api_token is None else api_token
|
|
182
|
+
application.add_exception_handler(RequestValidationError, validation_error_handler)
|
|
183
|
+
# CORS read access for the Vite dev origin in --dev only (empty otherwise:
|
|
184
|
+
# the served SPA and the desktop shells are same-origin and need none).
|
|
185
|
+
application.add_middleware(
|
|
186
|
+
CORSMiddleware,
|
|
187
|
+
allow_origins=sorted(allowed_dev),
|
|
188
|
+
allow_methods=["*"],
|
|
189
|
+
allow_headers=["*"],
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
# Body caps while the body streams (413) -- inside the guard, so an
|
|
193
|
+
# unauthenticated request is refused before its size matters.
|
|
194
|
+
application.add_middleware(BodyLimitMiddleware)
|
|
195
|
+
# Host, Origin and API-token checks, the SPA index cookie bootstrap and
|
|
196
|
+
# the CSP header -- see ``quantized.web_guard``. Registered last, so it is
|
|
197
|
+
# the outermost layer and refuses before anything reads a body.
|
|
198
|
+
application.middleware("http")(security_guard)
|
|
199
|
+
|
|
200
|
+
@application.get("/api/health")
|
|
201
|
+
def health() -> dict[str, str]:
|
|
202
|
+
# "app" is the identity field the launchers key on: the sibling
|
|
203
|
+
# fermiviewer serves the same {"status": "ok"} shape on the same
|
|
204
|
+
# default port (8000), and a probe that checks status alone adopts
|
|
205
|
+
# it — rendering the wrong app's UI in a Quantized window.
|
|
206
|
+
return {"status": "ok", "app": "quantized", "version": __version__}
|
|
207
|
+
|
|
208
|
+
application.include_router(parsers.router)
|
|
209
|
+
application.include_router(books.router)
|
|
210
|
+
application.include_router(samples.router)
|
|
211
|
+
application.include_router(import_wizard.router)
|
|
212
|
+
application.include_router(import_template.router)
|
|
213
|
+
application.include_router(plot.router)
|
|
214
|
+
application.include_router(datasets.router)
|
|
215
|
+
application.include_router(corrections.router)
|
|
216
|
+
application.include_router(database.router)
|
|
217
|
+
application.include_router(fitting.router)
|
|
218
|
+
application.include_router(fitting_bumps.router)
|
|
219
|
+
application.include_router(fitting_global.router)
|
|
220
|
+
application.include_router(fitting_stats.router)
|
|
221
|
+
application.include_router(jobs_api.router)
|
|
222
|
+
application.include_router(baseline.router)
|
|
223
|
+
application.include_router(stats.router)
|
|
224
|
+
application.include_router(stats_design.router)
|
|
225
|
+
application.include_router(stats_outliers.router)
|
|
226
|
+
application.include_router(stats_varcomp.router)
|
|
227
|
+
application.include_router(statplots.router)
|
|
228
|
+
application.include_router(reference.router)
|
|
229
|
+
application.include_router(export.router)
|
|
230
|
+
application.include_router(export_figure_batch.router)
|
|
231
|
+
application.include_router(export_figures.router)
|
|
232
|
+
application.include_router(export_figures_aux.router)
|
|
233
|
+
application.include_router(export_statplots.router)
|
|
234
|
+
application.include_router(export_multivar.router)
|
|
235
|
+
application.include_router(export_page.router)
|
|
236
|
+
application.include_router(report_export.router)
|
|
237
|
+
application.include_router(magnetometry.router)
|
|
238
|
+
application.include_router(peaks.router)
|
|
239
|
+
application.include_router(peaks_batch.router)
|
|
240
|
+
application.include_router(reductions.router)
|
|
241
|
+
application.include_router(reflectivity.router)
|
|
242
|
+
application.include_router(reflectivity_graded.router)
|
|
243
|
+
application.include_router(rsm.router)
|
|
244
|
+
application.include_router(xray.router)
|
|
245
|
+
application.include_router(sld.router)
|
|
246
|
+
application.include_router(spectral.router)
|
|
247
|
+
application.include_router(crystallography.router)
|
|
248
|
+
application.include_router(structures.router)
|
|
249
|
+
application.include_router(electrical.router)
|
|
250
|
+
application.include_router(optics.router)
|
|
251
|
+
application.include_router(vacuum.router)
|
|
252
|
+
application.include_router(thermal.router)
|
|
253
|
+
application.include_router(diffusion.router)
|
|
254
|
+
application.include_router(electrochemistry.router)
|
|
255
|
+
application.include_router(substrates.router)
|
|
256
|
+
application.include_router(semiconductor.router)
|
|
257
|
+
application.include_router(thin_film.router)
|
|
258
|
+
application.include_router(superconductor.router)
|
|
259
|
+
application.include_router(magnetic.router)
|
|
260
|
+
application.include_router(aggregate.router)
|
|
261
|
+
application.include_router(transform.router)
|
|
262
|
+
application.include_router(sims.router)
|
|
263
|
+
application.include_router(calc.router)
|
|
264
|
+
application.include_router(workbook_transfer.router)
|
|
265
|
+
|
|
266
|
+
# Client-presence WebSocket (registered before the SPA mount so the
|
|
267
|
+
# catch-all StaticFiles route never shadows it).
|
|
268
|
+
application.websocket("/api/ws")(_lifecycle_ws)
|
|
269
|
+
|
|
270
|
+
# Load user/third-party plugins once (gap #8). Registration is isolated
|
|
271
|
+
# per-plugin and logged; a broken plugin never crashes startup. Cheap when
|
|
272
|
+
# none are installed (an empty dir scan + entry-point lookup). Fit-model /
|
|
273
|
+
# parser routes read the shared registries at request time, so plugin
|
|
274
|
+
# contributions are visible regardless of this call's position.
|
|
275
|
+
try:
|
|
276
|
+
load_plugins()
|
|
277
|
+
except Exception: # pragma: no cover - load_plugins already isolates per-plugin
|
|
278
|
+
logging.getLogger("quantized.plugins").exception("plugin loading failed")
|
|
279
|
+
|
|
280
|
+
# Serve the built SPA at / when present (production / packaged runs). In a
|
|
281
|
+
# bare dev checkout the dir is absent and the Vite dev server serves the UI.
|
|
282
|
+
if _WEB_DIR.is_dir():
|
|
283
|
+
application.mount("/", StaticFiles(directory=_WEB_DIR, html=True), name="web")
|
|
284
|
+
return application
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
app = create_app()
|