Skip to content

Commit

Permalink
Merge pull request #12 from chris-asl/add-util-get-number-of-author-m…
Browse files Browse the repository at this point in the history
…atches

utils: add get_number_of_author_matches helper
  • Loading branch information
jacquerie authored Oct 27, 2017
2 parents c16230a + 038efaa commit fc57a89
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 0 deletions.
39 changes: 39 additions & 0 deletions inspire_matcher/utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
#
# This file is part of INSPIRE.
# Copyright (C) 2014-2017 CERN.
#
# INSPIRE is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# INSPIRE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with INSPIRE. If not, see <http://www.gnu.org/licenses/>.
#
# In applying this license, CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

from __future__ import absolute_import, division, print_function

from inspire_json_merger.comparators import AuthorComparator


def get_number_of_author_matches(x_authors, y_authors):
"""Return the number of matches between two lists of authors.
Args:
x_authors (list(dict)): a schema-compliant list of authors.
y_authors (list(dict)): another schema-compliant list of authors.
Returns:
int: the number of matching authors between the two lists.
"""
return len(AuthorComparator(x_authors, y_authors).matches)
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
'Werkzeug~=0.0,>=0.12.2',
'elasticsearch-dsl~=2.0,>=2.2.0',
'elasticsearch~=2.0,>=2.4.1',
'inspire-json-merger~=2.0,>=2.0.0',
'inspire-utils~=0.0,>=0.0.10',
'invenio-search>=1.0.0a10',
'six~=1.0,>=1.11.0',
Expand Down
42 changes: 42 additions & 0 deletions tests/test_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# -*- coding: utf-8 -*-
#
# This file is part of INSPIRE.
# Copyright (C) 2014-2017 CERN.
#
# INSPIRE is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# INSPIRE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with INSPIRE. If not, see <http://www.gnu.org/licenses/>.
#
# In applying this license, CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

from __future__ import absolute_import, division, print_function

from inspire_matcher.utils import get_number_of_author_matches


def test_get_number_of_author_matches():
x_authors = [
{'full_name': 'Cabibbo, Nicola'},
{'full_name': 'Kobayashi, Makoto'},
{'full_name': 'Maskawa, Toshihide'},
]
y_authors = [
{'full_name': 'Kobayashi, Makoto'},
{'full_name': 'Maskawa, Toshihide'},
]

expected = 2
result = get_number_of_author_matches(x_authors, y_authors)

assert expected == result

0 comments on commit fc57a89

Please sign in to comment.