Skip to content

Commit d25982b

Browse files
committed
cwlviewer: use importlib instead of __file__.
1 parent 4b3b945 commit d25982b

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

cwltool/cwlviewer.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,28 @@
11
"""Visualize a CWL workflow."""
22

33
from collections.abc import Iterator
4-
from pathlib import Path
4+
from importlib.resources import files
55
from typing import cast
66
from urllib.parse import urlparse
77

88
import pydot
99
import rdflib
1010

11-
_queries_dir = (Path(__file__).parent / "rdfqueries").resolve()
12-
_get_inner_edges_query_path = _queries_dir / "get_inner_edges.sparql"
13-
_get_input_edges_query_path = _queries_dir / "get_input_edges.sparql"
14-
_get_output_edges_query_path = _queries_dir / "get_output_edges.sparql"
15-
_get_root_query_path = _queries_dir / "get_root.sparql"
11+
12+
def _get_inner_edges_query() -> str:
13+
return files("cwltool").joinpath("rdfqueries/get_inner_edges.sparql").read_text()
14+
15+
16+
def _get_input_edges_query() -> str:
17+
return files("cwltool").joinpath("rdfqueries/get_input_edges.sparql").read_text()
18+
19+
20+
def _get_output_edges_query() -> str:
21+
return files("cwltool").joinpath("rdfqueries/get_output_edges.sparql").read_text()
22+
23+
24+
def _get_root_query() -> str:
25+
return files("cwltool").joinpath("rdfqueries/get_root.sparql").read_text()
1626

1727

1828
class CWLViewer:
@@ -33,8 +43,7 @@ def _load_cwl_graph(self, rdf_description: str) -> rdflib.graph.Graph:
3343
return rdf_graph
3444

3545
def _set_inner_edges(self) -> None:
36-
with open(_get_inner_edges_query_path) as f:
37-
get_inner_edges_query = f.read()
46+
get_inner_edges_query = _get_inner_edges_query()
3847
inner_edges = cast(
3948
Iterator[rdflib.query.ResultRow],
4049
self._rdf_graph.query(
@@ -96,8 +105,7 @@ def _set_inner_edges(self) -> None:
96105
)
97106

98107
def _set_input_edges(self) -> None:
99-
with open(_get_input_edges_query_path) as f:
100-
get_input_edges_query = f.read()
108+
get_input_edges_query = _get_input_edges_query()
101109
inputs_subgraph = pydot.Subgraph(graph_name="cluster_inputs")
102110
self._dot_graph.add_subgraph(inputs_subgraph)
103111
inputs_subgraph.set("rank", "same")
@@ -124,8 +132,7 @@ def _set_input_edges(self) -> None:
124132
self._dot_graph.add_edge(pydot.Edge(str(input_row["input"]), str(input_row["step"])))
125133

126134
def _set_output_edges(self) -> None:
127-
with open(_get_output_edges_query_path) as f:
128-
get_output_edges = f.read()
135+
get_output_edges = _get_output_edges_query()
129136
outputs_graph = pydot.Subgraph(graph_name="cluster_outputs")
130137
self._dot_graph.add_subgraph(outputs_graph)
131138
outputs_graph.set("rank", "same")
@@ -152,8 +159,7 @@ def _set_output_edges(self) -> None:
152159
self._dot_graph.add_edge(pydot.Edge(output_edge_row["step"], output_edge_row["output"]))
153160

154161
def _get_root_graph_uri(self) -> rdflib.term.Identifier:
155-
with open(_get_root_query_path) as f:
156-
get_root_query = f.read()
162+
get_root_query = _get_root_query()
157163
root = cast(
158164
list[rdflib.query.ResultRow],
159165
list(

0 commit comments

Comments
 (0)