Files
MLPproject/.venv/lib/python3.12/site-packages/graphviz/parameters/mixins.py
2025-10-23 15:44:32 +02:00

47 lines
1.4 KiB
Python

"""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