0.9.0

PyPI link to release 0.9.0 Documentation for release 0.9.0

Documentation

  • Documenting the C ABI libbezier (4608364). Fixed #63. This documentation contains a page for each “module” which corresponds to the underlying Fortran module. Each module documents the routines in the corresponding header file, e.g. the surface document corresponds to the bezier/surface.h header. Fully working C examples have been added for each routine in bezier/curve.h and for the enum in bezier/status.h.

  • Adding section about environment variables to development document (5186e24). Fixed #78.

  • Remove dependency on rawgit.com (04d0f8d). The website is being turned down. Fixed #130.

  • Renaming the “Native Libraries” document as “Binary Extension” (f99db20). In the process, changed most references to the “native” Python extension to instead call it a “binary” extension.

  • Added a “Cython .pxd Declarations” document (f99db20). Fixed #122.

  • Moving all Python specific documentation under a specific URL path (3db483b). In particular, moving

    • /reference/... to /python/reference/...

    • /python-binary-extension.html to /python/binary-extension.html

    • /pxd/... to /python/pxd/....

  • Moving all algorithm specific documentation under a specific URL path (6e9c825). In particular, moving

    • /algorithm-helpers.html to /algorithms/helpers.html

    • /curve-curve-intersection.html to /algorithms/curve-curve-intersection.html

ABI Changes

New Features

  • Added surface.h::compute_area helper that can be used to compute the area of both a surface and a curved polygon (d4d7249).

Breaking Changes

  • Removing getters and setters for parameters used during curve-curve intersection (2fda3ae):

    • curve_intersection.h::set_max_candidates

    • curve_intersection.h::get_max_candidates

  • Removing dimension from curve.h::get_curvature (1e39c0c).

Python Changes

New Features

Non-Public API

  • Removing getters and setters for parameters used during curve-curve intersection (2fda3ae):

    • bezier._geometric_intersection.set_max_candidates()

    • bezier._geometric_intersection.get_max_candidates()

  • Removing cached values for Curve.length property, Surface.area property and Surface.is_valid property (34d48d6).

Build

  • Renaming libbezier.dll shared library to bezier.dll on Windows (d17a9bc). This follows the correct convention on Windows.

  • Adding Python 3.7 support and making it the default version used for testing (e368e9f).

  • Dropping support for Python 3.5 (f99db20).

  • Adding back -march=native for non-wheel builds (1566019). This way, when installing from source (either via a local checkout or from the source distribution on PyPI) the most optimal machine instructions will be produced. Fixed #99.

  • Removing all traces of 32-bit support for macOS (d7620ad). This was driven by a decision from the NumPy maintainers.

Miscellany

  • Adopted black code formatter (f21b52d).

  • Adding project URLs and keywords for PyPI (cfb070d).

  • Added 20 new surface-surface functional tests (9fd9c1e). See #121 for more information.

  • Removed time and memory benchmarks due to flakiness and lack of an environment that could be used for benchmarking (6a30dc2). See #125 to follow discussion on re-enabling such benchmarks.

  • Using DEBUG=True environment variable when running unit tests and other related tests (d84dffb).