aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2020-12-17 16:01:04 -0800
committerBryan Newbold <bnewbold@robocracy.org>2020-12-17 16:01:06 -0800
commit5eeb7a9d61beb8cb40fd89bd91fcd9dd820035aa (patch)
tree1532f36e1284210c13584e9a4e57dfed61b3142c /python
parentd5c8b54aaf600764bc59855c4529952195c87fb5 (diff)
downloadfatcat-5eeb7a9d61beb8cb40fd89bd91fcd9dd820035aa.tar.gz
fatcat-5eeb7a9d61beb8cb40fd89bd91fcd9dd820035aa.zip
update fuzzy helper to pass 'reason' through to import code
The motivation for this change is to enable passing the 'reason' through to edit extra metadata, in cases where we merge or cluster releases.
Diffstat (limited to 'python')
-rw-r--r--python/fatcat_tools/importers/common.py6
-rw-r--r--python/tests/import_common.py4
2 files changed, 5 insertions, 5 deletions
diff --git a/python/fatcat_tools/importers/common.py b/python/fatcat_tools/importers/common.py
index 1cce5fd0..6dc2ab9e 100644
--- a/python/fatcat_tools/importers/common.py
+++ b/python/fatcat_tools/importers/common.py
@@ -446,13 +446,13 @@ class EntityImporter:
existing.urls = [u for u in existing.urls if u.url not in redundant_urls]
return existing
- def match_existing_release_fuzzy(self, release: ReleaseEntity) -> Optional[Tuple[str, ReleaseEntity]]:
+ def match_existing_release_fuzzy(self, release: ReleaseEntity) -> Optional[Tuple[str, str, ReleaseEntity]]:
"""
This helper function uses fuzzycat (and elasticsearch) to look for
existing release entities with similar metadata.
Returns None if there was no match of any kind, or a single tuple
- (status: str, existing: ReleaseEntity) if there was a match.
+ (status: str, reason: str, existing: ReleaseEntity) if there was a match.
Status string is one of the fuzzycat.common.Status, with "strongest
match" in this sorted order:
@@ -491,7 +491,7 @@ class EntityImporter:
elif closest[0].status == fuzzycat.common.Status.TODO:
raise NotImplementedError("fuzzycat verify hit a Status.TODO")
else:
- return (closest[0].status.name, closest[1])
+ return (closest[0].status.name, closest[0].reason.value, closest[1])
class RecordPusher:
diff --git a/python/tests/import_common.py b/python/tests/import_common.py
index 9f04ebe0..d0db014e 100644
--- a/python/tests/import_common.py
+++ b/python/tests/import_common.py
@@ -63,11 +63,11 @@ def test_fuzzy_match_different(entity_importer, mocker) -> None:
match_raw = mocker.patch('fatcat_tools.importers.common.match_release_fuzzy')
match_raw.side_effect = [[r3, r2, r3, r2]]
resp = entity_importer.match_existing_release_fuzzy(r1)
- assert resp == ("STRONG", r2)
+ assert (resp[0], resp[2]) == ("STRONG", r2)
match_raw.side_effect = [[r2, r2, r3, r1]]
resp = entity_importer.match_existing_release_fuzzy(r1)
- assert resp == ("EXACT", r1)
+ assert (resp[0], resp[2]) == ("EXACT", r1)
match_raw.side_effect = [[r3]]
resp = entity_importer.match_existing_release_fuzzy(r1)