"""Mixin classes used to inherit parameter functionality.""" import typing from . import engines from . import formats from . import renderers from . import formatters __all__ = ['Parameters'] class Parameters(engines.Engine, formats.Format, renderers.Renderer, formatters.Formatter): """Parameters for calling ``graphviz.render()`` and ``graphviz.pipe()``.""" def _get_parameters(self, *, engine: typing.Optional[str] = None, format: typing.Optional[str] = None, renderer: typing.Optional[str] = None, formatter: typing.Optional[str] = None, verify: bool = False, **kwargs): if engine is None: engine = self.engine elif verify: self._verify_engine(engine) if format is None: format = self.format elif verify: self._verify_format(format) if renderer is None: renderer = self.renderer elif verify: self._verify_renderer(renderer) if formatter is None: formatter = self.formatter elif verify: self._verify_formatter(formatter) kwargs.update(engine=engine, format=format, renderer=renderer, formatter=formatter) return kwargs