We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
pass_manager_drawer requires filename to render
<!-- ⚠️ If you do not respect this template, your issue will be closed -->
<!-- ⚠️ Make sure to browse the opened and closed issues -->

### Information

- **Qiskit Terra version**: master
- **Python version**:
- **Operating system**:

### What is the current behavior?
The `pass_manager_drawer` requires a filename in order to run.  However this is not really a requirement of the code itself.  Indeed, this works fine:
```python
pass_manager_drawer(pm, '')
```


### Steps to reproduce the problem



### What is the expected behavior?



### Suggested solutions




--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `qiskit/visualization/pass_manager_visualization.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 
3 # This code is part of Qiskit.
4 #
5 # (C) Copyright IBM 2019.
6 #
7 # This code is licensed under the Apache License, Version 2.0. You may
8 # obtain a copy of this license in the LICENSE.txt file in the root directory
9 # of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
10 #
11 # Any modifications or derivative works of this code must retain this
12 # copyright notice, and modified files need to carry a notice indicating
13 # that they have been altered from the originals.
14 
15 """
16 Visualization function for a pass manager. Passes are grouped based on their
17 flow controller, and coloured based on the type of pass.
18 """
19 import os
20 import inspect
21 import tempfile
22 
23 try:
24     from PIL import Image
25 
26     HAS_PIL = True
27 except ImportError:
28     HAS_PIL = False
29 
30 from qiskit.visualization import utils
31 from qiskit.visualization.exceptions import VisualizationError
32 from qiskit.transpiler.basepasses import AnalysisPass, TransformationPass
33 
34 DEFAULT_STYLE = {AnalysisPass: 'red',
35                  TransformationPass: 'blue'}
36 
37 
38 def pass_manager_drawer(pass_manager, filename, style=None, raw=False):
39     """
40     Draws the pass manager.
41 
42     This function needs `pydot <https://github.com/erocarrera/pydot>`, which in turn needs
43     Graphviz <https://www.graphviz.org/>` to be installed.
44 
45     Args:
46         pass_manager (PassManager): the pass manager to be drawn
47         filename (str): file path to save image to
48         style (dict or OrderedDict): keys are the pass classes and the values are
49             the colors to make them. An example can be seen in the DEFAULT_STYLE. An ordered
50             dict can be used to ensure a priority coloring when pass falls into multiple
51             categories. Any values not included in the provided dict will be filled in from
52             the default dict
53         raw (Bool) : True if you want to save the raw Dot output not an image. The
54             default is False.
55     Returns:
56         PIL.Image or None: an in-memory representation of the pass manager. Or None if
57         no image was generated or PIL is not installed.
58     Raises:
59         ImportError: when nxpd or pydot not installed.
60         VisualizationError: If raw=True and filename=None.
61 
62     Example:
63         .. code-block::
64 
65              %matplotlib inline
66             from qiskit import QuantumCircuit
67             from qiskit.compiler import transpile
68             from qiskit.transpiler import PassManager
69             from qiskit.visualization import pass_manager_drawer
70             from qiskit.transpiler.passes import Unroller
71 
72             circ = QuantumCircuit(3)
73             circ.ccx(0, 1, 2)
74             circ.draw()
75 
76             pass_ = Unroller(['u1', 'u2', 'u3', 'cx'])
77             pm = PassManager(pass_)
78             new_circ = pm.run(circ)
79             new_circ.draw(output='mpl')
80 
81             pass_manager_drawer(pm, "passmanager.jpg")
82     """
83 
84     try:
85         import subprocess
86 
87         _PROC = subprocess.Popen(['dot', '-V'],  # pylint: disable=invalid-name
88                                  stdout=subprocess.PIPE,
89                                  stderr=subprocess.PIPE)
90         _PROC.communicate()
91         if _PROC.returncode != 0:
92             has_graphviz = False
93         else:
94             has_graphviz = True
95     except Exception:  # pylint: disable=broad-except
96         # this is raised when the dot command cannot be found, which means GraphViz
97         # isn't installed
98         has_graphviz = False
99 
100     HAS_GRAPHVIZ = has_graphviz  # pylint: disable=invalid-name
101 
102     try:
103         import pydot
104         if not HAS_GRAPHVIZ:
105             raise ImportError
106     except ImportError:
107         raise ImportError("pass_manager_drawer requires pydot and graphviz. "
108                           "Run 'pip install pydot'. "
109                           "Graphviz can be installed using 'brew install graphviz' on Mac"
110                           " or by downloading it from the website.")
111 
112     passes = pass_manager.passes()
113 
114     if not style:
115         style = DEFAULT_STYLE
116 
117     # create the overall graph
118     graph = pydot.Dot()
119 
120     # identifiers for nodes need to be unique, so assign an id
121     # can't just use python's id in case the exact same pass was
122     # appended more than once
123     component_id = 0
124 
125     prev_node = None
126 
127     for index, controller_group in enumerate(passes):
128 
129         # label is the name of the flow controller parameter
130         label = "[%s] %s" % (index, ', '.join(controller_group['flow_controllers']))
131 
132         # create the subgraph for this controller
133         subgraph = pydot.Cluster(str(component_id), label=label, fontname='helvetica',
134                                  labeljust='l')
135         component_id += 1
136 
137         for pass_ in controller_group['passes']:
138 
139             # label is the name of the pass
140             node = pydot.Node(str(component_id),
141                               label=str(type(pass_).__name__),
142                               color=_get_node_color(pass_, style),
143                               shape="rectangle",
144                               fontname='helvetica')
145 
146             subgraph.add_node(node)
147             component_id += 1
148 
149             # the arguments that were provided to the pass when it was created
150             arg_spec = inspect.getfullargspec(pass_.__init__)
151             # 0 is the args, 1: to remove the self arg
152             args = arg_spec[0][1:]
153 
154             num_optional = len(arg_spec[3]) if arg_spec[3] else 0
155 
156             # add in the inputs to the pass
157             for arg_index, arg in enumerate(args):
158                 nd_style = 'solid'
159                 # any optional args are dashed
160                 # the num of optional counts from the end towards the start of the list
161                 if arg_index >= (len(args) - num_optional):
162                     nd_style = 'dashed'
163 
164                 input_node = pydot.Node(component_id, label=arg,
165                                         color="black",
166                                         shape="ellipse",
167                                         fontsize=10,
168                                         style=nd_style,
169                                         fontname='helvetica')
170                 subgraph.add_node(input_node)
171                 component_id += 1
172                 subgraph.add_edge(pydot.Edge(input_node, node))
173 
174             # if there is a previous node, add an edge between them
175             if prev_node:
176                 subgraph.add_edge(pydot.Edge(prev_node, node))
177 
178             prev_node = node
179 
180         graph.add_subgraph(subgraph)
181 
182     if raw:
183         if filename:
184             graph.write(filename, format='raw')
185             return None
186         else:
187             raise VisualizationError("if format=raw, then a filename is required.")
188 
189     if not HAS_PIL and filename:
190         # linter says this isn't a method - it is
191         graph.write_png(filename)  # pylint: disable=no-member
192         return None
193 
194     with tempfile.TemporaryDirectory() as tmpdirname:
195         tmppath = os.path.join(tmpdirname, 'pass_manager.png')
196 
197         # linter says this isn't a method - it is
198         graph.write_png(tmppath)  # pylint: disable=no-member
199 
200         image = Image.open(tmppath)
201         image = utils._trim(image)
202         os.remove(tmppath)
203         if filename:
204             image.save(filename, 'PNG')
205         return image
206 
207 
208 def _get_node_color(pss, style):
209     # look in the user provided dict first
210     for typ, color in style.items():
211         if isinstance(pss, typ):
212             return color
213 
214     # failing that, look in the default
215     for typ, color in DEFAULT_STYLE.items():
216         if isinstance(pss, typ):
217             return color
218 
219     return "black"
220
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/qiskit/visualization/pass_manager_visualization.py b/qiskit/visualization/pass_manager_visualization.py
--- a/qiskit/visualization/pass_manager_visualization.py
+++ b/qiskit/visualization/pass_manager_visualization.py
@@ -35,7 +35,7 @@
                  TransformationPass: 'blue'}
 
 
-def pass_manager_drawer(pass_manager, filename, style=None, raw=False):
+def pass_manager_drawer(pass_manager, filename=None, style=None, raw=False):
     """
     Draws the pass manager.

