Skip to content

Commit

Permalink
Merge pull request #1374 from Sage-Bionetworks/develop-fds-1750
Browse files Browse the repository at this point in the history
Avoid repeatedly calling `generate_data_model_graph`
  • Loading branch information
linglp authored Feb 28, 2024
2 parents cfd6b3a + ed9e56d commit 26f71aa
Show file tree
Hide file tree
Showing 14 changed files with 44 additions and 35 deletions.
2 changes: 1 addition & 1 deletion schematic/manifest/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ def get_manifest(

# Generate graph
logger.info("Generating data model graph.")
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

def create_single_manifest(data_type, output_csv=None, output_xlsx=None):
# create object of type ManifestGenerator
Expand Down
2 changes: 1 addition & 1 deletion schematic/manifest/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -1677,7 +1677,7 @@ def create_manifests(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Gather all returned result urls
all_results = []
Expand Down
2 changes: 1 addition & 1 deletion schematic/models/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def __init__(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
self.graph_data_model = data_model_grapher.generate_data_model_graph()
self.graph_data_model = data_model_grapher.graph

self.dmge = DataModelGraphExplorer(self.graph_data_model)

Expand Down
2 changes: 1 addition & 1 deletion schematic/schemas/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def convert(schema, data_model_labels, output_jsonld):

# Generate graph
logger.info("Generating data model graph.")
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Validate generated data model.
logger.info("Validating the data model internally.")
Expand Down
26 changes: 16 additions & 10 deletions schematic/visualization/attributes_explorer.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import logging
import os
from typing import Optional, no_type_check

import numpy as np
import pandas as pd

Expand All @@ -19,31 +18,38 @@
class AttributesExplorer:
"""AttributesExplorer class"""

# pylint: disable=too-many-arguments
def __init__(
self,
path_to_jsonld: str,
data_model_labels: DisplayLabelType,
data_model_grapher: Optional[DataModelGraph] = None,
data_model_graph_explorer: Optional[DataModelGraphExplorer] = None,
parsed_data_model: Optional[dict] = None,
) -> None:
self.path_to_jsonld = path_to_jsonld

self.jsonld = load_json(self.path_to_jsonld)

# Instantiate Data Model Parser
data_model_parser = DataModelParser(
path_to_data_model=self.path_to_jsonld,
)

# Parse Model
parsed_data_model = data_model_parser.parse_model()
if not parsed_data_model:
data_model_parser = DataModelParser(
path_to_data_model=self.path_to_jsonld,
)
parsed_data_model = data_model_parser.parse_model()

# Instantiate DataModelGraph
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)
if not data_model_grapher:
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
self.graph_data_model = data_model_grapher.generate_data_model_graph()
self.graph_data_model = data_model_grapher.graph

# Instantiate Data Model Graph Explorer
self.dmge = DataModelGraphExplorer(self.graph_data_model)
if not data_model_graph_explorer:
self.dmge = DataModelGraphExplorer(self.graph_data_model)
else:
self.dmge = data_model_graph_explorer

# Instantiate Data Model Json Schema
self.data_model_js = DataModelJSONSchema(
Expand Down
8 changes: 6 additions & 2 deletions schematic/visualization/tangled_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def __init__(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
self.graph_data_model = data_model_grapher.generate_data_model_graph()
self.graph_data_model = data_model_grapher.graph

# Instantiate Data Model Graph Explorer
self.dmge = DataModelGraphExplorer(self.graph_data_model)
Expand All @@ -86,7 +86,11 @@ def __init__(

# Initialize AttributesExplorer
self.attributes_explorer = AttributesExplorer(
self.path_to_json_ld, data_model_labels
self.path_to_json_ld,
data_model_labels,
data_model_grapher=data_model_grapher,
data_model_graph_explorer=self.dmge,
parsed_data_model=parsed_data_model,
)

# Create output paths.
Expand Down
17 changes: 8 additions & 9 deletions schematic_api/api/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,6 @@ def save_file(file_key="csv_file"):

return temp_path


def initalize_metadata_model(schema_url, data_model_labels):
# get path to temp data model file (csv or jsonld) as appropriate
data_model = get_temp_model_path(schema_url)
Expand Down Expand Up @@ -769,7 +768,7 @@ def get_schema_pickle(schema_url, data_model_labels):
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# write to local pickle file
path = os.getcwd()
Expand All @@ -790,7 +789,7 @@ def get_subgraph_by_edge_type(schema_url, relationship, data_model_labels):
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

dmge = DataModelGraphExplorer(graph_data_model)

Expand All @@ -814,7 +813,7 @@ def find_class_specific_properties(schema_url, schema_class, data_model_labels):
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

dmge = DataModelGraphExplorer(graph_data_model)

Expand Down Expand Up @@ -856,7 +855,7 @@ def get_node_dependencies(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

dmge = DataModelGraphExplorer(graph_data_model)

Expand Down Expand Up @@ -911,7 +910,7 @@ def get_node_range(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

dmge = DataModelGraphExplorer(graph_data_model)

Expand Down Expand Up @@ -940,7 +939,7 @@ def get_if_node_required(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

dmge = DataModelGraphExplorer(graph_data_model)

Expand Down Expand Up @@ -969,7 +968,7 @@ def get_node_validation_rules(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Instantiate DataModelGraphExplorer
dmge = DataModelGraphExplorer(graph_data_model)
Expand Down Expand Up @@ -1002,7 +1001,7 @@ def get_nodes_display_names(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Instantiate DataModelGraphExplorer
dmge = DataModelGraphExplorer(graph_data_model)
Expand Down
2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def get_data_model_graph_explorer(
)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Instantiate DataModelGraphExplorer
DMGE = DataModelGraphExplorer(graph_data_model)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ def get_MockComponent_attribute():
data_model_grapher = DataModelGraph(parsed_data_model)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

dmge = DataModelGraphExplorer(graph_data_model)
# sg = SchemaGenerator("https://raw.githubusercontent.com/Sage-Bionetworks/schematic/develop/tests/data/example.single_rule.model.jsonld")
Expand Down
2 changes: 1 addition & 1 deletion tests/test_manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def generate_graph_data_model(helpers, path_to_data_model, data_model_labels):
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

return graph_data_model

Expand Down
2 changes: 1 addition & 1 deletion tests/test_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def generate_graph_data_model(
data_model_grapher = DataModelGraph(parsed_data_model, data_model_labels)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

return graph_data_model

Expand Down
8 changes: 4 additions & 4 deletions tests/test_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ def test_annotation_submission(
data_model_grapher = DataModelGraph(parsed_data_model)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Instantiate DataModelGraphExplorer
dmge = DataModelGraphExplorer(graph_data_model)
Expand Down Expand Up @@ -558,7 +558,7 @@ def test_createTable(
data_model_grapher = DataModelGraph(parsed_data_model)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Instantiate DataModelGraphExplorer
dmge = DataModelGraphExplorer(graph_data_model)
Expand Down Expand Up @@ -636,7 +636,7 @@ def test_replaceTable(
data_model_grapher = DataModelGraph(parsed_data_model)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Instantiate DataModelGraphExplorer
dmge = DataModelGraphExplorer(graph_data_model)
Expand Down Expand Up @@ -740,7 +740,7 @@ def test_upsertTable(
data_model_grapher = DataModelGraph(parsed_data_model)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Instantiate DataModelGraphExplorer
dmge = DataModelGraphExplorer(graph_data_model)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -1020,7 +1020,7 @@ def test_csv_to_schemaorg(self, helpers, tmp_path):
data_model_grapher = DataModelGraph(parsed_data_model)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

# Convert graph to JSONLD
jsonld_data_model = convert_graph_to_jsonld(Graph=graph_data_model)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def graph_data_model_func(helpers, data_model_name):
data_model_grapher = DataModelGraph(parsed_data_model)

# Generate graph
graph_data_model = data_model_grapher.generate_data_model_graph()
graph_data_model = data_model_grapher.graph

return graph_data_model

Expand Down

0 comments on commit 26f71aa

Please sign in to comment.