25
25
from copy import deepcopy
26
26
from os .path import expanduser , join , isfile , dirname
27
27
from os .path import splitext
28
+
29
+ import psutil
28
30
from numpy import uint8
29
31
30
32
from exceptions import ArgumentError
@@ -49,6 +51,8 @@ def __init__(self):
49
51
self .global_parameters_write_protocol_to_file = None
50
52
self .global_parameters_store_protocol_with_result = None
51
53
self .global_parameters_buffering_level = None
54
+ self .global_parameters_maximum_memory_active = None
55
+ self .global_parameters_maximum_memory_amount = None
52
56
self .global_parameters_include_postprocessing = None
53
57
self .global_parameters_image_format = None
54
58
self .global_parameters_parameters_in_filename = None
@@ -89,6 +93,9 @@ def set_defaults(self):
89
93
self .global_parameters_write_protocol_to_file = False
90
94
self .global_parameters_store_protocol_with_result = False
91
95
self .global_parameters_buffering_level = - 1
96
+ self .global_parameters_maximum_memory_active = False
97
+ self .global_parameters_maximum_memory_amount = \
98
+ max (1 , int (dict (psutil .virtual_memory ()._asdict ())['available' ] / 1e9 ))
92
99
self .global_parameters_include_postprocessing = True
93
100
self .global_parameters_image_format = "png"
94
101
self .global_parameters_parameters_in_filename = False
@@ -142,6 +149,10 @@ def copy_from_config_object(self, configuration_object):
142
149
configuration_object .global_parameters_store_protocol_with_result
143
150
self .global_parameters_buffering_level = \
144
151
configuration_object .global_parameters_buffering_level
152
+ self .global_parameters_maximum_memory_active = \
153
+ configuration_object .global_parameters_maximum_memory_active
154
+ self .global_parameters_maximum_memory_amount = \
155
+ configuration_object .global_parameters_maximum_memory_amount
145
156
self .global_parameters_include_postprocessing = \
146
157
configuration_object .global_parameters_include_postprocessing
147
158
self .global_parameters_image_format = \
@@ -334,6 +345,10 @@ def import_from_configuration_parameters(self, configuration_parameters):
334
345
configuration_parameters .global_parameters_store_protocol_with_result
335
346
self .global_parameters_buffering_level = \
336
347
configuration_parameters .global_parameters_buffering_level
348
+ self .global_parameters_maximum_memory_active = \
349
+ configuration_parameters .global_parameters_maximum_memory_active
350
+ self .global_parameters_maximum_memory_amount = \
351
+ configuration_parameters .global_parameters_maximum_memory_amount
337
352
self .global_parameters_include_postprocessing = \
338
353
configuration_parameters .global_parameters_include_postprocessing
339
354
self .global_parameters_image_format = \
@@ -495,6 +510,10 @@ def get_all_parameters_from_configparser(self, conf):
495
510
'store protocol with result' , default_conf_obj .global_parameters_store_protocol_with_result )
496
511
self .global_parameters_buffering_level = get_from_conf (conf , 'Global parameters' ,
497
512
'buffering level' , default_conf_obj .global_parameters_buffering_level )
513
+ self .global_parameters_maximum_memory_active = get_from_conf (conf , 'Global parameters' ,
514
+ 'maximum memory active' , default_conf_obj .global_parameters_maximum_memory_active )
515
+ self .global_parameters_maximum_memory_amount = get_from_conf (conf , 'Global parameters' ,
516
+ 'maximum memory amount' , default_conf_obj .global_parameters_maximum_memory_amount )
498
517
self .global_parameters_include_postprocessing = get_from_conf (conf , 'Global parameters' ,
499
518
'include postprocessing' , default_conf_obj .global_parameters_include_postprocessing )
500
519
self .global_parameters_image_format = get_from_conf (conf , 'Global parameters' ,
@@ -590,6 +609,10 @@ def store_all_parameters_to_config_parser(self):
590
609
str (self .global_parameters_store_protocol_with_result ))
591
610
self .set_parameter ('Global parameters' , 'buffering level' ,
592
611
str (self .global_parameters_buffering_level ))
612
+ self .set_parameter ('Global parameters' , 'maximum memory active' ,
613
+ str (self .global_parameters_maximum_memory_active ))
614
+ self .set_parameter ('Global parameters' , 'maximum memory amount' ,
615
+ str (self .global_parameters_maximum_memory_amount ))
593
616
self .set_parameter ('Global parameters' , 'include postprocessing' ,
594
617
str (self .global_parameters_include_postprocessing ))
595
618
self .set_parameter ('Global parameters' , 'image format' ,
0 commit comments