ContourPy 1.3.0 adds new ContourGenerator functions multi_lines and multi_filled to calculate contour lines and filled contours over a sequence of levels in a single function call. There are also new functions to render, convert and dechunk the returns from multi_lines and multi_filled.
This release adds support for Python 3.13, including free-threaded. The latter should be considered experimental.
The use of np.nan as the lower_level or upper_level of ContourGenerator.filled() is no longer permitted.
Windows wheels uploaded to PyPI now bundle the C++ runtime statically to avoid problems with up and downstream libraries causing the use of incorrect DLLs.
This release supports CPython 3.9 to 3.13, and PyPy 3.9 to 3.10.
Thanks to new contributor @lysnikolaou and core maintainer @ianthomas23.
Enhancements:
-
multi_linesandmulti_filled: -
Prevent use of
np.nanas lower or upper level infilled(#339)
Compatibility:
- Support CPython 3.13 including free-threaded (#382, #384, #388, #408, #410, #411, #412, #423)
- Support PyPy 3.10 (#404)
Code improvements:
- Support improved typing in NumPy 2.1.0 (#422)
Documentation improvements:
- Simpler sphinx cross-references (#361)
- Add more doc cross-references to explain returned data formats (#366)
- Remove download numbers for conda packages (#428)
- Documentation for
multi_linesandmulti_filled(#390, #431) - Document possibility of duplicate contour points (#432)
Build, testing and CI improvements:
- Add pytest option to log image differences to CSV file (#335)
- Label flaky test (#385)
- MSVC linking and
std::mutexcompiler flag (#391, #395, #414, #419, #427) - Add minimal test script (#399)
- Bump minimum supported NumPy to 1.23 (#403)
- Build and publish nightly wheels (#413, #425)
- Bump default python version in CI to 3.12 (#430)