Beispiel #1
0
def diff(diff: DiffModel, document: provo.ProvDocument):
    print_msg("  Exporting module dependency comparison")
    added, removed, replaced = diff.modules

    for module in added:  # type: Module
        _create_module_dep(module, document, suffix="_a")
        document.wasGeneratedBy("module{}_a".format(module.id),
                                "trial{}Execution".format(diff.trial2.id), None,
                                "module{}AddDep".format(module.id),
                                [(provo.PROV_ROLE, "dependencyAddition")])

    for module in removed:  # type: Module
        _create_module_dep(module, document, suffix="_r")
        document.wasInvalidatedBy("module{}_r".format(module.id),
                                  "trial{}Execution".format(diff.trial2.id), None,
                                  "module{}RemoveDep".format(module.id),
                                  [(provo.PROV_ROLE, "dependencyRemoval")])

    for (mod_removed, mod_added) in replaced:  # type: Module
        _create_module_dep(mod_added, document, suffix="_a")
        document.wasGeneratedBy("module{}_a".format(mod_added.id),
                                "trial{}Execution".format(diff.trial2.id), None,
                                "module{}AddDep".format(mod_added.id),
                                [(provo.PROV_ROLE, "dependencyAddition")])

        _create_module_dep(mod_removed, document, suffix="_r")
        document.wasInvalidatedBy("module{}_r".format(mod_removed.id),
                                  "trial{}Execution".format(diff.trial2.id), None,
                                  "module{}RemoveDep".format(mod_removed.id),
                                  [(provo.PROV_ROLE, "dependencyRemoval")])

        document.wasRevisionOf("module{}_a".format(mod_added.id),
                               "module{}_r".format(mod_removed.id),
                               "trial{}Execution".format(diff.trial2.id), None, None, None,
                               [(provo.PROV_TYPE, "dependencyReplacement")])
Beispiel #2
0
def modification(graph: ProvDocument, package: CommitModelPackage, action: Modification) -> ProvDocument:
    """Add model for a modified file."""
    file, file_version, previous_versions = action
    author, commit = package.author, package.commit
    graph.entity(*file)
    graph.entity(*file_version)
    graph.wasAttributedTo(file_version.id, author.id)
    graph.wasGeneratedBy(file_version.id, commit.id)
    graph.specializationOf(file_version.id, file.id)
    for version in previous_versions:
        graph.entity(*version)
        graph.used(commit.id, version.id)
        graph.wasRevisionOf(file_version.id, version.id)
        graph.specializationOf(version.id, file.id)
    return graph
Beispiel #3
0
def diff(diff: DiffModel, document: provo.ProvDocument):
    print_msg("  Exporting environment conditions comparison")
    added, removed, replaced = diff.environment

    for env_attr in added:  # type: EnvironmentAttr
        _create_env_attr(document, env_attr, suffix="_a")
        document.wasGeneratedBy(
            "environmentAttribute{}_a".format(env_attr.id),
            "trial{}Execution".format(diff.trial2.id), None,
            "environmentAttribute{}AddAttr".format(env_attr.id),
            [(provo.PROV_ROLE, "environmentAttributeAddition")])

    for env_attr in removed:  # type: EnvironmentAttr
        _create_env_attr(document, env_attr, suffix="_r")
        document.wasInvalidatedBy(
            "environmentAttribute{}_r".format(env_attr.id),
            "trial{}Execution".format(diff.trial2.id), None,
            "environmentAttribute{}RemoveAttr".format(env_attr.id),
            [(provo.PROV_ROLE, "environmentAttributeRemoval")])

    for (attr_removed, attr_added) in replaced:  # type: EnvironmentAttr
        _create_env_attr(document, attr_added, suffix="_a")
        document.wasGeneratedBy(
            "environmentAttribute{}_a".format(attr_added.id),
            "trial{}Execution".format(diff.trial2.id), None,
            "environmentAttribute{}AddAttr".format(attr_added.id),
            [(provo.PROV_ROLE, "environmentAttributeAddition")])

        _create_env_attr(document, attr_removed, suffix="_r")
        document.wasInvalidatedBy(
            "environmentAttribute{}_r".format(attr_removed.id),
            "trial{}Execution".format(diff.trial2.id), None,
            "environmentAttribute{}RemoveAttr".format(attr_removed.id),
            [(provo.PROV_ROLE, "environmentAttributeRemoval")])

        document.wasRevisionOf(
            "environmentAttribute{}_a".format(attr_added.id),
            "environmentAttribute{}_r".format(attr_removed.id),
            "trial{}Execution".format(diff.trial2.id), None, None, None,
            [(provo.PROV_TYPE, "environmentAttributeReplacement")])
Beispiel #4
0
               "prov:type": "file_version",
               "new_path": "",
               "old_path": ""
           })
mod.entity("File Version N-1",
           other_attributes={
               "prov:type": "file_version",
               "new_path": "",
               "old_path": ""
           })
mod.wasInformedBy("Commit", "Parent Commit")
mod.wasAssociatedWith("Commit", "Author")
mod.wasAssociatedWith("Commit", "Committer")
mod.used("Commit", "File Version N-1")
mod.wasGeneratedBy("File Version N", "Commit")
mod.wasRevisionOf("File Version N", "File Version N-1")
mod.specializationOf("File Version N", "File")
mod.specializationOf("File Version N-1", "File")
mod.wasAttributedTo("File Version N", "Author")

rem = ProvDocument()
rem.set_default_namespace("gitlab2prov:")
rem.activity("Commit",
             other_attributes={
                 "prov:type": "commit",
                 "title": "",
                 "message": "",
                 "id": "",
                 "short_id": "",
                 "prov:startedAt": "",
                 "prov:endedAt": ""