Skip to content

Commit 1eaa46f

Browse files
committed
fix: remove datacite schema31 support
* it has been removed from inveniosoftware/datacite package too
1 parent e0a3b80 commit 1eaa46f

2 files changed

Lines changed: 5 additions & 21 deletions

File tree

invenio_records_rest/serializers/datacite.py

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
#
33
# This file is part of Invenio.
44
# Copyright (C) 2016-2018 CERN.
5+
# Copyright (C) 2025 Graz University of Technology.
56
#
67
# Invenio is free software; you can redistribute it and/or modify it
78
# under the terms of the MIT License; see LICENSE file for more details.
89

910
"""Marshmallow based DataCite serializer for records."""
1011

11-
from datacite import schema31, schema40, schema41
12+
from datacite import schema40, schema41
1213
from invenio_records.api import Record
1314
from lxml import etree
1415
from lxml.builder import E
@@ -72,19 +73,6 @@ def serialize_oaipmh(self, pid, record):
7273
return self.schema.dump_etree(obj)
7374

7475

75-
class DataCite31Serializer(BaseDataCiteSerializer):
76-
"""Marshmallow DataCite serializer v3.1 for records.
77-
78-
Note: This serializer is not suitable for serializing large number of
79-
records.
80-
"""
81-
82-
schema = schema31
83-
"""Class variable to define which schema use."""
84-
version = "3.1"
85-
"""Class variable to tell the version of the schema."""
86-
87-
8876
class DataCite40Serializer(BaseDataCiteSerializer):
8977
"""Marshmallow DataCite serializer v4.0 for records.
9078

tests/test_serializer_datacite.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#
33
# This file is part of Invenio.
44
# Copyright (C) 2016-2018 CERN.
5+
# Copyright (C) 2025 Graz University of Technology.
56
#
67
# Invenio is free software; you can redistribute it and/or modify it
78
# under the terms of the MIT License; see LICENSE file for more details.
@@ -15,7 +16,6 @@
1516
from marshmallow import fields
1617

1718
from invenio_records_rest.serializers.datacite import (
18-
DataCite31Serializer,
1919
DataCite40Serializer,
2020
DataCite41Serializer,
2121
OAIDataCiteSerializer,
@@ -35,9 +35,7 @@ class SimpleSchema(Schema):
3535
identifier = fields.Nested(DOISchema, attribute="metadata")
3636

3737

38-
@pytest.mark.parametrize(
39-
"serializer", [DataCite31Serializer, DataCite40Serializer, DataCite41Serializer]
40-
)
38+
@pytest.mark.parametrize("serializer", [DataCite40Serializer, DataCite41Serializer])
4139
def test_serialize(serializer):
4240
pid = PersistentIdentifier(pid_type="recid", pid_value="2")
4341
record = Record({"doi": "10.1234/foo"})
@@ -55,9 +53,7 @@ def test_serialize(serializer):
5553
assert len(tree.xpath("/oai_datacite/datacentreSymbol")) == 1
5654

5755

58-
@pytest.mark.parametrize(
59-
"serializer", [DataCite31Serializer, DataCite40Serializer, DataCite41Serializer]
60-
)
56+
@pytest.mark.parametrize("serializer", [DataCite40Serializer, DataCite41Serializer])
6157
def test_serialize_search(serializer):
6258
"""Test JSON serialize."""
6359

0 commit comments

Comments
 (0)