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

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Mon Oct 12 11:58:16 PDT 2015


4 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/33fbd5e7cc5a/
Changeset:   33fbd5e7cc5a
Branch:      yt
User:        ngoldbaum
Date:        2015-10-05 04:35:14+00:00
Summary:     Avoid type indirection when setting up data object entry points. Fixes #1088
Affected #:  2 files

diff -r b7afd79a9820e8605a1e73c5d3d7a077cae7fe96 -r 33fbd5e7cc5aa31667ded4a8e731217a77b030a8 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -836,11 +836,11 @@
     filename = None
     @wraps(YTCoveringGridBase.__init__)
     def __init__(self, *args, **kwargs):
+        self.global_endindex = None
+        YTCoveringGridBase.__init__(self, *args, **kwargs)
         self._base_dx = (
               (self.ds.domain_right_edge - self.ds.domain_left_edge) /
                self.ds.domain_dimensions.astype("float64"))
-        self.global_endindex = None
-        YTCoveringGridBase.__init__(self, *args, **kwargs)
         self._final_start_index = self.global_startindex
 
     def _setup_data_source(self, level_state = None):
@@ -1006,14 +1006,13 @@
                          ("index", "y"),
                          ("index", "z"))
     vertices = None
-    def __init__(self, data_source, surface_field, field_value):
+    def __init__(self, data_source, surface_field, field_value, ds=None):
         self.data_source = data_source
         self.surface_field = surface_field
         self.field_value = field_value
         self.vertex_samples = YTFieldData()
         center = data_source.get_field_parameter("center")
-        super(YTSurfaceBase, self).__init__(center = center, ds =
-                    data_source.ds )
+        super(YTSurfaceBase, self).__init__(center = center, ds=ds)
 
     def _generate_container_field(self, field):
         self.get_data(field)

diff -r b7afd79a9820e8605a1e73c5d3d7a077cae7fe96 -r 33fbd5e7cc5aa31667ded4a8e731217a77b030a8 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -554,7 +554,7 @@
                 continue
             cname = cls.__name__
             if cname.endswith("Base"): cname = cname[:-4]
