Exemple #1
0
def validate_width_tuple(width):
    if not iterable(width) or len(width) != 2:
        raise YTInvalidWidthError("width (%s) is not a two element tuple" % width)
    if not isinstance(width[0], numeric_type) and isinstance(width[1], string_types):
        msg = "width (%s) is invalid. " % str(width)
        msg += "Valid widths look like this: (12, 'au')"
        raise YTInvalidWidthError(msg)
Exemple #2
0
def validate_width_tuple(width):
    if not is_sequence(width) or len(width) != 2:
        raise YTInvalidWidthError(f"width ({width}) is not a two element tuple")
    is_numeric = isinstance(width[0], numeric_type)
    length_has_units = isinstance(width[0], YTArray)
    unit_is_string = isinstance(width[1], str)
    if not is_numeric or length_has_units and unit_is_string:
        msg = f"width ({str(width)}) is invalid. "
        msg += "Valid widths look like this: (12, 'au')"
        raise YTInvalidWidthError(msg)
Exemple #3
0
def validate_width_tuple(width):
    if not iterable(width) or len(width) != 2:
        raise YTInvalidWidthError(
            "width (%s) is not a two element tuple" % width)
    is_numeric = isinstance(width[0], numeric_type)
    length_has_units = isinstance(width[0], YTArray)
    unit_is_string = isinstance(width[1], string_types)
    if not is_numeric or length_has_units and unit_is_string:
        msg = "width (%s) is invalid. " % str(width)
        msg += "Valid widths look like this: (12, 'au')"
        raise YTInvalidWidthError(msg)
Exemple #4
0
 def sanitize_width(self, axis, width, depth):
     if width is None:
         # initialize the index if it is not already initialized
         self.ds.index
         # Default to code units
         if not iterable(axis):
             xax = self.x_axis[axis]
             yax = self.y_axis[axis]
             w = self.ds.domain_width[np.array([xax, yax])]
         else:
             # axis is actually the normal vector
             # for an off-axis data object.
             mi = np.argmin(self.ds.domain_width)
             w = self.ds.domain_width[np.array((mi, mi))]
         width = (w[0], w[1])
     elif iterable(width):
         width = validate_iterable_width(width, self.ds)
     elif isinstance(width, YTQuantity):
         width = (width, width)
     elif isinstance(width, Number):
         width = (
             self.ds.quan(width, "code_length"),
             self.ds.quan(width, "code_length"),
         )
     else:
         raise YTInvalidWidthError(width)
     if depth is not None:
         depth = self.sanitize_depth(depth)
         return width + depth
     return width
Exemple #5
0
 def sanitize_depth(self, depth):
     if iterable(depth):
         validate_width_tuple(depth)
         depth = (self.ds.quan(depth[0], fix_unitary(depth[1])), )
     elif isinstance(depth, Number):
         depth = (self.ds.quan(depth, 'code_length',
                               registry=self.ds.unit_registry), )
     elif isinstance(depth, YTQuantity):
         depth = (depth, )
     else:
         raise YTInvalidWidthError(depth)
     return depth