{"golden_diff": "diff --git a/qiskit/visualization/pass_manager_visualization.py b/qiskit/visualization/pass_manager_visualization.py\n--- a/qiskit/visualization/pass_manager_visualization.py\n+++ b/qiskit/visualization/pass_manager_visualization.py\n@@ -35,7 +35,7 @@\n                  TransformationPass: 'blue'}\n \n \n-def pass_manager_drawer(pass_manager, filename, style=None, raw=False):\n+def pass_manager_drawer(pass_manager, filename=None, style=None, raw=False):\n     \"\"\"\n     Draws the pass manager.\n", "issue": "pass_manager_drawer requires filename to render\n<!-- \u26a0\ufe0f If you do not respect this template, your issue will be closed -->\r\n<!-- \u26a0\ufe0f Make sure to browse the opened and closed issues -->\r\n\r\n### Information\r\n\r\n- **Qiskit Terra version**: master\r\n- **Python version**:\r\n- **Operating system**:\r\n\r\n### What is the current behavior?\r\nThe `pass_manager_drawer` requires a filename in order to run.  However this is not really a requirement of the code itself.  Indeed, this works fine:\r\n```python\r\npass_manager_drawer(pm, '')\r\n```\r\n\r\n\r\n### Steps to reproduce the problem\r\n\r\n\r\n\r\n### What is the expected behavior?\r\n\r\n\r\n\r\n### Suggested solutions\r\n\r\n\r\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\n# This code is part of Qiskit.\n#\n# (C) Copyright IBM 2019.\n#\n# This code is licensed under the Apache License, Version 2.0. You may\n# obtain a copy of this license in the LICENSE.txt file in the root directory\n# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.\n#\n# Any modifications or derivative works of this code must retain this\n# copyright notice, and modified files need to carry a notice indicating\n# that they have been altered from the originals.\n\n\"\"\"\nVisualization function for a pass manager. Passes are grouped based on their\nflow controller, and coloured based on the type of pass.\n\"\"\"\nimport os\nimport inspect\nimport tempfile\n\ntry:\n    from PIL import Image\n\n    HAS_PIL = True\nexcept ImportError:\n    HAS_PIL = False\n\nfrom qiskit.visualization import utils\nfrom qiskit.visualization.exceptions import VisualizationError\nfrom qiskit.transpiler.basepasses import AnalysisPass, TransformationPass\n\nDEFAULT_STYLE = {AnalysisPass: 'red',\n                 TransformationPass: 'blue'}\n\n\ndef pass_manager_drawer(pass_manager, filename, style=None, raw=False):\n    \"\"\"\n    Draws the pass manager.\n\n    This function needs `pydot <https://github.com/erocarrera/pydot>`, which in turn needs\n    Graphviz <https://www.graphviz.org/>` to be installed.\n\n    Args:\n        pass_manager (PassManager): the pass manager to be drawn\n        filename (str): file path to save image to\n        style (dict or OrderedDict): keys are the pass classes and the values are\n            the colors to make them. An example can be seen in the DEFAULT_STYLE. An ordered\n            dict can be used to ensure a priority coloring when pass falls into multiple\n            categories. Any values not included in the provided dict will be filled in from\n            the default dict\n        raw (Bool) : True if you want to save the raw Dot output not an image. The\n            default is False.\n    Returns:\n        PIL.Image or None: an in-memory representation of the pass manager. Or None if\n        no image was generated or PIL is not installed.\n    Raises:\n        ImportError: when nxpd or pydot not installed.\n        VisualizationError: If raw=True and filename=None.\n\n    Example:\n        .. code-block::\n\n             %matplotlib inline\n            from qiskit import QuantumCircuit\n            from qiskit.compiler import transpile\n            from qiskit.transpiler import PassManager\n            from qiskit.visualization import pass_manager_drawer\n            from qiskit.transpiler.passes import Unroller\n\n            circ = QuantumCircuit(3)\n            circ.ccx(0, 1, 2)\n            circ.draw()\n\n            pass_ = Unroller(['u1', 'u2', 'u3', 'cx'])\n            pm = PassManager(pass_)\n            new_circ = pm.run(circ)\n            new_circ.draw(output='mpl')\n\n            pass_manager_drawer(pm, \"passmanager.jpg\")\n    \"\"\"\n\n    try:\n        import subprocess\n\n        _PROC = subprocess.Popen(['dot', '-V'],  # pylint: disable=invalid-name\n                                 stdout=subprocess.PIPE,\n                                 stderr=subprocess.PIPE)\n        _PROC.communicate()\n        if _PROC.returncode != 0:\n            has_graphviz = False\n        else:\n            has_graphviz = True\n    except Exception:  # pylint: disable=broad-except\n        # this is raised when the dot command cannot be found, which means GraphViz\n        # isn't installed\n        has_graphviz = False\n\n    HAS_GRAPHVIZ = has_graphviz  # pylint: disable=invalid-name\n\n    try:\n        import pydot\n        if not HAS_GRAPHVIZ:\n            raise ImportError\n    except ImportError:\n        raise ImportError(\"pass_manager_drawer requires pydot and graphviz. \"\n                          \"Run 'pip install pydot'. \"\n                          \"Graphviz can be installed using 'brew install graphviz' on Mac\"\n                          \" or by downloading it from the website.\")\n\n    passes = pass_manager.passes()\n\n    if not style:\n        style = DEFAULT_STYLE\n\n    # create the overall graph\n    graph = pydot.Dot()\n\n    # identifiers for nodes need to be unique, so assign an id\n    # can't just use python's id in case the exact same pass was\n    # appended more than once\n    component_id = 0\n\n    prev_node = None\n\n    for index, controller_group in enumerate(passes):\n\n        # label is the name of the flow controller parameter\n        label = \"[%s] %s\" % (index, ', '.join(controller_group['flow_controllers']))\n\n        # create the subgraph for this controller\n        subgraph = pydot.Cluster(str(component_id), label=label, fontname='helvetica',\n                                 labeljust='l')\n        component_id += 1\n\n        for pass_ in controller_group['passes']:\n\n            # label is the name of the pass\n            node = pydot.Node(str(component_id),\n                              label=str(type(pass_).__name__),\n                              color=_get_node_color(pass_, style),\n                              shape=\"rectangle\",\n                              fontname='helvetica')\n\n            subgraph.add_node(node)\n            component_id += 1\n\n            # the arguments that were provided to the pass when it was created\n            arg_spec = inspect.getfullargspec(pass_.__init__)\n            # 0 is the args, 1: to remove the self arg\n            args = arg_spec[0][1:]\n\n            num_optional = len(arg_spec[3]) if arg_spec[3] else 0\n\n            # add in the inputs to the pass\n            for arg_index, arg in enumerate(args):\n                nd_style = 'solid'\n                # any optional args are dashed\n                # the num of optional counts from the end towards the start of the list\n                if arg_index >= (len(args) - num_optional):\n                    nd_style = 'dashed'\n\n                input_node = pydot.Node(component_id, label=arg,\n                                        color=\"black\",\n                                        shape=\"ellipse\",\n                                        fontsize=10,\n                                        style=nd_style,\n                                        fontname='helvetica')\n                subgraph.add_node(input_node)\n                component_id += 1\n                subgraph.add_edge(pydot.Edge(input_node, node))\n\n            # if there is a previous node, add an edge between them\n            if prev_node:\n                subgraph.add_edge(pydot.Edge(prev_node, node))\n\n            prev_node = node\n\n        graph.add_subgraph(subgraph)\n\n    if raw:\n        if filename:\n            graph.write(filename, format='raw')\n            return None\n        else:\n            raise VisualizationError(\"if format=raw, then a filename is required.\")\n\n    if not HAS_PIL and filename:\n        # linter says this isn't a method - it is\n        graph.write_png(filename)  # pylint: disable=no-member\n        return None\n\n    with tempfile.TemporaryDirectory() as tmpdirname:\n        tmppath = os.path.join(tmpdirname, 'pass_manager.png')\n\n        # linter says this isn't a method - it is\n        graph.write_png(tmppath)  # pylint: disable=no-member\n\n        image = Image.open(tmppath)\n        image = utils._trim(image)\n        os.remove(tmppath)\n        if filename:\n            image.save(filename, 'PNG')\n        return image\n\n\ndef _get_node_color(pss, style):\n    # look in the user provided dict first\n    for typ, color in style.items():\n        if isinstance(pss, typ):\n            return color\n\n    # failing that, look in the default\n    for typ, color in DEFAULT_STYLE.items():\n        if isinstance(pss, typ):\n            return color\n\n    return \"black\"\n", "path": "qiskit/visualization/pass_manager_visualization.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\n# This code is part of Qiskit.\n#\n# (C) Copyright IBM 2019.\n#\n# This code is licensed under the Apache License, Version 2.0. You may\n# obtain a copy of this license in the LICENSE.txt file in the root directory\n# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.\n#\n# Any modifications or derivative works of this code must retain this\n# copyright notice, and modified files need to carry a notice indicating\n# that they have been altered from the originals.\n\n\"\"\"\nVisualization function for a pass manager. Passes are grouped based on their\nflow controller, and coloured based on the type of pass.\n\"\"\"\nimport os\nimport inspect\nimport tempfile\n\ntry:\n    from PIL import Image\n\n    HAS_PIL = True\nexcept ImportError:\n    HAS_PIL = False\n\nfrom qiskit.visualization import utils\nfrom qiskit.visualization.exceptions import VisualizationError\nfrom qiskit.transpiler.basepasses import AnalysisPass, TransformationPass\n\nDEFAULT_STYLE = {AnalysisPass: 'red',\n                 TransformationPass: 'blue'}\n\n\ndef pass_manager_drawer(pass_manager, filename=None, style=None, raw=False):\n    \"\"\"\n    Draws the pass manager.\n\n    This function needs `pydot <https://github.com/erocarrera/pydot>`, which in turn needs\n    Graphviz <https://www.graphviz.org/>` to be installed.\n\n    Args:\n        pass_manager (PassManager): the pass manager to be drawn\n        filename (str): file path to save image to\n        style (dict or OrderedDict): keys are the pass classes and the values are\n            the colors to make them. An example can be seen in the DEFAULT_STYLE. An ordered\n            dict can be used to ensure a priority coloring when pass falls into multiple\n            categories. Any values not included in the provided dict will be filled in from\n            the default dict\n        raw (Bool) : True if you want to save the raw Dot output not an image. The\n            default is False.\n    Returns:\n        PIL.Image or None: an in-memory representation of the pass manager. Or None if\n        no image was generated or PIL is not installed.\n    Raises:\n        ImportError: when nxpd or pydot not installed.\n        VisualizationError: If raw=True and filename=None.\n\n    Example:\n        .. code-block::\n\n             %matplotlib inline\n            from qiskit import QuantumCircuit\n            from qiskit.compiler import transpile\n            from qiskit.transpiler import PassManager\n            from qiskit.visualization import pass_manager_drawer\n            from qiskit.transpiler.passes import Unroller\n\n            circ = QuantumCircuit(3)\n            circ.ccx(0, 1, 2)\n            circ.draw()\n\n            pass_ = Unroller(['u1', 'u2', 'u3', 'cx'])\n            pm = PassManager(pass_)\n            new_circ = pm.run(circ)\n            new_circ.draw(output='mpl')\n\n            pass_manager_drawer(pm, \"passmanager.jpg\")\n    \"\"\"\n\n    try:\n        import subprocess\n\n        _PROC = subprocess.Popen(['dot', '-V'],  # pylint: disable=invalid-name\n                                 stdout=subprocess.PIPE,\n                                 stderr=subprocess.PIPE)\n        _PROC.communicate()\n        if _PROC.returncode != 0:\n            has_graphviz = False\n        else:\n            has_graphviz = True\n    except Exception:  # pylint: disable=broad-except\n        # this is raised when the dot command cannot be found, which means GraphViz\n        # isn't installed\n        has_graphviz = False\n\n    HAS_GRAPHVIZ = has_graphviz  # pylint: disable=invalid-name\n\n    try:\n        import pydot\n        if not HAS_GRAPHVIZ:\n            raise ImportError\n    except ImportError:\n        raise ImportError(\"pass_manager_drawer requires pydot and graphviz. \"\n                          \"Run 'pip install pydot'. \"\n                          \"Graphviz can be installed using 'brew install graphviz' on Mac\"\n                          \" or by downloading it from the website.\")\n\n    passes = pass_manager.passes()\n\n    if not style:\n        style = DEFAULT_STYLE\n\n    # create the overall graph\n    graph = pydot.Dot()\n\n    # identifiers for nodes need to be unique, so assign an id\n    # can't just use python's id in case the exact same pass was\n    # appended more than once\n    component_id = 0\n\n    prev_node = None\n\n    for index, controller_group in enumerate(passes):\n\n        # label is the name of the flow controller parameter\n        label = \"[%s] %s\" % (index, ', '.join(controller_group['flow_controllers']))\n\n        # create the subgraph for this controller\n        subgraph = pydot.Cluster(str(component_id), label=label, fontname='helvetica',\n                                 labeljust='l')\n        component_id += 1\n\n        for pass_ in controller_group['passes']:\n\n            # label is the name of the pass\n            node = pydot.Node(str(component_id),\n                              label=str(type(pass_).__name__),\n                              color=_get_node_color(pass_, style),\n                              shape=\"rectangle\",\n                              fontname='helvetica')\n\n            subgraph.add_node(node)\n            component_id += 1\n\n            # the arguments that were provided to the pass when it was created\n            arg_spec = inspect.getfullargspec(pass_.__init__)\n            # 0 is the args, 1: to remove the self arg\n            args = arg_spec[0][1:]\n\n            num_optional = len(arg_spec[3]) if arg_spec[3] else 0\n\n            # add in the inputs to the pass\n            for arg_index, arg in enumerate(args):\n                nd_style = 'solid'\n                # any optional args are dashed\n                # the num of optional counts from the end towards the start of the list\n                if arg_index >= (len(args) - num_optional):\n                    nd_style = 'dashed'\n\n                input_node = pydot.Node(component_id, label=arg,\n                                        color=\"black\",\n                                        shape=\"ellipse\",\n                                        fontsize=10,\n                                        style=nd_style,\n                                        fontname='helvetica')\n                subgraph.add_node(input_node)\n                component_id += 1\n                subgraph.add_edge(pydot.Edge(input_node, node))\n\n            # if there is a previous node, add an edge between them\n            if prev_node:\n                subgraph.add_edge(pydot.Edge(prev_node, node))\n\n            prev_node = node\n\n        graph.add_subgraph(subgraph)\n\n    if raw:\n        if filename:\n            graph.write(filename, format='raw')\n            return None\n        else:\n            raise VisualizationError(\"if format=raw, then a filename is required.\")\n\n    if not HAS_PIL and filename:\n        # linter says this isn't a method - it is\n        graph.write_png(filename)  # pylint: disable=no-member\n        return None\n\n    with tempfile.TemporaryDirectory() as tmpdirname:\n        tmppath = os.path.join(tmpdirname, 'pass_manager.png')\n\n        # linter says this isn't a method - it is\n        graph.write_png(tmppath)  # pylint: disable=no-member\n\n        image = Image.open(tmppath)\n        image = utils._trim(image)\n        os.remove(tmppath)\n        if filename:\n            image.save(filename, 'PNG')\n        return image\n\n\ndef _get_node_color(pss, style):\n    # look in the user provided dict first\n    for typ, color in style.items():\n        if isinstance(pss, typ):\n            return color\n\n    # failing that, look in the default\n    for typ, color in DEFAULT_STYLE.items():\n        if isinstance(pss, typ):\n            return color\n\n    return \"black\"\n", "path": "qiskit/visualization/pass_manager_visualization.py"}]}