Python binding for Pattern

This commit is contained in:
Erik Frojdh
2020-11-27 17:05:39 +01:00
parent 95fe1720c0
commit d69e238e67
3 changed files with 51 additions and 19 deletions

View File

@ -2,6 +2,7 @@ import _slsdet
from _slsdet import Pattern
class patternParameters(_slsdet.patternParameters):
def __init__(self):
super().__init__()
@ -15,13 +16,38 @@ class patternParameters(_slsdet.patternParameters):
raise KeyError(f"Key: {name} not found")
def __setattr__(self, name, value):
if name in ['view', 'names']:
if name in ["view", "names"]:
self.__dict__[name] = value
elif name in self.names:
self.view[name] = value
else:
else:
raise KeyError(f"Key: {name} not found")
#Provide custom dir for tab completion
# 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