# Examples from pyvista.register_dataset_accessor
# ===============================================

# Register a minimal accessor on `PolyData`.
import pyvista as pv
@pv.register_dataset_accessor('demo', pv.PolyData)
class DemoAccessor:
    def __init__(self, mesh):
        self._mesh = mesh

    def n_points_doubled(self):
        return self._mesh.n_points * 2
sphere = pv.Sphere()
sphere.demo.n_points_doubled() == sphere.n_points * 2

# The accessor is cached per instance. Repeated access returns the
# same object.
sphere.demo is sphere.demo

# Clean up so the namespace is not visible to later doctest examples.
pv.unregister_dataset_accessor('demo', pv.PolyData)

# ----------------------------------------------------------------------
# Generated by sphinx-examples-as-code https://github.com/pyvista/sphinx-examples-as-code
