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")])
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
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")])
"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": ""