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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
"""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)
|