77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
"""Mixin classes used by Base subclasses to inherit backend functionality."""
|
|
|
|
import os
|
|
import typing
|
|
|
|
from .. import parameters
|
|
|
|
from . import piping
|
|
from . import rendering
|
|
from . import unflattening
|
|
from . import viewing
|
|
|
|
__all__ = ['Render', 'Pipe', 'Unflatten', 'View']
|
|
|
|
|
|
class Render(parameters.Parameters):
|
|
"""Parameters for calling and calling ``graphviz.render()``."""
|
|
|
|
def _get_render_parameters(self,
|
|
outfile: typing.Union[os.PathLike, str, None] = None,
|
|
raise_if_result_exists: bool = False,
|
|
overwrite_source: bool = False,
|
|
**kwargs):
|
|
kwargs = self._get_parameters(**kwargs)
|
|
kwargs.update(outfile=outfile,
|
|
raise_if_result_exists=raise_if_result_exists,
|
|
overwrite_filepath=overwrite_source)
|
|
return [kwargs.pop('engine'), kwargs.pop('format')], kwargs
|
|
|
|
@property
|
|
def _render(_): # noqa: N805
|
|
"""Simplify ``._render()`` mocking."""
|
|
return rendering.render
|
|
|
|
|
|
class Pipe(parameters.Parameters):
|
|
"""Parameters for calling and calling ``graphviz.pipe()``."""
|
|
|
|
_get_format = staticmethod(rendering.get_format)
|
|
|
|
_get_filepath = staticmethod(rendering.get_filepath)
|
|
|
|
def _get_pipe_parameters(self, **kwargs):
|
|
kwargs = self._get_parameters(**kwargs)
|
|
return [kwargs.pop('engine'), kwargs.pop('format')], kwargs
|
|
|
|
@property
|
|
def _pipe_lines(_): # noqa: N805
|
|
"""Simplify ``._pipe_lines()`` mocking."""
|
|
return piping.pipe_lines
|
|
|
|
@property
|
|
def _pipe_lines_string(_): # noqa: N805
|
|
"""Simplify ``._pipe_lines_string()`` mocking."""
|
|
return piping.pipe_lines_string
|
|
|
|
|
|
class Unflatten:
|
|
|
|
@property
|
|
def _unflatten(_): # noqa: N805
|
|
"""Simplify ``._unflatten mocking."""
|
|
return unflattening.unflatten
|
|
|
|
|
|
class View:
|
|
"""Open filepath with its default viewing application
|
|
(platform-specific)."""
|
|
|
|
_view_darwin = staticmethod(viewing.view_darwin)
|
|
|
|
_view_freebsd = staticmethod(viewing.view_unixoid)
|
|
|
|
_view_linux = staticmethod(viewing.view_unixoid)
|
|
|
|
_view_windows = staticmethod(viewing.view_windows)
|