1"""Set package-wide default parameters and IPython/Jupyter display format."""
2
3__all_ = ['DEFAULT_SOURCE_EXTENSION',
4 'set_default_engine', 'set_default_format', 'set_jupyter_format']
5
6DEFAULT_SOURCE_EXTENSION = 'gv'
7
8
9def set_default_engine(engine: str) -> str:
10 """Change the default ``engine`` and return the old default value.
11
12 Args:
13 engine: new default ``engine``
14 used by all present and newly created instances
15 without explicitly set ``engine``
16 (``'dot'``, ``'neato'``, ...).
17
18 Returns:
19 The old default value used for ``engine``.
20 """
21 from . import parameters
22
23 parameters.verify_engine(engine)
24
25 old_default_engine = parameters.Parameters._engine
26 parameters.Parameters._engine = engine
27 return old_default_engine
28
29
30def set_default_format(format: str) -> str:
31 """Change the default ``format`` and return the old default value.
32
33 Args:
34 format: new default ``format``
35 used by all present and newly created instances
36 without explicitly set ``format``
37 (``'pdf'``, ``'png'``, ...).
38
39 Returns:
40 The old default value used for ``format``.
41 """
42 from . import parameters
43
44 parameters.verify_format(format)
45
46 old_default_format = parameters.Parameters._format
47 parameters.Parameters._format = format
48 return old_default_format
49
50
51def set_jupyter_format(jupyter_format: str) -> str:
52 """Change the default mimetype format for ``_repr_mimebundle_()`` and return the old value.
53
54 Args:
55 jupyter_format: new default IPython/Jupyter display format
56 used by all present and newly created instances
57 (``'svg'``, ``'png'``, ...).
58
59 Returns:
60 The old default value used for IPython/Jupyter display format.
61 """
62 from . import jupyter_integration
63
64 mimetype = jupyter_integration.get_jupyter_format_mimetype(jupyter_format)
65
66 old_mimetype = jupyter_integration.JupyterIntegration._jupyter_mimetype
67 old_format = jupyter_integration.get_jupyter_mimetype_format(old_mimetype)
68
69 jupyter_integration.JupyterIntegration._jupyter_mimetype = mimetype
70 return old_format