From a58a7b8f9c678454ba1c015586a478adbce4be67 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <Pawel.Kedzia@pwr.wroc.pl>
Date: Tue, 3 Jan 2012 12:38:41 +0100
Subject: [PATCH] Wrapper for CorpusReader

import corpus2
corpus = corpus2.Corpus()
tagset = corpus2.get_named_tagset('nkjp')
cr = corpus2.CorpusReader(tagset, 'document')
crfile = '/home/rk/tmp/corpus_file.txt'
readed_corp = cr.read(crfile)
while True:
  doc = readed_corp.next_document()
  if not doc:
    break
  print doc.path()
---
 swig/corpus2.i      |  9 +++++----
 swig/corpusreader.i | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 4 deletions(-)
 create mode 100644 swig/corpusreader.i

diff --git a/swig/corpus2.i b/swig/corpus2.i
index e92d165..40b5f85 100644
--- a/swig/corpus2.i
+++ b/swig/corpus2.i
@@ -10,13 +10,9 @@
 %include "annotationchannel.i"
 %include "annotationview.i"
 %include "chunk.i"
-%include "document.i"
-%include "documentreader.i"
 %include "iob.i"
 %include "lexeme.i"
 %include "libpwrnlperror.i"
-%include "relation.i"
-%include "relationreader.i"
 %include "sentence.i"
 %include "tag.i"
 %include "tagging.i"
@@ -27,7 +23,12 @@
 %include "tokenreader.i"
 %include "tokenwriter.i"
 
+%include "relation.i"
+%include "document.i"
 %include "corpus.i"
+%include "relationreader.i"
+%include "documentreader.i"
+%include "corpusreader.i"
 
 %{
 #include <libcorpus2/util/settings.h>
diff --git a/swig/corpusreader.i b/swig/corpusreader.i
new file mode 100644
index 0000000..7f5bddf
--- /dev/null
+++ b/swig/corpusreader.i
@@ -0,0 +1,32 @@
+#ifndef SWIG_LIBCORPUS2_CORPUS_READER_I
+#define SWIG_LIBCORPUS2_CORPUS_READER_I
+
+%module libcorpusdocument
+%{
+  #include <libcorpus2_whole/io/corpusreader.h>
+%}
+
+%include "std_defs.i"
+%include "tagset.i"
+%include "corpus.i"
+
+%template(CorpusReaderPtr) boost::shared_ptr<Corpus2::whole::CorpusReader>;
+%template(ConstCorpusReaderPtr) boost::shared_ptr<const Corpus2::whole::CorpusReader>;
+
+%template(CorpusReaderPtrVector) std::vector<boost::shared_ptr<Corpus2::whole::CorpusReader> >;
+
+namespace Corpus2 {
+namespace whole {
+  class CorpusReader {
+  public:
+    CorpusReader(const Tagset& tagset, const std::string& corpus_type);
+    boost::shared_ptr<Corpus> read(const std::string& corpus_file);
+  };
+} // whole ns
+} // Corpus2 ns
+
+using namespace std;
+using namespace Corpus2;
+using namespace Corpus2::whole;
+
+#endif /* SWIG_LIBCORPUS2_CORPUS_READER_I */
-- 
GitLab