{"push_id":656297687,"size":1,"distinct_size":1,"ref":"refs/heads/pyinterface","head":"8127ad455707b06aef096d2f707f3201777985c0","before":"7ce12322bcbe3d20d0a0c024703aa06b13f6bbd9","commits":[{"sha":"8127ad455707b06aef096d2f707f3201777985c0","author":{"email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@ensslin.cc","name":"Michael Ensslin"},"message":"pyinterface completed\n\nNote: WIP commit; designed to be amended.\n\nThis commit completes the C++ <-> Python interface, including:\n\n - C++ -> Py function calling\n  - cpp/pyinterface/pyfunc.h\n   - PyFunc<returntype, arg0type, arg1type, ...>\n   - Callable objects\n   - Designed to be filled with pointers to cdef functions\n  - openage/cppinterface/setup.py\n   - setup() Fills the PyFunc pointers\n   - Run whenever importing openage.cppinterface\n   - Make sure to import openage.cppinterface from your cpp-calling modules.\n - Exception translation\n  - cpp/pyinterface/exctranslate.h\n   - translate_exc_cpp_to_py\n   - translate_exc_py_to_cpp\n  - py/cppinterface/exctranslate.py\n   - describe_py_exception\n   - raise_py_exception\n  - C++ functions that are declared 'except +' raise CPPException if they\n    throw when called from Python\n  - Python functions that are declared 'except *' throw PyException if they\n    raise when called from C++\n - Documentation\n\nIt includes some minor C++ additions:\n\n - Moved util/error.h to error/error.h\n - Added error/handlers.cpp, which provides a SIGSEGV and terminate handler\n\nand some major Python additions:\n\n - Bumped Python version requirement to 3.4\n - Massive clean-up\n  - Unified all utility modules into the openage.util package\n  - Removed some code that got obsoleted in the process\n  - Made stuff more pylint-compliant\n  - Replaced home-brewn Enum and NamedObject implementations by enum.Enum\n - Implemented some utilities\n  - openage/util/fslike.py\n   - FileSystemLikeObject abstract base class\n   - Directory FileSystemLikeObject\n  - openage/util/filelike.py\n   - FileLikeObject abstract base class\n   - StreamSeekBuffer FileLikeObject\n   - StreamFragment FileLikeObject\n   - FIFO FileLikeObject\n - Overhauled testing system\n  - openage.testing.testing.assert_result\n  - openage.testing.testing.assert_raises\n  - openage.testing.testing.TestError\n - Integrated cabextract/cab.py with the rest of the project\n  - now a FileSystemLikeObject\n  - takes a FileLikeObject as an argument\n  - added tests","distinct":true,"url":"https://api.github.com/repos/mic-e/openage/commits/8127ad455707b06aef096d2f707f3201777985c0"}]}