mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-20 02:40:03 +02:00
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
# SPDX-License-Identifier: LGPL-3.0-or-other
|
|
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
|
import _slsdet
|
|
|
|
from _slsdet import Pattern
|
|
|
|
|
|
class patternParameters(_slsdet.patternParameters):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.view = self.numpy_view()
|
|
self.names = self.view.dtype.names
|
|
|
|
def __getattr__(self, name):
|
|
if name in self.names:
|
|
return self.view[name][0]
|
|
else:
|
|
raise KeyError(f"Key: {name} not found")
|
|
|
|
def __setattr__(self, name, value):
|
|
if name in ["view", "names"]:
|
|
self.__dict__[name] = value
|
|
elif name in self.names:
|
|
self.view[name] = value
|
|
else:
|
|
raise KeyError(f"Key: {name} not found")
|
|
|
|
# Provide custom dir for tab completion
|
|
def __dir__(self):
|
|
return self.names
|
|
|
|
|
|
class Pattern(_slsdet.Pattern):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.view = self.data().numpy_view()
|
|
self.names = self.view.dtype.names
|
|
|
|
def __getattr__(self, name):
|
|
if name in self.names:
|
|
return self.view[name][0]
|
|
else:
|
|
raise KeyError(f"Key: {name} not found")
|
|
|
|
def __setattr__(self, name, value):
|
|
if name in ["view", "names"]:
|
|
self.__dict__[name] = value
|
|
elif name in self.names:
|
|
self.view[name] = value
|
|
else:
|
|
raise KeyError(f"Key: {name} not found")
|
|
|
|
# Provide custom dir for tab completion
|
|
def __dir__(self):
|
|
return self.names |