Commit 12e307e3 authored by Javier Garcia Blas's avatar Javier Garcia Blas
Browse files

Added Python interface

parent 9883e9e4
Showing with 5454 additions and 0 deletions
+5454 -0
......@@ -7,6 +7,9 @@ SET(CMAKE_CXX_EXTENSIONS OFF)
PROJECT (${PROJECT_NAME_STR})
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
option(ENABLE_IMSS "Enable IMSS support" OFF)
option(ENABLE_HDFS "Enable HDFS support" OFF)
......@@ -52,3 +55,9 @@ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
ADD_SUBDIRECTORY(src)
#ADD_SUBDIRECTORY(examples)
#ADD_SUBDIRECTORY(tests)
option(BUILD_PYTHON "Build Python SWIG module" ON)
if(BUILD_PYTHON)
ADD_SUBDIRECTORY(python)
endif()
# Include python
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_PATH})
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
set(CMAKE_SWIG_FLAGS "")
include_directories( ../include/filesystems
../include/generic
../include/stats
)
# Add swig module
set_source_files_properties(dice.i PROPERTIES CPLUSPLUS ON)
set_source_files_properties(dice.i PROPERTIES SWIG_FLAGS "-cpperraswarn")
swig_add_library(pyDice LANGUAGE python SOURCES dice.i)
swig_link_libraries(pyDice
${PYTHON_LIBRARIES}
aspide_datamodel)
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
def swig_import_helper():
import importlib
pkg = __name__.rpartition('.')[0]
mname = '.'.join((pkg, '_dcex')).lstrip('.')
try:
return importlib.import_module(mname)
except ImportError:
return importlib.import_module('_dcex')
_dcex = swig_import_helper()
del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
def swig_import_helper():
from os.path import dirname
import imp
fp = None
try:
fp, pathname, description = imp.find_module('_dcex', [dirname(__file__)])
except ImportError:
import _dcex
return _dcex
try:
_mod = imp.load_module('_dcex', fp, pathname, description)
finally:
if fp is not None:
fp.close()
return _mod
_dcex = swig_import_helper()
del swig_import_helper
else:
import _dcex
del _swig_python_version_info
try:
_swig_property = property
except NameError:
pass # Python < 2.2 doesn't have 'property'.
try:
import builtins as __builtin__
except ImportError:
import __builtin__
def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
if (name == "thisown"):
return self.this.own(value)
if (name == "this"):
if type(value).__name__ == 'SwigPyObject':
self.__dict__[name] = value
return
method = class_type.__swig_setmethods__.get(name, None)
if method:
return method(self, value)
if (not static):
if _newclass:
object.__setattr__(self, name, value)
else:
self.__dict__[name] = value
else:
raise AttributeError("You cannot add attributes to %s" % self)
def _swig_setattr(self, class_type, name, value):
return _swig_setattr_nondynamic(self, class_type, name, value, 0)
def _swig_getattr(self, class_type, name):
if (name == "thisown"):
return self.this.own()
method = class_type.__swig_getmethods__.get(name, None)
if method:
return method(self)
raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
def _swig_repr(self):
try:
strthis = "proxy of " + self.this.__repr__()
except __builtin__.Exception:
strthis = ""
return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
try:
_object = object
_newclass = 1
except __builtin__.Exception:
class _object:
pass
_newclass = 0
class SwigPyIterator(_object):
__swig_setmethods__ = {}
__setattr__ = lambda self, name, value: _swig_setattr(self, SwigPyIterator, name, value)
__swig_getmethods__ = {}
__getattr__ = lambda self, name: _swig_getattr(self, SwigPyIterator, name)
def __init__(self, *args, **kwargs):
raise AttributeError("No constructor defined - class is abstract")
__repr__ = _swig_repr
__swig_destroy__ = _dcex.delete_SwigPyIterator
__del__ = lambda self: None
def value(self):
return _dcex.SwigPyIterator_value(self)
def incr(self, n=1):
return _dcex.SwigPyIterator_incr(self, n)
def decr(self, n=1):
return _dcex.SwigPyIterator_decr(self, n)
def distance(self, x):
return _dcex.SwigPyIterator_distance(self, x)
def equal(self, x):
return _dcex.SwigPyIterator_equal(self, x)
def copy(self):
return _dcex.SwigPyIterator_copy(self)
def next(self):
return _dcex.SwigPyIterator_next(self)
def __next__(self):
return _dcex.SwigPyIterator___next__(self)
def previous(self):
return _dcex.SwigPyIterator_previous(self)
def advance(self, n):
return _dcex.SwigPyIterator_advance(self, n)
def __eq__(self, x):
return _dcex.SwigPyIterator___eq__(self, x)
def __ne__(self, x):
return _dcex.SwigPyIterator___ne__(self, x)
def __iadd__(self, n):
return _dcex.SwigPyIterator___iadd__(self, n)
def __isub__(self, n):
return _dcex.SwigPyIterator___isub__(self, n)
def __add__(self, n):
return _dcex.SwigPyIterator___add__(self, n)
def __sub__(self, *args):
return _dcex.SwigPyIterator___sub__(self, *args)
def __iter__(self):
return self
SwigPyIterator_swigregister = _dcex.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)
SHARED_PTR_DISOWN = _dcex.SHARED_PTR_DISOWN
# This file is compatible with both classic and new-style classes.
%include "stl.i"
%include "std_vector.i"
%include "std_shared_ptr.i"
%include "std_string.i"
%module dcex
%{
#include "output_container.hpp"
#include "binary_container.hpp"
#include "text_in_container.hpp"
#include "file_generic.hpp"
#include "flusher.hpp"
%}
File added
This diff is collapsed.
File added
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment