Skip to content

Commit

Permalink
update path and comment flake+pytest + linted code
Browse files Browse the repository at this point in the history
  • Loading branch information
hrshdhgd committed Jul 21, 2022
1 parent 42f004d commit c963a43
Show file tree
Hide file tree
Showing 22 changed files with 279 additions and 256 deletions.
32 changes: 18 additions & 14 deletions kgcl_rdflib/apply/kgcl_2_sparql.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
"""KGCL SPARQL implementation."""
import logging
import re
from typing import Optional, List
from typing import List, Optional

from kgcl_schema.datamodel.kgcl import (ClassCreation, EdgeCreation, EdgeDeletion,
NewSynonym, NodeAnnotationChange, NodeCreation,
from kgcl_schema.datamodel.kgcl import (Change, ClassCreation, EdgeCreation,
EdgeDeletion, NewSynonym,
NodeAnnotationChange, NodeCreation,
NodeDeepening, NodeDeletion, NodeMove,
NodeObsoletion, NodeRename, NodeShallowing,
NodeUnobsoletion, PlaceUnder, PredicateChange,
RemovedNodeFromSubset, RemoveUnder, Change)

NodeObsoletion, NodeRename,
NodeShallowing, NodeUnobsoletion,
PlaceUnder, PredicateChange,
RemovedNodeFromSubset, RemoveUnder)

CURIE_PATTERN = re.compile(r"^(\w+):(\S+)$")
SPARQL_COMMAND = str


def get_prefix(curie):
"""Get prefix."""
return curie.split(":")[0]
Expand Down Expand Up @@ -52,20 +54,22 @@ def get_prefix(curie):

def get_sparql_prefix_header(prefixes: List[str]) -> str:
if prefixes is None:
prefixes = ['rdfs', 'rdf']
return "\n".join([f"PREFIX {prefix}: {prefix_2_uri[prefix]}" for prefix in prefixes])
prefixes = ["rdfs", "rdf"]
return "\n".join(
[f"PREFIX {prefix}: {prefix_2_uri[prefix]}" for prefix in prefixes]
)


def get_representation(node_term: str) -> Optional[str]:
if node_term is None:
logging.warning(f"None value for representation")
return None
elif node_term.startswith('<http'):
return 'uri'
elif ':' in node_term and CURIE_PATTERN.match(node_term):
return 'curie'
elif node_term.startswith("<http"):
return "uri"
elif ":" in node_term and CURIE_PATTERN.match(node_term):
return "curie"
else:
return 'label'
return "label"


def is_label(input: str) -> bool:
Expand Down
7 changes: 3 additions & 4 deletions kgcl_rdflib/diff/change_detection.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
"""Detect changes."""
import rdflib
from kgcl_schema.datamodel.kgcl import (NodeAnnotationChange, NodeMove,
NodeRename, PredicateChange)
from kgcl_schema.datamodel.ontology_model import Edge
from rdflib import Literal, URIRef
from rdflib.namespace import RDFS

from kgcl_schema.datamodel.kgcl import (NodeAnnotationChange, NodeMove, NodeRename,
PredicateChange)
from kgcl_schema.datamodel.ontology_model import Edge


def id_generator():
"""Return a new ID for KGCL change operations."""
Expand Down
2 changes: 1 addition & 1 deletion kgcl_rdflib/diff/diff_2_kgcl_existential.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
"""Existential restriction change information."""

import rdflib
from kgcl_schema.datamodel.kgcl import EdgeCreation, EdgeDeletion

from kgcl_rdflib.diff.graph_diff import (get_added_existentials,
get_deleted_existentials)
from kgcl_rdflib.diff.render_operations import render
from kgcl_schema.datamodel.kgcl import EdgeCreation, EdgeDeletion


def id_generator():
Expand Down
3 changes: 2 additions & 1 deletion kgcl_rdflib/diff/diff_2_kgcl_single.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
"""Single triple change summary."""
import rdflib
from kgcl_schema.datamodel.kgcl import (ClassCreation, NewSynonym, PlaceUnder,
RemoveUnder)
from rdflib import Graph, Literal, URIRef
from rdflib.namespace import OWL, RDF, RDFS

Expand All @@ -10,7 +12,6 @@
from kgcl_rdflib.diff.graph_diff import (get_added_thin_triples,
get_deleted_thin_triples)
from kgcl_rdflib.diff.render_operations import render
from kgcl_schema.datamodel.kgcl import ClassCreation, NewSynonym, PlaceUnder, RemoveUnder


def id_generator():
Expand Down
4 changes: 2 additions & 2 deletions kgcl_rdflib/diff/diff_2_kgcl_triple_annotation.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
"""Triple annotation change summary."""
import rdflib
from kgcl_schema.datamodel.kgcl import EdgeCreation, EdgeDeletion
from kgcl_schema.datamodel.ontology_model import Annotation
from rdflib import Graph, Literal, URIRef

from kgcl_rdflib.diff.graph_diff import (get_added_triple_annotations,
get_deleted_triple_annotations)
from kgcl_rdflib.diff.render_operations import render
from kgcl_schema.datamodel.kgcl import EdgeCreation, EdgeDeletion
from kgcl_schema.datamodel.ontology_model import Annotation


def id_generator():
Expand Down
13 changes: 7 additions & 6 deletions kgcl_rdflib/diff/pretty_print_kgcl.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
"""Print KGCL in user-friendly format."""
from kgcl_schema.datamodel.kgcl import (ClassCreation, EdgeCreation,
EdgeDeletion, NewSynonym,
NodeAnnotationChange, NodeCreation,
NodeDeletion, NodeMove, NodeObsoletion,
NodeRename, NodeUnobsoletion,
PlaceUnder, PredicateChange,
RemoveUnder)
from kgcl_schema.grammar.parser import parse_statement
from rdflib.namespace import RDFS

from kgcl_schema.datamodel.kgcl import (ClassCreation, EdgeCreation, EdgeDeletion,
NewSynonym, NodeAnnotationChange, NodeCreation,
NodeDeletion, NodeMove, NodeObsoletion,
NodeRename, NodeUnobsoletion, PlaceUnder,
PredicateChange, RemoveUnder)

# TODO: maintain this dictionary in a file
prefix_2_uri = {
"obo": "http://purl.obolibrary.org/obo/",
Expand Down
10 changes: 6 additions & 4 deletions kgcl_rdflib/diff/render_operations.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
"""Render operations."""
# TODO: move this to grammar package

from kgcl_schema.datamodel.kgcl import (ClassCreation, EdgeCreation, EdgeDeletion,
NewSynonym, NodeAnnotationChange, NodeCreation,
from kgcl_schema.datamodel.kgcl import (Change, ClassCreation, EdgeCreation,
EdgeDeletion, NewSynonym,
NodeAnnotationChange, NodeCreation,
NodeDeletion, NodeMove, NodeObsoletion,
NodeRename, NodeUnobsoletion, PlaceUnder,
PredicateChange, RemoveUnder, Change)
NodeRename, NodeUnobsoletion,
PlaceUnder, PredicateChange,
RemoveUnder)


# TODO: replace this with rdflib methods
Expand Down
9 changes: 3 additions & 6 deletions kgcl_rdflib/kgcl.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

import click
import rdflib
from kgcl_schema.grammar import parser
from rdflib.util import guess_format

from kgcl_rdflib.apply import graph_transformer
from kgcl_schema.grammar import parser

# TODO: remove this
sys.path.append("../")
Expand All @@ -16,12 +16,9 @@
@click.command()
@click.option("-i", "--graph", type=click.Path(), required=True)
@click.option("--kgcl-file", type=click.File("r"))
@click.option("--output",
"-o",
type=click.File(mode='wb'),
default=sys.stdout)
@click.option("--output", "-o", type=click.File(mode="wb"), default=sys.stdout)
@click.option("-v", "--verbose", count=True)
@click.argument('patch')
@click.argument("patch")
def cli(patch, verbose: int, graph, kgcl_file, output):
"""
Modify graph based on KGCL commands.
Expand Down
27 changes: 14 additions & 13 deletions kgcl_rdflib/kgcl_diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
from typing import List

import click
import kgcl_rdflib.diff.diff_2_kgcl_existential as existential
import kgcl_rdflib.diff.diff_2_kgcl_single as single
import kgcl_rdflib.diff.diff_2_kgcl_triple_annotation as annotation
import rdflib
from kgcl_schema.datamodel.kgcl import Change

import kgcl_rdflib.diff.diff_2_kgcl_existential as existential
import kgcl_rdflib.diff.diff_2_kgcl_single as single
import kgcl_rdflib.diff.diff_2_kgcl_triple_annotation as annotation
from kgcl_rdflib.diff.pretty_print_kgcl import render_instances


Expand All @@ -34,14 +34,14 @@ def diff(g1: rdflib.Graph, g2: rdflib.Graph) -> List[Change]:


@click.command()
@click.option("--output-directory",
"-d",
type=click.Path(), required=False)
@click.option("--output",
"-o",
type=click.File(mode='w'),
default=sys.stdout,
help="Where to write derived diffs")
@click.option("--output-directory", "-d", type=click.Path(), required=False)
@click.option(
"--output",
"-o",
type=click.File(mode="w"),
default=sys.stdout,
help="Where to write derived diffs",
)
@click.option("-v", "--verbose", count=True)
@click.argument("ingraph", type=click.Path(), required=True)
@click.argument("outgraph", type=click.Path(), required=True)
Expand Down Expand Up @@ -73,6 +73,7 @@ def cli(ingraph, outgraph, verbose: int, output, output_directory):
if output_directory:
write_summaries(g1, g2, output_directory)


def write_summaries(g1: rdflib.Graph, g2: rdflib.Graph, output_directory):
Path(output_directory).mkdir(parents=True, exist_ok=True)

Expand Down Expand Up @@ -176,12 +177,12 @@ def write_summaries(g1: rdflib.Graph, g2: rdflib.Graph, output_directory):
f.write(k)
f.write("\n")

#with open(patch_folder + "/edge_creations.txt", "w") as f:
# with open(patch_folder + "/edge_creations.txt", "w") as f:
# for k in single_triple_summary.get_edge_creations():
# f.write(k)
# f.write("\n")

#with open(patch_folder + "/edge_deletions.txt", "w") as f:
# with open(patch_folder + "/edge_deletions.txt", "w") as f:
# for k in single_triple_summary.get_edge_deletions():
# f.write(k)
# f.write("\n")
Expand Down
5 changes: 3 additions & 2 deletions kgcl_rdflib/render_kgcl.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
from kgcl_schema.model.kgcl import (ClassCreation, EdgeCreation, EdgeDeletion,
NewSynonym, NodeCreation, NodeDeepening,
NodeDeletion, NodeMove, NodeObsoletion,
NodeRename, NodeShallowing, NodeUnobsoletion,
PredicateChange, RemovedNodeFromSubset)
NodeRename, NodeShallowing,
NodeUnobsoletion, PredicateChange,
RemovedNodeFromSubset)


def render(kgcl_instance):
Expand Down
11 changes: 5 additions & 6 deletions tests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@

sys.path.append(join(dirname(dirname(__file__)), "src/"))

INPUT = os.path.join(INPUT_DIR, 'go-nucleus.owl.ttl')
TMP_OUTPUT = os.path.join(OUTPUT_DIR, 'go-nucleus-modified.owl.ttl')
TMP_YAML = os.path.join(OUTPUT_DIR, 'tmp.yaml')
DIFF_OUTPUT = os.path.join(OUTPUT_DIR, 'diff.kgcl')
DIFF_OUTPUT_DIR = os.path.join(OUTPUT_DIR, 'diff-info')

INPUT = os.path.join(INPUT_DIR, "go-nucleus.owl.ttl")
TMP_OUTPUT = os.path.join(OUTPUT_DIR, "go-nucleus-modified.owl.ttl")
TMP_YAML = os.path.join(OUTPUT_DIR, "tmp.yaml")
DIFF_OUTPUT = os.path.join(OUTPUT_DIR, "diff.kgcl")
DIFF_OUTPUT_DIR = os.path.join(OUTPUT_DIR, "diff-info")
Loading

0 comments on commit c963a43

Please sign in to comment.