1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
"""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
|