[Yt-svn] yt-commit r1159 - trunk/yt/lagos

britton at wrangler.dreamhost.com britton at wrangler.dreamhost.com
Sun Feb 1 16:36:18 PST 2009


Author: britton
Date: Sun Feb  1 16:36:17 2009
New Revision: 1159
URL: http://yt.spacepope.org/changeset/1159

Log:
Added get_parameter method to EnzoStaticOutput to get parameters not in the 
parameterDict dictionary.  get_parameter returns the value of the parameter 
and adds it to the pf.parameters dict.  If the parameter is already in the 
dict, it simply returns it from there.  The optional keyword, type, can be 
supplied to cast the parameter value(s) as any given type.


Modified:
   trunk/yt/lagos/OutputTypes.py

Modified: trunk/yt/lagos/OutputTypes.py
==============================================================================
--- trunk/yt/lagos/OutputTypes.py	(original)
+++ trunk/yt/lagos/OutputTypes.py	Sun Feb  1 16:36:17 2009
@@ -196,6 +196,43 @@
         self.parameters["DomainRightEdge"] = \
             na.concatenate([self["DomainRightEdge"], [1.0]])
 
+    def get_parameter(self,parameter,type=None):
+        """
+        Gets a parameter not in the parameterDict.
+        """
+        if self.parameters.has_key(parameter):
+            return self.parameters[parameter]
+
+        # Let's read the file
+        self.parameters["CurrentTimeIdentifier"] = \
+            int(os.stat(self.parameter_filename)[ST_CTIME])
+        lines = open(self.parameter_filename).readlines()
+        for lineI, line in enumerate(lines):
+            if line.find("#") >= 1: # Keep the commented lines
+                line=line[:line.find("#")]
+            line=line.strip().rstrip()
+            if len(line) < 2:
+                continue
+            try:
+                param, vals = map(strip,map(rstrip,line.split("=")))
+            except ValueError:
+                mylog.error("ValueError: '%s'", line)
+            if parameter == param:
+                if type is None:
+                    t = vals.split()
+                else:
+                    t = map(type, vals.split())
+                if len(t) == 1:
+                    self.parameters[param] = t[0]
+                else:
+                    self.parameters[param] = t
+                if param.endswith("Units") and not param.startswith("Temperature"):
+                    dataType = param[:-5]
+                    self.conversion_factors[dataType] = self.parameters[param]
+                return self.parameters[parameter]
+
+        return ""
+
     def _parse_parameter_file(self):
         """
         Parses the parameter file and establishes the various



More information about the yt-svn mailing list