diff options
author | Damir Jelić <poljar@termina.org.uk> | 2018-07-08 12:19:16 +0200 |
---|---|---|
committer | Hubert Chathi <hubert@uhoreg.ca> | 2018-07-18 17:44:32 -0400 |
commit | e3d66733712e161d9287ea3f0116e5b57477b0d8 (patch) | |
tree | 846678302027f772f5d8e0ef30d4e0ac79a526f9 /python/olm_build.py | |
parent | 2fccf44015dfb27865ddb50ed66afdedbd4e03e6 (diff) |
python: Import improved python bindings.
This commit imports the python bindings from:
https://github.com/poljar/python-olm
The bindings are imported at commit c44b145818520d69eaaa350fb95afcb846125e0f
Minor modifications were made while importing:
- Removed travis config
- Removed Arch Linux PKGBUILD
- Removed the html docs, they can be rebuild by running make html in
the docs folder
- Slightly modified the README
The new bindings feature some improvements over the old ones:
- Python 2 and 3 support
- Automatic memory management
- Automatic memory clearing before it is freed
- Type signatures via the python typing module
- Full test coverage
- Properties are utilized where it makes sense (e.g. account.id)
Signed-off-by: Damir Jelić <poljar@termina.org.uk>
Diffstat (limited to 'python/olm_build.py')
-rw-r--r-- | python/olm_build.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/python/olm_build.py b/python/olm_build.py new file mode 100644 index 0000000..5ffefc2 --- /dev/null +++ b/python/olm_build.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +# libolm python bindings +# Copyright © 2018 Damir Jelić <poljar@termina.org.uk> +# +# Permission to use, copy, modify, and/or distribute this software for +# any purpose with or without fee is hereby granted, provided that the +# above copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +from __future__ import unicode_literals + +import os + +from cffi import FFI + +ffibuilder = FFI() +PATH = os.path.dirname(__file__) + + +ffibuilder.set_source( + "_libolm", + r""" + #include <olm/olm.h> + #include <olm/inbound_group_session.h> + #include <olm/outbound_group_session.h> + """, libraries=["olm"]) + +with open(os.path.join(PATH, "include/olm/olm.h")) as f: + ffibuilder.cdef(f.read(), override=True) + +if __name__ == "__main__": + ffibuilder.compile(verbose=True) |