-            self._add_object_class(name, cname, cls, {'ds':weakref.proxy(self)})
+            self._add_object_class(name, cls)
         if self.refine_by != 2 and hasattr(self, 'proj') and \
             hasattr(self, 'overlap_proj'):
             mylog.warning("Refine by something other than two: reverting to"
@@ -567,10 +567,9 @@
             self.proj = self.overlap_proj
         self.object_types.sort()
 
-    def _add_object_class(self, name, class_name, base, dd):
+    def _add_object_class(self, name, base):
         self.object_types.append(name)
-        dd.update({'__doc__': base.__doc__})
-        obj = type(class_name, (base,), dd)
+        obj = functools.partial(base, ds=weakref.proxy(self))
         setattr(self, name, obj)
 
     def find_max(self, field):


https://bitbucket.org/yt_analysis/yt/commits/1b9c5ff35f35/
Changeset:   1b9c5ff35f35
Branch:      yt
User:        ngoldbaum
Date:        2015-10-05 17:01:51+00:00
Summary:     Initialize SmoothedCoveringGrid _base_dx before calling CoveringGrid initializer
Affected #:  1 file

diff -r 33fbd5e7cc5aa31667ded4a8e731217a77b030a8 -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -836,11 +836,11 @@
     filename = None
     @wraps(YTCoveringGridBase.__init__)
     def __init__(self, *args, **kwargs):
+        ds = kwargs['ds']
+        self._base_dx = ((ds.domain_right_edge - ds.domain_left_edge) /
+                         ds.domain_dimensions.astype("float64"))
         self.global_endindex = None
         YTCoveringGridBase.__init__(self, *args, **kwargs)
-        self._base_dx = (
-              (self.ds.domain_right_edge - self.ds.domain_left_edge) /
-               self.ds.domain_dimensions.astype("float64"))
         self._final_start_index = self.global_startindex
 
     def _setup_data_source(self, level_state = None):


https://bitbucket.org/yt_analysis/yt/commits/66088a017978/
Changeset:   66088a017978
Branch:      yt
User:        ngoldbaum
Date:        2015-10-11 18:06:22+00:00
Summary:     Changing all data container names to drop the "Base" part of their names.
Affected #:  20 files

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/analyzing/filtering.rst
--- a/doc/source/analyzing/filtering.rst
+++ b/doc/source/analyzing/filtering.rst
@@ -23,7 +23,7 @@
 ----------------------
 
 Mesh fields can be filtered by two methods: cut region objects 
-(:class:`~yt.data_objects.selection_data_containers.YTCutRegionBase`) 
+(:class:`~yt.data_objects.selection_data_containers.YTCutRegion`) 
 and NumPy boolean masks.  Boolean masks are simpler, but they only work
 for examining datasets, whereas cut regions objects create wholly new
 data objects suitable for full analysis (data examination, image generation, 

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/analyzing/generating_processed_data.rst
--- a/doc/source/analyzing/generating_processed_data.rst
+++ b/doc/source/analyzing/generating_processed_data.rst
@@ -173,7 +173,7 @@
 ---------------------------------
 
 To calculate the values along a line connecting two points in a simulation, you
-can use the object :class:`~yt.data_objects.selection_data_containers.YTRayBase`,
+can use the object :class:`~yt.data_objects.selection_data_containers.YTRay`,
 accessible as the ``ray`` property on a index.  (See :ref:`data-objects`
 for more information on this.)  To do so, you can supply two points and access
 fields within the returned object.  For instance, this code will generate a ray

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/analyzing/objects.rst
--- a/doc/source/analyzing/objects.rst
+++ b/doc/source/analyzing/objects.rst
@@ -1,4 +1,4 @@
-.. _data-objects:
+.. _Data-objects:
 
 Data Objects
 ============
@@ -97,7 +97,7 @@
 """"""""""
 
 **Point** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTPointBase`    
+    | Class :class:`~yt.data_objects.selection_data_containers.YTPoint`    
     | Usage: ``point(coord, ds=None, field_parameters=None, data_source=None)``
     | A point defined by a single cell at specified coordinates.
 
@@ -105,7 +105,7 @@
 """"""""""
 
 **Ray (Axis-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTOrthoRayBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTOrthoRay`
     | Usage: ``ortho_ray(axis, coord, ds=None, field_parameters=None, data_source=None)``
     | A line (of data cells) stretching through the full domain 
       aligned with one of the x,y,z axes.  Defined by an axis and a point
@@ -113,7 +113,7 @@
       :ref:`note about ray data value ordering <ray-data-ordering>`.
 
 **Ray (Arbitrarily-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTRayBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTRay`
     | Usage: ``ray(start_coord, end_coord, ds=None, field_parameters=None, data_source=None)``
     | A line (of data cells) defined by arbitrary start and end coordinates. 
       Please see this 
@@ -123,13 +123,13 @@
 """"""""""
 
 **Slice (Axis-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTSliceBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTSlice`
     | Usage: ``slice(axis, coord, center=None, ds=None, field_parameters=None, data_source=None)``
     | A plane normal to one of the axes and intersecting a particular 
       coordinate.
 
 **Slice (Arbitrarily-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTCuttingPlaneBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTCuttingPlane`
     | Usage: ``cutting(normal, coord, north_vector=None, ds=None, field_parameters=None, data_source=None)``
     | A plane normal to a specified vector and intersecting a particular 
       coordinate.
@@ -145,7 +145,7 @@
       ``ds.region(ds.domain_center, ds.domain_left_edge, ds.domain_right_edge)``.
 
 **Box Region** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTRegionBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTRegion`
     | Usage: ``region(center, left_edge, right_edge, fields=None, ds=None, field_parameters=None, data_source=None)``
     | Alternatively: ``box(left_edge, right_edge, fields=None, ds=None, field_parameters=None, data_source=None)``
     | A box-like region aligned with the grid axis orientation.  It is 
@@ -156,14 +156,14 @@
       is assumed to be the midpoint between the left and right edges.
 
 **Disk/Cylinder** 
-    | Class: :class:`~yt.data_objects.selection_data_containers.YTDiskBase`
+    | Class: :class:`~yt.data_objects.selection_data_containers.YTDisk`
     | Usage: ``disk(center, normal, radius, height, fields=None, ds=None, field_parameters=None, data_source=None)``
     | A cylinder defined by a point at the center of one of the circular bases,
       a normal vector to it defining the orientation of the length of the
       cylinder, and radius and height values for the cylinder's dimensions.
 
 **Ellipsoid** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTEllipsoidBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTEllipsoid`
     | Usage: ``ellipsoid(center, semi_major_axis_length, semi_medium_axis_length, semi_minor_axis_length, semi_major_vector, tilt, fields=None, ds=None, field_parameters=None, data_source=None)``
     | An ellipsoid with axis magnitudes set by semi_major_axis_length, 
      semi_medium_axis_length, and semi_minor_axis_length.  semi_major_vector 
@@ -171,7 +171,7 @@
      of the semi-medium and semi_minor axes.
 
 **Sphere** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTSphereBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTSphere`
     | Usage: ``sphere(center, radius, ds=None, field_parameters=None, data_source=None)``
     | A sphere defined by a central coordinate and a radius.
 
@@ -194,7 +194,7 @@
     | See :ref:`boolean_data_objects`.
 
 **Filter** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTCutRegionBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTCutRegion`
     | Usage: ``cut_region(base_object, conditionals, ds=None, field_parameters=None)``
     | A ``cut_region`` is a filter which can be applied to any other data 
       object.  The filter is defined by the conditionals present, which 
@@ -203,7 +203,7 @@
       For more detailed information and examples, see :ref:`cut-regions`.
 
 **Collection of Data Objects** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTDataCollectionBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTDataCollection`
     | Usage: ``data_collection(center, obj_list, ds=None, field_parameters=None)``
     | A ``data_collection`` is a list of data objects that can be 
       sampled and processed as a whole in a single data object.
@@ -214,13 +214,13 @@
 ^^^^^^^^^^^^^^^^^^^^
 
 **Fixed-Resolution Region** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTCoveringGridBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTCoveringGrid`
     | Usage: ``covering_grid(level, left_edge, dimensions, fields=None, ds=None, num_ghost_zones=0, use_pbar=True, field_parameters=None)``
     | A 3D region with all data extracted to a single, specified resolution.
       See :ref:`examining-grid-data-in-a-fixed-resolution-array`.
 
 **Fixed-Resolution Region with Smoothing** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTSmoothedCoveringGridBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTSmoothedCoveringGrid`
     | Usage: ``smoothed_covering_grid(level, left_edge, dimensions, fields=None, ds=None, num_ghost_zones=0, use_pbar=True, field_parameters=None)``
     | A 3D region with all data extracted and interpolated to a single, 
       specified resolution.  Identical to covering_grid, except that it 
@@ -228,7 +228,7 @@
       :ref:`examining-grid-data-in-a-fixed-resolution-array`.
 
 **Fixed-Resolution Region for Particle Deposition** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTArbitraryGridBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTArbitraryGrid`
     | Usage: ``arbitrary_grid(left_edge, right_edge, dimensions, ds=None, field_parameters=None)``
     | When particles are deposited on to mesh fields, they use the existing
       mesh structure, but this may have too much or too little resolution
@@ -238,7 +238,7 @@
       information.
 
 **Projection** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTQuadTreeProjBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTQuadTreeProj`
     | Usage: ``proj(field, axis, weight_field=None, center=None, ds=None, data_source=None, method="integrate", field_parameters=None)``
     | A 2D projection of a 3D volume along one of the axis directions.  
       By default, this is a line integral through the entire simulation volume 
@@ -248,14 +248,14 @@
       of the projection outcome.  See :ref:`projection-types` for more information.
 
 **Streamline** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTStreamlineBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTStreamline`
     | Usage: ``streamline(coord_list, length, fields=None, ds=None, field_parameters=None)``
     | A ``streamline`` can be traced out by identifying a starting coordinate (or 
       list of coordinates) and allowing it to trace a vector field, like gas
       velocity.  See :ref:`streamlines` for more information.
 
 **Surface** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTSurfaceBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTSurface`
     | Usage: ``surface(data_source, field, field_value)``
     | The surface defined by all an isocontour in any mesh field.  An existing 
       data object must be provided as the source, as well as a mesh field
@@ -358,7 +358,7 @@
 holdover from the time when yt was used exclusively for data that came in
 regularly structured grid patches, and does not necessarily work as well for
 data that is composed of discrete objects like particles.  To augment this, the
-:class:`~yt.data_objects.construction_data_containers.YTArbitraryGridBase` object 
+:class:`~yt.data_objects.construction_data_containers.YTArbitraryGrid` object 
 was created, which enables construction of meshes (onto which particles can be
 deposited or smoothed) in arbitrary regions.  This eliminates any assumptions
 on yt's part about how the data is organized, and will allow for more
@@ -444,7 +444,7 @@
 set of level sets.  The second (``connected_sets``) will be a dict of dicts.
 The key for the first (outer) dict is the level of the contour, corresponding
 to ``contour_values``.  The inner dict returned is keyed by the contour ID.  It
-contains :class:`~yt.data_objects.selection_data_containers.YTCutRegionBase`
+contains :class:`~yt.data_objects.selection_data_containers.YTCutRegion`
 objects.  These can be queried just as any other data object.  The clump finder 
 (:ref:`clump_finding`) differs from the above method in that the contour 
 identification is performed recursively within each individual structure, and 

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/faq/index.rst
--- a/doc/source/faq/index.rst
+++ b/doc/source/faq/index.rst
@@ -329,8 +329,8 @@
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Using the Ray objects 
-(:class:`~yt.data_objects.selection_data_containers.YTOrthoRayBase` and 
-:class:`~yt.data_objects.selection_data_containers.YTRayBase`) with AMR data 
+(:class:`~yt.data_objects.selection_data_containers.YTOrthoRay` and 
+:class:`~yt.data_objects.selection_data_containers.YTRay`) with AMR data 
 gives non-contiguous cell information in the Ray's data array. The 
 higher-resolution cells are appended to the end of the array.  Unfortunately, 
 due to how data is loaded by chunks for data containers, there is really no 

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/reference/api/api.rst
--- a/doc/source/reference/api/api.rst
+++ b/doc/source/reference/api/api.rst
@@ -87,17 +87,17 @@
 .. autosummary::
    :toctree: generated/
 
-   ~yt.data_objects.selection_data_containers.YTPointBase
-   ~yt.data_objects.selection_data_containers.YTOrthoRayBase
-   ~yt.data_objects.selection_data_containers.YTRayBase
-   ~yt.data_objects.selection_data_containers.YTSliceBase
-   ~yt.data_objects.selection_data_containers.YTCuttingPlaneBase
-   ~yt.data_objects.selection_data_containers.YTDiskBase
-   ~yt.data_objects.selection_data_containers.YTRegionBase
-   ~yt.data_objects.selection_data_containers.YTDataCollectionBase
-   ~yt.data_objects.selection_data_containers.YTSphereBase
-   ~yt.data_objects.selection_data_containers.YTEllipsoidBase
-   ~yt.data_objects.selection_data_containers.YTCutRegionBase
+   ~yt.data_objects.selection_data_containers.YTPoint
+   ~yt.data_objects.selection_data_containers.YTOrthoRay
+   ~yt.data_objects.selection_data_containers.YTRay
+   ~yt.data_objects.selection_data_containers.YTSlice
+   ~yt.data_objects.selection_data_containers.YTCuttingPlane
+   ~yt.data_objects.selection_data_containers.YTDisk
+   ~yt.data_objects.selection_data_containers.YTRegion
+   ~yt.data_objects.selection_data_containers.YTDataCollection
+   ~yt.data_objects.selection_data_containers.YTSphere
+   ~yt.data_objects.selection_data_containers.YTEllipsoid
+   ~yt.data_objects.selection_data_containers.YTCutRegion
    ~yt.data_objects.grid_patch.AMRGridPatch
 
 Construction Objects
@@ -110,12 +110,12 @@
 .. autosummary::
    :toctree: generated/
 
-   ~yt.data_objects.construction_data_containers.YTStreamlineBase
-   ~yt.data_objects.construction_data_containers.YTQuadTreeProjBase
-   ~yt.data_objects.construction_data_containers.YTCoveringGridBase
-   ~yt.data_objects.construction_data_containers.YTArbitraryGridBase
-   ~yt.data_objects.construction_data_containers.YTSmoothedCoveringGridBase
-   ~yt.data_objects.construction_data_containers.YTSurfaceBase
+   ~yt.data_objects.construction_data_containers.YTStreamline
+   ~yt.data_objects.construction_data_containers.YTQuadTreeProj
+   ~yt.data_objects.construction_data_containers.YTCoveringGrid
+   ~yt.data_objects.construction_data_containers.YTArbitraryGrid
+   ~yt.data_objects.construction_data_containers.YTSmoothedCoveringGrid
+   ~yt.data_objects.construction_data_containers.YTSurface
 
 Time Series Objects
 ^^^^^^^^^^^^^^^^^^^

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/visualizing/callbacks.rst
--- a/doc/source/visualizing/callbacks.rst
+++ b/doc/source/visualizing/callbacks.rst
@@ -677,9 +677,13 @@
    (This is a proxy for
    :class:`~yt.visualization.plot_modifications.RayCallback`.)
 
-    Adds a line representing the projected path of a ray across the plot.
-    The ray can be either a YTOrthoRayBase, YTRayBase, or a LightRay object.
-    annotate_ray() will properly account for periodic rays across the volume.
+    Adds a line representing the projected path of a ray across the plot.  The
+    ray can be either a
+    :class:`~yt.data_objects.selection_data_containers.YTOrthoRay`,
+    :class:`~yt.data_objects.selection_data_contaners.YTRay`, or a
+    :class:`~yt.analysis_modules.cosmological_observation.light_ray.light_ray.LightRay`
+    object.  annotate_ray() will properly account for periodic rays across the
+    volume.
 
 .. python-script::
 

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/visualizing/manual_plotting.rst
--- a/doc/source/visualizing/manual_plotting.rst
+++ b/doc/source/visualizing/manual_plotting.rst
@@ -125,7 +125,7 @@
 This is perhaps the simplest thing to do. yt provides a number of one
 dimensional objects, and these return a 1-D numpy array of their contents with
 direct dictionary access. As a simple example, take a
-:class:`~yt.data_objects.selection_data_containers.YTOrthoRayBase` object, which can be
+:class:`~yt.data_objects.selection_data_containers.YTOrthoRay` object, which can be
 created from a index by calling ``pf.ortho_ray(axis, center)``.
 
 .. python-script::

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/visualizing/plots.rst
--- a/doc/source/visualizing/plots.rst
+++ b/doc/source/visualizing/plots.rst
@@ -192,7 +192,7 @@
 
 Off axis slice plots can be generated in much the same way as
 grid-aligned slices.  Off axis slices use
-:class:`~yt.data_objects.selection_data_containers.YTCuttingPlaneBase` to slice
+:class:`~yt.data_objects.selection_data_containers.YTCuttingPlane` to slice
 through simulation domains at an arbitrary oblique angle.  A
 :class:`~yt.visualization.plot_window.OffAxisSlicePlot` can be
 instantiated by specifying a dataset, the normal to the cutting
@@ -670,7 +670,7 @@
    plot = yt.ProfilePlot(my_galaxy, "density", ["temperature"])
    plot.save()
 
-This will create a :class:`~yt.data_objects.selection_data_containers.YTDiskBase`
+This will create a :class:`~yt.data_objects.selection_data_containers.YTDisk`
 centered at [0.5, 0.5, 0.5], with a normal vector of [0.0, 0.0, 1.0], radius of
 10 kiloparsecs and height of 3 kiloparsecs and will then make a plot of the
 mass-weighted average temperature as a function of density for all of the gas

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/visualizing/sketchfab.rst
--- a/doc/source/visualizing/sketchfab.rst
+++ b/doc/source/visualizing/sketchfab.rst
@@ -47,7 +47,7 @@
 both of these operations will run in parallel.  For more information on enabling
 parallelism in yt, see :ref:`parallel-computation`.
 
-Alternatively, you can make an object called ``YTSurfaceBase`` that makes
+Alternatively, you can make an object called ``YTSurface`` that makes
 this process much easier.  You can create one of these objects by specifying a
 source data object and a field over which to identify a surface at a given
 value.  For example:
@@ -101,7 +101,7 @@
 discuss morphological properties of a dataset with collaborators.  It's also
 just plain cool.
 
-The ``YTSurfaceBase`` object includes a method to upload directly to Sketchfab,
+The ``YTSurface`` object includes a method to upload directly to Sketchfab,
 but it requires that you get an API key first.  You can get this API key by
 creating an account and then going to your "dashboard," where it will be listed
 on the right hand side.  Once you've obtained it, put it into your

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/visualizing/streamlines.rst
--- a/doc/source/visualizing/streamlines.rst
+++ b/doc/source/visualizing/streamlines.rst
@@ -19,7 +19,7 @@
 returned a set of 3D positions that can, in turn, be used to visualize
 the 3D path of the streamlines.  Additionally, individual streamlines
 can be converted into
-:class:`~yt.data_objects.construction_data_containers.YTStreamlineBase` objects,
+:class:`~yt.data_objects.construction_data_containers.YTStreamline` objects,
 and queried for all the available fields along the streamline.
 
 The implementation of streamlining  in yt is described below.
@@ -100,7 +100,7 @@
     let us know on the yt-dev mailing list.
 
 Once the streamlines are found, a
-:class:`~yt.data_objects.construction_data_containers.YTStreamlineBase` object can
+:class:`~yt.data_objects.construction_data_containers.YTStreamline` object can
 be created using the
 :meth:`~yt.visualization.streamlines.Streamlines.path` function, which
 takes as input the index of the streamline requested. This conversion

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 doc/source/yt3differences.rst
--- a/doc/source/yt3differences.rst
+++ b/doc/source/yt3differences.rst
@@ -295,7 +295,7 @@
 Previously, projections were inconsistent with the other data objects.
 (The API for Plot Windows is the same.)  The argument order is now ``field``
 then ``axis`` as seen here: 
-:class:`~yt.data_objects.construction_data_containers.YTQuadTreeProjBase`.
+:class:`~yt.data_objects.construction_data_containers.YTQuadTreeProj`.
 
 Field Parameters
 ^^^^^^^^^^^^^^^^

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/analysis_modules/halo_finding/halo_objects.py
--- a/yt/analysis_modules/halo_finding/halo_objects.py
+++ b/yt/analysis_modules/halo_finding/halo_objects.py
@@ -299,7 +299,7 @@
 
         Returns
         -------
-        sphere : `yt.data_objects.api.YTSphereBase`
+        sphere : `yt.data_objects.api.YTSphere`
             The empty data source.
 
         Examples
@@ -668,7 +668,7 @@
 
         Returns
         -------
-        ellipsoid : `yt.data_objects.data_containers.YTEllipsoidBase`
+        ellipsoid : `yt.data_objects.data_containers.YTEllipsoid`
             The ellipsoidal data object.
 
         Examples
@@ -861,7 +861,7 @@
 
         Returns
         -------
-        ellipsoid : `yt.data_objects.data_containers.YTEllipsoidBase`
+        ellipsoid : `yt.data_objects.data_containers.YTEllipsoid`
             The ellipsoidal data object.
 
         Examples
@@ -890,7 +890,7 @@
 
         Returns
         -------
-        sphere : `yt.data_objects.api.YTSphereBase`
+        sphere : `yt.data_objects.api.YTSphere`
             The empty data source.
 
         Examples

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -58,7 +58,7 @@
 from yt.fields.derived_field import \
     TranslationFunc
 
-class YTStreamlineBase(YTSelectionContainer1D):
+class YTStreamline(YTSelectionContainer1D):
     """
     This is a streamline, which is a set of points defined as
     being parallel to some vector field.
@@ -152,7 +152,7 @@
         return mask
 
 
-class YTQuadTreeProjBase(YTSelectionContainer2D):
+class YTQuadTreeProj(YTSelectionContainer2D):
     """
     This is a data object corresponding to a line integral through the
     simulation domain.
@@ -455,7 +455,7 @@
         pw = self._get_pw(fields, center, width, origin, 'Projection')
         return pw
 
-class YTCoveringGridBase(YTSelectionContainer3D):
+class YTCoveringGrid(YTSelectionContainer3D):
     """A 3D region with all data extracted to a single, specified
     resolution.  Left edge should align with a cell boundary, but
     defaults to the closest cell boundary.
@@ -736,7 +736,7 @@
                                sim_time=self.ds.current_time.v)
         write_to_gdf(ds, gdf_path, **kwargs)
 
-class YTArbitraryGridBase(YTCoveringGridBase):
+class YTArbitraryGrid(YTCoveringGrid):
     """A 3D region with arbitrary bounds and dimensions.
 
     In contrast to the Covering Grid, this object accepts a left edge, a right
@@ -806,7 +806,7 @@
     base_dx = None
     dds = None
 
-class YTSmoothedCoveringGridBase(YTCoveringGridBase):
+class YTSmoothedCoveringGrid(YTCoveringGrid):
     """A 3D region with all data extracted and interpolated to a
     single, specified resolution. (Identical to covering_grid,
     except that it interpolates.)
@@ -834,13 +834,13 @@
     """
     _type_name = "smoothed_covering_grid"
     filename = None
-    @wraps(YTCoveringGridBase.__init__)
+    @wraps(YTCoveringGrid.__init__)
     def __init__(self, *args, **kwargs):
         ds = kwargs['ds']
         self._base_dx = ((ds.domain_right_edge - ds.domain_left_edge) /
                          ds.domain_dimensions.astype("float64"))
         self.global_endindex = None
-        YTCoveringGridBase.__init__(self, *args, **kwargs)
+        YTCoveringGrid.__init__(self, *args, **kwargs)
         self._final_start_index = self.global_startindex
 
     def _setup_data_source(self, level_state = None):
@@ -958,7 +958,7 @@
         level_state.fields = new_fields
         self._setup_data_source(ls)
 
-class YTSurfaceBase(YTSelectionContainer3D):
+class YTSurface(YTSelectionContainer3D):
     r"""This surface object identifies isocontours on a cell-by-cell basis,
     with no consideration of global connectedness, and returns the vertices
     of the Triangles in that isocontour.
@@ -1012,7 +1012,7 @@
         self.field_value = field_value
         self.vertex_samples = YTFieldData()
         center = data_source.get_field_parameter("center")
-        super(YTSurfaceBase, self).__init__(center = center, ds=ds)
+        super(YTSurface, self).__init__(center = center, ds=ds)
 
     def _generate_container_field(self, field):
         self.get_data(field)

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -1024,7 +1024,7 @@
 
     def cut_region(self, field_cuts, field_parameters=None):
         """
-        Return an YTCutRegionBase, where the a cell is identified as being inside
+        Return a YTCutRegion, where the a cell is identified as being inside
         the cut region based on the value of one or more fields.  Note that in
         previous versions of yt the name 'grid' was used to represent the data
         object used to construct the field cut, as of yt 3.0, this has been

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/data_objects/selection_data_containers.py
--- a/yt/data_objects/selection_data_containers.py
+++ b/yt/data_objects/selection_data_containers.py
@@ -37,7 +37,7 @@
 from yt.units.yt_array import YTQuantity
 
 
-class YTPointBase(YTSelectionContainer0D):
+class YTPoint(YTSelectionContainer0D):
     """
     A 0-dimensional object defined by a single point
 
@@ -68,10 +68,10 @@
     _type_name = "point"
     _con_args = ('p',)
     def __init__(self, p, ds=None, field_parameters=None, data_source=None):
-        super(YTPointBase, self).__init__(ds, field_parameters, data_source)
+        super(YTPoint, self).__init__(ds, field_parameters, data_source)
         self.p = p
 
-class YTOrthoRayBase(YTSelectionContainer1D):
+class YTOrthoRay(YTSelectionContainer1D):
     """
     This is an orthogonal ray cast through the entire domain, at a specific
     coordinate.
@@ -123,7 +123,7 @@
     _con_args = ('axis', 'coords')
     def __init__(self, axis, coords, ds=None, 
                  field_parameters=None, data_source=None):
-        super(YTOrthoRayBase, self).__init__(ds, field_parameters, data_source)
+        super(YTOrthoRay, self).__init__(ds, field_parameters, data_source)
         self.axis = axis
         xax = self.ds.coordinates.x_axis[self.axis]
         yax = self.ds.coordinates.y_axis[self.axis]
@@ -139,7 +139,7 @@
     def coords(self):
         return (self.px, self.py)
 
-class YTRayBase(YTSelectionContainer1D):
+class YTRay(YTSelectionContainer1D):
     """
     This is an arbitrarily-aligned ray cast through the entire domain, at a
     specific coordinate.
@@ -191,7 +191,7 @@
     _container_fields = ("t", "dts")
     def __init__(self, start_point, end_point, ds=None,
                  field_parameters=None, data_source=None):
-        super(YTRayBase, self).__init__(ds, field_parameters, data_source)
+        super(YTRay, self).__init__(ds, field_parameters, data_source)
         self.start_point = self.ds.arr(start_point,
                             'code_length', dtype='float64')
         self.end_point = self.ds.arr(end_point,
@@ -211,7 +211,7 @@
         else:
             raise KeyError(field)
 
-class YTSliceBase(YTSelectionContainer2D):
+class YTSlice(YTSelectionContainer2D):
     """
     This is a data object corresponding to a slice through the simulation
     domain.
@@ -295,7 +295,7 @@
         pw = self._get_pw(fields, center, width, origin, 'Slice')
         return pw
 
-class YTCuttingPlaneBase(YTSelectionContainer2D):
+class YTCuttingPlane(YTSelectionContainer2D):
     """
     This is a data object corresponding to an oblique slice through the
     simulation domain.
@@ -497,7 +497,7 @@
                                            periodic=periodic)
         return frb
 
-class YTDiskBase(YTSelectionContainer3D):
+class YTDisk(YTSelectionContainer3D):
     """
     By providing a *center*, a *normal*, a *radius* and a *height* we
     can define a cylinder of any proportion.  Only cells whose centers are
@@ -547,7 +547,7 @@
         self.radius = fix_length(radius, self.ds)
         self._d = -1.0 * np.dot(self._norm_vec, self.center)
 
-class YTRegionBase(YTSelectionContainer3D):
+class YTRegion(YTSelectionContainer3D):
     """A 3D region of data with an arbitrary center.
 
     Takes an array of three *left_edge* coordinates, three
@@ -580,7 +580,7 @@
         else:
             self.right_edge = right_edge
 
-class YTDataCollectionBase(YTSelectionContainer3D):
+class YTDataCollection(YTSelectionContainer3D):
     """
     By selecting an arbitrary *object_list*, we can act on those grids.
     Child cells are not returned.
@@ -595,7 +595,7 @@
                                 dtype="int64")
         self._obj_list = obj_list
 
-class YTSphereBase(YTSelectionContainer3D):
+class YTSphere(YTSelectionContainer3D):
     """
     A sphere of points defined by a *center* and a *radius*.
 
@@ -618,7 +618,7 @@
     _con_args = ('center', 'radius')
     def __init__(self, center, radius, ds=None,
                  field_parameters=None, data_source=None):
-        super(YTSphereBase, self).__init__(center, ds,
+        super(YTSphere, self).__init__(center, ds,
                                            field_parameters, data_source)
         # Unpack the radius, if necessary
         radius = fix_length(radius, self.ds)
@@ -629,7 +629,7 @@
         self.set_field_parameter("center", self.center)
         self.radius = radius
 
-class YTEllipsoidBase(YTSelectionContainer3D):
+class YTEllipsoid(YTSelectionContainer3D):
     """
     By providing a *center*,*A*,*B*,*C*,*e0*,*tilt* we
     can define a ellipsoid of any proportion.  Only cells whose
@@ -709,7 +709,7 @@
         self.set_field_parameter('e1', e1)
         self.set_field_parameter('e2', e2)
 
-class YTCutRegionBase(YTSelectionContainer3D):
+class YTCutRegion(YTSelectionContainer3D):
     """
     This is a data object designed to allow individuals to apply logical
     operations to fields and filter as a result of those cuts.
@@ -743,7 +743,7 @@
                 raise RuntimeError(
                     "Cannot use both base_object and data_source")
             data_source=base_object
-        super(YTCutRegionBase, self).__init__(
+        super(YTCutRegion, self).__init__(
             data_source.center, ds, field_parameters, data_source=data_source)
         self.conditionals = ensure_list(conditionals)
         self.base_object = data_source

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/utilities/fits_image.py
--- a/yt/utilities/fits_image.py
+++ b/yt/utilities/fits_image.py
@@ -13,7 +13,7 @@
 import numpy as np
 from yt.funcs import mylog, iterable, fix_axis, ensure_list
 from yt.visualization.fixed_resolution import FixedResolutionBuffer
-from yt.data_objects.construction_data_containers import YTCoveringGridBase
+from yt.data_objects.construction_data_containers import YTCoveringGrid
 from yt.utilities.on_demand_imports import _astropy, NotAModule
 from yt.units.yt_array import YTQuantity, YTArray
 from yt.units import dimensions
@@ -152,7 +152,7 @@
                 yctr = 0.5*(img_data.bounds[3]+img_data.bounds[2]).in_units(units).v
                 center = [xctr, yctr]
                 cdelt = [dx,dy]
-            elif isinstance(img_data, YTCoveringGridBase):
+            elif isinstance(img_data, YTCoveringGrid):
                 cdelt = img_data.dds.in_units(units).v
                 center = 0.5*(img_data.left_edge+img_data.right_edge).in_units(units).v
             else:

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/visualization/fixed_resolution.py
--- a/yt/visualization/fixed_resolution.py
+++ b/yt/visualization/fixed_resolution.py
@@ -47,7 +47,7 @@
 
     Parameters
     ----------
-    data_source : :class:`yt.data_objects.data_containers.AMRProjBase` or :class:`yt.data_objects.data_containers.AMRSliceBase`
+    data_source : :class:`yt.data_objects.construction_data_containers.YTQuadTreeProj` or :class:`yt.data_objects.selection_data_containers.YTSlice`
         This is the source to be pixelized, which can be a projection or a
         slice.  (For cutting planes, see
         `yt.visualization.fixed_resolution.ObliqueFixedResolutionBuffer`.)

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/visualization/plot_modifications.py
--- a/yt/visualization/plot_modifications.py
+++ b/yt/visualization/plot_modifications.py
@@ -1953,13 +1953,13 @@
     annotate_ray(ray, plot_args=None)
 
     Adds a line representing the projected path of a ray across the plot.
-    The ray can be either a YTOrthoRayBase, YTRayBase, or a LightRay object.
+    The ray can be either a YTOrthoRay, YTRay, or a LightRay object.
     annotate_ray() will properly account for periodic rays across the volume.
 
     Parameters
     ----------
 
-    ray : YTOrthoRayBase, YTRayBase, or LightRay
+    ray : YTOrthoRay, YTRay, or LightRay
         Ray is the object that we want to include.  We overplot the projected
         trajectory of the ray.  If the object is a
         analysis_modules.cosmological_observation.light_ray.light_ray.LightRay
@@ -2052,7 +2052,7 @@
             start_coord, end_coord = self._process_light_ray(plot)
 
         else:
-            raise SyntaxError("ray must be a YTRayBase, YTOrthoRayBase, or "
+            raise SyntaxError("ray must be a YTRay, YTOrthoRay, or "
                               "LightRay object.")
 
         # if start_coord and end_coord are all False, it means no intersecting

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/visualization/plot_window.py
--- a/yt/visualization/plot_window.py
+++ b/yt/visualization/plot_window.py
@@ -186,7 +186,7 @@
     Parameters
     ----------
 
-    data_source : :class:`yt.data_objects.construction_data_containers.YTQuadTreeProjBase` or :class:`yt.data_objects.selection_data_containers.YTSliceBase`
+    data_source : :class:`yt.data_objects.construction_data_containers.YTQuadTreeProj` or :class:`yt.data_objects.selection_data_containers.YTSlice`
         This is the source to be pixelized, which can be a projection or a
         slice.  (For cutting planes, see
         `yt.visualization.fixed_resolution.ObliqueFixedResolutionBuffer`.)

diff -r 1b9c5ff35f35b872c2ebdffe46f2518e4fd3e66b -r 66088a017978bc8dd39cd977cf3a2a2aff0a4827 yt/visualization/streamlines.py
--- a/yt/visualization/streamlines.py
+++ b/yt/visualization/streamlines.py
@@ -14,7 +14,7 @@
 #-----------------------------------------------------------------------------
 
 import numpy as np
-from yt.data_objects.construction_data_containers import YTStreamlineBase
+from yt.data_objects.construction_data_containers import YTStreamline
 from yt.funcs import get_pbar
 from yt.units.yt_array import YTArray
 from yt.utilities.parallel_tools.parallel_analysis_interface import \
@@ -216,7 +216,7 @@
 
         Returns
         -------
-        An YTStreamlineBase YTSelectionContainer1D object
+        An YTStreamline YTSelectionContainer1D object
 
         Examples
         --------
@@ -226,8 +226,7 @@
         >>> streamlines.integrate_through_volume()
         >>> stream = streamlines.path(0)
         >>> matplotlib.pylab.semilogy(stream['t'], stream['Density'], '-x')
-        
+
         """
-        return YTStreamlineBase(self.streamlines[streamline_id], ds=self.ds,
-                                length = self.length)
-        
+        return YTStreamline(self.streamlines[streamline_id], ds=self.ds,
+                            length=self.length)


https://bitbucket.org/yt_analysis/yt/commits/ca754f897f2f/
Changeset:   ca754f897f2f
Branch:      yt
User:        brittonsmith
Date:        2015-10-12 18:58:06+00:00
Summary:     Merged in ngoldbaum/yt (pull request #1784)

Avoid type indirection when setting up data object entry points.
Affected #:  21 files

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/analyzing/filtering.rst
--- a/doc/source/analyzing/filtering.rst
+++ b/doc/source/analyzing/filtering.rst
@@ -23,7 +23,7 @@
 ----------------------
 
 Mesh fields can be filtered by two methods: cut region objects 
-(:class:`~yt.data_objects.selection_data_containers.YTCutRegionBase`) 
+(:class:`~yt.data_objects.selection_data_containers.YTCutRegion`) 
 and NumPy boolean masks.  Boolean masks are simpler, but they only work
 for examining datasets, whereas cut regions objects create wholly new
 data objects suitable for full analysis (data examination, image generation, 

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/analyzing/generating_processed_data.rst
--- a/doc/source/analyzing/generating_processed_data.rst
+++ b/doc/source/analyzing/generating_processed_data.rst
@@ -173,7 +173,7 @@
 ---------------------------------
 
 To calculate the values along a line connecting two points in a simulation, you
-can use the object :class:`~yt.data_objects.selection_data_containers.YTRayBase`,
+can use the object :class:`~yt.data_objects.selection_data_containers.YTRay`,
 accessible as the ``ray`` property on a index.  (See :ref:`data-objects`
 for more information on this.)  To do so, you can supply two points and access
 fields within the returned object.  For instance, this code will generate a ray

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/analyzing/objects.rst
--- a/doc/source/analyzing/objects.rst
+++ b/doc/source/analyzing/objects.rst
@@ -1,4 +1,4 @@
-.. _data-objects:
+.. _Data-objects:
 
 Data Objects
 ============
@@ -97,7 +97,7 @@
 """"""""""
 
 **Point** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTPointBase`    
+    | Class :class:`~yt.data_objects.selection_data_containers.YTPoint`    
     | Usage: ``point(coord, ds=None, field_parameters=None, data_source=None)``
     | A point defined by a single cell at specified coordinates.
 
@@ -105,7 +105,7 @@
 """"""""""
 
 **Ray (Axis-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTOrthoRayBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTOrthoRay`
     | Usage: ``ortho_ray(axis, coord, ds=None, field_parameters=None, data_source=None)``
     | A line (of data cells) stretching through the full domain 
       aligned with one of the x,y,z axes.  Defined by an axis and a point
@@ -113,7 +113,7 @@
       :ref:`note about ray data value ordering <ray-data-ordering>`.
 
 **Ray (Arbitrarily-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTRayBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTRay`
     | Usage: ``ray(start_coord, end_coord, ds=None, field_parameters=None, data_source=None)``
     | A line (of data cells) defined by arbitrary start and end coordinates. 
       Please see this 
@@ -123,13 +123,13 @@
 """"""""""
 
 **Slice (Axis-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTSliceBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTSlice`
     | Usage: ``slice(axis, coord, center=None, ds=None, field_parameters=None, data_source=None)``
     | A plane normal to one of the axes and intersecting a particular 
       coordinate.
 
 **Slice (Arbitrarily-Aligned)** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTCuttingPlaneBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTCuttingPlane`
     | Usage: ``cutting(normal, coord, north_vector=None, ds=None, field_parameters=None, data_source=None)``
     | A plane normal to a specified vector and intersecting a particular 
       coordinate.
@@ -145,7 +145,7 @@
       ``ds.region(ds.domain_center, ds.domain_left_edge, ds.domain_right_edge)``.
 
 **Box Region** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTRegionBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTRegion`
     | Usage: ``region(center, left_edge, right_edge, fields=None, ds=None, field_parameters=None, data_source=None)``
     | Alternatively: ``box(left_edge, right_edge, fields=None, ds=None, field_parameters=None, data_source=None)``
     | A box-like region aligned with the grid axis orientation.  It is 
@@ -156,14 +156,14 @@
       is assumed to be the midpoint between the left and right edges.
 
 **Disk/Cylinder** 
-    | Class: :class:`~yt.data_objects.selection_data_containers.YTDiskBase`
+    | Class: :class:`~yt.data_objects.selection_data_containers.YTDisk`
     | Usage: ``disk(center, normal, radius, height, fields=None, ds=None, field_parameters=None, data_source=None)``
     | A cylinder defined by a point at the center of one of the circular bases,
       a normal vector to it defining the orientation of the length of the
       cylinder, and radius and height values for the cylinder's dimensions.
 
 **Ellipsoid** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTEllipsoidBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTEllipsoid`
     | Usage: ``ellipsoid(center, semi_major_axis_length, semi_medium_axis_length, semi_minor_axis_length, semi_major_vector, tilt, fields=None, ds=None, field_parameters=None, data_source=None)``
     | An ellipsoid with axis magnitudes set by semi_major_axis_length, 
      semi_medium_axis_length, and semi_minor_axis_length.  semi_major_vector 
@@ -171,7 +171,7 @@
      of the semi-medium and semi_minor axes.
 
 **Sphere** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTSphereBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTSphere`
     | Usage: ``sphere(center, radius, ds=None, field_parameters=None, data_source=None)``
     | A sphere defined by a central coordinate and a radius.
 
@@ -194,7 +194,7 @@
     | See :ref:`boolean_data_objects`.
 
 **Filter** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTCutRegionBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTCutRegion`
     | Usage: ``cut_region(base_object, conditionals, ds=None, field_parameters=None)``
     | A ``cut_region`` is a filter which can be applied to any other data 
       object.  The filter is defined by the conditionals present, which 
@@ -203,7 +203,7 @@
       For more detailed information and examples, see :ref:`cut-regions`.
 
 **Collection of Data Objects** 
-    | Class :class:`~yt.data_objects.selection_data_containers.YTDataCollectionBase`
+    | Class :class:`~yt.data_objects.selection_data_containers.YTDataCollection`
     | Usage: ``data_collection(center, obj_list, ds=None, field_parameters=None)``
     | A ``data_collection`` is a list of data objects that can be 
       sampled and processed as a whole in a single data object.
@@ -214,13 +214,13 @@
 ^^^^^^^^^^^^^^^^^^^^
 
 **Fixed-Resolution Region** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTCoveringGridBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTCoveringGrid`
     | Usage: ``covering_grid(level, left_edge, dimensions, fields=None, ds=None, num_ghost_zones=0, use_pbar=True, field_parameters=None)``
     | A 3D region with all data extracted to a single, specified resolution.
       See :ref:`examining-grid-data-in-a-fixed-resolution-array`.
 
 **Fixed-Resolution Region with Smoothing** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTSmoothedCoveringGridBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTSmoothedCoveringGrid`
     | Usage: ``smoothed_covering_grid(level, left_edge, dimensions, fields=None, ds=None, num_ghost_zones=0, use_pbar=True, field_parameters=None)``
     | A 3D region with all data extracted and interpolated to a single, 
       specified resolution.  Identical to covering_grid, except that it 
@@ -228,7 +228,7 @@
       :ref:`examining-grid-data-in-a-fixed-resolution-array`.
 
 **Fixed-Resolution Region for Particle Deposition** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTArbitraryGridBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTArbitraryGrid`
     | Usage: ``arbitrary_grid(left_edge, right_edge, dimensions, ds=None, field_parameters=None)``
     | When particles are deposited on to mesh fields, they use the existing
       mesh structure, but this may have too much or too little resolution
@@ -238,7 +238,7 @@
       information.
 
 **Projection** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTQuadTreeProjBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTQuadTreeProj`
     | Usage: ``proj(field, axis, weight_field=None, center=None, ds=None, data_source=None, method="integrate", field_parameters=None)``
     | A 2D projection of a 3D volume along one of the axis directions.  
       By default, this is a line integral through the entire simulation volume 
@@ -248,14 +248,14 @@
       of the projection outcome.  See :ref:`projection-types` for more information.
 
 **Streamline** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTStreamlineBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTStreamline`
     | Usage: ``streamline(coord_list, length, fields=None, ds=None, field_parameters=None)``
     | A ``streamline`` can be traced out by identifying a starting coordinate (or 
       list of coordinates) and allowing it to trace a vector field, like gas
       velocity.  See :ref:`streamlines` for more information.
 
 **Surface** 
-    | Class :class:`~yt.data_objects.construction_data_containers.YTSurfaceBase`
+    | Class :class:`~yt.data_objects.construction_data_containers.YTSurface`
     | Usage: ``surface(data_source, field, field_value)``
     | The surface defined by all an isocontour in any mesh field.  An existing 
       data object must be provided as the source, as well as a mesh field
@@ -358,7 +358,7 @@
 holdover from the time when yt was used exclusively for data that came in
 regularly structured grid patches, and does not necessarily work as well for
 data that is composed of discrete objects like particles.  To augment this, the
-:class:`~yt.data_objects.construction_data_containers.YTArbitraryGridBase` object 
+:class:`~yt.data_objects.construction_data_containers.YTArbitraryGrid` object 
 was created, which enables construction of meshes (onto which particles can be
 deposited or smoothed) in arbitrary regions.  This eliminates any assumptions
 on yt's part about how the data is organized, and will allow for more
@@ -444,7 +444,7 @@
 set of level sets.  The second (``connected_sets``) will be a dict of dicts.
 The key for the first (outer) dict is the level of the contour, corresponding
 to ``contour_values``.  The inner dict returned is keyed by the contour ID.  It
-contains :class:`~yt.data_objects.selection_data_containers.YTCutRegionBase`
+contains :class:`~yt.data_objects.selection_data_containers.YTCutRegion`
 objects.  These can be queried just as any other data object.  The clump finder 
 (:ref:`clump_finding`) differs from the above method in that the contour 
 identification is performed recursively within each individual structure, and 

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/faq/index.rst
--- a/doc/source/faq/index.rst
+++ b/doc/source/faq/index.rst
@@ -329,8 +329,8 @@
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Using the Ray objects 
-(:class:`~yt.data_objects.selection_data_containers.YTOrthoRayBase` and 
-:class:`~yt.data_objects.selection_data_containers.YTRayBase`) with AMR data 
+(:class:`~yt.data_objects.selection_data_containers.YTOrthoRay` and 
+:class:`~yt.data_objects.selection_data_containers.YTRay`) with AMR data 
 gives non-contiguous cell information in the Ray's data array. The 
 higher-resolution cells are appended to the end of the array.  Unfortunately, 
 due to how data is loaded by chunks for data containers, there is really no 

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/reference/api/api.rst
--- a/doc/source/reference/api/api.rst
+++ b/doc/source/reference/api/api.rst
@@ -87,17 +87,17 @@
 .. autosummary::
    :toctree: generated/
 
-   ~yt.data_objects.selection_data_containers.YTPointBase
-   ~yt.data_objects.selection_data_containers.YTOrthoRayBase
-   ~yt.data_objects.selection_data_containers.YTRayBase
-   ~yt.data_objects.selection_data_containers.YTSliceBase
-   ~yt.data_objects.selection_data_containers.YTCuttingPlaneBase
-   ~yt.data_objects.selection_data_containers.YTDiskBase
-   ~yt.data_objects.selection_data_containers.YTRegionBase
-   ~yt.data_objects.selection_data_containers.YTDataCollectionBase
-   ~yt.data_objects.selection_data_containers.YTSphereBase
-   ~yt.data_objects.selection_data_containers.YTEllipsoidBase
-   ~yt.data_objects.selection_data_containers.YTCutRegionBase
+   ~yt.data_objects.selection_data_containers.YTPoint
+   ~yt.data_objects.selection_data_containers.YTOrthoRay
+   ~yt.data_objects.selection_data_containers.YTRay
+   ~yt.data_objects.selection_data_containers.YTSlice
+   ~yt.data_objects.selection_data_containers.YTCuttingPlane
+   ~yt.data_objects.selection_data_containers.YTDisk
+   ~yt.data_objects.selection_data_containers.YTRegion
+   ~yt.data_objects.selection_data_containers.YTDataCollection
+   ~yt.data_objects.selection_data_containers.YTSphere
+   ~yt.data_objects.selection_data_containers.YTEllipsoid
+   ~yt.data_objects.selection_data_containers.YTCutRegion
    ~yt.data_objects.grid_patch.AMRGridPatch
 
 Construction Objects
@@ -110,12 +110,12 @@
 .. autosummary::
    :toctree: generated/
 
-   ~yt.data_objects.construction_data_containers.YTStreamlineBase
-   ~yt.data_objects.construction_data_containers.YTQuadTreeProjBase
-   ~yt.data_objects.construction_data_containers.YTCoveringGridBase
-   ~yt.data_objects.construction_data_containers.YTArbitraryGridBase
-   ~yt.data_objects.construction_data_containers.YTSmoothedCoveringGridBase
-   ~yt.data_objects.construction_data_containers.YTSurfaceBase
+   ~yt.data_objects.construction_data_containers.YTStreamline
+   ~yt.data_objects.construction_data_containers.YTQuadTreeProj
+   ~yt.data_objects.construction_data_containers.YTCoveringGrid
+   ~yt.data_objects.construction_data_containers.YTArbitraryGrid
+   ~yt.data_objects.construction_data_containers.YTSmoothedCoveringGrid
+   ~yt.data_objects.construction_data_containers.YTSurface
 
 Time Series Objects
 ^^^^^^^^^^^^^^^^^^^

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/visualizing/callbacks.rst
--- a/doc/source/visualizing/callbacks.rst
+++ b/doc/source/visualizing/callbacks.rst
@@ -677,9 +677,13 @@
    (This is a proxy for
    :class:`~yt.visualization.plot_modifications.RayCallback`.)
 
-    Adds a line representing the projected path of a ray across the plot.
-    The ray can be either a YTOrthoRayBase, YTRayBase, or a LightRay object.
-    annotate_ray() will properly account for periodic rays across the volume.
+    Adds a line representing the projected path of a ray across the plot.  The
+    ray can be either a
+    :class:`~yt.data_objects.selection_data_containers.YTOrthoRay`,
+    :class:`~yt.data_objects.selection_data_contaners.YTRay`, or a
+    :class:`~yt.analysis_modules.cosmological_observation.light_ray.light_ray.LightRay`
+    object.  annotate_ray() will properly account for periodic rays across the
+    volume.
 
 .. python-script::
 

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/visualizing/manual_plotting.rst
--- a/doc/source/visualizing/manual_plotting.rst
+++ b/doc/source/visualizing/manual_plotting.rst
@@ -125,7 +125,7 @@
 This is perhaps the simplest thing to do. yt provides a number of one
 dimensional objects, and these return a 1-D numpy array of their contents with
 direct dictionary access. As a simple example, take a
-:class:`~yt.data_objects.selection_data_containers.YTOrthoRayBase` object, which can be
+:class:`~yt.data_objects.selection_data_containers.YTOrthoRay` object, which can be
 created from a index by calling ``pf.ortho_ray(axis, center)``.
 
 .. python-script::

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/visualizing/plots.rst
--- a/doc/source/visualizing/plots.rst
+++ b/doc/source/visualizing/plots.rst
@@ -192,7 +192,7 @@
 
 Off axis slice plots can be generated in much the same way as
 grid-aligned slices.  Off axis slices use
-:class:`~yt.data_objects.selection_data_containers.YTCuttingPlaneBase` to slice
+:class:`~yt.data_objects.selection_data_containers.YTCuttingPlane` to slice
 through simulation domains at an arbitrary oblique angle.  A
 :class:`~yt.visualization.plot_window.OffAxisSlicePlot` can be
 instantiated by specifying a dataset, the normal to the cutting
@@ -670,7 +670,7 @@
    plot = yt.ProfilePlot(my_galaxy, "density", ["temperature"])
    plot.save()
 
-This will create a :class:`~yt.data_objects.selection_data_containers.YTDiskBase`
+This will create a :class:`~yt.data_objects.selection_data_containers.YTDisk`
 centered at [0.5, 0.5, 0.5], with a normal vector of [0.0, 0.0, 1.0], radius of
 10 kiloparsecs and height of 3 kiloparsecs and will then make a plot of the
 mass-weighted average temperature as a function of density for all of the gas

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/visualizing/sketchfab.rst
--- a/doc/source/visualizing/sketchfab.rst
+++ b/doc/source/visualizing/sketchfab.rst
@@ -47,7 +47,7 @@
 both of these operations will run in parallel.  For more information on enabling
 parallelism in yt, see :ref:`parallel-computation`.
 
-Alternatively, you can make an object called ``YTSurfaceBase`` that makes
+Alternatively, you can make an object called ``YTSurface`` that makes
 this process much easier.  You can create one of these objects by specifying a
 source data object and a field over which to identify a surface at a given
 value.  For example:
@@ -101,7 +101,7 @@
 discuss morphological properties of a dataset with collaborators.  It's also
 just plain cool.
 
-The ``YTSurfaceBase`` object includes a method to upload directly to Sketchfab,
+The ``YTSurface`` object includes a method to upload directly to Sketchfab,
 but it requires that you get an API key first.  You can get this API key by
 creating an account and then going to your "dashboard," where it will be listed
 on the right hand side.  Once you've obtained it, put it into your

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/visualizing/streamlines.rst
--- a/doc/source/visualizing/streamlines.rst
+++ b/doc/source/visualizing/streamlines.rst
@@ -19,7 +19,7 @@
 returned a set of 3D positions that can, in turn, be used to visualize
 the 3D path of the streamlines.  Additionally, individual streamlines
 can be converted into
-:class:`~yt.data_objects.construction_data_containers.YTStreamlineBase` objects,
+:class:`~yt.data_objects.construction_data_containers.YTStreamline` objects,
 and queried for all the available fields along the streamline.
 
 The implementation of streamlining  in yt is described below.
@@ -100,7 +100,7 @@
     let us know on the yt-dev mailing list.
 
 Once the streamlines are found, a
-:class:`~yt.data_objects.construction_data_containers.YTStreamlineBase` object can
+:class:`~yt.data_objects.construction_data_containers.YTStreamline` object can
 be created using the
 :meth:`~yt.visualization.streamlines.Streamlines.path` function, which
 takes as input the index of the streamline requested. This conversion

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 doc/source/yt3differences.rst
--- a/doc/source/yt3differences.rst
+++ b/doc/source/yt3differences.rst
@@ -295,7 +295,7 @@
 Previously, projections were inconsistent with the other data objects.
 (The API for Plot Windows is the same.)  The argument order is now ``field``
 then ``axis`` as seen here: 
-:class:`~yt.data_objects.construction_data_containers.YTQuadTreeProjBase`.
+:class:`~yt.data_objects.construction_data_containers.YTQuadTreeProj`.
 
 Field Parameters
 ^^^^^^^^^^^^^^^^

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/analysis_modules/halo_finding/halo_objects.py
--- a/yt/analysis_modules/halo_finding/halo_objects.py
+++ b/yt/analysis_modules/halo_finding/halo_objects.py
@@ -299,7 +299,7 @@
 
         Returns
         -------
-        sphere : `yt.data_objects.api.YTSphereBase`
+        sphere : `yt.data_objects.api.YTSphere`
             The empty data source.
 
         Examples
@@ -668,7 +668,7 @@
 
         Returns
         -------
-        ellipsoid : `yt.data_objects.data_containers.YTEllipsoidBase`
+        ellipsoid : `yt.data_objects.data_containers.YTEllipsoid`
             The ellipsoidal data object.
 
         Examples
@@ -861,7 +861,7 @@
 
         Returns
         -------
-        ellipsoid : `yt.data_objects.data_containers.YTEllipsoidBase`
+        ellipsoid : `yt.data_objects.data_containers.YTEllipsoid`
             The ellipsoidal data object.
 
         Examples
@@ -890,7 +890,7 @@
 
         Returns
         -------
-        sphere : `yt.data_objects.api.YTSphereBase`
+        sphere : `yt.data_objects.api.YTSphere`
             The empty data source.
 
         Examples

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/data_objects/construction_data_containers.py
--- a/yt/data_objects/construction_data_containers.py
+++ b/yt/data_objects/construction_data_containers.py
@@ -58,7 +58,7 @@
 from yt.fields.derived_field import \
     TranslationFunc
 
-class YTStreamlineBase(YTSelectionContainer1D):
+class YTStreamline(YTSelectionContainer1D):
     """
     This is a streamline, which is a set of points defined as
     being parallel to some vector field.
@@ -152,7 +152,7 @@
         return mask
 
 
-class YTQuadTreeProjBase(YTSelectionContainer2D):
+class YTQuadTreeProj(YTSelectionContainer2D):
     """
     This is a data object corresponding to a line integral through the
     simulation domain.
@@ -455,7 +455,7 @@
         pw = self._get_pw(fields, center, width, origin, 'Projection')
         return pw
 
-class YTCoveringGridBase(YTSelectionContainer3D):
+class YTCoveringGrid(YTSelectionContainer3D):
     """A 3D region with all data extracted to a single, specified
     resolution.  Left edge should align with a cell boundary, but
     defaults to the closest cell boundary.
@@ -736,7 +736,7 @@
                                sim_time=self.ds.current_time.v)
         write_to_gdf(ds, gdf_path, **kwargs)
 
-class YTArbitraryGridBase(YTCoveringGridBase):
+class YTArbitraryGrid(YTCoveringGrid):
     """A 3D region with arbitrary bounds and dimensions.
 
     In contrast to the Covering Grid, this object accepts a left edge, a right
@@ -806,7 +806,7 @@
     base_dx = None
     dds = None
 
-class YTSmoothedCoveringGridBase(YTCoveringGridBase):
+class YTSmoothedCoveringGrid(YTCoveringGrid):
     """A 3D region with all data extracted and interpolated to a
     single, specified resolution. (Identical to covering_grid,
     except that it interpolates.)
@@ -834,13 +834,13 @@
     """
     _type_name = "smoothed_covering_grid"
     filename = None
-    @wraps(YTCoveringGridBase.__init__)
+    @wraps(YTCoveringGrid.__init__)
     def __init__(self, *args, **kwargs):
-        self._base_dx = (
-              (self.ds.domain_right_edge - self.ds.domain_left_edge) /
-               self.ds.domain_dimensions.astype("float64"))
+        ds = kwargs['ds']
+        self._base_dx = ((ds.domain_right_edge - ds.domain_left_edge) /
+                         ds.domain_dimensions.astype("float64"))
         self.global_endindex = None
-        YTCoveringGridBase.__init__(self, *args, **kwargs)
+        YTCoveringGrid.__init__(self, *args, **kwargs)
         self._final_start_index = self.global_startindex
 
     def _setup_data_source(self, level_state = None):
@@ -958,7 +958,7 @@
         level_state.fields = new_fields
         self._setup_data_source(ls)
 
-class YTSurfaceBase(YTSelectionContainer3D):
+class YTSurface(YTSelectionContainer3D):
     r"""This surface object identifies isocontours on a cell-by-cell basis,
     with no consideration of global connectedness, and returns the vertices
     of the Triangles in that isocontour.
@@ -1006,14 +1006,13 @@
                          ("index", "y"),
                          ("index", "z"))
     vertices = None
-    def __init__(self, data_source, surface_field, field_value):
+    def __init__(self, data_source, surface_field, field_value, ds=None):
         self.data_source = data_source
         self.surface_field = surface_field
         self.field_value = field_value
         self.vertex_samples = YTFieldData()
         center = data_source.get_field_parameter("center")
-        super(YTSurfaceBase, self).__init__(center = center, ds =
-                    data_source.ds )
+        super(YTSurface, self).__init__(center = center, ds=ds)
 
     def _generate_container_field(self, field):
         self.get_data(field)

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -1024,7 +1024,7 @@
 
     def cut_region(self, field_cuts, field_parameters=None):
         """
-        Return an YTCutRegionBase, where the a cell is identified as being inside
+        Return a YTCutRegion, where the a cell is identified as being inside
         the cut region based on the value of one or more fields.  Note that in
         previous versions of yt the name 'grid' was used to represent the data
         object used to construct the field cut, as of yt 3.0, this has been

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/data_objects/selection_data_containers.py
--- a/yt/data_objects/selection_data_containers.py
+++ b/yt/data_objects/selection_data_containers.py
@@ -37,7 +37,7 @@
 from yt.units.yt_array import YTQuantity
 
 
-class YTPointBase(YTSelectionContainer0D):
+class YTPoint(YTSelectionContainer0D):
     """
     A 0-dimensional object defined by a single point
 
@@ -68,10 +68,10 @@
     _type_name = "point"
     _con_args = ('p',)
     def __init__(self, p, ds=None, field_parameters=None, data_source=None):
-        super(YTPointBase, self).__init__(ds, field_parameters, data_source)
+        super(YTPoint, self).__init__(ds, field_parameters, data_source)
         self.p = p
 
-class YTOrthoRayBase(YTSelectionContainer1D):
+class YTOrthoRay(YTSelectionContainer1D):
     """
     This is an orthogonal ray cast through the entire domain, at a specific
     coordinate.
@@ -123,7 +123,7 @@
     _con_args = ('axis', 'coords')
     def __init__(self, axis, coords, ds=None, 
                  field_parameters=None, data_source=None):
-        super(YTOrthoRayBase, self).__init__(ds, field_parameters, data_source)
+        super(YTOrthoRay, self).__init__(ds, field_parameters, data_source)
         self.axis = axis
         xax = self.ds.coordinates.x_axis[self.axis]
         yax = self.ds.coordinates.y_axis[self.axis]
@@ -139,7 +139,7 @@
     def coords(self):
         return (self.px, self.py)
 
-class YTRayBase(YTSelectionContainer1D):
+class YTRay(YTSelectionContainer1D):
     """
     This is an arbitrarily-aligned ray cast through the entire domain, at a
     specific coordinate.
@@ -191,7 +191,7 @@
     _container_fields = ("t", "dts")
     def __init__(self, start_point, end_point, ds=None,
                  field_parameters=None, data_source=None):
-        super(YTRayBase, self).__init__(ds, field_parameters, data_source)
+        super(YTRay, self).__init__(ds, field_parameters, data_source)
         self.start_point = self.ds.arr(start_point,
                             'code_length', dtype='float64')
         self.end_point = self.ds.arr(end_point,
@@ -211,7 +211,7 @@
         else:
             raise KeyError(field)
 
-class YTSliceBase(YTSelectionContainer2D):
+class YTSlice(YTSelectionContainer2D):
     """
     This is a data object corresponding to a slice through the simulation
     domain.
@@ -295,7 +295,7 @@
         pw = self._get_pw(fields, center, width, origin, 'Slice')
         return pw
 
-class YTCuttingPlaneBase(YTSelectionContainer2D):
+class YTCuttingPlane(YTSelectionContainer2D):
     """
     This is a data object corresponding to an oblique slice through the
     simulation domain.
@@ -497,7 +497,7 @@
                                            periodic=periodic)
         return frb
 
-class YTDiskBase(YTSelectionContainer3D):
+class YTDisk(YTSelectionContainer3D):
     """
     By providing a *center*, a *normal*, a *radius* and a *height* we
     can define a cylinder of any proportion.  Only cells whose centers are
@@ -547,7 +547,7 @@
         self.radius = fix_length(radius, self.ds)
         self._d = -1.0 * np.dot(self._norm_vec, self.center)
 
-class YTRegionBase(YTSelectionContainer3D):
+class YTRegion(YTSelectionContainer3D):
     """A 3D region of data with an arbitrary center.
 
     Takes an array of three *left_edge* coordinates, three
@@ -580,7 +580,7 @@
         else:
             self.right_edge = right_edge
 
-class YTDataCollectionBase(YTSelectionContainer3D):
+class YTDataCollection(YTSelectionContainer3D):
     """
     By selecting an arbitrary *object_list*, we can act on those grids.
     Child cells are not returned.
@@ -595,7 +595,7 @@
                                 dtype="int64")
         self._obj_list = obj_list
 
-class YTSphereBase(YTSelectionContainer3D):
+class YTSphere(YTSelectionContainer3D):
     """
     A sphere of points defined by a *center* and a *radius*.
 
@@ -618,7 +618,7 @@
     _con_args = ('center', 'radius')
     def __init__(self, center, radius, ds=None,
                  field_parameters=None, data_source=None):
-        super(YTSphereBase, self).__init__(center, ds,
+        super(YTSphere, self).__init__(center, ds,
                                            field_parameters, data_source)
         # Unpack the radius, if necessary
         radius = fix_length(radius, self.ds)
@@ -629,7 +629,7 @@
         self.set_field_parameter("center", self.center)
         self.radius = radius
 
-class YTEllipsoidBase(YTSelectionContainer3D):
+class YTEllipsoid(YTSelectionContainer3D):
     """
     By providing a *center*,*A*,*B*,*C*,*e0*,*tilt* we
     can define a ellipsoid of any proportion.  Only cells whose
@@ -709,7 +709,7 @@
         self.set_field_parameter('e1', e1)
         self.set_field_parameter('e2', e2)
 
-class YTCutRegionBase(YTSelectionContainer3D):
+class YTCutRegion(YTSelectionContainer3D):
     """
     This is a data object designed to allow individuals to apply logical
     operations to fields and filter as a result of those cuts.
@@ -743,7 +743,7 @@
                 raise RuntimeError(
                     "Cannot use both base_object and data_source")
             data_source=base_object
-        super(YTCutRegionBase, self).__init__(
+        super(YTCutRegion, self).__init__(
             data_source.center, ds, field_parameters, data_source=data_source)
         self.conditionals = ensure_list(conditionals)
         self.base_object = data_source

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/data_objects/static_output.py
--- a/yt/data_objects/static_output.py
+++ b/yt/data_objects/static_output.py
@@ -554,7 +554,7 @@
                 continue
             cname = cls.__name__
             if cname.endswith("Base"): cname = cname[:-4]
-            self._add_object_class(name, cname, cls, {'ds':weakref.proxy(self)})
+            self._add_object_class(name, cls)
         if self.refine_by != 2 and hasattr(self, 'proj') and \
             hasattr(self, 'overlap_proj'):
             mylog.warning("Refine by something other than two: reverting to"
@@ -567,10 +567,9 @@
             self.proj = self.overlap_proj
         self.object_types.sort()
 
-    def _add_object_class(self, name, class_name, base, dd):
+    def _add_object_class(self, name, base):
         self.object_types.append(name)
-        dd.update({'__doc__': base.__doc__})
-        obj = type(class_name, (base,), dd)
+        obj = functools.partial(base, ds=weakref.proxy(self))
         setattr(self, name, obj)
 
     def find_max(self, field):

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/utilities/fits_image.py
--- a/yt/utilities/fits_image.py
+++ b/yt/utilities/fits_image.py
@@ -13,7 +13,7 @@
 import numpy as np
 from yt.funcs import mylog, iterable, fix_axis, ensure_list
 from yt.visualization.fixed_resolution import FixedResolutionBuffer
-from yt.data_objects.construction_data_containers import YTCoveringGridBase
+from yt.data_objects.construction_data_containers import YTCoveringGrid
 from yt.utilities.on_demand_imports import _astropy, NotAModule
 from yt.units.yt_array import YTQuantity, YTArray
 from yt.units import dimensions
@@ -152,7 +152,7 @@
                 yctr = 0.5*(img_data.bounds[3]+img_data.bounds[2]).in_units(units).v
                 center = [xctr, yctr]
                 cdelt = [dx,dy]
-            elif isinstance(img_data, YTCoveringGridBase):
+            elif isinstance(img_data, YTCoveringGrid):
                 cdelt = img_data.dds.in_units(units).v
                 center = 0.5*(img_data.left_edge+img_data.right_edge).in_units(units).v
             else:

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/visualization/fixed_resolution.py
--- a/yt/visualization/fixed_resolution.py
+++ b/yt/visualization/fixed_resolution.py
@@ -47,7 +47,7 @@
 
     Parameters
     ----------
-    data_source : :class:`yt.data_objects.data_containers.AMRProjBase` or :class:`yt.data_objects.data_containers.AMRSliceBase`
+    data_source : :class:`yt.data_objects.construction_data_containers.YTQuadTreeProj` or :class:`yt.data_objects.selection_data_containers.YTSlice`
         This is the source to be pixelized, which can be a projection or a
         slice.  (For cutting planes, see
         `yt.visualization.fixed_resolution.ObliqueFixedResolutionBuffer`.)

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/visualization/plot_modifications.py
--- a/yt/visualization/plot_modifications.py
+++ b/yt/visualization/plot_modifications.py
@@ -1953,13 +1953,13 @@
     annotate_ray(ray, plot_args=None)
 
     Adds a line representing the projected path of a ray across the plot.
-    The ray can be either a YTOrthoRayBase, YTRayBase, or a LightRay object.
+    The ray can be either a YTOrthoRay, YTRay, or a LightRay object.
     annotate_ray() will properly account for periodic rays across the volume.
 
     Parameters
     ----------
 
-    ray : YTOrthoRayBase, YTRayBase, or LightRay
+    ray : YTOrthoRay, YTRay, or LightRay
         Ray is the object that we want to include.  We overplot the projected
         trajectory of the ray.  If the object is a
         analysis_modules.cosmological_observation.light_ray.light_ray.LightRay
@@ -2052,7 +2052,7 @@
             start_coord, end_coord = self._process_light_ray(plot)
 
         else:
-            raise SyntaxError("ray must be a YTRayBase, YTOrthoRayBase, or "
+            raise SyntaxError("ray must be a YTRay, YTOrthoRay, or "
                               "LightRay object.")
 
         # if start_coord and end_coord are all False, it means no intersecting

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/visualization/plot_window.py
--- a/yt/visualization/plot_window.py
+++ b/yt/visualization/plot_window.py
@@ -186,7 +186,7 @@
     Parameters
     ----------
 
-    data_source : :class:`yt.data_objects.construction_data_containers.YTQuadTreeProjBase` or :class:`yt.data_objects.selection_data_containers.YTSliceBase`
+    data_source : :class:`yt.data_objects.construction_data_containers.YTQuadTreeProj` or :class:`yt.data_objects.selection_data_containers.YTSlice`
         This is the source to be pixelized, which can be a projection or a
         slice.  (For cutting planes, see
         `yt.visualization.fixed_resolution.ObliqueFixedResolutionBuffer`.)

diff -r 508299bf88f92f1191465d63e84a69eebd161954 -r ca754f897f2f44a4c2a9415b3aed977a0d1a4df0 yt/visualization/streamlines.py
--- a/yt/visualization/streamlines.py
+++ b/yt/visualization/streamlines.py
@@ -14,7 +14,7 @@
 #-----------------------------------------------------------------------------
 
 import numpy as np
-from yt.data_objects.construction_data_containers import YTStreamlineBase
+from yt.data_objects.construction_data_containers import YTStreamline
 from yt.funcs import get_pbar
 from yt.units.yt_array import YTArray
 from yt.utilities.parallel_tools.parallel_analysis_interface import \
@@ -216,7 +216,7 @@
 
         Returns
         -------
-        An YTStreamlineBase YTSelectionContainer1D object
+        An YTStreamline YTSelectionContainer1D object
 
         Examples
         --------
@@ -226,8 +226,7 @@
         >>> streamlines.integrate_through_volume()
         >>> stream = streamlines.path(0)
         >>> matplotlib.pylab.semilogy(stream['t'], stream['Density'], '-x')
-        
+
         """
-        return YTStreamlineBase(self.streamlines[streamline_id], ds=self.ds,
-                                length = self.length)
-        
+        return YTStreamline(self.streamlines[streamline_id], ds=self.ds,
+                            length=self.length)

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