preheat_open.query.unique

preheat_open.query.unique(generator)

Return the unique element from a generator.

This function ensures that a generator yields exactly one element. It raises appropriate exceptions if the generator yields zero or multiple elements.

Parameters:

generator (Generator[T, None, None]) – A generator that should yield exactly one element

Returns:

The unique element from the generator

Return type:

T

Raises:
Example:
>>> def single_generator():
...     yield "unique_value"
>>>
>>> result = unique(single_generator())
>>> result
'unique_value'
>>> def empty_generator():
...     return
...     yield  # Never reached
>>>
>>> try:
...     unique(empty_generator())
... except NoElementError:
...     print("No elements found")
No elements found
>>> def multi_generator():
...     yield 1
...     yield 2
>>>
>>> try:
...     unique(multi_generator())
... except NoUniqueElementError:
...     print("Multiple elements found")
Multiple elements found