Package empro
[frames] | no frames]

Source Code for Package empro

  1  # Copyright 1983-2019 Keysight Technologies, Inc , Keysight Confidential 
  2   
  3  import libpyshared 
  4  from libpyshared import * 
  5   
  6  import libpyempro 
  7  from libpyempro import * 
  8  from libpyempro import _calcbridge 
  9   
 10  import layout_wrapper 
 11  import _deprecation 
12 13 14 # Custom metaclass for ActiveProject so that getattr and dir can also be 15 # customized on empro.ActiveProject type, rather than on the instance. 16 -class _ActiveProjectMeta(type):
17 - def __getattr__(cls, name):
18 return getattr(libpyempro._ActiveProject, name)
19 - def __dir__(cls):
20 attrs = set(cls.__dict__) 21 attrs |= set(dir(libpyempro._ActiveProject)) 22 return list(attrs)
23
24 25 # Note to developers: it's no longer necessary to explicitly export members 26 # of libpyempro._activeProject in ActiveProject. The combination of __getattr__, 27 # __setattr__ and __dir__ will do this automatically, also avoiding some 28 # problems with "self". 29 # 30 # The explicit properties have been removed but their helper functions 31 # (starting with _) are still present since they are also part of the API. 32 # These have been deprecated. 33 # 34 -class ActiveProject(object):
35 __metaclass__ = _ActiveProjectMeta 36
37 - def __enter__(self):
39
40 - def __exit__(self, type, value, traceback):
41 return libpyempro._activeProject.__exit__(type, value, traceback)
42
43 - def __del__(self):
44 if hasattr(libpyempro, "_activeProject"): 45 del libpyempro._activeProject
46
47 - def __getattr__(self, name):
48 return getattr(libpyempro._activeProject, name)
49
50 - def __setattr__(self, name, value):
51 # don't use AttributeError instead of hasattr, because it is also 52 # raised in case of read-only attributes and we want to propagate 53 # the AttributeError in those cases ... 54 if hasattr(libpyempro._activeProject, name): 55 setattr(libpyempro._activeProject, name, value) 56 else: 57 object.__setattr__(self, name, value)
58
59 - def __dir__(self):
60 attrs = set(self.__dict__) 61 attrs |= set(dir(ActiveProject)) 62 attrs |= set(dir(libpyempro._activeProject)) 63 return list(attrs)
64
65 - def _project(self):
67 68 @_deprecation.deprecated(390, "Use empro.activeProject.analyses instead.")
69 - def sipiSetupList(self):
70 return self.analyses
71 72 @_deprecation.deprecated(390, "Use empro.activeProject.analyses instead.")
73 - def _analyses(self):
74 return libpyempro._activeProject.analyses
75
76 - def createSimulation(self, iQueue):
77 if self.createSimulationData().parameterSweepEnabled == False: 78 return self._createSimulation(iQueue) 79 else: 80 return self._createParameterizedSimulations(iQueue)
81 82 @staticmethod
83 - def subscribeActiveProjectChanged(function):
85 86 @staticmethod
87 - def _saveActiveProjectToOA(self, location):
88 return libpyempro._activeProject._saveActiveProjectToOA(location)
89 90 @_deprecation.deprecated(390, "Use empro.activeProject.rootdir instead.")
91 - def _rootDir(self):
92 return libpyempro._activeProject.rootDir
93 @_deprecation.deprecated(390, "Use empro.activeProject.rootdir instead.")
94 - def _setRootDir(self, value):
96 97 @_deprecation.deprecated(390, "Use empro.activeProject.location instead.")
98 - def _location(self):
100 @_deprecation.deprecated(390, "Use empro.activeProject.location instead.")
101 - def _setLocation(self, value):
103 104 @_deprecation.deprecated(390, "Use empro.activeProject.readOnly instead.")
105 - def _readOnly(self):
106 return libpyempro._activeProject.readOnly
107 @_deprecation.deprecated(390, "Use empro.activeProject.readOnly instead.")
108 - def _setReadOnly(self, value):
110 111 @_deprecation.deprecated(390, "Use empro.activeProject.lastSavedTime instead.")
112 - def _lastSavedTime(self):
113 return libpyempro._activeProject.lastSavedTime
114 115 @_deprecation.deprecated(390, "Use empro.activeProject.displayUnits instead.")
116 - def _displayUnits(self):
118 119 @_deprecation.deprecated(390, "Use empro.activeProject._skinUndoable instead.")
120 - def _getSkinUndoable(self):
121 return libpyempro._activeProject._skinUndoable
122 @_deprecation.deprecated(390, "Use empro.activeProject._skinUndoable instead.")
123 - def _setSkinUndoable(self, value):
124 libpyempro._activeProject._skinUndoable = value
125 126 @_deprecation.deprecated(390, "Use empro.activeProject.skin instead.")
127 - def _skin(self):
129 @_deprecation.deprecated(390, "Use empro.activeProject.skin instead.")
130 - def _setSkin(self, value):
132 133 @_deprecation.deprecated(390, "Use empro.activeProject.verticalAxis instead.")
134 - def _verticalAxis(self):
135 return libpyempro._activeProject.verticalAxis
136 @_deprecation.deprecated(390, "Use empro.activeProject.verticalAxis instead.")
137 - def _setVerticalAxis(self, value):
138 libpyempro._activeProject.verticalAxis = value
139 140 @_deprecation.deprecated(390, "Use empro.activeProject.useCustomTimestepMultiplier instead.")
142 return libpyempro._activeProject.useCustomTimestepMultiplier
143 @_deprecation.deprecated(390, "Use empro.activeProject.useCustomTimestepMultiplier instead.")
144 - def _setUseCustomTimestepMultiplier(self, value):
145 libpyempro._activeProject.useCustomTimestepMultiplier = value
146 147 @_deprecation.deprecated(390, "Use empro.activeProject.customTimestepMultiplier instead.")
149 return libpyempro._activeProject.useCustomTimestepMultiplier
150 @_deprecation.deprecated(390, "Use empro.activeProject.customTimestepMultiplier instead.")
151 - def _setCustomTimestepMultiplier(self, value):
152 libpyempro._activeProject.customTimestepMultiplier = value
153 154 @_deprecation.deprecated(390, "Use empro.activeProject.name instead.")
155 - def _name(self):
157 @_deprecation.deprecated(390, "Use empro.activeProject.name instead.")
158 - def _setName(self, value):
160 161 @_deprecation.deprecated(390, "Use empro.activeProject.notes instead.")
162 - def _notes(self):
164 @_deprecation.deprecated(390, "Use empro.activeProject.notes instead.")
165 - def _setNotes(self, value):
167 168 @_deprecation.deprecated(390, "Use empro.activeProject.layout instead.")
169 - def _layout(self):
170 return layout_wrapper.LayoutWrapper(self)
171 172 @property
173 - def layout(self):
174 return layout_wrapper.LayoutWrapper(self)
175 176 177 activeProject = ActiveProject()
178 179 -def _cleanWorkDirectoryIfRequested():
180 try: 181 global emproCleanWorkDirOnExitTargets 182 import shutil 183 for dir in emproCleanWorkDirOnExitTargets: 184 shutil.rmtree(dir) 185 print 'cleaning working dir' 186 except: 187 pass
188
189 -def _empro_at_exit():
190 global activeProject 191 del activeProject 192 output.resultBrowser().clear() 193 _cleanWorkDirectoryIfRequested()
194
195 196 -def _empro_init():
197 import sys 198 import os 199 import atexit 200 import inspect 201 202 # alias the libpyshared into libpyempro 203 for symbol,value in libpyshared.gui.__dict__.iteritems(): 204 if not symbol.startswith("__"): 205 libpyempro.gui.__dict__[symbol] = value 206 207 for name, member in inspect.getmembers(libpyempro): 208 if inspect.ismodule(member): 209 sys.modules["{}.{}".format(__name__, name)] = member 210 211 if os.getenv('EMPROHOME') is None: 212 parent_dir = os.path.join(os.path.dirname(__file__), os.pardir) 213 os.environ['EMPROHOME'] = os.path.abspath(parent_dir) 214 215 os.environ['PCELLBROKER_HOME'] = os.path.join(os.environ['EMPROHOME'], 'broker') 216 pcellBrokerEnv = [x for x in os.environ.get('PCELLBROKER_ENV', '').split('=') if x] 217 for name in ['LD_LIBRARY_PATH', 'OA_PLUGIN_PATH', 'PATH', 'PYTHONHOME', 'PYTHONPATH']: 218 if name not in pcellBrokerEnv: 219 pcellBrokerEnv.append(name) 220 if name in os.environ: 221 os.environ['PCELLBROKER_ENV_{}'.format(name)] = os.environ[name] 222 os.environ['PCELLBROKER_ENV'] = ''.join([(x + '=') for x in pcellBrokerEnv]) 223 224 if os.getenv('PYTHONHOME') is None: 225 # some python embedders down the road get confused 226 os.environ['PYTHONHOME'] = sys.prefix + os.pathsep + sys.exec_prefix 227 228 global emproCleanWorkDirOnExitTargets 229 emproCleanWorkDirOnExitTargets = [] 230 atexit.register(_empro_at_exit) 231 232 import compatibility 233 compatibility.useAll() 234 235 return os.environ['EMPROHOME']
236 237 emprohome = _empro_init() 238 239 240 # EOF 241