[yt-svn] commit/yt: ngoldbaum: Merged in atmyers/yt (pull request #2165)

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed May 11 11:23:25 PDT 2016


1 new commit in yt:

https://bitbucket.org/yt_analysis/yt/commits/f9d1b41b06bd/
Changeset:   f9d1b41b06bd
Branch:      yt
User:        ngoldbaum
Date:        2016-05-11 18:23:06+00:00
Summary:     Merged in atmyers/yt (pull request #2165)

[BUGFIX] Give user-added derived fields a default field type. Closes Issue #1029.
Affected #:  3 files

diff -r 0b86fcb157653daf6f3abafcb65518cec55b5a50 -r f9d1b41b06bdb68e6642917795f68766c90a304e yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -597,7 +597,8 @@
             ftype = self._last_freq[0] or ftype
         field = (ftype, fname)
         if field == self._last_freq:
-            return self._last_finfo
+            if field not in self.field_info.field_aliases.values():
+                return self._last_finfo
         if field in self.field_info:
             self._last_freq = field
             self._last_finfo = self.field_info[(ftype, fname)]

diff -r 0b86fcb157653daf6f3abafcb65518cec55b5a50 -r f9d1b41b06bdb68e6642917795f68766c90a304e yt/fields/field_info_container.py
--- a/yt/fields/field_info_container.py
+++ b/yt/fields/field_info_container.py
@@ -253,7 +253,17 @@
                 self[name] = DerivedField(name, f, **kwargs)
                 return f
             return create_function
-        self[name] = DerivedField(name, function, **kwargs)
+        ptype = kwargs.get("particle_type", False)
+        if ptype:
+            ftype = 'all'
+        else:
+            ftype = self.ds.default_fluid_type
+        if not isinstance(name, tuple) and (ftype, name) not in self:
+            tuple_name = (ftype, name)
+            self[tuple_name] = DerivedField(tuple_name, function, **kwargs)
+            self.alias(name, tuple_name)
+        else:
+            self[name] = DerivedField(name, function, **kwargs)
 
     def load_all_plugins(self, ftype="gas"):
         loaded = []

diff -r 0b86fcb157653daf6f3abafcb65518cec55b5a50 -r f9d1b41b06bdb68e6642917795f68766c90a304e yt/fields/tests/test_fields.py
--- a/yt/fields/tests/test_fields.py
+++ b/yt/fields/tests/test_fields.py
@@ -4,6 +4,7 @@
     load
 from yt.testing import \
     fake_random_ds, \
+    fake_particle_ds, \
     assert_almost_equal, \
     assert_equal, \
     assert_array_almost_equal_nulp, \
@@ -313,6 +314,28 @@
     ad['density_alias']
     assert ds.derived_field_list[0] == 'density_alias'
 
+def test_add_field_string_aliasing():
+    ds = fake_random_ds(16)
+
+    def density_alias(field, data):
+        return data['density']
+
+    ds.add_field('density_alias', function=density_alias, units='g/cm**3')
+
+    ds.field_info['density_alias']
+    ds.field_info['gas', 'density_alias']
+
+    ds = fake_particle_ds()
+    
+    def pmass_alias(field, data):
+        return data['particle_mass']
+        
+    ds.add_field('particle_mass_alias', function=pmass_alias, 
+                 units='g', particle_type=True)
+
+    ds.field_info['particle_mass_alias']
+    ds.field_info['all', 'particle_mass_alias']
+    
 
 if __name__ == "__main__":
     setup()

Repository URL: https://bitbucket.org/yt_analysis/yt/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-svn-spacepope.org/attachments/20160511/a7643fef/attachment.html>


More information about the yt-svn mailing list