From 82ca202f9229216271f7ad8055788180f38834fa Mon Sep 17 00:00:00 2001
From: Stefan Bienert <stefan.bienert@unibas.ch>
Date: Wed, 5 Sep 2018 13:41:40 +0200
Subject: [PATCH] Export of citation type handling to Python

---
 modules/io/pymod/export_mmcif_io.cc | 16 ++++++++++++++++
 modules/io/tests/test_io_mmcif.py   |  3 +++
 2 files changed, 19 insertions(+)

diff --git a/modules/io/pymod/export_mmcif_io.cc b/modules/io/pymod/export_mmcif_io.cc
index dd90843e3..fb35827a1 100644
--- a/modules/io/pymod/export_mmcif_io.cc
+++ b/modules/io/pymod/export_mmcif_io.cc
@@ -49,6 +49,12 @@ void export_mmcif_io()
                                    return_value_policy<copy_const_reference>()))
     ;
 
+  enum_<MMCifInfoCitation::MMCifInfoCType>("MMCifInfoCType")
+    .value("Journal", MMCifInfoCitation::JOURNAL)
+    .value("Book", MMCifInfoCitation::BOOK)
+    .value("Unknown", MMCifInfoCitation::UNKNOWN)
+  ;
+ 
   class_<MMCifInfoCitation>("MMCifInfoCitation", init<>())
     .def("SetID", &MMCifInfoCitation::SetID)
     .def("GetID", &MMCifInfoCitation::GetID)
@@ -72,6 +78,14 @@ void export_mmcif_io()
     .def("GetYear", &MMCifInfoCitation::GetYear)
     .def("SetTitle", &MMCifInfoCitation::SetTitle)
     .def("GetTitle", &MMCifInfoCitation::GetTitle)
+    .def("SetCitationType", &MMCifInfoCitation::SetCitationType)
+    .def("SetCitationTypeJournal", &MMCifInfoCitation::SetCitationTypeJournal)
+    .def("SetCitationTypeBook", &MMCifInfoCitation::SetCitationTypeBook)
+    .def("SetCitationTypeUnknown", &MMCifInfoCitation::SetCitationTypeUnknown)
+    .def("GetCitationType", &MMCifInfoCitation::GetCitationType)
+    .def("IsCitationTypeJournal", &MMCifInfoCitation::IsCitationTypeJournal)
+    .def("IsCitationTypeBook", &MMCifInfoCitation::IsCitationTypeBook)
+    .def("IsCitationTypeUnknown", &MMCifInfoCitation::IsCitationTypeUnknown)
     .def("SetAuthorList", &MMCifInfoCitation::SetAuthorList)
     .def("GetAuthorList", make_function(&MMCifInfoCitation::GetAuthorList,
                                    return_value_policy<copy_const_reference>()))
@@ -94,6 +108,8 @@ void export_mmcif_io()
                   &MMCifInfoCitation::SetYear)
     .add_property("title", &MMCifInfoCitation::GetTitle,
                   &MMCifInfoCitation::SetTitle)
+    .add_property("citation_type", &MMCifInfoCitation::GetCitationType,
+                  &MMCifInfoCitation::SetCitationType)
     .add_property("authors", make_function(&MMCifInfoCitation::GetAuthorList,
                                    return_value_policy<copy_const_reference>()),
                   &MMCifInfoCitation::SetAuthorList)
diff --git a/modules/io/tests/test_io_mmcif.py b/modules/io/tests/test_io_mmcif.py
index c7cb807bc..71ddf9ecd 100644
--- a/modules/io/tests/test_io_mmcif.py
+++ b/modules/io/tests/test_io_mmcif.py
@@ -40,6 +40,9 @@ class TestMMCifInfo(unittest.TestCase):
     # test title setting/ getting
     c.SetTitle('Foo')
     self.assertEquals(c.GetTitle(), 'Foo')
+    # test citation type
+    self.assertTrue(c.IsCitationTypeUnknown())
+    self.assertEquals(c.citation_type, io.MMCifInfoCType.Unknown)
     # test auhtors setting/ getting
     s = ost.StringList()
     s.append('Foo')
-- 
GitLab