[yt-svn] commit/yt: 2 new changesets

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed Aug 2 13:36:43 PDT 2017


2 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/489e8f0fe54f/
Changeset:   489e8f0fe54f
User:        ngoldbaum
Date:        2017-08-01 17:16:20+00:00
Summary:     Print a more descriptive error message when defining a particle filter fails with missing fields. Closes #1278
Affected #:  3 files

diff -r 43ce1051199f158b6b66f6f6a8feea794c92c4c2 -r 489e8f0fe54fce7e989a2b8db93f8e6953751d7a yt/data_objects/particle_filters.py
--- a/yt/data_objects/particle_filters.py
+++ b/yt/data_objects/particle_filters.py
@@ -69,6 +69,10 @@
         # fields are implicitly "all" or something.
         return all((self.filtered_type, field) in field_list for field in self.requires)
 
+    def missing(self, field_list):
+        return list((self.filtered_type, field) for field in self.requires if
+                    (self.filtered_type, field) not in field_list)
+
     def wrap_func(self, field_name, old_fi):
         new_fi = copy.copy(old_fi)
         new_fi.name = (self.name, field_name[1])

diff -r 43ce1051199f158b6b66f6f6a8feea794c92c4c2 -r 489e8f0fe54fce7e989a2b8db93f8e6953751d7a yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -37,7 +37,8 @@
 from yt.utilities.exceptions import \
     YTObjectNotImplemented, \
     YTFieldNotFound, \
-    YTGeometryNotSupported
+    YTGeometryNotSupported, \
+    YTIllDefinedParticleFilter
 from yt.utilities.parallel_tools.parallel_analysis_interface import \
     parallel_root_only
 from yt.utilities.parameter_file_storage import \
@@ -675,7 +676,8 @@
 
     def _setup_filtered_type(self, filter):
         if not filter.available(self.derived_field_list):
-            return False
+            raise YTIllDefinedParticleFilter(
+                filter, filter.missing(self.derived_field_list))
         fi = self.field_info
         fd = self.field_dependencies
         available = False

diff -r 43ce1051199f158b6b66f6f6a8feea794c92c4c2 -r 489e8f0fe54fce7e989a2b8db93f8e6953751d7a yt/utilities/exceptions.py
--- a/yt/utilities/exceptions.py
+++ b/yt/utilities/exceptions.py
@@ -392,6 +392,17 @@
         return "Filter '%s' ill-defined.  Applied to shape %s but is shape %s." % (
             self.filter, self.s1, self.s2)
 
+class YTIllDefinedParticleFilter(YTException):
+    def __init__(self, filter, missing):
+        self.filter = filter
+        self.missing = missing
+
+    def __str__(self):
+        msg = ("\nThe fields\n\t{},\nrequired by the \"{}\" particle filter, "
+               "are not defined for this dataset.")
+        f = self.filter
+        return msg.format("\n".join([str(m) for m in self.missing]), f.name)
+
 class YTIllDefinedBounds(YTException):
     def __init__(self, lb, ub):
         self.lb = lb


https://bitbucket.org/yt_analysis/yt/commits/2152370f3f35/
Changeset:   2152370f3f35
User:        ngoldbaum
Date:        2017-08-02 20:36:30+00:00
Summary:     Merge pull request #1517 from ngoldbaum/pfilter-error

Print a more descriptive error message when defining a particle filter fails with missing fields
Affected #:  3 files

diff -r b8aedc8ed7a1da10290ac924dcf219eb854d0a52 -r 2152370f3f35c2bcb1a74563bc9e2e5af08bc3d5 yt/data_objects/particle_filters.py
--- a/yt/data_objects/particle_filters.py
+++ b/yt/data_objects/particle_filters.py
@@ -69,6 +69,10 @@
         # fields are implicitly "all" or something.
         return all((self.filtered_type, field) in field_list for field in self.requires)
 
+    def missing(self, field_list):
+        return list((self.filtered_type, field) for field in self.requires if
+                    (self.filtered_type, field) not in field_list)
+
     def wrap_func(self, field_name, old_fi):
         new_fi = copy.copy(old_fi)
         new_fi.name = (self.name, field_name[1])

diff -r b8aedc8ed7a1da10290ac924dcf219eb854d0a52 -r 2152370f3f35c2bcb1a74563bc9e2e5af08bc3d5 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -37,7 +37,8 @@
 from yt.utilities.exceptions import \
     YTObjectNotImplemented, \
     YTFieldNotFound, \
-    YTGeometryNotSupported
+    YTGeometryNotSupported, \
+    YTIllDefinedParticleFilter
 from yt.utilities.parallel_tools.parallel_analysis_interface import \
     parallel_root_only
 from yt.utilities.parameter_file_storage import \
@@ -675,7 +676,8 @@
 
     def _setup_filtered_type(self, filter):
         if not filter.available(self.derived_field_list):
-            return False
+            raise YTIllDefinedParticleFilter(
+                filter, filter.missing(self.derived_field_list))
         fi = self.field_info
         fd = self.field_dependencies
         available = False

diff -r b8aedc8ed7a1da10290ac924dcf219eb854d0a52 -r 2152370f3f35c2bcb1a74563bc9e2e5af08bc3d5 yt/utilities/exceptions.py
--- a/yt/utilities/exceptions.py
+++ b/yt/utilities/exceptions.py
@@ -392,6 +392,17 @@
         return "Filter '%s' ill-defined.  Applied to shape %s but is shape %s." % (
             self.filter, self.s1, self.s2)
 
+class YTIllDefinedParticleFilter(YTException):
+    def __init__(self, filter, missing):
+        self.filter = filter
+        self.missing = missing
+
+    def __str__(self):
+        msg = ("\nThe fields\n\t{},\nrequired by the \"{}\" particle filter, "
+               "are not defined for this dataset.")
+        f = self.filter
+        return msg.format("\n".join([str(m) for m in self.missing]), f.name)
+
 class YTIllDefinedBounds(YTException):
     def __init__(self, lb, ub):
         self.lb = lb

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.


More information about the yt-svn mailing list