An error occurred while loading the file. Please try again.
-
Pierre-Antoine Rouby authored335051f9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# -*- coding: utf-8 -*-
from copy import copy
from tools import trace, timer
class Data(object):
def __init__(self, status = None):
super(Data, self).__init__()
self._status = status
self._name = ""
self._comment = ""
self._kp = 0.0
self._flow = 0.0
self._speed = 0.0
self._elevation = 0.0
self._draft = 0.0
def __getitem__(self, key):
val = None
if key == "name":
val = self._name
elif key == "comment":
val = self._comment
elif key == "kp":
val = self._kp
elif key == "speed":
val = self._speed
elif key == "flow":
val = self._flow
elif key == "elevation":
val = self._elevation
elif key == "draft":
val = self._draft
return val
def __setitem__(self, key, value):
if key == "name":
self._name = str(value)
elif key == "comment":
self._comment = str(value)
elif key == "kp":
self._kp = float(value)
elif key == "speed":
self._speed = float(value)
elif key == "flow":
self._flow = float(value)
elif key == "elevation":
self._elevation = float(value)
elif key == "draft":
self._draft = float(value)
self._status.modified()
class InitialConditions(object):
def __init__(self, reach = None, status = None):
super(InitialConditions, self).__init__()
self._status = status
self._reach = reach
self._data = []
def __len__(self):
return len(self._data)
@property
def reach(self):
return self._reach
@reach.setter
def reach(self, new):
self._reach = reach
self._status.modified()
@property
def data(self):
return self._data.copy()
def get(self, index):
return self._data[index]
def set(self, index, data):
self._data.insert(index, data)
self._status.modified()
def new(self, index):
n = Data(self._status)
self._data.insert(index, n)
self._status.modified()
def insert(self, index, data):
self._data.insert(index, data)
self._status.modified()
def delete(self, data):
self._data = list(
filter(
lambda x: x not in data,
self._data
)
)
self._status.modified()
def delete_i(self, indexes):
data = list(
map(
lambda x: x[1],
filter(
lambda x: x[0] in indexes,
enumerate(self._data)
)
)
)
self.delete(data)
def sort(self, reverse=False, key=None):
self._data.sort(reverse=reverse, key=key)
self._status.modified()