scientific_spinbox.backend.utils

convert_to_nearest_preferred_unit(quantity: PlainQuantity, preferred_units: list[str], unit_separator: str, default_decimals: int, validator: ScientificInputValidator, interface: PintInterface) PlainQuantity[source]

Converts a PintInterface’s quantity to the nearest preferred unit.

Parameters:
quantity : PintInterface.QuantityType

quantity object.

preferred_units : list[str]

list of preferred units.

unit_separator : str

unit separator.

validator : ScientificInputValidator

validator object.

interface : PintInterface

interface object.

Returns:

converted quantity object.

Return type:

PintInterface.QuantityType

quantityChangeUnitFormatter(backend: PintInterface, input_validator: ScientificInputValidator, default_decimals: int, unit_separator: str, old_quantity: PlainQuantity, new_quantity: PlainQuantity) PlainQuantity[source]

Formats new_quantity to match the decimal precision of old_quantity.

Parameters:
backend : PintInterface

Interface for unit and quantity operations.

input_validator : ScientificInputValidator

Validator for parsing numeric values.

default_decimals : int

Default decimal places if old_quantity has none.

unit_separator : str

Text separator for units.

old_quantity : PintInterface.QuantityType

Quantity to determine initial precision.

new_quantity : PintInterface.QuantityType

Quantity to reformat.

Returns:

Formatted new_quantity with matched decimal precision.

Return type:

PintInterface.QuantityType