[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