vipr_reflectometry.shared package

Subpackages

Submodules

vipr_reflectometry.shared.model_properties module

Model properties for reflectometry models.

This module provides type-safe containers for model metadata, particularly for models that use reflectorch library components for forward simulation.

class vipr_reflectometry.shared.model_properties.ReflectometryModelProperties(*, q_generator: Any | None = None, prior_sampler: Any | None = None, curves_scaler: Any | None = None)

Bases: BaseModel

Type-safe, validated container for reflectometry model metadata.

Used by Flow Models and potentially other reflectometry models that need forward simulation components from reflectorch library.

These components are loaded from reflectorch configuration files and enable forward simulation from parameter samples.

q_generator

Q-value generator for forward simulation

Type:

Any | None

prior_sampler

Prior sampler for parameter conversion

Type:

Any | None

curves_scaler

Curve scaler for data normalization

Type:

Any | None

curves_scaler: Any | None
is_complete() bool

Check if all required components are loaded.

Returns:

True if q_generator, prior_sampler, and curves_scaler are all present

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

prior_sampler: Any | None
q_generator: Any | None
property q_values: Any | None

Convenience property to access Q-values from q_generator.

Returns:

Q-values tensor if q_generator is available, None otherwise

vipr_reflectometry.shared.model_properties.get_model_properties(model) ReflectometryModelProperties | None

Extract and validate reflectometry properties from model.

Type-safe helper for accessing model properties throughout the plugin. Uses try-except (EAFP) for Pythonic error handling.

Parameters:

model – Model instance with properties attribute

Returns:

Validated ReflectometryModelProperties or None if missing/incomplete

Example

>>> model_properties = get_model_properties(model)
>>> if model_properties:
>>>     q_values = model_properties.q_values

vipr_reflectometry.shared.q_resolution module

Shared Q-resolution resolution for reflectometry.

Single function, consistent hierarchy, used by predictors and postprocessing.

vipr_reflectometry.shared.q_resolution.resolve_q_resolution(app, pointwise_dx: Any | None = None, exp_spectrum: Any | None = None, prediction_params: dict | None = None) ndarray | float | None

Resolve q-resolution with a consistent hierarchy.

Returns the raw value — consumers decide how to apply it.

Priority:
  1. pointwise_dx (direct array, e.g. from DataSet.dx)

  2. exp_spectrum.dx (pointwise from spectrum object)

  3. Scalar q_resolution from prediction_params or app.inference.prediction_step

  4. None

Returns:

np.ndarray (pointwise), float (scalar dq/q), or None.

Module contents

Shared components for VIPR reflectometry plugin.

vipr_reflectometry.shared.load(app)

Load shared handlers used by multiple submodules.