Source code for hkl.context

[docs] class UsingEngine(object): """Context manager that uses a calculation engine temporarily""" def __init__(self, calc, engine): self.calc = calc self.engine = engine self.old_engine = None def __enter__(self): self.old_engine = self.calc.engine if self.engine is not None: self.calc.engine = self.engine def __exit__(self, type_, value, traceback): if self.engine is not None: self.calc.engine = self.old_engine
[docs] class TemporaryGeometry(object): """Context manager that restores physical geometry after a block of code""" def __init__(self, calc): self.calc = calc def __enter__(self): self.geometry = self.calc._geometry.copy() def __exit__(self, type_, value, traceback): self.calc._geometry = self.geometry self.calc._re_init()