mirror of
				https://github.com/Telecominfraproject/oopt-gnpy.git
				synced 2025-10-30 17:47:50 +00:00 
			
		
		
		
	Add a warning message when attributes are missing in eqpt_config.json
new code provides default values when attribute is missing in the eqpt_config.json, which can cause unexpected beahaviour => provide a warning message when a missing attribute is set to a default value. Signed-off-by: Jean-Luc Auge <jeanluc.auge@orange.com>
This commit is contained in:
		| @@ -17,6 +17,7 @@ from json import load | |||||||
| from gnpy.core.utils import lin2db, db2lin, load_json | from gnpy.core.utils import lin2db, db2lin, load_json | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
| from gnpy.core.elements import Edfa | from gnpy.core.elements import Edfa | ||||||
|  | import time | ||||||
|  |  | ||||||
| Model_vg = namedtuple('Model_vg', 'nf1 nf2 delta_p') | Model_vg = namedtuple('Model_vg', 'nf1 nf2 delta_p') | ||||||
| Model_fg = namedtuple('Model_fg', 'nf0') | Model_fg = namedtuple('Model_fg', 'nf0') | ||||||
| @@ -25,11 +26,16 @@ Model_hybrid = namedtuple('Model_hybrid', 'nf_ram gain_ram edfa_variety') | |||||||
| Model_dual_stage = namedtuple('Model_dual_stage', 'preamp_variety booster_variety') | Model_dual_stage = namedtuple('Model_dual_stage', 'preamp_variety booster_variety') | ||||||
|  |  | ||||||
| class common: | class common: | ||||||
|     def update_attr(self, default_values, kwargs): |     def update_attr(self, default_values, kwargs, name): | ||||||
|         clean_kwargs = {k:v for k,v in kwargs.items() if v !=''} |         clean_kwargs = {k:v for k,v in kwargs.items() if v !=''} | ||||||
|         for k,v in default_values.items(): |         for k,v in default_values.items(): | ||||||
|             v = clean_kwargs.get(k,v) |             setattr(self, k, clean_kwargs.get(k,v)) | ||||||
|             setattr(self, k, v) |             if k not in clean_kwargs and name != 'Amp' : | ||||||
|  |                 print(f'\x1b[1;31;40m'+ | ||||||
|  |                     f'\n WARNING missing {k} attribute in eqpt_config.json[{name}]' | ||||||
|  |                     f'\n default value is {k} = {v}' | ||||||
|  |                     + '\x1b[0m') | ||||||
|  |                 time.sleep(1) | ||||||
|  |  | ||||||
| class SI(common): | class SI(common): | ||||||
|     default_values =\ |     default_values =\ | ||||||
| @@ -46,7 +52,7 @@ class SI(common): | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     def __init__(self, **kwargs): |     def __init__(self, **kwargs): | ||||||
|         self.update_attr(self.default_values, kwargs)     |         self.update_attr(self.default_values, kwargs, 'SI') | ||||||
|  |  | ||||||
| class Span(common): | class Span(common): | ||||||
|     default_values = \ |     default_values = \ | ||||||
| @@ -65,7 +71,7 @@ class Span(common): | |||||||
|     } |     } | ||||||
|      |      | ||||||
|     def __init__(self, **kwargs): |     def __init__(self, **kwargs): | ||||||
|         self.update_attr(self.default_values, kwargs) |         self.update_attr(self.default_values, kwargs, 'Span') | ||||||
|  |  | ||||||
| class Roadm(common): | class Roadm(common): | ||||||
|     default_values = \ |     default_values = \ | ||||||
| @@ -75,7 +81,7 @@ class Roadm(common): | |||||||
|     }     |     }     | ||||||
|  |  | ||||||
|     def __init__(self, **kwargs): |     def __init__(self, **kwargs): | ||||||
|         self.update_attr(self.default_values, kwargs) |         self.update_attr(self.default_values, kwargs, 'Roadm') | ||||||
|  |  | ||||||
| class Transceiver(common): | class Transceiver(common): | ||||||
|     default_values = \ |     default_values = \ | ||||||
| @@ -86,7 +92,7 @@ class Transceiver(common): | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     def __init__(self, **kwargs): |     def __init__(self, **kwargs): | ||||||
|         self.update_attr(self.default_values, kwargs)         |         self.update_attr(self.default_values, kwargs, 'Transceiver') | ||||||
|  |  | ||||||
| class Fiber(common): | class Fiber(common): | ||||||
|     default_values = \ |     default_values = \ | ||||||
| @@ -97,7 +103,7 @@ class Fiber(common): | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     def __init__(self, **kwargs): |     def __init__(self, **kwargs): | ||||||
|         self.update_attr(self.default_values, kwargs)     |         self.update_attr(self.default_values, kwargs, 'Fiber') | ||||||
|  |  | ||||||
| class Amp(common): | class Amp(common): | ||||||
|     default_values = \ |     default_values = \ | ||||||
| @@ -119,7 +125,7 @@ class Amp(common): | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     def __init__(self, **kwargs): |     def __init__(self, **kwargs): | ||||||
|         self.update_attr(self.default_values, kwargs) |         self.update_attr(self.default_values, kwargs, 'Amp') | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     def from_json(cls, filename, **kwargs): |     def from_json(cls, filename, **kwargs): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jean-Luc Auge
					Jean-Luc Auge