diff --git a/.gitignore b/.gitignore index b7628f3..74fdf44 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,8 @@ build dist pyclipper.egg-info *.so -pyclipper/pyclipper.cpp +src/pyclipper/_pyclipper.cpp +src/pyclipper/_version.py *.pyc MANIFEST -.eggs/ \ No newline at end of file +.eggs/ diff --git a/MANIFEST.in b/MANIFEST.in index 4aa3d08..f3b346d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,7 +3,7 @@ # Here we only need to include those which are not tracked by git but we do # want to be included -include pyclipper/pyclipper.cpp +include src/pyclipper/_pyclipper.cpp # and exclude those that are tracked by git but don't want to be in the sdist exclude dev diff --git a/setup.py b/setup.py index bd0cd83..a0559d5 100755 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from __future__ import print_function import sys import os -from setuptools import setup +from setuptools import setup, find_packages from setuptools.extension import Extension from io import open @@ -23,7 +23,7 @@ if dev_mode: from Cython.Distutils import build_ext print('Development mode: Compiling Cython modules from .pyx sources.') - sources = ["pyclipper/pyclipper.pyx", "pyclipper/clipper.cpp"] + sources = ["src/pyclipper/_pyclipper.pyx", "src/clipper.cpp"] from setuptools.command.sdist import sdist as _sdist @@ -40,7 +40,7 @@ if dev_mode: else: print('Distribution mode: Compiling Cython generated .cpp sources.') - sources = ["pyclipper/pyclipper.cpp", "pyclipper/clipper.cpp"] + sources = ["src/pyclipper/_pyclipper.cpp", "src/clipper.cpp"] cmdclass = {} @@ -48,13 +48,14 @@ needs_pytest = {'pytest', 'test'}.intersection(sys.argv) pytest_runner = ['pytest_runner'] if needs_pytest else [] -ext = Extension("pyclipper", +ext = Extension("pyclipper._pyclipper", sources=sources, language="c++", + include_dirs=["src"], # define extra macro definitions that are used by clipper # Available definitions that can be used with pyclipper: # use_lines, use_int32 - # See pyclipper/clipper.hpp + # See src/clipper.hpp # define_macros=[('use_lines', 1)] ) @@ -63,7 +64,7 @@ with open("README.rst", "r", encoding='utf-8') as readme: setup( name='pyclipper', - use_scm_version=True, + use_scm_version={"write_to": "src/pyclipper/_version.py"}, description='Cython wrapper for the C++ translation of the Angus Johnson\'s Clipper library (ver. 6.4.2)', long_description=long_description, author='Angus Johnson, Maxime Chalton, Lukas Treyer, Gregor Ratajc', @@ -89,6 +90,8 @@ setup( "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Software Development :: Libraries :: Python Modules" ], + package_dir={"": "src"}, + packages=find_packages(where="src"), ext_modules=[ext], setup_requires=[ 'cython>=0.28', diff --git a/pyclipper/clipper.cpp b/src/clipper.cpp similarity index 100% rename from pyclipper/clipper.cpp rename to src/clipper.cpp diff --git a/pyclipper/clipper.hpp b/src/clipper.hpp similarity index 100% rename from pyclipper/clipper.hpp rename to src/clipper.hpp diff --git a/pyclipper/extra_defines.hpp b/src/extra_defines.hpp similarity index 100% rename from pyclipper/extra_defines.hpp rename to src/extra_defines.hpp diff --git a/src/pyclipper/__init__.py b/src/pyclipper/__init__.py new file mode 100644 index 0000000..b1d5548 --- /dev/null +++ b/src/pyclipper/__init__.py @@ -0,0 +1,6 @@ +from ._pyclipper import * + +try: + from ._version import version as __version__ +except ImportError: + __version__ = "0.0.0+unknown" diff --git a/pyclipper/pyclipper.pyx b/src/pyclipper/_pyclipper.pyx similarity index 100% rename from pyclipper/pyclipper.pyx rename to src/pyclipper/_pyclipper.pyx