diff --git a/CITATION.cff b/CITATION.cff index dfe3305..69e3bee 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -34,6 +34,9 @@ authors: - family-names: Leo given-names: Simone orcid: https://orcid.org/0000-0001-8271-5429 + - family-names: Orviz + given-names: Pablo + orcid: https://orcid.org/0000-0002-2473-6405 - family-names: Pireddu given-names: Luca orcid: https://orcid.org/0000-0002-4663-5613 diff --git a/README.md b/README.md index 3710cf4..20e0613 100644 --- a/README.md +++ b/README.md @@ -565,6 +565,7 @@ Options: * Copyright 2024-2026 National Institute of Informatics (NII), JP * Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE * Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +* Copyright 2026 Spanish National Research Council (CSIC), ES Licensed under the Apache License, version 2.0 , diff --git a/examples/fastapi/main.py b/examples/fastapi/main.py index d4b9087..fd9b09d 100644 --- a/examples/fastapi/main.py +++ b/examples/fastapi/main.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/examples/read_test_metadata.py b/examples/read_test_metadata.py index 40e2ffa..4fe6087 100644 --- a/examples/read_test_metadata.py +++ b/examples/read_test_metadata.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/__init__.py b/rocrate/__init__.py index f8a9a36..986610c 100644 --- a/rocrate/__init__.py +++ b/rocrate/__init__.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -42,6 +43,7 @@ 'Sebastiaan Huber', 'Bruno Kinoshita', 'Simone Leo', + 'Pablo Orviz', 'Luca Pireddu', 'Laura Rodríguez-Navas', 'Raül Sirvent', @@ -58,6 +60,7 @@ Copyright 2024-2026 National Institute of Informatics (NII), JP Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +Copyright 2026 Spanish National Research Council (CSIC), ES """ __license__ = ("Apache License, version 2.0 " "") diff --git a/rocrate/cli.py b/rocrate/cli.py index a1179e3..47e3338 100644 --- a/rocrate/cli.py +++ b/rocrate/cli.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/memory_buffer.py b/rocrate/memory_buffer.py index 68c6d3c..c9b5340 100644 --- a/rocrate/memory_buffer.py +++ b/rocrate/memory_buffer.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/metadata.py b/rocrate/metadata.py index c32b4af..69aacf7 100644 --- a/rocrate/metadata.py +++ b/rocrate/metadata.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/__init__.py b/rocrate/model/__init__.py index db661ba..59bbe3b 100644 --- a/rocrate/model/__init__.py +++ b/rocrate/model/__init__.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/computationalworkflow.py b/rocrate/model/computationalworkflow.py index 254afc9..093ab65 100644 --- a/rocrate/model/computationalworkflow.py +++ b/rocrate/model/computationalworkflow.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/computerlanguage.py b/rocrate/model/computerlanguage.py index be41794..3103051 100644 --- a/rocrate/model/computerlanguage.py +++ b/rocrate/model/computerlanguage.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/contextentity.py b/rocrate/model/contextentity.py index 42f8d17..a59cefc 100644 --- a/rocrate/model/contextentity.py +++ b/rocrate/model/contextentity.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/creativework.py b/rocrate/model/creativework.py index d90c8ab..95dcac3 100644 --- a/rocrate/model/creativework.py +++ b/rocrate/model/creativework.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/data_entity.py b/rocrate/model/data_entity.py index e4d8e0e..ca35783 100644 --- a/rocrate/model/data_entity.py +++ b/rocrate/model/data_entity.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/dataset.py b/rocrate/model/dataset.py index 2813176..8317d2e 100644 --- a/rocrate/model/dataset.py +++ b/rocrate/model/dataset.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/entity.py b/rocrate/model/entity.py index 5f7c882..ddc4a77 100644 --- a/rocrate/model/entity.py +++ b/rocrate/model/entity.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/file.py b/rocrate/model/file.py index 5a76746..be042cb 100644 --- a/rocrate/model/file.py +++ b/rocrate/model/file.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/file_or_dir.py b/rocrate/model/file_or_dir.py index 1044bd7..0b5372e 100644 --- a/rocrate/model/file_or_dir.py +++ b/rocrate/model/file_or_dir.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/metadata.py b/rocrate/model/metadata.py index fdbef79..14ac280 100644 --- a/rocrate/model/metadata.py +++ b/rocrate/model/metadata.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -88,7 +89,7 @@ def generate(self): def stream(self, chunk_size=8192): content = self.generate() - yield self.id, str.encode(json.dumps(content, indent=4, sort_keys=True), encoding='utf-8') + yield self.id, str.encode(json.dumps(content, indent=4, sort_keys=True, ensure_ascii=False), encoding='utf-8') def _has_writeable_stream(self): return True diff --git a/rocrate/model/person.py b/rocrate/model/person.py index 438c452..9652580 100644 --- a/rocrate/model/person.py +++ b/rocrate/model/person.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/preview.py b/rocrate/model/preview.py index 178989e..ba284e2 100644 --- a/rocrate/model/preview.py +++ b/rocrate/model/preview.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/root_dataset.py b/rocrate/model/root_dataset.py index af28f8e..e1c0726 100644 --- a/rocrate/model/root_dataset.py +++ b/rocrate/model/root_dataset.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/softwareapplication.py b/rocrate/model/softwareapplication.py index 10b6ebd..941bc11 100644 --- a/rocrate/model/softwareapplication.py +++ b/rocrate/model/softwareapplication.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/testdefinition.py b/rocrate/model/testdefinition.py index c3eaf02..207dad9 100644 --- a/rocrate/model/testdefinition.py +++ b/rocrate/model/testdefinition.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/testinstance.py b/rocrate/model/testinstance.py index 8af2c04..e3be429 100644 --- a/rocrate/model/testinstance.py +++ b/rocrate/model/testinstance.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/testservice.py b/rocrate/model/testservice.py index 50c7615..4fbb5a8 100644 --- a/rocrate/model/testservice.py +++ b/rocrate/model/testservice.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/model/testsuite.py b/rocrate/model/testsuite.py index b4c1444..17c4189 100644 --- a/rocrate/model/testsuite.py +++ b/rocrate/model/testsuite.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/rocrate.py b/rocrate/rocrate.py index 555a110..5808bfb 100644 --- a/rocrate/rocrate.py +++ b/rocrate/rocrate.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/utils.py b/rocrate/utils.py index 2422a1a..a7c743b 100644 --- a/rocrate/utils.py +++ b/rocrate/utils.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rocrate/vocabs.py b/rocrate/vocabs.py index 840506b..522d6fe 100644 --- a/rocrate/vocabs.py +++ b/rocrate/vocabs.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/setup.py b/setup.py index eb6349b..42f4f5c 100755 --- a/setup.py +++ b/setup.py @@ -9,6 +9,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -70,6 +71,7 @@ 'Sebastiaan Huber', 'Bruno Kinoshita', 'Simone Leo', + 'Pablo Orviz', 'Luca Pireddu', 'Laura Rodríguez-Navas', 'Raül Sirvent', diff --git a/test/conftest.py b/test/conftest.py index d999756..0ac5387 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_cli.py b/test/test_cli.py index da1840c..61fa3b4 100644 --- a/test/test_cli.py +++ b/test/test_cli.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_jsonld.py b/test/test_jsonld.py index 40478b3..d79e00b 100644 --- a/test/test_jsonld.py +++ b/test/test_jsonld.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_metadata.py b/test/test_metadata.py index 1047717..85a2558 100644 --- a/test/test_metadata.py +++ b/test/test_metadata.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_model.py b/test/test_model.py index 722ad97..040a75c 100644 --- a/test/test_model.py +++ b/test/test_model.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_read.py b/test/test_read.py index 1a8fd30..9055ece 100644 --- a/test/test_read.py +++ b/test/test_read.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_readwrite.py b/test/test_readwrite.py index 8375a31..e5a385e 100644 --- a/test/test_readwrite.py +++ b/test/test_readwrite.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_test_metadata.py b/test/test_test_metadata.py index 5f8fb49..c695ed4 100644 --- a/test/test_test_metadata.py +++ b/test/test_test_metadata.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_utils.py b/test/test_utils.py index 8bbdec1..9f05fb7 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_workflow_ro_crate.py b/test/test_workflow_ro_crate.py index 6c5cf44..e9cd547 100644 --- a/test/test_workflow_ro_crate.py +++ b/test/test_workflow_ro_crate.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/test/test_write.py b/test/test_write.py index 7c518db..bb60b7b 100644 --- a/test/test_write.py +++ b/test/test_write.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -716,3 +717,45 @@ def test_write_version(tmpdir, helpers, version): with open(out_path / basename, "rt") as f: data = json.load(f) assert data["@context"] == f"https://w3id.org/ro/crate/{version}/context" + + +def test_metadata_utf8_encoding(tmpdir, helpers): + crate = ROCrate() + crate_name = 'Test crate with non-ASCII characters' + crate.name = crate_name + creator_name = 'Orviz Fernández' + creator_affiliation = 'Consejo Superior de Investigaciones Científicas (CSIC)' + non_ascii_person_name = Person( + crate, + "https://orcid.org/0000-0000-0000-0000", + { + 'name': creator_name, + 'affiliation': creator_affiliation + } + ) + crate.add(non_ascii_person_name) + + out_path = tmpdir / 'ro_crate_out' + out_path.mkdir() + crate.write(out_path) + + metadata_path = out_path / helpers.METADATA_FILE_NAME + assert metadata_path.exists() + + with open(metadata_path, "r", encoding="utf-8") as f: + content = f.read() + + assert creator_name in content, ( + f"Creator name '{creator_name}' as found in {helpers.METADATA_FILE_NAME} does not match with the real name: " + "not found as raw UTF-8 text or incorrectly encoded" + ) + assert creator_affiliation in content, ( + f"Creator affiliation '{creator_affiliation}' as found in {helpers.METADATA_FILE_NAME} " + "does not match with the real organization name: not found as raw UTF-8 text or incorrectly encoded" + ) + import re + unicode_escape_pattern = r"\\u[0-9a-fA-F]{4}" + escape_sequences_match = re.findall(unicode_escape_pattern, content) + assert not escape_sequences_match, ( + f"Found Unicode escape sequences: {escape_sequences_match}: expected raw UTF-8 characters." + ) diff --git a/test/test_wrroc.py b/test/test_wrroc.py index 2acd89f..e69a19a 100644 --- a/test/test_wrroc.py +++ b/test/test_wrroc.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tools/add_boilerplate.py b/tools/add_boilerplate.py index ec1a904..8134373 100644 --- a/tools/add_boilerplate.py +++ b/tools/add_boilerplate.py @@ -7,6 +7,7 @@ # Copyright 2024-2026 National Institute of Informatics (NII), JP # Copyright 2025-2026 Senckenberg Society for Nature Research (SGN), DE # Copyright 2025-2026 European Molecular Biology Laboratory (EMBL), Heidelberg, DE +# Copyright 2026 Spanish National Research Council (CSIC), ES # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -43,6 +44,7 @@ "National Institute of Informatics (NII), JP": "2024", "Senckenberg Society for Nature Research (SGN), DE": "2025", "European Molecular Biology Laboratory (EMBL), Heidelberg, DE": "2025", + "Spanish National Research Council (CSIC), ES": "2026", } THIS_YEAR = str(datetime.date.today().year) BOILERPLATE_START = "Copyright [yyyy] [name of copyright owner]"