Pyclipper is a Cython wrapper exposing public functions and classes of
the C++ translation of the `Angus Johnson's Clipper library (ver.
Pyclipper releases were tested with Python 2.7 and 3.4 on Linux (Ubuntu
14.04, x64) and Windows (8.1, x64).
Source code is available on
[GitHub]. The package is published on
Clipper - an open source freeware library for clipping and
offsetting lines and polygons.
The Clipper library performs line & polygon clipping -
intersection, union, difference & exclusive-or, and line &
polygon offsetting. The library is based on Vatti's clipping
\ [Angus Johnson's Clipper
Cython dependency is optional. Cpp sources generated with Cython are
available in releases.
Note on using the ``setup.py``:
``setup.py operates in 2 modes that are based on the presence of the
dev`` file in the root of the project.
- When dev is **present**, Cython will be used to compile the ``.pyx``
sources. This is the *development mode* (as you get it in the git
- When dev is **absent**, C/C++ compiler will be used to compile the
``.cpp`` sources (that were prepared in in the development mode).
This is the distribution mode (as you get it on PyPI).
This way the package can be used without or with an incompatible version
The idea comes from [Matt Shannon's bandmat
Cython not required.
pip install pyclipper
Clone the repository:
git clone firstname.lastname@example.org:fonttools/pyclipper.git
python setup.py install
After every modification of ``.pyx`` files compile with Cython:
python setup.py build_ext --inplace
Clippers' preprocessor directives
Clipper can be compiled with the following preprocessor directives:
use_int32, use_xyz, use_lines and use_deprecated.
Among these the use_int32 and use_lines can be used with Pyclipper.
- use_int32 - when enabled 32bit ints are used instead of 64bit ints. This
improve performance but coordinate values are limited to the range +/-
46340. In Pyclipper this directive is **disabled** by default.
Configuration Switches (platform-specific settings discarded)
PY38 ON Build using Python 3.8
PY39 OFF Build using Python 3.9
Package Dependencies by Type
Distribution File Information
48a1b5c585aea10e5b9c0b82d6abe2642fafd9ef158b9921852bc4af815ca20c 142126 pyclipper-1.3.0.zip
Ports that require python-pyclipper:py38