Plotter API Reference
=====================

The below Python API reference documentation is for three views of the core graph abstraction, `Plottable`:

* The :py:class:`graphistry.plotter.Plotter` class that mixes in all layers such as plugins
* The :py:class:`graphistry.Plottable` abstract interface for the core Graphistry graph object
* The :py:class:`graphistry.PlotterBase` class implementing it

Arrow Conversion Validation
---------------------------

``plot()``, ``upload()``, and ``to_arrow()`` use ``validate='autofix'`` by default
for pandas/cuDF to Arrow conversion. When Arrow rejects mixed-type object columns,
autofix probes object columns, coerces only the failing columns to strings, and
emits a warning naming those columns when ``warn=True``. Use
``validate='strict'`` or ``validate='strict-fast'`` to raise instead.

For pandas inputs, autofix prefers pandas' nullable string dtype when available
so missing values remain Arrow nulls after coercion. Older pandas versions fall
back to standard Python string coercion.

.. toctree::
   :maxdepth: 3

Plotter Class
----------------------
.. automodule:: graphistry.plotter.Plotter
   :members:
   :undoc-members:
   :inherited-members:
   :show-inheritance:


PlotterBase Class
----------------------
.. automodule:: graphistry.PlotterBase
   :members:
   :undoc-members:
   :inherited-members:
   :show-inheritance:


Plottable Interface
----------------------
.. automodule:: graphistry.Plottable
   :members:
   :undoc-members:
   :inherited-members:
   :show-inheritance:
