Exemple #1
0
 def check_derived_fields(self, fields_to_check=None):
     deps = {}
     unavailable = []
     fields_to_check = fields_to_check or list(self.keys())
     for field in fields_to_check:
         if field not in self:
             raise YTFieldNotFound(str(field))
         fi = self[field]
         try:
             fd = fi.get_dependencies(ds=self.ds)
         except Exception as e:
             if field in self._show_field_errors:
                 raise
             if type(e) != YTFieldNotFound:
                 # if we're doing field tests, raise an error
                 # see yt.fields.tests.test_fields
                 if hasattr(self.ds, '_field_test_dataset'):
                     raise
                 mylog.debug("Raises %s during field %s detection.",
                             str(type(e)), field)
             self.pop(field)
             continue
         # This next bit checks that we can't somehow generate everything.
         # We also manually update the 'requested' attribute
         missing = not all(f in self.field_list for f in fd.requested)
         if missing:
             self.pop(field)
             unavailable.append(field)
             continue
         fd.requested = set(fd.requested)
         deps[field] = fd
         mylog.debug("Succeeded with %s (needs %s)", field, fd.requested)
     dfl = set(self.ds.derived_field_list).union(deps.keys())
     self.ds.derived_field_list = list(sorted(dfl, key=tupleize))
     return deps, unavailable
Exemple #2
0
 def _split_fields(self, fields):
     # This will split fields into either generated or read fields
     fields_to_read, fields_to_generate = [], []
     for ftype, fname in fields:
         if fname in self.field_list or (ftype, fname) in self.field_list:
             fields_to_read.append((ftype, fname))
         elif fname in self.ds.derived_field_list or (ftype, fname) in self.ds.derived_field_list:
             fields_to_generate.append((ftype, fname))
         else:
             raise YTFieldNotFound((ftype,fname), self.ds)
     return fields_to_read, fields_to_generate
Exemple #3
0
def NullFunc(field, data):
    raise YTFieldNotFound(field.name)