summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorINADA Naoki <methane@users.noreply.github.com>2018-11-08 21:39:18 +0900
committerGitHub <noreply@github.com>2018-11-08 21:39:18 +0900
commit08e65bdd03ec4f9aa287c8cf50c6c3bf292c787d (patch)
tree61a4df67f84106f45695af45f25a6646a55af9f7
parent91ec9e1daf5cc915a47e2b356a7b1dd9662573a3 (diff)
parent9d11249d89c67fd87acaeb16184414b5ef0b5aa4 (diff)
downloadmsgpack-python-08e65bdd03ec4f9aa287c8cf50c6c3bf292c787d.tar.gz
Merge extension modules (#314)
There were `_packer.so` and `_unpacker.so`. But single module is simpler than double module. Merge extension module into single `_msgpack.so`.
-rw-r--r--.travis.yml12
-rw-r--r--Makefile5
-rwxr-xr-xdocker/runtests.sh2
-rw-r--r--msgpack/__init__.py3
-rw-r--r--msgpack/_msgpack.pyx4
-rwxr-xr-xsetup.py13
6 files changed, 17 insertions, 22 deletions
diff --git a/.travis.yml b/.travis.yml
index fd6125d..822ca9a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,7 +21,7 @@ matrix:
install:
- pip install -U pip
- pip install cython
- - cython --cplus msgpack/_packer.pyx msgpack/_unpacker.pyx
+ - make cython
- docker pull $DOCKER_IMAGE
script:
- docker run --rm -v `pwd`:/io -w /io $DOCKER_IMAGE /io/docker/runtests.sh
@@ -34,19 +34,19 @@ matrix:
install:
- pip install -e .
script:
- - py.test -v test
+ - pytest -v test
install:
- pip install -U pip
- pip install cython
- - cython --cplus msgpack/_packer.pyx msgpack/_unpacker.pyx
+ - make cython
- pip install -e .
script:
- python -c 'import sys; print(hex(sys.maxsize))'
- - python -c 'from msgpack import _packer, _unpacker'
- - py.test -v test
- - MSGPACK_PUREPYTHON=x py.test -v test
+ - python -c 'from msgpack import _msgpack'
+ - pytest -v test
+ - MSGPACK_PUREPYTHON=x pytest -v test
# vim: sw=2 ts=2
diff --git a/Makefile b/Makefile
index 124f243..ff9a482 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ all: cython
.PHONY: cython
cython:
- cython --cplus msgpack/*.pyx
+ cython --cplus msgpack/_msgpack.pyx
.PHONY: test
test:
@@ -18,8 +18,7 @@ serve-doc: all
.PHONY: clean
clean:
rm -rf build
- rm -f msgpack/_packer.cpp
- rm -f msgpack/_unpacker.cpp
+ rm -f msgpack/_msgpack.cpp
rm -rf msgpack/__pycache__
rm -rf test/__pycache__
diff --git a/docker/runtests.sh b/docker/runtests.sh
index 113b630..f6c2c68 100755
--- a/docker/runtests.sh
+++ b/docker/runtests.sh
@@ -8,7 +8,7 @@ for V in cp36-cp36m cp35-cp35m cp27-cp27m cp27-cp27mu; do
$PYBIN/pip install pytest
pushd test # prevent importing msgpack package in current directory.
$PYBIN/python -c 'import sys; print(hex(sys.maxsize))'
- $PYBIN/python -c 'from msgpack import _packer, _unpacker'
+ $PYBIN/python -c 'from msgpack import _msgpack' # Ensure extension is available
$PYBIN/pytest -v .
popd
done
diff --git a/msgpack/__init__.py b/msgpack/__init__.py
index 3955a41..7c5d4c0 100644
--- a/msgpack/__init__.py
+++ b/msgpack/__init__.py
@@ -22,8 +22,7 @@ if os.environ.get('MSGPACK_PUREPYTHON'):
from msgpack.fallback import Packer, unpackb, Unpacker
else:
try:
- from msgpack._packer import Packer
- from msgpack._unpacker import unpackb, Unpacker
+ from msgpack._msgpack import Packer, unpackb, Unpacker
except ImportError:
from msgpack.fallback import Packer, unpackb, Unpacker
diff --git a/msgpack/_msgpack.pyx b/msgpack/_msgpack.pyx
new file mode 100644
index 0000000..4381394
--- /dev/null
+++ b/msgpack/_msgpack.pyx
@@ -0,0 +1,4 @@
+# coding: utf-8
+#cython: embedsignature=True, c_string_encoding=ascii
+include "_packer.pyx"
+include "_unpacker.pyx"
diff --git a/setup.py b/setup.py
index c252d81..8b8f7bd 100755
--- a/setup.py
+++ b/setup.py
@@ -68,8 +68,7 @@ if len(version) > 3 and version[3] != 'final':
if have_cython:
class Sdist(sdist):
def __init__(self, *args, **kwargs):
- for src in glob('msgpack/*.pyx'):
- cythonize(src)
+ cythonize('msgpack/_msgpack.pyx')
sdist.__init__(self, *args, **kwargs)
else:
Sdist = sdist
@@ -85,14 +84,8 @@ else:
ext_modules = []
if not hasattr(sys, 'pypy_version_info'):
- ext_modules.append(Extension('msgpack._packer',
- sources=['msgpack/_packer.cpp'],
- libraries=libraries,
- include_dirs=['.'],
- define_macros=macros,
- ))
- ext_modules.append(Extension('msgpack._unpacker',
- sources=['msgpack/_unpacker.cpp'],
+ ext_modules.append(Extension('msgpack._msgpack',
+ sources=['msgpack/_msgpack.cpp'],
libraries=libraries,
include_dirs=['.'],
define_macros=macros,