diff --git a/packages/essdiffraction/docs/api-reference/index.md b/packages/essdiffraction/docs/api-reference/index.md index 8660f95e1..509ca5fa4 100644 --- a/packages/essdiffraction/docs/api-reference/index.md +++ b/packages/essdiffraction/docs/api-reference/index.md @@ -124,13 +124,11 @@ :toctree: ../generated/functions BeerMcStasWorkflowPulseShaping - BeerMcStasWorkflowPulseShapingAnalytical BeerModMcStasWorkflowKnownPeaks BeerModMcStasWorkflow BeerPowderWorkflow BeerPowderWorkflowAnalytical BeerPowderMcStasWorkflow - BeerPowderMcStasWorkflowAnalytical ``` ### Top-level functions diff --git a/packages/essdiffraction/docs/user-guide/beer/beer_modulation_mcstas.ipynb b/packages/essdiffraction/docs/user-guide/beer/beer_modulation_mcstas.ipynb index 6ef9242bc..e59c8e52e 100644 --- a/packages/essdiffraction/docs/user-guide/beer/beer_modulation_mcstas.ipynb +++ b/packages/essdiffraction/docs/user-guide/beer/beer_modulation_mcstas.ipynb @@ -17,10 +17,9 @@ "source": [ "%matplotlib ipympl\n", "import plopp as pp\n", - "import scippneutron as scn\n", "\n", "from ess.beer import BeerModMcStasWorkflow, BeerModMcStasWorkflowKnownPeaks\n", - "from ess.beer.data import mcstas_silicon_medium_resolution, mcstas_duplex, duplex_peaks_array, silicon_peaks_array\n", + "from ess.beer.data import mcstas_silicon_new_model, silicon_peaks_array\n", "from ess.beer.types import *\n", "from ess.powder.types import *\n", "\n", @@ -30,7 +29,12 @@ "def ground_truth_peak_positions(p, arr):\n", " 'Helper to display the true peak positions for comparison'\n", " p.ax.vlines(arr.values, 0, 20000, linestyle='--', color='black', lw=0.5, label='true $d_{hkl}$')\n", - " return p" + " return p\n", + "\n", + "def transform_wavelength_data(wf, coord):\n", + " result = wf.compute((WavelengthDetector[SampleRun], ElasticCoordTransformGraph[SampleRun]))\n", + " da = result[WavelengthDetector[SampleRun]]\n", + " return da.transform_coords(coord, graph=result[ElasticCoordTransformGraph[SampleRun]])" ] }, { @@ -130,7 +134,7 @@ "id": "3", "metadata": {}, "source": [ - "In the rest of the notebook you will find examples of simulated data for a few different samples measured in the different modulation modes.\n", + "In the rest of the notebook you will find examples of simulated silicon data measured in the different modulation modes.\n", "\n", "The examples begin by displaying what the intensity distribution in the detector looked like in the experiment.\n", "Then they show the resulting $d_{hkl}$ histograms, using the two different methods described above.\n", @@ -143,7 +147,7 @@ "id": "4", "metadata": {}, "source": [ - "## Silicon sample (M2)" + "## Silicon sample (M0)" ] }, { @@ -163,9 +167,9 @@ "source": [ "wf = BeerModMcStasWorkflowKnownPeaks()\n", "wf[DetectorBank] = DetectorBank.north\n", - "wf[Filename[SampleRun]] = mcstas_silicon_medium_resolution()\n", + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(7)\n", "wf[DHKLList] = silicon_peaks_array()\n", - "da = wf.compute(WavelengthDetector[SampleRun])\n", + "da = transform_wavelength_data(wf, \"two_theta\")\n", "da.masks.clear()\n", "da.hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-3)" ] @@ -185,15 +189,14 @@ "metadata": {}, "outputs": [], "source": [ - "wf[Filename[SampleRun]] = mcstas_silicon_medium_resolution()\n", + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(7)\n", "\n", "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", @@ -216,15 +219,14 @@ "outputs": [], "source": [ "wf = BeerModMcStasWorkflow()\n", - "wf[Filename[SampleRun]] = mcstas_silicon_medium_resolution()\n", + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(7)\n", "\n", "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", @@ -259,7 +261,7 @@ "id": "13", "metadata": {}, "source": [ - "## Duplex sample (M1)" + "## Silicon sample (M1)" ] }, { @@ -279,9 +281,9 @@ "source": [ "wf = BeerModMcStasWorkflowKnownPeaks()\n", "wf[DetectorBank] = DetectorBank.south\n", - "wf[Filename[SampleRun]] = mcstas_duplex(8)\n", - "wf[DHKLList] = duplex_peaks_array()\n", - "wf.compute(WavelengthDetector[SampleRun]).hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-2)" + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(8)\n", + "wf[DHKLList] = silicon_peaks_array()\n", + "transform_wavelength_data(wf, \"two_theta\").hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-2)" ] }, { @@ -302,14 +304,13 @@ "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { @@ -328,19 +329,18 @@ "outputs": [], "source": [ "wf = BeerModMcStasWorkflow()\n", - "wf[Filename[SampleRun]] = mcstas_duplex(8)\n", + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(8)\n", "\n", "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { @@ -371,7 +371,7 @@ "id": "22", "metadata": {}, "source": [ - "## Duplex sample (M2)" + "## Silicon sample (M2)" ] }, { @@ -391,9 +391,9 @@ "source": [ "wf = BeerModMcStasWorkflowKnownPeaks()\n", "wf[DetectorBank] = DetectorBank.south\n", - "wf[Filename[SampleRun]] = mcstas_duplex(9)\n", - "wf[DHKLList] = duplex_peaks_array()\n", - "wf.compute(WavelengthDetector[SampleRun]).hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-3)" + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(9)\n", + "wf[DHKLList] = silicon_peaks_array()\n", + "transform_wavelength_data(wf, \"two_theta\").hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-3)" ] }, { @@ -414,14 +414,13 @@ "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { @@ -440,19 +439,18 @@ "outputs": [], "source": [ "wf = BeerModMcStasWorkflow()\n", - "wf[Filename[SampleRun]] = mcstas_duplex(9)\n", + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(9)\n", "\n", "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { @@ -483,7 +481,7 @@ "id": "31", "metadata": {}, "source": [ - "## Duplex sample (M3)" + "## Silicon sample (M3)" ] }, { @@ -503,9 +501,9 @@ "source": [ "wf = BeerModMcStasWorkflowKnownPeaks()\n", "wf[DetectorBank] = DetectorBank.south\n", - "wf[Filename[SampleRun]] = mcstas_duplex(10)\n", - "wf[DHKLList] = duplex_peaks_array()\n", - "wf.compute(WavelengthDetector[SampleRun]).hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-3)" + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(10)\n", + "wf[DHKLList] = silicon_peaks_array()\n", + "transform_wavelength_data(wf, \"two_theta\").hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-3)" ] }, { @@ -526,14 +524,13 @@ "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { @@ -552,19 +549,18 @@ "outputs": [], "source": [ "wf = BeerModMcStasWorkflow()\n", - "wf[Filename[SampleRun]] = mcstas_duplex(10)\n", + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(10)\n", "\n", "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { @@ -595,7 +591,7 @@ "id": "40", "metadata": {}, "source": [ - "## Duplex sample (M4)" + "## Silicon sample (M4)" ] }, { @@ -615,9 +611,9 @@ "source": [ "wf = BeerModMcStasWorkflowKnownPeaks()\n", "wf[DetectorBank] = DetectorBank.south\n", - "wf[Filename[SampleRun]] = mcstas_duplex(16)\n", - "wf[DHKLList] = duplex_peaks_array()\n", - "wf.compute(WavelengthDetector[SampleRun]).hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-3)" + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(16)\n", + "wf[DHKLList] = silicon_peaks_array()\n", + "transform_wavelength_data(wf, \"two_theta\").hist(two_theta=400, event_time_offset=1000).plot(norm='log', cmin=1.0e-3)" ] }, { @@ -638,14 +634,13 @@ "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { @@ -664,19 +659,18 @@ "outputs": [], "source": [ "wf = BeerModMcStasWorkflow()\n", - "wf[Filename[SampleRun]] = mcstas_duplex(16)\n", + "wf[Filename[SampleRun]] = mcstas_silicon_new_model(16)\n", "\n", "results = {}\n", "for bank in DetectorBank:\n", " wf[DetectorBank] = bank\n", - " da = wf.compute(WavelengthDetector[SampleRun])\n", + " da = transform_wavelength_data(wf, \"dspacing\")\n", " results[bank] = (\n", " da\n", - " .transform_coords(('dspacing',), graph=scn.conversion.graph.tof.elastic('tof'),)\n", " .hist(dspacing=dspacing, dim=da.dims)\n", " )\n", "\n", - "ground_truth_peak_positions(pp.plot(results), duplex_peaks_array())" + "ground_truth_peak_positions(pp.plot(results), silicon_peaks_array())" ] }, { diff --git a/packages/essdiffraction/docs/user-guide/beer/beer_powder_mcstas_analytical.ipynb b/packages/essdiffraction/docs/user-guide/beer/beer_powder_mcstas_analytical.ipynb index 2b80b7eb6..1858282d3 100644 --- a/packages/essdiffraction/docs/user-guide/beer/beer_powder_mcstas_analytical.ipynb +++ b/packages/essdiffraction/docs/user-guide/beer/beer_powder_mcstas_analytical.ipynb @@ -55,7 +55,7 @@ "metadata": {}, "outputs": [], "source": [ - "workflow = beer.BeerPowderMcStasWorkflowAnalytical(\n", + "workflow = beer.BeerPowderMcStasWorkflow(\n", " run_norm=powder.RunNormalization.monitor_histogram\n", ")\n", "\n", diff --git a/packages/essdiffraction/pyproject.toml b/packages/essdiffraction/pyproject.toml index 706278ab2..08436ad76 100644 --- a/packages/essdiffraction/pyproject.toml +++ b/packages/essdiffraction/pyproject.toml @@ -32,6 +32,7 @@ dependencies = [ "dask>=2022.1.0", "graphviz>=0.20", "essreduce>=26.6.0", + "mcstastox>=0.0.11", "numpy>=2", "plopp>=26.5.0", "tof>=25.12.0", diff --git a/packages/essdiffraction/src/ess/beer/__init__.py b/packages/essdiffraction/src/ess/beer/__init__.py index 185a5b61a..7a63185c2 100644 --- a/packages/essdiffraction/src/ess/beer/__init__.py +++ b/packages/essdiffraction/src/ess/beer/__init__.py @@ -11,11 +11,9 @@ from .peakfinding import dhkl_peaks_from_cif from .workflow import ( BeerMcStasWorkflowPulseShaping, - BeerMcStasWorkflowPulseShapingAnalytical, BeerModMcStasWorkflow, BeerModMcStasWorkflowKnownPeaks, BeerPowderMcStasWorkflow, - BeerPowderMcStasWorkflowAnalytical, BeerPowderWorkflow, BeerPowderWorkflowAnalytical, default_parameters, @@ -30,11 +28,9 @@ __all__ = [ 'BeerMcStasWorkflowPulseShaping', - 'BeerMcStasWorkflowPulseShapingAnalytical', 'BeerModMcStasWorkflow', 'BeerModMcStasWorkflowKnownPeaks', 'BeerPowderMcStasWorkflow', - 'BeerPowderMcStasWorkflowAnalytical', 'BeerPowderWorkflow', 'BeerPowderWorkflowAnalytical', '__version__', diff --git a/packages/essdiffraction/src/ess/beer/clustering.py b/packages/essdiffraction/src/ess/beer/clustering.py index c5c398434..7d547ed07 100644 --- a/packages/essdiffraction/src/ess/beer/clustering.py +++ b/packages/essdiffraction/src/ess/beer/clustering.py @@ -1,26 +1,24 @@ import scipp as sc -from ess.powder.types import RunType +from ess.powder.types import ElasticCoordTransformGraph, RunType from scipy.signal import find_peaks, medfilt -from .conversions import tof_from_nominal_time_at_chopper_graph -from .types import ( - GeometryCoordTransformGraph, - RawDetector, - StreakClusteredData, -) +from .types import RawDetector, StreakClusteredData def cluster_events_by_streak( - da: RawDetector[RunType], gg: GeometryCoordTransformGraph + da: RawDetector[RunType], + graph: ElasticCoordTransformGraph[RunType], ) -> StreakClusteredData[RunType]: - graph = tof_from_nominal_time_at_chopper_graph(da, gg) - - da = da.transform_coords(['dspacing'], graph=graph) + da = da.transform_coords( + ['dspacing', 'tof', 'Ltotal', 'two_theta'], + graph=graph, + keep_intermediate=False, + ) da.bins.coords['coarse_d'] = da.bins.coords.pop('dspacing').to(unit='angstrom') # We need to keep these coordinates after binning, # adding them to the binned data coords achieves this. - for coord in ('two_theta', 'Ltotal', 'frame_cutoff_time'): + for coord in ('two_theta', 'Ltotal'): da.bins.coords[coord] = sc.bins_like(da, da.coords[coord]) h = da.bins.concat().hist(coarse_d=1000) @@ -32,11 +30,7 @@ def cluster_events_by_streak( ) valleys = h.coords['coarse_d'][i_valleys] - peaks = sc.array( - dims=['coarse_d'], - values=h.coords['coarse_d'].values[i_peaks], - unit=h.coords['coarse_d'].unit, - ) + peaks = h.coords['coarse_d'][i_peaks] has_peak = peaks.bin(coarse_d=valleys).bins.size().data.to(dtype='bool') filtered_valleys = valleys[ @@ -59,6 +53,3 @@ def cluster_events_by_streak( b = b.bins.drop_coords(('coarse_d',)) b = b.rename_dims(coarse_d='streak') return b - - -providers = (cluster_events_by_streak,) diff --git a/packages/essdiffraction/src/ess/beer/conversions.py b/packages/essdiffraction/src/ess/beer/conversions.py index 1a81abb56..eee60c4a4 100644 --- a/packages/essdiffraction/src/ess/beer/conversions.py +++ b/packages/essdiffraction/src/ess/beer/conversions.py @@ -1,24 +1,26 @@ import scipp as sc import scipp.constants -from ess.powder.types import ElasticCoordTransformGraph, RunType -from scippneutron.conversion import graph +import scippnexus as snx +from ess.powder.conversion import powder_coordinate_transformation_graph +from ess.powder.types import ElasticCoordTransformGraph, GravityVector, RunType +from scippneutron.conversion.tof import wavelength_from_tof + +from ess.reduce.nexus.types import DiskChoppers, Position +from ess.reduce.unwrap.lut import chopper_distance_along_beam +from ess.reduce.unwrap.types import DetectorLtotal from .types import ( DHKLList, - GeometryCoordTransformGraph, - ModulationPeriod, PulseLength, RawDetector, StreakClusteredData, - WavelengthDefinitionChopperDelay, WavelengthDetector, ) def compute_wavelength_in_each_cluster( da: StreakClusteredData[RunType], - chopper_delay: WavelengthDefinitionChopperDelay, - mod_period: ModulationPeriod, + choppers: DiskChoppers[RunType], ) -> WavelengthDetector[RunType]: """Fits a line through each cluster, the intercept of the line is t0. The line is fitted using linear regression with an outlier removal procedure. @@ -32,57 +34,82 @@ def compute_wavelength_in_each_cluster( of the points in the cluster, and probably should belong to another cluster or are part of the background. 3. Go back to 1) and iterate until convergence. A few iterations should be enough. - 4. Finally, round the estimated t0 to the closest known chopper opening time. + 4. Finally, round the estimated dt to the closest known chopper opening time. """ - if isinstance(da, sc.DataGroup): - return sc.DataGroup( - { - k: compute_wavelength_in_each_cluster(v, chopper_delay, mod_period) - for k, v in da.items() - } - ) - + mod_period = _modulation_period(choppers) max_distance_from_streak_line = mod_period / 3 sin_theta_L = sc.sin(da.bins.coords['two_theta'] / 2) * da.bins.coords['Ltotal'] - t = time_of_arrival( - da.bins.coords['event_time_offset'], - da.bins.coords['frame_cutoff_time'], - ) + # Time from center of chopper opening "window". + # The window contains all modulation sub pulses. + t = da.bins.coords['tof'] for _ in range(15): - s, t0 = _linear_regression_by_bin(sin_theta_L, t, da.data) + # dt is the difference between the the modulation chopper opening time + # and the time center of the chopper opening window. + s, dt = _linear_regression_by_bin(sin_theta_L, t, da.data) # Distance from point to line through cluster - distance_to_self = sc.abs(sc.values(t0) + sc.values(s) * sin_theta_L - t) + distance_to_self = sc.abs(sc.values(dt) + sc.values(s) * sin_theta_L - t) da = da.bins.assign_masks( too_far_from_center=(distance_to_self > max_distance_from_streak_line), ) - # The t0 estimate from fitting is influenced by peak overlap, background, - # and other factors that can make the estimate offset from the true - # chopper opening time that it should match. - # We know the true chopper opening times, so instead of using the t0 estimte - # directly we can round the estimate to the closest chopper opening time. - # That way the t0 estimate becomes more robust and is guaranteed to correspond to - # a true chopper opening time. - t0 = _round_t0_to_nearest_chopper_opening(sc.values(t0), mod_period, chopper_delay) - da = da.assign_coords(t0=t0) - da = da.bins.assign_coords(tof=(t - t0)) + # The dt estimate from fitting is influenced by peak overlap, background, + # and other factors that can make the estimate worse. + # We know the true chopper opening times, + # so we can round the estimate to the closest known time. + dt = sc.values(dt) + dt /= mod_period + dt += 0.5 + sc.floor(dt, out=dt) + dt *= mod_period + # Remove the offset + t -= dt + da.bins.coords['wavelength'] = wavelength_from_tof( + tof=t, Ltotal=da.bins.coords['Ltotal'] + ) + del da.bins.coords['tof'] return da -def _round_t0_to_nearest_chopper_opening( - t0: sc.Variable, - mod_period: sc.Variable, - chopper_delay: sc.Variable, +def _modulation_period(choppers: DiskChoppers[RunType]) -> sc.Variable: + periods = [ + 1 / (sc.abs(chopper.frequency) * chopper.slit_begin.sizes['cutout']) + for name, chopper in choppers.items() + if not name.startswith('FC') + ] + return max(periods) + + +def _modulation_chopper_position( + choppers: DiskChoppers[RunType], ) -> sc.Variable: - out = t0 - chopper_delay - out /= mod_period - out += 0.5 - sc.floor(out, out=out) - out *= mod_period - out += chopper_delay - return out + return sc.concat( + [ + chopper.axle_position + for name, chopper in choppers.items() + if not name.startswith('FC') + ], + dim='chopper', + ).mean() + + +def _modulation_coordinate_transformation_graph( + source_position: Position[snx.NXsource, RunType], + sample_position: Position[snx.NXsample, RunType], + gravity: GravityVector, + detector_ltotal: DetectorLtotal[RunType], + choppers: DiskChoppers[RunType], +) -> ElasticCoordTransformGraph[RunType]: + """Use chopper-to-detector distance as ``Ltotal`` in modulation workflows.""" + graph = powder_coordinate_transformation_graph( + source_position, sample_position, gravity + ) + ltotal = detector_ltotal - chopper_distance_along_beam( + _modulation_chopper_position(choppers), source_position + ) + graph['Ltotal'] = lambda: ltotal + return graph def _linear_regression_by_bin( @@ -112,27 +139,23 @@ def _compute_d_given_list_of_peaks( theta: sc.Variable, dhkl_list: sc.Variable, pulse_length: sc.Variable, - moderator_to_detector_distance: sc.Variable, + detector_ltotal: sc.Variable, ) -> sc.Variable: """Determines the ``d_hkl`` peak each event belongs to, given a list of known peaks.""" # Source: https://www.mcstas.org/download/components/current/contrib/NPI_tof_dhkl_detector.comp sinth = sc.sin(theta) - t = time_of_arrival d = sc.full_like( - time_of_arrival, value=float('nan'), unit=dhkl_list[0].unit, dtype='float64' + time_of_arrival, value=float('nan'), unit=dhkl_list.unit, dtype='float64' ) dtfound = sc.full_like(time_of_arrival, value=float('nan'), dtype='float64') const = ( - 2 - * sinth - * moderator_to_detector_distance - / (scipp.constants.h / scipp.constants.m_n) + 2 * sinth * detector_ltotal / (scipp.constants.h / scipp.constants.m_n) ).to(unit=f'{time_of_arrival.unit}/angstrom') for dhkl in dhkl_list: - dt = sc.abs(t - dhkl * const - pulse_length / 2) + dt = sc.abs(time_of_arrival - dhkl * const - pulse_length / 2) dt_in_range = dt < pulse_length / 2 no_dt_found = sc.isnan(dtfound) dtfound = sc.where(dt_in_range, sc.where(no_dt_found, dt, dtfound), dtfound) @@ -145,130 +168,155 @@ def _compute_d_given_list_of_peaks( return d -def time_of_arrival( +def modulation_time_of_arrival( event_time_offset: sc.Variable, - frame_cutoff_time: sc.Variable, -): - """Does frame unwrapping for pulse shaping chopper modes. + Ltotal: sc.Variable, + choppers: DiskChoppers[RunType], +) -> tuple[sc.Variable, sc.Variable]: + """Unwrap detector event times for a BEER modulation mode. + + ``event_time_offset`` contains detector arrival times folded into one source + period. The opening times of the modulation choppers and ``FC2A`` define the + cutoff for shifting an event by one ``FC2A`` period so its time refers to the + source pulse that produced it. Here, ``Ltotal`` is the distance from the + modulation chopper to the detector. + + Returns + ------- + time_of_arrival : sc.Variable + Detector arrival time relative to the start of the source pulse that + produced the event. + tof_from_chopper : sc.Variable + Approximate time of flight from the modulation chopper to the detector, + obtained by subtracting the center time of the modulation-chopper opening. + """ + + def center_time(chopper): + slit_center = (chopper.slit_begin[0] + chopper.slit_end[0]) / 2 + return chopper.time_offset_angle_at_beam(angle=slit_center).max() + + definition_choppers = [ + chopper for name, chopper in choppers.items() if not name.startswith('FC') + ] - Events before the "cutoff time" are assumed to come from the previous pulse.""" - _eto = event_time_offset - T = sc.scalar(1 / 14, unit='s').to(unit=_eto.unit) - tc = frame_cutoff_time.to(unit=_eto.unit) - return sc.where(_eto >= tc, _eto, _eto + T) + nominal_time_at_chopper = sc.concat( + [center_time(chopper) for chopper in definition_choppers], + dim='chopper', + ).mean() + modulation_position = _modulation_chopper_position(choppers).fields.z + + frame_chopper = choppers['FC2A'] + inverse_velocity = (center_time(frame_chopper) - nominal_time_at_chopper) / ( + frame_chopper.axle_position.fields.z - modulation_position + ) + period = (1 / sc.abs(frame_chopper.frequency)).to(unit=event_time_offset.unit) + nominal_time_at_chopper = nominal_time_at_chopper.to(unit=event_time_offset.unit) + cutoff = ( + nominal_time_at_chopper + + (inverse_velocity * Ltotal.min()).to(unit=event_time_offset.unit) + - period / 2 + ) + tof_from_source = sc.where( + event_time_offset >= cutoff, event_time_offset, event_time_offset + period + ) + return tof_from_source, tof_from_source - nominal_time_at_chopper + + +def automatic_coordinate_transformation_graph( + source_position: Position[snx.NXsource, RunType], + sample_position: Position[snx.NXsample, RunType], + gravity: GravityVector, + detector_ltotal: DetectorLtotal[RunType], + choppers: DiskChoppers[RunType], +) -> ElasticCoordTransformGraph[RunType]: + """Coordinate transformations for automatic modulation reduction.""" + graph = _modulation_coordinate_transformation_graph( + source_position, sample_position, gravity, detector_ltotal, choppers + ) + + def tof(event_time_offset: sc.Variable, Ltotal: sc.Variable): + return modulation_time_of_arrival(event_time_offset, Ltotal, choppers)[1] + + graph.update( + { + 'tof': tof, + 'wavelength': wavelength_from_tof, + } + ) + return graph def _tof_from_dhkl( - time_of_arrival: sc.Variable, + tof_from_chopper: sc.Variable, theta: sc.Variable, coarse_dhkl: sc.Variable, Ltotal: sc.Variable, mod_period: sc.Variable, - chopper_delay: sc.Variable, ) -> sc.Variable: """Computes tof for BEER given the dhkl peak that the event belongs to""" # Source: https://www.mcstas.org/download/components/current/contrib/NPI_tof_dhkl_detector.comp # tref = 2 * d_hkl * sin(theta) / hm * Ltotal - # tc = time_of_arrival - chopper_delay - tref - # dt = floor(tc / mod_period + 0.5) * mod_period + chopper_delay - # tof = time_of_arrival - dt + # tc = tof_from_chopper - tref + # dt = floor(tc / mod_period + 0.5) * mod_period + # tof = tof_from_chopper - dt c = (-2 * 1.0 / (scipp.constants.h / scipp.constants.m_n)).to( - unit=f'{time_of_arrival.unit}/m/angstrom' + unit=f'{tof_from_chopper.unit}/m/angstrom' ) out = c * coarse_dhkl out *= sc.sin(theta) out *= Ltotal - out += time_of_arrival - out -= chopper_delay + out += tof_from_chopper out /= mod_period out += 0.5 sc.floor(out, out=out) out *= mod_period - out += chopper_delay out *= -1 - out += time_of_arrival + out += tof_from_chopper return out -def tof_from_nominal_time_at_chopper_graph( - da: RawDetector[RunType], - gg: GeometryCoordTransformGraph, -) -> ElasticCoordTransformGraph[RunType]: - """Graph for computing ``wavelength`` in pulse shaping chopper modes.""" - return { - **gg, - 'tof': lambda time_of_arrival, nominal_time_at_chopper: ( - time_of_arrival - nominal_time_at_chopper - ), - 'time_of_arrival': time_of_arrival, - } - - -def geometry_graph() -> GeometryCoordTransformGraph: - return { - **graph.beamline.beamline(scatter=True), - **graph.tof.elastic("tof"), - } - - -def tof_from_known_dhkl_graph( - da: RawDetector[RunType], - mod_period: ModulationPeriod, +def known_peaks_coordinate_transformation_graph( + source_position: Position[snx.NXsource, RunType], + sample_position: Position[snx.NXsample, RunType], + gravity: GravityVector, + detector_ltotal: DetectorLtotal[RunType], + choppers: DiskChoppers[RunType], pulse_length: PulseLength, - chopper_delay: WavelengthDefinitionChopperDelay, dhkl_list: DHKLList, - gg: GeometryCoordTransformGraph, ) -> ElasticCoordTransformGraph[RunType]: - """Graph computing ``tof`` in modulation chopper modes using - list of peak positions.""" - - def _compute_coarse_dspacing( - time_of_arrival: sc.Variable, - theta: sc.Variable, - pulse_length: sc.Variable, - moderator_to_detector_distance: sc.Variable, - ): - """To capture dhkl_list, otherwise it causes an error when - ``.transform_coords`` is called unless it is called with - ``keep_indermediates=False``. - The error happens because data arrays do not allow coordinates - with dimensions not present on the data. - """ - return _compute_d_given_list_of_peaks( - time_of_arrival=time_of_arrival, - theta=theta, - pulse_length=pulse_length, - moderator_to_detector_distance=moderator_to_detector_distance, - dhkl_list=dhkl_list, - ) + """Coordinate transformations for modulation with known peak positions.""" + graph = _modulation_coordinate_transformation_graph( + source_position, sample_position, gravity, detector_ltotal, choppers + ) + mod_period = _modulation_period(choppers) - return { - **gg, - 'pulse_length': lambda: pulse_length, - 'mod_period': lambda: mod_period, - 'chopper_delay': lambda: chopper_delay, - 'tof': _tof_from_dhkl, - 'time_of_arrival': time_of_arrival, - 'coarse_dhkl': _compute_coarse_dspacing, - 'theta': lambda two_theta: two_theta / 2, - } + def modulation_times(event_time_offset: sc.Variable, Ltotal: sc.Variable): + time_of_arrival, tof_from_chopper = modulation_time_of_arrival( + event_time_offset, Ltotal, choppers + ) + return { + 'time_of_arrival': time_of_arrival, + 'tof_from_chopper': tof_from_chopper, + } + + graph.update( + { + 'detector_ltotal': lambda: detector_ltotal, + 'pulse_length': lambda: pulse_length, + 'mod_period': lambda: mod_period, + 'dhkl_list': lambda: dhkl_list, + 'tof': _tof_from_dhkl, + 'wavelength': wavelength_from_tof, + ('time_of_arrival', 'tof_from_chopper'): modulation_times, + 'coarse_dhkl': _compute_d_given_list_of_peaks, + 'theta': lambda two_theta: two_theta / 2, + } + ) + return graph def wavelength_detector( da: RawDetector[RunType], graph: ElasticCoordTransformGraph[RunType] ) -> WavelengthDetector[RunType]: - """Applies the transformation graph to compute ``wavelength``.""" - return da.transform_coords(('wavelength',), graph=graph) - - -convert_from_known_peaks_providers = ( - geometry_graph, - tof_from_known_dhkl_graph, - wavelength_detector, -) -convert_pulse_shaping = ( - geometry_graph, - tof_from_nominal_time_at_chopper_graph, - wavelength_detector, -) -providers = (compute_wavelength_in_each_cluster, geometry_graph) + """Compute wavelength using the workflow's coordinate transformations.""" + return da.transform_coords('wavelength', graph=graph, keep_intermediate=False) diff --git a/packages/essdiffraction/src/ess/beer/data.py b/packages/essdiffraction/src/ess/beer/data.py index 64f09f26a..df6709bae 100644 --- a/packages/essdiffraction/src/ess/beer/data.py +++ b/packages/essdiffraction/src/ess/beer/data.py @@ -36,9 +36,6 @@ "dhkl_quartz_nc.tab": "md5:40887d736e3acf859e44488bfd9a9213", # Simulations from new model with corrected(?) moderator to detector # distance. - # For correct reduction you need to use - # beer.mcstas.mcstas_chopper_delay_from_mode_new_simulations - # to obtain the correct WavelengthDefinitionChopperDelay for these files. "silicon-mode10-new-model.h5": "md5:98500830f27700fc719634e1acd49944", "silicon-mode16-new-model.h5": "md5:393f9287e7d3f97ceedbe64343918413", "silicon-mode3-new-model.h5": "md5:260fc811352b96c1dcdf431d91c11787", diff --git a/packages/essdiffraction/src/ess/beer/mcstas/__init__.py b/packages/essdiffraction/src/ess/beer/mcstas/__init__.py index 88ce45ee7..5c2cf0a14 100644 --- a/packages/essdiffraction/src/ess/beer/mcstas/__init__.py +++ b/packages/essdiffraction/src/ess/beer/mcstas/__init__.py @@ -3,40 +3,36 @@ """BEER McStas simulation helpers.""" -from .beamline import MCSTAS_T_OFFSET, PulseShapingMode, simulation_choppers +from .beamline import ( + ModulationMode, + PulseShapingMode, + simulation_choppers, +) from .load import ( - MCSTAS_PULSE_SHAPING_MODES, + chopper_mode_from_mcstas_mode, load_beer_mcstas, load_beer_mcstas_monitor, load_beer_mcstas_monitor_provider, load_beer_mcstas_provider, - mcstas_chopper_delay_from_mode, - mcstas_chopper_delay_from_mode_new_simulations, + mcstas_choppers, mcstas_detector_ltotal, - mcstas_modulation_period_from_mode, mcstas_providers, - mcstas_pulse_shaping_choppers, + mcstas_sample_position, mcstas_source_position, - pulse_shaping_mcstas_providers, - pulse_shaping_mode_from_mcstas_mode, ) __all__ = [ - 'MCSTAS_PULSE_SHAPING_MODES', - 'MCSTAS_T_OFFSET', + 'ModulationMode', 'PulseShapingMode', + 'chopper_mode_from_mcstas_mode', 'load_beer_mcstas', 'load_beer_mcstas_monitor', 'load_beer_mcstas_monitor_provider', 'load_beer_mcstas_provider', - 'mcstas_chopper_delay_from_mode', - 'mcstas_chopper_delay_from_mode_new_simulations', + 'mcstas_choppers', 'mcstas_detector_ltotal', - 'mcstas_modulation_period_from_mode', 'mcstas_providers', - 'mcstas_pulse_shaping_choppers', + 'mcstas_sample_position', 'mcstas_source_position', - 'pulse_shaping_mcstas_providers', - 'pulse_shaping_mode_from_mcstas_mode', 'simulation_choppers', ] diff --git a/packages/essdiffraction/src/ess/beer/mcstas/beamline.py b/packages/essdiffraction/src/ess/beer/mcstas/beamline.py index 7c4819b28..bcc3c2452 100644 --- a/packages/essdiffraction/src/ess/beer/mcstas/beamline.py +++ b/packages/essdiffraction/src/ess/beer/mcstas/beamline.py @@ -19,6 +19,17 @@ class PulseShapingMode(enum.Enum): ds1 = "DS1" +class ModulationMode(enum.Enum): + """Modulation chopper modes for BEER.""" + + m0 = "M0" + m1 = "M1" + m2 = "M2" + m3 = "M3" + m4 = "M4" + ds0 = "DS0" + + class _ChopperParameters(TypedDict): frequency: float phase: float @@ -29,12 +40,8 @@ class _ChopperParameters(TypedDict): Hz = sc.Unit("Hz") deg = sc.Unit("deg") -meter = sc.Unit("m") -MCSTAS_T_OFFSET = sc.scalar(1.6, unit="ms") -"""Time offset applied by the BEER McStas simulation source model.""" - -_HIGH_FLUX: dict[str, _ChopperParameters] = { +_PULSE_SHAPING_HIGH_FLUX: dict[str, _ChopperParameters] = { "PSC1": { "frequency": 168.0, "phase": 318.6929881679336, @@ -65,9 +72,34 @@ class _ChopperParameters(TypedDict): }, } -_parameters: dict[PulseShapingMode, dict[str, _ChopperParameters]] = { - PulseShapingMode.ps0: _HIGH_FLUX, - PulseShapingMode.ps1: _HIGH_FLUX, +# McStas modes 7--10 use the eight-opening MCA configurations. +_MODULATION_HIGH_FLUX: dict[str, _ChopperParameters] = { + "FC1A": { + "frequency": -28.0, + "phase": -18.44878787209148, + "distance": 8.283, + "open": [0.0], + "close": [72.0], + }, + "MCA": { + "frequency": -70.0, + "phase": -162.22641289703336, + "distance": 9.300, + "open": [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0], + "close": [5.0, 50.0, 95.0, 140.0, 185.0, 230.0, 275.0, 320.0], + }, + "FC2A": { + "frequency": -14.0, + "phase": -134.52965314925247, + "distance": 79.975, + "open": [0.0], + "close": [175.0], + }, +} + +_parameters: dict[PulseShapingMode | ModulationMode, dict[str, _ChopperParameters]] = { + PulseShapingMode.ps0: _PULSE_SHAPING_HIGH_FLUX, + PulseShapingMode.ps1: _PULSE_SHAPING_HIGH_FLUX, PulseShapingMode.ps2: { "PSC1": { "frequency": 168.0, @@ -165,14 +197,149 @@ class _ChopperParameters(TypedDict): "close": [85.0], }, }, + ModulationMode.m0: _MODULATION_HIGH_FLUX, + ModulationMode.m1: _MODULATION_HIGH_FLUX, + ModulationMode.m2: { + "FC1A": { + "frequency": -28.0, + "phase": -18.44878787209148, + "distance": 8.283, + "open": [0.0], + "close": [72.0], + }, + "MCA": { + "frequency": -140.0, + "phase": -326.9528257940667, + "distance": 9.300, + "open": [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0], + "close": [5.0, 50.0, 95.0, 140.0, 185.0, 230.0, 275.0, 320.0], + }, + "FC2A": { + "frequency": -14.0, + "phase": -134.52965314925247, + "distance": 79.975, + "open": [0.0], + "close": [175.0], + }, + }, + ModulationMode.m3: { + "FC1A": { + "frequency": -28.0, + "phase": -18.44878787209148, + "distance": 8.283, + "open": [0.0], + "close": [72.0], + }, + "MCA": { + "frequency": -280.0, + "phase": -656.4056515881334, + "distance": 9.300, + "open": [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0], + "close": [5.0, 50.0, 95.0, 140.0, 185.0, 230.0, 275.0, 320.0], + }, + "FC2A": { + "frequency": -14.0, + "phase": -134.52965314925247, + "distance": 79.975, + "open": [0.0], + "close": [175.0], + }, + }, + ModulationMode.m4: { + "FC1A": { + "frequency": -28.0, + "phase": -18.44878787209148, + "distance": 8.283, + "open": [0.0], + "close": [72.0], + }, + "MCA": { + "frequency": -140.0, + "phase": -326.9528257940667, + "distance": 9.300, + "open": [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0], + "close": [5.0, 50.0, 95.0, 140.0, 185.0, 230.0, 275.0, 320.0], + }, + "MCB": { + "frequency": -280.0, + "phase": -659.0810583171018, + "distance": 9.350, + "open": [ + 0.0, + 22.5, + 45.0, + 67.5, + 90.0, + 112.5, + 135.0, + 157.5, + 180.0, + 202.5, + 225.0, + 247.5, + 270.0, + 292.5, + 315.0, + 337.5, + ], + "close": [ + 5.0, + 27.5, + 50.0, + 72.5, + 95.0, + 117.5, + 140.0, + 162.5, + 185.0, + 207.5, + 230.0, + 252.5, + 275.0, + 297.5, + 320.0, + 342.5, + ], + }, + "FC2A": { + "frequency": -14.0, + "phase": -134.52965314925247, + "distance": 79.975, + "open": [0.0], + "close": [175.0], + }, + }, + ModulationMode.ds0: { + "FC1A": { + "frequency": -7.0, + "phase": 22.86286291805168, + "distance": 8.283, + "open": [0.0], + "close": [72.0], + }, + "MCC": { + "frequency": -70.0, + "phase": -109.43563284346213, + "distance": 9.875, + "open": [0.0, 22.5, 45.0, 67.5, 90.0, 112.5, 135.0, 160.0], + "close": [5.0, 27.5, 50.0, 72.5, 95.0, 117.5, 140.0, 340.0], + }, + "FC2A": { + "frequency": -7.0, + "phase": -120.30881252309756, + "distance": 79.975, + "open": [0.0], + "close": [175.0], + }, + }, } def simulation_choppers( - mode: PulseShapingMode, source_position: sc.Variable + mode: PulseShapingMode | ModulationMode, source_position: sc.Variable ) -> MappingProxyType[str, DiskChopper]: """ - Dict of ESS BEER McStas choppers for the selected pulse-shaping mode. + Dict of ESS BEER McStas choppers for the selected chopper mode. We make the chopper information available in this way as loading it directly from the NeXus files is currently not available for these simulated BEER data. @@ -180,7 +347,7 @@ def simulation_choppers( Parameters ---------- mode: - BEER pulse-shaping chopper mode. + BEER pulse-shaping or modulation chopper mode. source_position: Position of the source in the coordinate system of the choppers. The raw chopper positions are defined relative to the source position. diff --git a/packages/essdiffraction/src/ess/beer/mcstas/load.py b/packages/essdiffraction/src/ess/beer/mcstas/load.py index ec333add1..68f7e118b 100644 --- a/packages/essdiffraction/src/ess/beer/mcstas/load.py +++ b/packages/essdiffraction/src/ess/beer/mcstas/load.py @@ -2,427 +2,133 @@ # Copyright (c) 2025 Scipp contributors (https://github.com/scipp) """Loaders and helpers for BEER McStas simulation data.""" -import os -import re from pathlib import Path -import h5py -import numpy as np +import mcstastox import scipp as sc -import scipp.constants import scippnexus as snx from ess.powder.types import CaveMonitor, RunType, WavelengthMonitor -from ess.reduce.nexus.types import DetectorBankSizes, DiskChoppers, Position +from ess.reduce.nexus.types import DiskChoppers, Position from ess.reduce.unwrap.types import DetectorLtotal -from ..types import ( - DetectorBank, - Filename, - ModulationPeriod, - RawDetector, - SampleRun, - WavelengthDefinitionChopperDelay, -) -from .beamline import MCSTAS_T_OFFSET, PulseShapingMode, simulation_choppers +from ..types import DetectorBank, Filename, RawDetector +from .beamline import ModulationMode, PulseShapingMode, simulation_choppers + +# The Beer McStas files use the convention that t=0 corresponds +# to 1.6ms after the start of the pulse. +# But in the real files the convention will be that event_time_offset=0 +# corresponds to the start of the pulse. +_MCSTAS_T_OFFSET = sc.scalar(1.6, unit='ms') __all__ = [ - 'MCSTAS_PULSE_SHAPING_MODES', + 'chopper_mode_from_mcstas_mode', 'load_beer_mcstas', 'load_beer_mcstas_monitor', 'load_beer_mcstas_monitor_provider', 'load_beer_mcstas_provider', - 'mcstas_chopper_delay_from_mode', - 'mcstas_chopper_delay_from_mode_new_simulations', + 'mcstas_choppers', 'mcstas_detector_ltotal', - 'mcstas_modulation_period_from_mode', 'mcstas_providers', - 'mcstas_pulse_shaping_choppers', + 'mcstas_sample_position', 'mcstas_source_position', - 'pulse_shaping_mcstas_providers', - 'pulse_shaping_mode_from_mcstas_mode', ] -def _rotation_from_y_rotation_matrix(rot): - '''Assuming the rotation is around the y-axis - this function creates a rotation operator from the rotation matrix.''' - angle = np.atan2(rot[2, 0], rot[0, 0]) - return sc.spatial.rotation( - value=[ - 0.0, - np.sin(angle / 2), - 0.0, - np.cos(angle / 2), - ] - ) - +def _detector_components(data: mcstastox.Read, bank: DetectorBank) -> list[str]: + components = data.get_components_with_ids() -def _find_all_h5(group: h5py.Group, matches, nxclass=None): - name = group.name - for p in group.keys(): - if re.match(matches, os.path.join(name, p)) and ( - nxclass is None or nxclass.encode() == group[p].attrs.get('NX_class') - ): - yield group[p] - # Breadth first - for p in group.keys(): - if isinstance(group[p], h5py.Group): - yield from _find_all_h5(group[p], matches, nxclass) - - -def _find_h5(group: h5py.Group, matches): - for p in group.keys(): - if re.match(matches, p): - return group[p] - else: - raise ValueError(f'Could not find "{matches}" in {group}.') - - -def _load_h5(group: h5py.Group | str | Path, *paths: str): - if isinstance(group, str | Path): - with h5py.File(group) as group: - yield from _load_h5(group, *paths) - return - for path in paths: - g = group - for p in path.strip('/').split('/'): - g = ( - _unique_child_group_h5(g, p) - if p.startswith('NX') - else g.get(p) - if p in g - else _find_h5(g, p) - ) - yield g - - -def _unique_child_group_h5( - group: h5py.Group, - nx_class: str, -) -> h5py.Group | None: - out = None - for v in group.values(): - if v.attrs.get("NX_class") == nx_class.encode(): - if out is None: - out = v - else: - raise ValueError( - f'Expected exactly one {nx_class} group, but found more' - ) - return out - - -def _center_wavelength_from_mode(mode, value_in_file): - if value_in_file != '0': - return sc.scalar(float(value_in_file), unit='angstrom') - if mode in [ - '0', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - '10', - '15', - '16', - ]: - return sc.scalar(2.1, unit='angstrom') - elif mode in ['1', '2']: - return sc.scalar(3.1, unit='angstrom') - elif mode == '11': - return sc.scalar(3.0, unit='angstrom') - elif mode == '12': - return sc.scalar(3.5, unit='angstrom') - elif mode == '13': - return sc.scalar(6.0, unit='angstrom') - elif mode == '14': - return sc.scalar(4.0, unit='angstrom') - else: - raise ValueError(f'Unkonwn chopper mode {mode}.') - - -def _effective_chopper_position_from_mode( - mode, - *, - psc1_pos, - psc2_pos, - psc3_pos, - mca_pos, - mcb_pos, - mcc_pos, -): - if mode in ['0', '1', '2', '11']: - return sc.vector([0.0, 0.0, 0.0], unit='m') - elif mode in ['3', '4', '12', '13', '15']: - return sc.vector(0.5 * (psc1_pos + psc3_pos), unit='m') - elif mode in ['5', '6']: - return sc.vector(0.5 * (psc1_pos + psc2_pos), unit='m') - elif mode in ['7', '8', '9', '10']: - return sc.vector(mca_pos, unit='m') - elif mode == '14': - return sc.vector(mcc_pos, unit='m') - elif mode == '16': - return sc.vector(0.5 * (mca_pos + mcb_pos), unit='m') - else: - raise ValueError(f'Unkonwn chopper mode {mode}.') - - -def _load_beer_mcstas(f, *, north_or_south=None, number=None, detector_sizes): - # Allow the keys of detector_sizes to be both the - # NeXus detector name or DetectorBank enum. - # It makes the code a bit more complex here, but I think mixing them up - # is an easy mistake to make and it makes sense - # to handle that gracefully. - normalized_detector_sizes = { - ( - 'south' - if key in (DetectorBank.south, 'south_detector') - else 'north' - if key in (DetectorBank.north, 'north_detector') - else key - ): value - for key, value in detector_sizes.items() - } - if north_or_south is not None: - # In newer files the bank is determined by a name (north or south). - sizes = normalized_detector_sizes[north_or_south] - else: - # In older files the detector bank is determined by an index. - if number == 1: - sizes = normalized_detector_sizes['south'] - elif number == 2: - sizes = normalized_detector_sizes['north'] - else: - raise ValueError( - 'Could not determine detector sizes from provided ' - f'`DetectorBankSizes`: {detector_sizes}. ' - 'Expected keys: "south_detector" and "north_detector".' - ) + prefix = f'nd_mantid_{bank.name}_' + panels = [name for name in components if name.lower().startswith(prefix)] + if panels: + return panels - positions = { - name: f'/entry1/instrument/components/{key}/Position' - for key in f['/entry1/instrument/components'] - for name in ['sampleMantid', 'PSC1', 'PSC2', 'PSC3', 'MCA', 'MCB', 'MCC'] - if name in key - } - ( - data_dir, - params, - sample_pos, - psc1_pos, - psc2_pos, - psc3_pos, - mca_pos, - mcb_pos, - mcc_pos, - ) = _load_h5( - f, - 'NXentry/NXdetector', - 'NXentry/simulation/Param', - positions['sampleMantid'], - positions['PSC1'], - positions['PSC2'], - positions['PSC3'], - positions['MCA'], - positions['MCB'], - positions['MCC'], - ) - data = ( - next(_find_all_h5(data_dir, f'.*{north_or_south}{number}_events')) - if north_or_south is not None and number is not None - else next(_find_all_h5(data_dir, f'.*{north_or_south}')) - if north_or_south is not None - else next(_find_all_h5(data_dir, f'/entry1.*bank.*{number}')) - ) - component_name = data.attrs['component'].decode('utf8') - - events = data['events'] - beam_rotation = _find_h5(f['/entry1/instrument/components'], '.*sourceMantid.*')[ - 'Rotation' - ] - detector_rotation = _find_h5( - f['/entry1/instrument/components'], f'.*{component_name}.*$' - )['Rotation'] - - events = events[()] - da = sc.DataArray( - sc.array(dims=['events'], values=events[:, 0], variances=events[:, 0] ** 2), + number = 1 if bank is DetectorBank.south else 2 + short_name = 'S' if bank is DetectorBank.south else 'N' + candidates = ( + f'nD_Mantid_{short_name}2_2D', + f'nD_Mantid_{number}', + f'nD_Mantid{number}', ) - for name, value in data.attrs.items(): - if name in ('position',): - da.coords[name] = sc.scalar(value.decode()) - - for i, label in enumerate(data.attrs["ylabel"].decode().strip().split(' ')): - if label == 'p': - continue - da.coords[label] = sc.array(dims=['events'], values=events[:, i]) - - for k, v in params.items(): - v = v[0] - if isinstance(v, bytes): - v = v.decode() - if k in ('mode', 'sample_filename', 'lambda'): - da.coords[k] = sc.scalar(v) - - center_wavelength = _center_wavelength_from_mode( - da.coords['mode'].value, - da.coords.pop('lambda').value if 'lambda' in da.coords else '0', + components_by_name = {name.lower(): name for name in components} + for candidate in candidates: + if component := components_by_name.get(candidate.lower()): + return [component] + + available = ', '.join(sorted(components)) + raise ValueError( + f'Could not find the {bank.value} detector bank in the McStas file. ' + f'Components with pixel IDs: {available}' ) - # Depending on the mode the effective chopper position is either the position - # of one chopper or the midpoint between two choppers. - # A neutron with "center wavelength" (called "lambda" in the McStas files) - # emitted from the middle of the pulse reaches the effective chopper position - # at the moment that is the center of the effective chopper opening window. - # That means we can use the effective chopper position and the center wavelength - # to obtain `t0`, the time when the neutron can be said to have passed the chopper. - # - # In real files we might not have this "lambda" parameter. - # But we will have chopper settings that can be used to get the same information. - da.coords['chopper_position'] = _effective_chopper_position_from_mode( - da.coords['mode'].value, - psc1_pos=psc1_pos[:], - psc2_pos=psc2_pos[:], - psc3_pos=psc3_pos[:], - mca_pos=mca_pos[:], - mcb_pos=mcb_pos[:], - mcc_pos=mcc_pos[:], - ) - - da.coords['sample_position'] = sc.vector(sample_pos[:], unit='m') - da.coords['detector_position'] = sc.vector( - list(map(float, da.coords.pop('position').value.split(' '))), unit='m' - ) - da.coords.pop('n') - da.coords['x'].unit = 'm' - da.coords['y'].unit = 'm' - da.coords['t'].unit = 's' +def _load_events(data: mcstastox.Read, components: list[str]) -> sc.DataArray: + """Load weighted events and pixel positions for selected components only. - # Bin detector panel into rectangular "pixels" - # similar in size to the physical detector pixels. - da = da.bin( - y=sc.linspace('y', -0.5, 0.5, sizes['y'] + 1, unit='m'), - x=sc.linspace('x', -0.5, 0.5, sizes['x'] + 1, unit='m'), + Loading only the selected components is important for older BEER simulations: + they contain auxiliary detectors with incomplete geometry which cannot be exported + together with the Mantid detector banks. + """ + event_data = data.get_event_data( + variables=['p', 't', 'id'], component_name=components, filter_zeros=True ) - - # Compute the position of each pixel in the global coordinate system. - # The detector local coordinate system is rotatated by the detector rotation, - # and translated to the location of the detector in the global coordinate system. - da.coords['position'] = ( - da.coords['detector_position'] - + _rotation_from_y_rotation_matrix(detector_rotation) - * sc.spatial.as_vectors( - sc.midpoints(da.coords['x']), - sc.midpoints(da.coords['y']), - sc.scalar(0.0, unit='m'), - ) - # We need the dimension order of the positions to be the same - # as the dimension order of the binned data array. - ).transpose(da.dims) - - L1 = sc.norm(da.coords['sample_position'] - da.coords['chopper_position']) - L2 = sc.norm(da.coords['position'] - da.coords['sample_position']) - - # Define the incident beam by rotating the z-axis by - # the rotation of the "source" in McStas. - incident_beam = L1 * ( - _rotation_from_y_rotation_matrix(beam_rotation) * sc.vector([0, 0, 1.0]) - ) - # Create a source position that gives us the incident beam - # direction and length that we want. - # In practice this should be hardcoded or determined from - # some entry in the Nexus file. - da.coords['source_position'] = da.coords['sample_position'] - incident_beam - - da.coords['moderator_to_detector_distance'] = ( - L1 + L2 + sc.norm(da.coords['chopper_position']) - ) - da.coords['source_to_wavelength_definition_chopper_distance'] = sc.norm( - da.coords['chopper_position'] - ) - t_offset = MCSTAS_T_OFFSET.to(unit='s') - da.coords['nominal_time_at_chopper'] = ( - sc.constants.m_n - / sc.constants.h - * center_wavelength - * da.coords['source_to_wavelength_definition_chopper_distance'].to( - unit=center_wavelength.unit + weights = event_data['p'] + events = sc.DataArray( + sc.array( + dims=['events'], + values=weights, + variances=weights**2, + unit='counts', + ), + coords={ + 'pixel_id': sc.array( + dims=['events'], values=event_data['id'].astype('int32') + ), + 't': sc.array(dims=['events'], values=event_data['t'], unit='s'), + }, + ).group('pixel_id') + + position_tables = [] + for component in components: + positions = data.get_component_global(component) + begin, end = data.pixel_range[component] + position_tables.append( + sc.DataArray( + sc.vectors(dims=['pixel_id'], values=positions, unit='m'), + coords={ + 'pixel_id': sc.arange( + 'pixel_id', int(begin), int(end) + 1, dtype='int32' + ) + }, + ) ) - ).to(unit='s') + t_offset - - # The BEER McStas model subtracts `t_offset` after the source component, so the - # written event times are relative to the time-focused source pulse reference. - # Add it back to make event_time_offset follow the usual pulse-start convention. - t = da.bins.coords['t'] + t_offset - da.bins.coords['event_time_offset'] = t % sc.scalar(1 / 14, unit='s').to( - unit=t.unit - ) - # Nominal time the neutron passed the virtual source chopper. - # Used in pulse shaping mode to determine the wavelength. - # Used in modulation mode automatic-peak-finding reduction to estimate d. - # In practice this will probably be replaced by the regular tof workflow. - # But I'm not 100% sure. - da.coords["frame_cutoff_time"] = ( - ( - sc.constants.m_n - / sc.constants.h - * center_wavelength - * da.coords['moderator_to_detector_distance'].min().to(unit='angstrom') - ).to(unit='s') - + t_offset - - sc.scalar(1 / 14, unit='s') / 2 - ) - del da.coords['x'] - del da.coords['y'] - # The binned t coordinate is kept because it can be useful - # to understand resolution and to debug tof estimation. - return da + position_table = sc.sort(sc.concat(position_tables, dim='pixel_id'), key='pixel_id') + events.coords['position'] = sc.lookup( + position_table, dim='pixel_id', mode='previous' + )[events.coords['pixel_id']] + return events def load_beer_mcstas( - f: str | Path | h5py.File, bank: DetectorBank, detector_sizes: DetectorBankSizes + filename: str | Path, + bank: DetectorBank, ) -> sc.DataArray: - '''Load beer McStas data from a file to a data array.''' + """Load a detector bank from a BEER McStas file.""" if not isinstance(bank, DetectorBank): - raise ValueError( - '"bank" must be either ``DetectorBank.north`` or ``DetectorBank.south``' - ) + raise ValueError('bank must be either DetectorBank.north or DetectorBank.south') - if isinstance(f, str | Path): - with h5py.File(f) as ff: - return load_beer_mcstas(ff, bank=bank, detector_sizes=detector_sizes) + filename = Path(filename) + with mcstastox.Read(filename.parent, filename.name) as data: + mode = data.file['entry1/simulation/Param/mode'][0] + mode = mode.decode() if isinstance(mode, bytes) else str(mode) + events = _load_events(data, _detector_components(data, bank)) - if len(list(_find_all_h5(f['/entry1/data'], '.*bank', nxclass='NXdata'))) < 8: - # If we don't find ~13 detectors, then assume the detectors are 2D - if len(list(_find_all_h5(f['/entry1/data'], '.*south', nxclass='NXdata'))) > 0: - return _load_beer_mcstas( - f, north_or_south=bank.name, detector_sizes=detector_sizes - ) - - return _load_beer_mcstas( - f, - north_or_south=None, - number=1 if bank == DetectorBank.south else 2, - detector_sizes=detector_sizes, - ) - - return sc.concat( - [ - _load_beer_mcstas( - f, - north_or_south=bank.name, - number=number, - detector_sizes=detector_sizes, - ) - for number in range(1, 13) - ], - dim='panel', - ) + events.coords['mode'] = sc.scalar(mode) + events.bins.coords['event_time_offset'] = ( + events.bins.coords.pop('t') + _MCSTAS_T_OFFSET.to(unit='s') + ) % sc.scalar(1 / 14, unit='s') + return events def _to_edges(centers: sc.Variable) -> sc.Variable: @@ -437,51 +143,50 @@ def _to_edges(centers: sc.Variable) -> sc.Variable: ) -def load_beer_mcstas_monitor(f: str | Path | h5py.File): - """Load the BEER McStas wavelength monitor from a file.""" - if isinstance(f, str | Path): - with h5py.File(f) as ff: - return load_beer_mcstas_monitor(ff) - ( - monitor, - wavelengths, - data, - errors, - ncount, - ) = _load_h5( - f, - 'NXentry/NXdetector/Lmon_hereon_dat', - 'NXentry/NXdetector/Lmon_hereon_dat/Wavelength__AA_', - 'NXentry/NXdetector/Lmon_hereon_dat/data', - 'NXentry/NXdetector/Lmon_hereon_dat/errors', - 'NXentry/NXdetector/Lmon_hereon_dat/ncount', - ) - da = sc.DataArray( - sc.array( - dims=['wavelength'], values=data[:], variances=errors[:], unit='counts' - ), - coords={ - 'wavelength': _to_edges( - sc.array(dims=['wavelength'], values=wavelengths[:], unit='angstrom') +def load_beer_mcstas_monitor(filename: str | Path) -> sc.DataArray: + """Load the BEER McStas wavelength monitor.""" + filename = Path(filename) + with mcstastox.Read(filename.parent, filename.name) as data: + component = next( + name + for name in ('Lmon_hereon', 'Lmon') + if name in data.get_components_with_data() + ) + histogram = data.file_object.get_info_entry(component) + wavelengths = next( + values + for name, values in histogram.items() + if name not in {'data', 'errors', 'ncount'} + ) + da = sc.DataArray( + sc.array( + dims=['wavelength'], + values=histogram['data'][:], + variances=histogram['errors'][:], + unit='counts', ), - 'ncount': sc.array(dims=['wavelength'], values=ncount[:], unit='counts'), - }, - ) - for name, value in monitor.attrs.items(): - if name in ('position',): - da.coords[name] = sc.scalar(value.decode()) - - da.coords['position'] = sc.vector( - list(map(float, da.coords.pop('position').value.split(' '))), unit='m' - ) + coords={ + 'wavelength': _to_edges( + sc.array( + dims=['wavelength'], values=wavelengths[:], unit='angstrom' + ) + ), + 'ncount': sc.array( + dims=['wavelength'], values=histogram['ncount'][:], unit='counts' + ), + 'position': sc.vector( + data.get_global_component_coordinates(component), unit='m' + ), + }, + ) return da def load_beer_mcstas_provider( - fname: Filename[RunType], bank: DetectorBank, detector_bank_sizes: DetectorBankSizes + fname: Filename[RunType], bank: DetectorBank ) -> RawDetector[RunType]: """Sciline provider for loading BEER McStas detector data.""" - return load_beer_mcstas(fname, bank, detector_bank_sizes) + return load_beer_mcstas(fname, bank) def load_beer_mcstas_monitor_provider( @@ -491,106 +196,101 @@ def load_beer_mcstas_monitor_provider( return load_beer_mcstas_monitor(fname) -def mcstas_chopper_delay_from_mode( - da: RawDetector[SampleRun], -) -> WavelengthDefinitionChopperDelay: - '''These settings are good for the set of McStas runs that we - use in the docs currently. - Eventually we will want to determine this from the chopper information - in the files, but that information is not in the simulation output.''' - mode = da.coords['mode'].value - if mode in ('7', '8', '9', '10'): - return sc.scalar(0.004068381208274471, unit='s') - if mode == '16': - return sc.scalar(0.0016, unit='s') - raise ValueError(f'Mode {mode} is not known.') - - -def mcstas_chopper_delay_from_mode_new_simulations( - da: RawDetector[SampleRun], -) -> WavelengthDefinitionChopperDelay: - '''Celine has a new simulation with some changes to the chopper placement(?). - For those simulations we need to adapt the chopper delay values.''' - mode = da.coords['mode'].value - if mode == '7': - return sc.scalar(0.006536762416548942, unit='s') - if mode == '8': - return sc.scalar(0.006536762416548942, unit='s') - if mode == '9': - return sc.scalar(0.006536762416548942, unit='s') - if mode == '10': - return sc.scalar(0.006536762416548942, unit='s') - if mode == '16': - return sc.scalar(0.006550033283260095, unit='s') - raise ValueError(f'Mode {mode} is not known.') - - -def mcstas_modulation_period_from_mode(da: RawDetector[SampleRun]) -> ModulationPeriod: - """Return the modulation period for the McStas chopper mode.""" - mode = da.coords['mode'].value - if mode in ('7', '8'): - return sc.scalar(1.0 / (8 * 70), unit='s') - if mode == '9': - return sc.scalar(1.0 / (8 * 140), unit='s') - if mode == '10': - return sc.scalar(1.0 / (8 * 280), unit='s') - if mode == '16': - return sc.scalar(1.0 / (4 * 280), unit='s') - raise ValueError(f'Mode {mode} is not known.') - - -MCSTAS_PULSE_SHAPING_MODES = { +_MCSTAS_CHOPPER_MODES = { '3': PulseShapingMode.ps0, '4': PulseShapingMode.ps1, '5': PulseShapingMode.ps2, '6': PulseShapingMode.ps3, '15': PulseShapingMode.ds1, + '7': ModulationMode.m0, + '8': ModulationMode.m1, + '9': ModulationMode.m2, + '10': ModulationMode.m3, + '14': ModulationMode.ds0, + '16': ModulationMode.m4, } -def pulse_shaping_mode_from_mcstas_mode(mode: str) -> PulseShapingMode: - """Return the BEER pulse-shaping mode matching a McStas mode value.""" +def chopper_mode_from_mcstas_mode(mode: str) -> PulseShapingMode | ModulationMode: + """Return the BEER chopper mode matching a McStas mode value.""" mode = str(mode) - if (pulse_shaping_mode := MCSTAS_PULSE_SHAPING_MODES.get(mode)) is not None: - return pulse_shaping_mode + if (chopper_mode := _MCSTAS_CHOPPER_MODES.get(mode)) is not None: + return chopper_mode normalized = mode.upper() - for pulse_shaping_mode in PulseShapingMode: - if normalized == pulse_shaping_mode.value: - return pulse_shaping_mode - - raise ValueError(f'Mode {mode} is not a known BEER pulse-shaping mode.') + for chopper_mode in (*PulseShapingMode, *ModulationMode): + if normalized == chopper_mode.value: + return chopper_mode + + raise ValueError(f'Mode {mode} is not a known BEER chopper mode.') + + +def mcstas_source_position( + fname: Filename[RunType], sample_position: Position[snx.NXsample, RunType] +) -> Position[snx.NXsource, RunType]: + """Return the effective source position for the McStas geometry. + + ``sourceMantid`` is close to the choppers and its direction towards the sample + is the incident-beam direction at the sample. It is not the moderator, however, + so using it directly would make the source-to-sample distance too short. + Conversely, the line from ``Origin`` to the sample has the correct length but + not the incident direction because the guide is curved. + + The coordinate transformations use the source-to-sample vector both to define + the incident beam and, through its length, to define ``Ltotal``. We therefore + construct an effective source whose direction is given by ``sourceMantid`` and + whose distance from the sample is given by ``Origin``. + """ + fname = Path(fname) + with mcstastox.Read(fname.parent, fname.name) as data: + source_mantid = sc.vector( + data.get_global_component_coordinates('sourceMantid'), unit='m' + ) + moderator_position = sc.vector( + data.get_global_component_coordinates('Origin'), unit='m' + ) + incident_beam = sample_position - source_mantid + return sample_position - incident_beam * ( + sc.norm(sample_position - moderator_position) / sc.norm(incident_beam) + ) -def mcstas_source_position() -> Position[snx.NXsource, RunType]: - """Return the source position used for analytical McStas frame unwrapping.""" - return sc.vector([0.0, 0.0, 0.0], unit='m') +def mcstas_sample_position( + fname: Filename[RunType], +) -> Position[snx.NXsample, RunType]: + """Return the sample position from a BEER McStas file.""" + fname = Path(fname) + with mcstastox.Read(fname.parent, fname.name) as data: + return sc.vector( + data.get_global_component_coordinates('sampleMantid'), unit='m' + ) -def mcstas_pulse_shaping_choppers( +def mcstas_choppers( da: RawDetector[RunType], source_position: Position[snx.NXsource, RunType], ) -> DiskChoppers[RunType]: - """Return BEER pulse-shaping choppers for the McStas mode in the data.""" - mode = pulse_shaping_mode_from_mcstas_mode(da.coords['mode'].value) + """Return BEER choppers for the McStas mode in the data.""" + mode = chopper_mode_from_mcstas_mode(da.coords['mode'].value) return simulation_choppers(mode, source_position) def mcstas_detector_ltotal( da: RawDetector[RunType], + source_position: Position[snx.NXsource, RunType], + sample_position: Position[snx.NXsample, RunType], ) -> DetectorLtotal[RunType]: - """Return detector flight path lengths from loaded BEER McStas data.""" - return da.coords['moderator_to_detector_distance'] + """Return moderator-to-detector flight path lengths for BEER McStas data.""" + source_to_sample = sc.norm(sample_position - source_position) + sample_to_detector = sc.norm(da.coords['position'] - sample_position) + return source_to_sample + sample_to_detector mcstas_providers = ( load_beer_mcstas_provider, load_beer_mcstas_monitor_provider, - mcstas_chopper_delay_from_mode, -) - -pulse_shaping_mcstas_providers = ( mcstas_source_position, - mcstas_pulse_shaping_choppers, + mcstas_sample_position, + mcstas_choppers, mcstas_detector_ltotal, ) diff --git a/packages/essdiffraction/src/ess/beer/types.py b/packages/essdiffraction/src/ess/beer/types.py index 53b76a7e6..9880011e3 100644 --- a/packages/essdiffraction/src/ess/beer/types.py +++ b/packages/essdiffraction/src/ess/beer/types.py @@ -32,21 +32,9 @@ class DetectorBank(Enum): south = 'south' -GeometryCoordTransformGraph = NewType("GeometryCoordTransformGraph", dict) - PulseLength = NewType("PulseLength", sc.Variable) """Length of the neutron source pulse in time.""" -ModulationPeriod = NewType("ModulationPeriod", sc.Variable) -"""The effective period of the modulating chopper: -``1 / (K * F)`` where ``K`` is the number of chopper openings and -``F`` is the chopper frequency.""" - -WavelengthDefinitionChopperDelay = NewType( - "WavelengthDefinitionChopperDelay", sc.Variable -) -"""Wavelength definition chopper time delay relative to source pulse.""" - DHKLList = NewType("DHKLList", sc.Variable) """List of peak position estimates.""" diff --git a/packages/essdiffraction/src/ess/beer/workflow.py b/packages/essdiffraction/src/ess/beer/workflow.py index 0668e6a20..0bc7edc9a 100644 --- a/packages/essdiffraction/src/ess/beer/workflow.py +++ b/packages/essdiffraction/src/ess/beer/workflow.py @@ -1,37 +1,34 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2025 Scipp contributors (https://github.com/scipp) -import itertools - import sciline as sl import scipp as sc import scippnexus as snx from ess.powder import providers as powder_providers +from ess.powder.conversion import powder_coordinate_transformation_graph from ess.powder.correction import RunNormalization, insert_run_normalization from ess.powder.types import ( BunkerMonitor, CalibrationData, CaveMonitor, EmptyCanRun, - RunType, SampleRun, VanadiumRun, ) +from ess.reduce.nexus import GenericNeXusWorkflow from ess.reduce.nexus.types import DetectorBankSizes, NeXusName from ess.reduce.unwrap import GenericUnwrapWorkflow from ess.reduce.unwrap.types import LookupTableRelativeErrorThreshold -from .clustering import providers as clustering_providers -from .conversions import convert_from_known_peaks_providers, convert_pulse_shaping -from .conversions import providers as conversion_providers -from .mcstas import ( - mcstas_modulation_period_from_mode, - mcstas_providers, - pulse_shaping_mcstas_providers, -) -from .types import ( - PulseLength, +from .clustering import cluster_events_by_streak +from .conversions import ( + automatic_coordinate_transformation_graph, + compute_wavelength_in_each_cluster, + known_peaks_coordinate_transformation_graph, + wavelength_detector, ) +from .mcstas import mcstas_providers +from .types import PulseLength default_parameters = { CalibrationData: None, @@ -43,54 +40,42 @@ } +def _mcstas_beer_modulation_workflow(graph_provider, *providers) -> sl.Pipeline: + workflow = GenericNeXusWorkflow(run_types=[SampleRun], monitor_types=[]) + for provider in ( + *mcstas_providers, + graph_provider, + *providers, + ): + workflow.insert(provider) + for key, value in default_parameters.items(): + workflow[key] = value + return workflow + + def BeerModMcStasWorkflow(): - """Workflow to process BEER (modulation regime) McStas files without a list - of estimated peak positions.""" - return sl.Pipeline( - ( - *mcstas_providers, - mcstas_modulation_period_from_mode, - *clustering_providers, - *conversion_providers, - ), - params=default_parameters, - constraints={RunType: (SampleRun,)}, + """Process modulation-mode McStas data without known peak positions.""" + return _mcstas_beer_modulation_workflow( + automatic_coordinate_transformation_graph, + cluster_events_by_streak, + compute_wavelength_in_each_cluster, ) def BeerModMcStasWorkflowKnownPeaks(): - """Workflow to process BEER (modulation regime) McStas files using a list - of estimated peak positions.""" - return sl.Pipeline( - ( - *mcstas_providers, - mcstas_modulation_period_from_mode, - *convert_from_known_peaks_providers, - ), - params=default_parameters, - constraints={RunType: (SampleRun,)}, + """Process modulation-mode McStas data using known peak positions.""" + return _mcstas_beer_modulation_workflow( + known_peaks_coordinate_transformation_graph, wavelength_detector ) def BeerMcStasWorkflowPulseShaping(): - """Workflow to process BEER (pulse shaping modes) McStas files""" - return sl.Pipeline( - (*mcstas_providers, *convert_pulse_shaping), - params=default_parameters, - constraints={RunType: (SampleRun,)}, - ) - - -def BeerMcStasWorkflowPulseShapingAnalytical(): """Workflow to process BEER pulse-shaping McStas files using analytical frame unwrapping.""" wf = GenericUnwrapWorkflow( run_types=[SampleRun], monitor_types=[], wavelength_from='analytical' ) - for provider in ( - *mcstas_providers, - *pulse_shaping_mcstas_providers, - ): + for provider in (*mcstas_providers, powder_coordinate_transformation_graph): wf.insert(provider) for key, value in default_parameters.items(): wf[key] = value @@ -125,7 +110,7 @@ def BeerPowderWorkflow( ) wf[NeXusName[CaveMonitor]] = "monitor_cave" - for provider in itertools.chain(powder_providers, convert_pulse_shaping): + for provider in powder_providers: wf.insert(provider) insert_run_normalization(wf, run_norm) @@ -153,20 +138,11 @@ def BeerPowderWorkflowAnalytical( : A workflow object for BEER. """ - wf = GenericUnwrapWorkflow( - run_types=[SampleRun, VanadiumRun, EmptyCanRun], - monitor_types=[BunkerMonitor, CaveMonitor], + wf = BeerPowderWorkflow( + run_norm=run_norm, wavelength_from='analytical', **kwargs, ) - wf[NeXusName[CaveMonitor]] = "monitor_cave" - - for provider in powder_providers: - wf.insert(provider) - - insert_run_normalization(wf, run_norm) - for key, value in default_parameters.items(): - wf[key] = value wf[NeXusName[snx.NXdetector]] = 'detector' wf[LookupTableRelativeErrorThreshold] = { 'detector': float('inf'), @@ -177,18 +153,9 @@ def BeerPowderWorkflowAnalytical( def BeerPowderMcStasWorkflow(**kwargs) -> sl.Pipeline: - """Create the BEER powder workflow with McStas loaders inserted.""" - wf = BeerPowderWorkflow(**kwargs) - for provider in mcstas_providers: - wf.insert(provider) - - return wf - - -def BeerPowderMcStasWorkflowAnalytical(**kwargs) -> sl.Pipeline: """Create the BEER analytical powder workflow with McStas loaders inserted.""" wf = BeerPowderWorkflowAnalytical(**kwargs) - for provider in itertools.chain(mcstas_providers, pulse_shaping_mcstas_providers): + for provider in mcstas_providers: wf.insert(provider) return wf diff --git a/packages/essdiffraction/tests/beer/mcstas_beamline_test.py b/packages/essdiffraction/tests/beer/mcstas_beamline_test.py index 1ba2ef734..34fb26fdf 100644 --- a/packages/essdiffraction/tests/beer/mcstas_beamline_test.py +++ b/packages/essdiffraction/tests/beer/mcstas_beamline_test.py @@ -4,70 +4,21 @@ import pytest import scipp as sc import scippnexus as snx -from ess.beer.mcstas.beamline import PulseShapingMode, simulation_choppers +from ess.beer.mcstas.beamline import ( + ModulationMode, + PulseShapingMode, + simulation_choppers, +) from ess.beer.types import SampleRun -from scipp.testing import assert_allclose from ess.reduce import unwrap from ess.reduce.nexus.types import Position from ess.reduce.unwrap import lut -@pytest.mark.parametrize( - ("mode", "name", "frequency", "phase", "distance", "slit_end"), - [ - (PulseShapingMode.ps0, "PSC1", 168.0, 318.6929881679336, 6.450, 144.0), - (PulseShapingMode.ps0, "PSC3", -168.0, -318.6929881679336, 7.375, 144.0), - (PulseShapingMode.ps0, "FC1A", -28.0, -18.44878787209148, 8.283, 72.0), - (PulseShapingMode.ps0, "FC2A", -14.0, -134.52965314925247, 79.975, 175.0), - (PulseShapingMode.ps1, "PSC1", 168.0, 318.6929881679336, 6.450, 144.0), - (PulseShapingMode.ps1, "PSC3", -168.0, -318.6929881679336, 7.375, 144.0), - (PulseShapingMode.ps1, "FC1A", -28.0, -18.44878787209148, 8.283, 72.0), - (PulseShapingMode.ps1, "FC2A", -14.0, -134.52965314925247, 79.975, 175.0), - (PulseShapingMode.ps2, "PSC1", 168.0, 310.265456971683, 6.450, 144.0), - (PulseShapingMode.ps2, "PSC2", -168.0, -310.265456971683, 6.850, 144.0), - (PulseShapingMode.ps2, "FC1A", -28.0, -18.44878787209148, 8.283, 72.0), - (PulseShapingMode.ps2, "FC2A", -14.0, -134.52965314925247, 79.975, 175.0), - (PulseShapingMode.ps3, "PSC1", 168.0, 307.05496889692084, 6.450, 144.0), - (PulseShapingMode.ps3, "PSC2", -168.0, -307.05496889692084, 6.650, 144.0), - (PulseShapingMode.ps3, "FC1A", -28.0, -18.44878787209148, 8.283, 72.0), - (PulseShapingMode.ps3, "FC2A", -14.0, -134.52965314925247, 79.975, 175.0), - (PulseShapingMode.ds1, "PSC1", 168.0, 318.6929881679336, 6.450, 144.0), - (PulseShapingMode.ds1, "PSC3", -168.0, -318.6929881679336, 7.375, 144.0), - (PulseShapingMode.ds1, "FC1A", -14.0, -3.22439393604574, 8.283, 72.0), - (PulseShapingMode.ds1, "FC1B", -63.0, -46.41910994173803, 8.317, 180.0), - (PulseShapingMode.ds1, "FC2B", -7.0, -68.58171174285046, 80.025, 85.0), - ], -) -def test_chopper_parameters( - mode: PulseShapingMode, - name: str, - frequency: float, - phase: float, - distance: float, - slit_end: float, -) -> None: - source_position = sc.vector(value=[1.0, 2.0, 3.0], unit="m") - - chopper = simulation_choppers(mode, source_position)[name] - - assert_allclose(chopper.frequency, sc.scalar(frequency, unit="Hz")) - assert_allclose(chopper.phase, sc.scalar(phase, unit="deg")) - assert_allclose( - chopper.axle_position, - sc.vector(value=[1.0, 2.0, 3.0 + distance], unit="m"), - ) - assert_allclose( - chopper.slit_begin, sc.array(dims=["cutout"], values=[0.0], unit="deg") - ) - assert_allclose( - chopper.slit_end, sc.array(dims=["cutout"], values=[slit_end], unit="deg") - ) - - -@pytest.mark.parametrize("mode", PulseShapingMode) +@pytest.mark.parametrize("mode", [*PulseShapingMode, *ModulationMode]) def test_can_make_analytical_lookup_table_from_beer_choppers( - mode: PulseShapingMode, + mode: PulseShapingMode | ModulationMode, ) -> None: wf = unwrap.GenericUnwrapWorkflow( run_types=[SampleRun], monitor_types=[], wavelength_from="analytical" diff --git a/packages/essdiffraction/tests/beer/mcstas_reduction_test.py b/packages/essdiffraction/tests/beer/mcstas_reduction_test.py index f56341f48..3b00a8691 100644 --- a/packages/essdiffraction/tests/beer/mcstas_reduction_test.py +++ b/packages/essdiffraction/tests/beer/mcstas_reduction_test.py @@ -4,72 +4,84 @@ import numpy as np import pytest import scipp as sc -import scippneutron as scn from ess.beer import ( BeerMcStasWorkflowPulseShaping, BeerModMcStasWorkflow, BeerModMcStasWorkflowKnownPeaks, - BeerPowderMcStasWorkflowAnalytical, + BeerPowderMcStasWorkflow, ) from ess.beer.data import ( - duplex_peaks_array, mcstas_duplex, mcstas_few_neutrons_3d_detector_example, mcstas_more_neutrons_3d_detector_example, + mcstas_powder_silicon_in_vanadium_can, mcstas_silicon_new_model, + silicon_peaks_array, ) from ess.beer.mcstas import ( load_beer_mcstas, load_beer_mcstas_monitor, - mcstas_chopper_delay_from_mode_new_simulations, ) from ess.beer.types import DetectorBank, DHKLList, WavelengthDetector from ess.powder.types import ( DspacingDetector, ElasticCoordTransformGraph, - RawDetector, SampleRun, ) from scipp.testing import assert_allclose -from ess.reduce.nexus.types import DetectorBankSizes, Filename +from ess.reduce.nexus.types import Filename + +_DSPACE_BINS = sc.linspace('dspacing', 0.8, 2.2, 4001, unit='angstrom') def test_can_reduce_using_known_peaks_workflow(): wf = BeerModMcStasWorkflowKnownPeaks() - wf[DHKLList] = duplex_peaks_array() + wf[DHKLList] = silicon_peaks_array() wf[DetectorBank] = DetectorBank.north - wf[Filename[SampleRun]] = mcstas_duplex(7) - da = wf.compute(WavelengthDetector[SampleRun]) + wf[Filename[SampleRun]] = mcstas_silicon_new_model(7) + result = wf.compute( + (WavelengthDetector[SampleRun], ElasticCoordTransformGraph[SampleRun]) + ) + da = result[WavelengthDetector[SampleRun]] assert 'wavelength' in da.bins.coords # assert dataarray has all coords required to compute dspacing da = da.transform_coords( ('dspacing',), - graph=scn.conversion.graph.tof.elastic('tof'), + graph=result[ElasticCoordTransformGraph[SampleRun]], ) - h = da.hist(dspacing=2000, dim=da.dims) + h = da.hist(dspacing=_DSPACE_BINS, dim=da.dims) max_peak_d = sc.midpoints(h['dspacing', np.argmax(h.values)].coords['dspacing'])[0] assert_allclose( max_peak_d, - sc.scalar(2.0407, unit='angstrom'), - atol=sc.scalar(2e-3, unit='angstrom'), + sc.scalar(1.6374, unit='angstrom'), + atol=sc.scalar(5e-4, unit='angstrom'), ) @pytest.mark.parametrize( - 'fname', [mcstas_silicon_new_model(7), mcstas_more_neutrons_3d_detector_example()] + 'fname', + [ + mcstas_silicon_new_model(7), + mcstas_silicon_new_model(10), + mcstas_silicon_new_model(16), + mcstas_more_neutrons_3d_detector_example(), + ], ) def test_can_reduce_using_unknown_peaks_workflow(fname): wf = BeerModMcStasWorkflow() wf[Filename[SampleRun]] = fname wf[DetectorBank] = DetectorBank.north - wf.insert(mcstas_chopper_delay_from_mode_new_simulations) - da = wf.compute(WavelengthDetector[SampleRun]) + result = wf.compute( + (WavelengthDetector[SampleRun], ElasticCoordTransformGraph[SampleRun]) + ) + da = result[WavelengthDetector[SampleRun]] + assert 'wavelength' in da.bins.coords da = da.transform_coords( ('dspacing',), - graph=scn.conversion.graph.tof.elastic('tof'), + graph=result[ElasticCoordTransformGraph[SampleRun]], ) - h = da.hist(dspacing=2000, dim=da.dims) + h = da.hist(dspacing=_DSPACE_BINS, dim=da.dims) max_peak_d = sc.midpoints(h['dspacing', np.argmax(h.values)].coords['dspacing'])[0] assert_allclose( max_peak_d, @@ -78,7 +90,7 @@ def test_can_reduce_using_unknown_peaks_workflow(fname): sc.scalar(1.5677, unit='angstrom') if max_peak_d < sc.scalar(1.6, unit='angstrom') else sc.scalar(1.6374, unit='angstrom'), - atol=sc.scalar(2e-3, unit='angstrom'), + atol=sc.scalar(5e-4, unit='angstrom'), ) @@ -96,17 +108,17 @@ def test_pulse_shaping_workflow(): ('dspacing',), graph=res[ElasticCoordTransformGraph[SampleRun]], ) - h = da.hist(dspacing=2000, dim=da.dims) + h = da.hist(dspacing=_DSPACE_BINS, dim=da.dims) max_peak_d = sc.midpoints(h['dspacing', np.argmax(h.values)].coords['dspacing'])[0] assert_allclose( max_peak_d, sc.scalar(1.6374, unit='angstrom'), - atol=sc.scalar(2e-3, unit='angstrom'), + atol=sc.scalar(5e-4, unit='angstrom'), ) def test_powder_mcstas_analytical_workflow_computes_dspacing(): - wf = BeerPowderMcStasWorkflowAnalytical() + wf = BeerPowderMcStasWorkflow() wf[Filename[SampleRun]] = mcstas_silicon_new_model(6) wf[DetectorBank] = DetectorBank.north @@ -114,46 +126,40 @@ def test_powder_mcstas_analytical_workflow_computes_dspacing(): assert 'wavelength' in da.bins.coords assert 'dspacing' in da.bins.coords - h = da.hist(dspacing=2000, dim=da.dims) + h = da.hist(dspacing=_DSPACE_BINS, dim=da.dims) max_peak_d = sc.midpoints(h['dspacing', np.argmax(h.values)].coords['dspacing'])[0] assert_allclose( max_peak_d, sc.scalar(1.6374, unit='angstrom'), - atol=sc.scalar(2e-3, unit='angstrom'), + atol=sc.scalar(5e-4, unit='angstrom'), ) -def test_can_load_3d_detector(): - sizes = { - 'north_detector': {'x': 500, 'y': 200}, - 'south_detector': {'x': 500, 'y': 200}, - } - load_beer_mcstas( - mcstas_few_neutrons_3d_detector_example(), DetectorBank.north, sizes - ) - da = load_beer_mcstas( - mcstas_few_neutrons_3d_detector_example(), DetectorBank.south, sizes - ) - assert 'panel' in da.dims - # Detector position.x is monotone in panel dimension. - panel_x_diff = np.diff(da.coords['detector_position'].fields.x.values) - assert (panel_x_diff > 0).all() or (panel_x_diff < 0).all() +@pytest.mark.parametrize( + 'fname', + [ + pytest.param(mcstas_duplex(7), id='legacy-2d'), + pytest.param(mcstas_silicon_new_model(7), id='new-2d'), + pytest.param(mcstas_few_neutrons_3d_detector_example(), id='panelized-3d'), + pytest.param(mcstas_powder_silicon_in_vanadium_can(), id='powder-2d'), + ], +) +@pytest.mark.parametrize('bank', DetectorBank) +def test_can_load_all_detector_generations(fname, bank): + da = load_beer_mcstas(fname, bank) + assert da.coords['pixel_id'].dtype == sc.DType.int32 + assert 'position' in da.coords + assert 'event_time_offset' in da.bins.coords + assert da.bins.size().sum().value > 0 -def test_load_pulse_shaping_detector_adds_nominal_time_at_chopper(): - sizes = { - 'north_detector': {'x': 500, 'y': 200}, - 'south_detector': {'x': 500, 'y': 200}, - } - da = load_beer_mcstas(mcstas_silicon_new_model(6), DetectorBank.north, sizes) +def test_loaded_mcstas_event_variances_are_squared_weights(): + da = load_beer_mcstas(mcstas_few_neutrons_3d_detector_example(), DetectorBank.north) + weights = da.bins.constituents['data'] - assert 'wavelength_estimate' not in da.coords - assert_allclose( - da.coords['nominal_time_at_chopper'].to(unit='ms'), - sc.scalar(5.07692, unit='ms'), - atol=sc.scalar(1e-5, unit='ms'), - ) + assert weights.variances is not None + assert_allclose(sc.variances(weights), sc.values(weights) ** 2) def test_can_load_monitor(): @@ -171,27 +177,3 @@ def test_io_module_reexports_mcstas_loaders(): io = importlib.import_module('ess.beer.io') assert io.load_beer_mcstas is load_beer_mcstas - - -@pytest.mark.parametrize( - ('bank_in_sizes', 'bank'), - [ - ('south_detector', DetectorBank.south), - ('north_detector', DetectorBank.north), - (DetectorBank.south, DetectorBank.south), - (DetectorBank.north, DetectorBank.north), - ], -) -@pytest.mark.parametrize( - 'fname', [mcstas_silicon_new_model(7), mcstas_more_neutrons_3d_detector_example()] -) -def test_detector_bank_size_parameter_determines_loaded_detector_size( - bank_in_sizes, bank, fname -): - wf = BeerMcStasWorkflowPulseShaping() - wf[Filename[SampleRun]] = fname - wf[DetectorBank] = bank - wf[DetectorBankSizes] = {bank_in_sizes: {'x': 10, 'y': 20}} - res = wf.compute(RawDetector[SampleRun]) - assert res.sizes['x'] == 10 - assert res.sizes['y'] == 20 diff --git a/pixi.lock b/pixi.lock index f555578ca..657c07c42 100644 --- a/pixi.lock +++ b/pixi.lock @@ -146,14 +146,15 @@ environments: - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/23/e8/9d61dcbd1dce8ef418f06befd4ac084b4720429c26b0b1222bc218685eff/jupyter_lsp-2.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/be/0631a861af4d1c875f096c07d34e9a63639560a717130e7a87cbc82b7e3f/python_json_logger-4.1.0-py3-none-any.whl @@ -359,6 +360,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/4b/d8f582158b1650627999cde9a7a57f3d5a711deaf4481955e4385f5b747e/ncrystal_python-4.4.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0b/72/7e33f0c1871d648088e3dd67ce47366ed942d625300f6d966730da92a7d7/gemmi-0.7.5-cp312-cp312-macosx_10_14_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl @@ -367,6 +369,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl @@ -453,7 +456,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/78/bc3850efda66712370ebb2a52130111b5cbbdee7a5b9d1672aadfc73234f/orsopy-1.2.3-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b8/42/cf027b4ac873b076189d935b135397675dac80cb29acb13e1ab86ad6c631/json5-0.14.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/16/9826f089383c593cdfc4a6e5aca94d9e91ae1692c57af82c3b2aa5e810f7/anyio-4.14.0-py3-none-any.whl @@ -583,6 +585,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl @@ -603,6 +606,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl @@ -683,7 +687,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/8c/d4907ad4f6bdc5bf79462d8767728713a7b316918a7444df372958a0e417/spglib-2.6.0-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c1/78/d2881e68894cecdcd05912a9c585cfb776ef1fb38b62c8dba98f12ab3adc/jupyter_server-2.19.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c9/d1/56a400100559cbf154a23cd29989261941ae5c9f743898fc10e8a5508b7c/jupyterlab-4.5.8-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl @@ -804,6 +807,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl @@ -871,7 +876,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/90/af/8aafce6e5544b43b84cb670aca40c8bea7eb5ae8f42bfcbdc7098739987a/msgpack-1.2.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl @@ -1065,14 +1069,15 @@ environments: - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/11/b1/ce1f4596211efb5410e178a803f08e59b20bedb66837dcf41e21c54f9ec1/pybtex_docutils-1.0.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -1266,6 +1271,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/f2/9657c98a66973b7c35bfd48ba65d1922860de9598fbb535cd96e3f58a908/sphinx_autodoc_typehints-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/4b/d8f582158b1650627999cde9a7a57f3d5a711deaf4481955e4385f5b747e/ncrystal_python-4.4.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/72/7e33f0c1871d648088e3dd67ce47366ed942d625300f6d966730da92a7d7/gemmi-0.7.5-cp312-cp312-macosx_10_14_x86_64.whl @@ -1277,6 +1283,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/24/f1/392f8c5bfc16f66a0d2d41561c01627c228fe7ed2a0d056ef11315042570/pandas-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl @@ -1365,7 +1372,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/40/23569737873cc9637fd488606347e9dd92b9fa37ba4fcda1f98ee5219a97/latexcodec-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -1483,6 +1489,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl @@ -1501,6 +1508,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/44/f6/775eb92e865b28cdb4ad1f2bed7a5446197516f76b58a950faa3be3fd08d/pybtex-0.26.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl @@ -1582,7 +1590,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/8c/d4907ad4f6bdc5bf79462d8767728713a7b316918a7444df372958a0e417/spglib-2.6.0-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -1693,6 +1700,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/26/57/461ce12106ab560d1214218a0df8f56dff66f8a9ef624d7c3273dca52167/ncrystal_core-4.4.4-py3-none-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl @@ -1760,7 +1769,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl @@ -1942,7 +1950,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl @@ -1950,6 +1957,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -2135,6 +2143,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/f2/9657c98a66973b7c35bfd48ba65d1922860de9598fbb535cd96e3f58a908/sphinx_autodoc_typehints-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl @@ -2226,7 +2235,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -2362,6 +2370,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl @@ -2435,7 +2444,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -2545,6 +2553,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl @@ -2607,7 +2616,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl @@ -2788,12 +2796,12 @@ environments: - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -2982,6 +2990,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/f2/9657c98a66973b7c35bfd48ba65d1922860de9598fbb535cd96e3f58a908/sphinx_autodoc_typehints-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/72/7e33f0c1871d648088e3dd67ce47366ed942d625300f6d966730da92a7d7/gemmi-0.7.5-cp312-cp312-macosx_10_14_x86_64.whl @@ -3075,7 +3084,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -3210,6 +3218,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl @@ -3285,7 +3294,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -3393,6 +3401,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -3454,7 +3463,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/90/af/8aafce6e5544b43b84cb670aca40c8bea7eb5ae8f42bfcbdc7098739987a/msgpack-1.2.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl @@ -3634,12 +3642,12 @@ environments: - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -3817,6 +3825,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/f2/9657c98a66973b7c35bfd48ba65d1922860de9598fbb535cd96e3f58a908/sphinx_autodoc_typehints-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl @@ -3902,7 +3911,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -4031,6 +4039,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl @@ -4101,7 +4110,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -4206,6 +4214,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -4264,7 +4273,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl @@ -4441,7 +4449,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/11/28/19843833ad088cd433350ecce75e1c98bb283e8d52d52a472946bcca6719/bqscales-0.3.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/11/b1/ce1f4596211efb5410e178a803f08e59b20bedb66837dcf41e21c54f9ec1/pybtex_docutils-1.0.3-py3-none-any.whl @@ -4451,6 +4458,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1d/33/f1c6a276de27b7d7339a34749cc33fa87f077f921969c47185d34a887ae2/gast-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -4639,6 +4647,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/f2/9657c98a66973b7c35bfd48ba65d1922860de9598fbb535cd96e3f58a908/sphinx_autodoc_typehints-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl @@ -4736,7 +4745,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/40/23569737873cc9637fd488606347e9dd92b9fa37ba4fcda1f98ee5219a97/latexcodec-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -4872,6 +4880,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/44/f6/775eb92e865b28cdb4ad1f2bed7a5446197516f76b58a950faa3be3fd08d/pybtex-0.26.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl @@ -4950,7 +4959,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -5061,6 +5069,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1d/33/f1c6a276de27b7d7339a34749cc33fa87f077f921969c47185d34a887ae2/gast-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl @@ -5125,7 +5134,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/92/b1/e00f9b7367f7966457a2c3405263cbf0178a0fd217b9c75dc26cd9d92ad5/py2vega-0.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl @@ -5307,13 +5315,13 @@ environments: - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -5497,6 +5505,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/f2/9657c98a66973b7c35bfd48ba65d1922860de9598fbb535cd96e3f58a908/sphinx_autodoc_typehints-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl @@ -5586,7 +5595,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -5720,6 +5728,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl @@ -5792,7 +5801,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -5901,6 +5909,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -5961,7 +5970,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl @@ -6141,13 +6149,13 @@ environments: - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -6326,6 +6334,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/f2/9657c98a66973b7c35bfd48ba65d1922860de9598fbb535cd96e3f58a908/sphinx_autodoc_typehints-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/09/dc/f3dfb7488b770f3f67e6545085bf2abea5172e88f57b8ad25ef860ca704c/myst_parser-5.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl @@ -6412,7 +6421,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -6543,6 +6551,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl @@ -6613,7 +6622,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl @@ -6720,6 +6728,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/16/8d/93be7e0f7fa915a576859b3bfac7a7baa3303181c44d7db7eefbd3e8a69f/sphinxcontrib_mermaid-2.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/2c/daca29684cbe9fd4bc711f8246da3c10adca1ccc4d24436b17572eb2590e/roman_numerals_py-4.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl @@ -6778,7 +6787,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl @@ -6948,11 +6956,12 @@ environments: - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/4b/d8f582158b1650627999cde9a7a57f3d5a711deaf4481955e4385f5b747e/ncrystal_python-4.4.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/33/75/98a7eb100dc5cfd20b019046452f08d5e67dfbacc71d8f28763d32426fd3/spglib-2.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -7088,11 +7097,13 @@ environments: - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/4b/d8f582158b1650627999cde9a7a57f3d5a711deaf4481955e4385f5b747e/ncrystal_python-4.4.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0b/72/7e33f0c1871d648088e3dd67ce47366ed942d625300f6d966730da92a7d7/gemmi-0.7.5-cp312-cp312-macosx_10_14_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/24/f1/392f8c5bfc16f66a0d2d41561c01627c228fe7ed2a0d056ef11315042570/pandas-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl @@ -7134,7 +7145,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/aa/b7/93922f061b369c68a3fa3e2bffb3b85c9432d041c7f4d1fdb0123d0c370d/ncrystal_core-4.4.4-py3-none-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -7233,6 +7243,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl @@ -7240,6 +7251,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/40/f2/56577465a1b42a5e6780bb5fab53fb68f8bfd72f0131ed397576529af724/psygnal-0.15.1-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl @@ -7284,7 +7296,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/8c/d4907ad4f6bdc5bf79462d8767728713a7b316918a7444df372958a0e417/spglib-2.6.0-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl @@ -7379,6 +7390,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/26/57/461ce12106ab560d1214218a0df8f56dff66f8a9ef624d7c3273dca52167/ncrystal_core-4.4.4-py3-none-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl @@ -7413,7 +7426,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8f/82/b54e646be7b938fcbdda10030c6533bd2bb1a59930a1381cc83d6050a49c/spglib-2.6.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl @@ -7567,13 +7579,13 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl @@ -7709,6 +7721,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl @@ -7757,7 +7770,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -7867,6 +7879,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl @@ -7910,7 +7923,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl @@ -8005,6 +8017,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl @@ -8041,7 +8054,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/c2/8fec8e8e2eb920cc2280f569144080cd58622a2eda83bfa4c0c354a63264/anywidget-0.11.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl @@ -8196,11 +8208,11 @@ environments: - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/ed/b7728573156d70b6b094233b0f38d876fc37340826cf852347ec2c7ca8ca/msgpack-1.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl @@ -8331,6 +8343,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0b/72/7e33f0c1871d648088e3dd67ce47366ed942d625300f6d966730da92a7d7/gemmi-0.7.5-cp312-cp312-macosx_10_14_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl @@ -8374,7 +8387,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/a3/de/e3e0cf5704fe569d54b8cd5dc316c9fbf08b1b74728732f86e90168b7a3f/cython-3.2.5-cp39-abi3-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -8479,6 +8491,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl @@ -8519,7 +8532,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl @@ -8612,6 +8624,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl @@ -8641,7 +8654,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/90/af/8aafce6e5544b43b84cb670aca40c8bea7eb5ae8f42bfcbdc7098739987a/msgpack-1.2.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl @@ -8791,11 +8803,11 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl @@ -8919,6 +8931,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl @@ -8957,7 +8970,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -9058,6 +9070,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl @@ -9095,7 +9108,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl @@ -9186,6 +9198,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl @@ -9214,7 +9227,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl @@ -9364,11 +9376,11 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl @@ -9495,6 +9507,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl @@ -9535,7 +9548,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/78/bc3850efda66712370ebb2a52130111b5cbbdee7a5b9d1672aadfc73234f/orsopy-1.2.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -9637,6 +9649,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl @@ -9676,7 +9689,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl @@ -9768,6 +9780,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl @@ -9797,7 +9810,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl @@ -9948,12 +9960,12 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl @@ -10083,6 +10095,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl @@ -10125,7 +10138,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -10231,6 +10243,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/40/f2/56577465a1b42a5e6780bb5fab53fb68f8bfd72f0131ed397576529af724/psygnal-0.15.1-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl @@ -10270,7 +10283,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl @@ -10365,6 +10377,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/b3/88c0ef22878c86035f058df0ac6c171319ffd0aa52a406455ed3a3847566/ipympl-0.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl @@ -10395,7 +10408,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/c2/8fec8e8e2eb920cc2280f569144080cd58622a2eda83bfa4c0c354a63264/anywidget-0.11.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl @@ -10548,11 +10560,11 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl @@ -10677,6 +10689,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/01/88/a8952b6d5c21e74cbf158515b779666f692846502623e9e3c39d8e8ba25f/llvmlite-0.47.0.tar.gz - pypi: https://files.pythonhosted.org/packages/02/17/b82b537a30be67ba178fc0b0fbda8fcbaeda188fb039d6ad8a84e89353a2/dask-2026.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl @@ -10715,7 +10728,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/b5/36c712098e6191d1b4e349304ef73a8d06aed77e56ceaac8c0a306c7bda1/jupyterlab_widgets-3.0.16-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/46/661159ad844034ba8b3f4e0516215c41e4ee17db4213d13a82227670764f/sciline-25.11.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl @@ -10817,6 +10829,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/41/09/5b161152e2d90f7b87f781c2e1267494aef9c32498df793f73ad0a0a494a/matplotlib_inline-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d9/27b13bc9419bf5dae02905b348f16ca827646cd76244ddd326f1a8139a6a/cyclebane-24.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/4d/82/597fcbfe2ee1928f594795de448762518de2021d1d073d02e534053ce1b9/scippneutron-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl @@ -10854,7 +10867,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ba/7f/9352cd9cc72a882577eb976cd86614585698f0a7df26d93c594bceff2d84/tof-26.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bd/6e/95b0e537de1f4d4301f76f944642c6da50d1511cc7b3d64dc418a66c7509/wcwidth-0.8.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/c7/0d/67e5b4109ea4a837e80daa87c2c696711955e40449a97e8926672534def2/click-8.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cf/3d/b16412745651e855f357e5e66930248688378853a6e2698a214e331fba1f/pandas-3.0.3-cp312-cp312-macosx_11_0_arm64.whl @@ -10946,6 +10958,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/12/aa/fb2a0649fdeef5ab7072d221e8f4df164098792c813af6c87e2581cfa860/mpltoolbox-26.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/2d/d4bf65e47cea8ff2c794a600c4fd1273a7902f268757c531e0ee9f18aa58/pooch-1.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2f/f5/d281ae0f79378a5a91f308ea9fdb9f9cc068fddd09629edc0725a5a8fde1/llvmlite-0.47.0-cp312-cp312-win_amd64.whl @@ -10974,7 +10987,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/8d/1080ee4c231f361b6ce4470d556c8c435b67c7e0753aaa641497ee92f88b/traitlets-5.15.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9d/22/58818a63eaf8982b67632b1bc20585c811611b15a8da19d6012323dc76a5/ipython-9.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl @@ -14440,6 +14452,7 @@ packages: - dask>=2022.1.0 - graphviz>=0.20 - essreduce>=26.6.0 + - mcstastox>=0.0.11 - numpy>=2 - plopp>=26.5.0 - tof>=25.12.0 @@ -14532,7 +14545,7 @@ packages: - dask>=2022.1.0 - graphviz>=0.20 - sciline>=25.11.0 - - scipp>=26.7.0 + - scipp>=26.3.1 - scippneutron>=26.6.0 - scippnexus>=25.6.0 - scipy>=1.14 @@ -14631,7 +14644,7 @@ packages: requires_dist: - dask>=2022.1.0 - graphviz>=0.20 - - essreduce>=26.6.0 + - essreduce>=26.8.0 - pandas>=2.1.2 - tof>=25.11.0 - pooch>=1.5 ; extra == 'test' @@ -14802,6 +14815,32 @@ packages: version: 0.7.1 sha256: a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*' +- pypi: https://files.pythonhosted.org/packages/07/d9/5c57a38ebf73df9f1992ce7c6830efc4b341cba8dfbc546e1a40155e922c/scipp-26.3.1-cp312-cp312-macosx_14_0_x86_64.whl + name: scipp + version: 26.3.1 + sha256: 60f7e807803419cc40203c955d03ad457a0be7a6746cc26421f5a6ccbe323401 + requires_dist: + - numpy>=2 + - pytest ; extra == 'test' + - matplotlib ; extra == 'test' + - beautifulsoup4 ; extra == 'test' + - ipython ; extra == 'test' + - h5py ; extra == 'extra' + - scipy>=1.7.0 ; extra == 'extra' + - graphviz ; extra == 'extra' + - pooch ; extra == 'extra' + - plopp ; extra == 'extra' + - matplotlib ; extra == 'extra' + - scipp[extra] ; extra == 'all' + - ipympl ; extra == 'all' + - ipython ; extra == 'all' + - ipywidgets ; extra == 'all' + - jupyterlab ; extra == 'all' + - jupyterlab-widgets ; extra == 'all' + - jupyter-nbextensions-configurator ; extra == 'all' + - nodejs ; extra == 'all' + - pythreejs ; extra == 'all' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/08/ef/b3c6b9b5be2f82416d73fe2ed2e96e2793cd80e7510bd6a17ca79cdd88ec/fonttools-4.63.0-cp312-cp312-macosx_10_13_universal2.whl name: fonttools version: 4.63.0 @@ -14923,32 +14962,6 @@ packages: version: 3.4.7 sha256: eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46 requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/0f/13/4912bdd04beaf667e53c81b5e7ea843a38dad5c4c2fd6944a3215146ecc5/scipp-26.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - name: scipp - version: 26.7.0 - sha256: 652c8f2cdbbeba4f914b4e133618730df888d8ea081c1b363de30c4f5ddfce67 - requires_dist: - - numpy>=2 - - pytest ; extra == 'test' - - matplotlib ; extra == 'test' - - beautifulsoup4 ; extra == 'test' - - ipython ; extra == 'test' - - h5py ; extra == 'extra' - - scipy>=1.7.0 ; extra == 'extra' - - graphviz ; extra == 'extra' - - pooch ; extra == 'extra' - - plopp ; extra == 'extra' - - matplotlib ; extra == 'extra' - - scipp[extra] ; extra == 'all' - - ipympl ; extra == 'all' - - ipython ; extra == 'all' - - ipywidgets ; extra == 'all' - - jupyterlab ; extra == 'all' - - jupyterlab-widgets ; extra == 'all' - - jupyter-nbextensions-configurator ; extra == 'all' - - nodejs ; extra == 'all' - - pythreejs ; extra == 'all' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl name: pyparsing version: 3.3.2 @@ -15066,6 +15079,32 @@ packages: - pytest-xdist ; extra == 'test-no-images' - wurlitzer ; extra == 'test-no-images' requires_python: '>=3.11' +- pypi: https://files.pythonhosted.org/packages/1a/1f/86b4d15221096cb5500bcd73bf350745749e3ba056cdd7a7f75f126f154e/scipp-26.3.1-cp312-cp312-win_amd64.whl + name: scipp + version: 26.3.1 + sha256: 8b036876edf7895d17644f59711037d2d7d9ad048b1a503200646d8229fb1ad7 + requires_dist: + - numpy>=2 + - pytest ; extra == 'test' + - matplotlib ; extra == 'test' + - beautifulsoup4 ; extra == 'test' + - ipython ; extra == 'test' + - h5py ; extra == 'extra' + - scipy>=1.7.0 ; extra == 'extra' + - graphviz ; extra == 'extra' + - pooch ; extra == 'extra' + - plopp ; extra == 'extra' + - matplotlib ; extra == 'extra' + - scipp[extra] ; extra == 'all' + - ipympl ; extra == 'all' + - ipython ; extra == 'all' + - ipywidgets ; extra == 'all' + - jupyterlab ; extra == 'all' + - jupyterlab-widgets ; extra == 'all' + - jupyter-nbextensions-configurator ; extra == 'all' + - nodejs ; extra == 'all' + - pythreejs ; extra == 'all' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/1a/82/a70006589557f267f15bd384c0642ad49f0d97b690c3a05b166b9dcbad3b/python_discovery-1.4.2-py3-none-any.whl name: python-discovery version: 1.4.2 @@ -15085,6 +15124,16 @@ packages: - pytest>=8.3.5 ; extra == 'testing' - setuptools>=75.1 ; extra == 'testing' requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/1a/84/8c38176f97ee333c5b0d3f003548718ee87abdac67d4a2d5c00183c872bf/mcstastox-0.0.12-py3-none-any.whl + name: mcstastox + version: 0.0.12 + sha256: ad963f01378bb05a56b405fe471ef9bc637cf75326448f2549ae46e64d18d30e + requires_dist: + - h5py + - numpy + - scipp ; extra == 'scipp' + - pytest ; extra == 'test' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/1a/e4/e804505f87627cd8cdae9c010c47c4485fd8c1ce31a7dd0ab7fcc4707377/tifffile-2026.3.3-py3-none-any.whl name: tifffile version: 2026.3.3 @@ -15146,6 +15195,32 @@ packages: - mypy>=1.11.2 ; extra == 'all' - pytest>=8.3.2 ; extra == 'all' requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/1e/e7/cd78635d0ece7e4d3393f2c1d2ebabf6ff4bd615da142891b1d42ad58abf/scipp-26.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + name: scipp + version: 26.3.1 + sha256: 7525c843f673ef5461d229095054a701aeb3233db29af137fdf4bbf0884ad9d4 + requires_dist: + - numpy>=2 + - pytest ; extra == 'test' + - matplotlib ; extra == 'test' + - beautifulsoup4 ; extra == 'test' + - ipython ; extra == 'test' + - h5py ; extra == 'extra' + - scipy>=1.7.0 ; extra == 'extra' + - graphviz ; extra == 'extra' + - pooch ; extra == 'extra' + - plopp ; extra == 'extra' + - matplotlib ; extra == 'extra' + - scipp[extra] ; extra == 'all' + - ipympl ; extra == 'all' + - ipython ; extra == 'all' + - ipywidgets ; extra == 'all' + - jupyterlab ; extra == 'all' + - jupyterlab-widgets ; extra == 'all' + - jupyter-nbextensions-configurator ; extra == 'all' + - nodejs ; extra == 'all' + - pythreejs ; extra == 'all' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/20/a6/efc97000fdb2f34e2431eb09a6ab4de9fbd3bcdb73a8f9d224afa4a9abd3/cython-3.2.5-cp312-cp312-macosx_11_0_arm64.whl name: cython version: 3.2.5 @@ -15759,6 +15834,32 @@ packages: version: 1.2.0 sha256: e2d6047ccd11a12c96a69f2bfe026471abef67334c3d0494a93e5310e45140a2 requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/44/7b/537a61906eac58d94131273084d21d4eb219f5453f0ed30de3aca580a2b4/scipp-26.3.1-cp312-cp312-macosx_14_0_arm64.whl + name: scipp + version: 26.3.1 + sha256: 2608ba21e2c550abe864598e8cfffe22d7e7be70ff9f9b03d44868e353b241c9 + requires_dist: + - numpy>=2 + - pytest ; extra == 'test' + - matplotlib ; extra == 'test' + - beautifulsoup4 ; extra == 'test' + - ipython ; extra == 'test' + - h5py ; extra == 'extra' + - scipy>=1.7.0 ; extra == 'extra' + - graphviz ; extra == 'extra' + - pooch ; extra == 'extra' + - plopp ; extra == 'extra' + - matplotlib ; extra == 'extra' + - scipp[extra] ; extra == 'all' + - ipympl ; extra == 'all' + - ipython ; extra == 'all' + - ipywidgets ; extra == 'all' + - jupyterlab ; extra == 'all' + - jupyterlab-widgets ; extra == 'all' + - jupyter-nbextensions-configurator ; extra == 'all' + - nodejs ; extra == 'all' + - pythreejs ; extra == 'all' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/44/a0/c815bea63117fa63e4e1c01f8a1110d2112fa003f838e6467094ec2432ce/fonttools-4.63.0-cp312-cp312-macosx_10_13_x86_64.whl name: fonttools version: 4.63.0 @@ -17010,32 +17111,6 @@ packages: version: 1.5.0 sha256: ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819 requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/99/ee/619f807978a374978928b75fb479627b43551b8cc06b82f09b22a30e8978/scipp-26.7.0-cp312-cp312-win_amd64.whl - name: scipp - version: 26.7.0 - sha256: c355ba568a3597e48e1c3c232adac381cc6e80faf801ca944024fd90fa4954c0 - requires_dist: - - numpy>=2 - - pytest ; extra == 'test' - - matplotlib ; extra == 'test' - - beautifulsoup4 ; extra == 'test' - - ipython ; extra == 'test' - - h5py ; extra == 'extra' - - scipy>=1.7.0 ; extra == 'extra' - - graphviz ; extra == 'extra' - - pooch ; extra == 'extra' - - plopp ; extra == 'extra' - - matplotlib ; extra == 'extra' - - scipp[extra] ; extra == 'all' - - ipympl ; extra == 'all' - - ipython ; extra == 'all' - - ipywidgets ; extra == 'all' - - jupyterlab ; extra == 'all' - - jupyterlab-widgets ; extra == 'all' - - jupyter-nbextensions-configurator ; extra == 'all' - - nodejs ; extra == 'all' - - pythreejs ; extra == 'all' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl name: markupsafe version: 3.0.3 @@ -17641,32 +17716,6 @@ packages: - cffi>=1.0.1 ; python_full_version < '3.14' - cffi>=2.0.0b1 ; python_full_version >= '3.14' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/b7/0a/120b636ffd4559038d43db8c9d30acbea5a2034c85ddf8cc871436702655/scipp-26.7.0-cp312-cp312-macosx_14_0_x86_64.whl - name: scipp - version: 26.7.0 - sha256: 5b1747a441a4d50c5b62cc9ebf754a1997dc18a7ef3d70ac2627c9de41c4d8ac - requires_dist: - - numpy>=2 - - pytest ; extra == 'test' - - matplotlib ; extra == 'test' - - beautifulsoup4 ; extra == 'test' - - ipython ; extra == 'test' - - h5py ; extra == 'extra' - - scipy>=1.7.0 ; extra == 'extra' - - graphviz ; extra == 'extra' - - pooch ; extra == 'extra' - - plopp ; extra == 'extra' - - matplotlib ; extra == 'extra' - - scipp[extra] ; extra == 'all' - - ipympl ; extra == 'all' - - ipython ; extra == 'all' - - ipywidgets ; extra == 'all' - - jupyterlab ; extra == 'all' - - jupyterlab-widgets ; extra == 'all' - - jupyter-nbextensions-configurator ; extra == 'all' - - nodejs ; extra == 'all' - - pythreejs ; extra == 'all' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl name: six version: 1.17.0 @@ -17948,32 +17997,6 @@ packages: - flake8 ; extra == 'test' - mypy ; extra == 'test' requires_python: '>=3.5' -- pypi: https://files.pythonhosted.org/packages/c3/3a/bbdaab46d77099a1bb5b8e64ca57f1582688662e20c28d39d9c58385e29e/scipp-26.7.0-cp312-cp312-macosx_14_0_arm64.whl - name: scipp - version: 26.7.0 - sha256: fbe293716d10c13351a89b50a19d4bf6d98c095a3e5f2750a625ba8a708c2241 - requires_dist: - - numpy>=2 - - pytest ; extra == 'test' - - matplotlib ; extra == 'test' - - beautifulsoup4 ; extra == 'test' - - ipython ; extra == 'test' - - h5py ; extra == 'extra' - - scipy>=1.7.0 ; extra == 'extra' - - graphviz ; extra == 'extra' - - pooch ; extra == 'extra' - - plopp ; extra == 'extra' - - matplotlib ; extra == 'extra' - - scipp[extra] ; extra == 'all' - - ipympl ; extra == 'all' - - ipython ; extra == 'all' - - ipywidgets ; extra == 'all' - - jupyterlab ; extra == 'all' - - jupyterlab-widgets ; extra == 'all' - - jupyter-nbextensions-configurator ; extra == 'all' - - nodejs ; extra == 'all' - - pythreejs ; extra == 'all' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/c4/13/680c54afe3e65767bed7ec1a15571e1a2f1257128733851ade24abcefbcc/kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl name: kiwisolver version: 1.5.0