pythran
Ahead of Time compiler for numeric kernels
0.19.0
854K downloads/mo
#4895 most downloaded on PyPI
serge-sans-paille/pythran
What this package is like to depend on
Last release 5 days ago
17 Aug 2026
Ships fairly regularly
a new release about every 4 months
Rarely documented
notes for 5 of 63 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
63 releases · first in 2012
2 releases in the last 12 months
see the full history below
Release timeline
62 releases · Aug 2012 to Aug 2026Releases
latest 60 of 63-
0.19.017 Aug 2026 -
0.18.115 Nov 2025Commits, not release notes
This project publishes no release notes. Between
0.18.0and0.18.1there were 46 commits, 46 of them substantive:- Add missing changelog entry for 0.18.0
- Add missing operators to nditerator
- Use more generic way of checking bool value of an object
- Add support for numpy.frombuffer
- Do not test binary mode of numpy.fromstring for recent numpy version
- Adjust doc validation to recent python 3.13
- Activate -D_GLIBCXX_DEBUG on CI
- Avoid sharing between iterators during self-assign sliced list
- Add missing iterator comparison operators
- Gast is not doing its portability job for dumping
- Force a more modern version of the compiler on Windows
- Fix issue with linspace
- [ci] Windows bot now have a modern clang-cl version
- Be smart about combination of IndexableContainerType and ContainerOf
- Do not try to be smart when computing default value type
- Avoid conflict between ndarray (the function) and ndarray (the namespace)
- Add support for passing types as pythran export parameters
- Improve the normalization pass that removes keyword parameter
- Move default compiler flag to C++14
- Move from utils::make_index_sequence to std::make_index_sequence
…and 26 more.
-
0.18.023 May 2025Commits, not release notes
This project publishes no release notes. Between
0.17.0and0.18.0there were 70 commits, 70 of them substantive:- [doc] Reference https://github.com/conda-forge/miniforge for both Conda and Mamba installers
- [constant folding] Correctly model restrict_assign in constant folding
- Add basic support for type annotation
- Restore type qualifiers dropped by b8cd84b5a5ab5222d65781a0194916ad555bf70c
- [typing] Support union type in annotation
- Provide user hint when trying to use c-style type names in pythran spec
- Make sure blas function argument actually have an associated buffer
- Remove any usage of PYTHRAN macro
- Remove legacy logic that handled py2/py3 compatibility
- Have pythran generate freethreading compatible code
- Allow tuple with combinable items as array initializer
- Fix interaction between static if and nested loop / function
- Defer initialisation of global variables until the module is actually created
- Fix pythran support for numpy.float128
- Better modeling of analyse and transformations
- Move GIL manipulation right after module creation
- Have FastGExpr load its dependency in a lazy manner
- ENH: improvements to pythran-config for build system integration
- Adjust --cflags-pythran-only implementation
- Fix test portability issue for ipython magic
…and 50 more.
-
0.17.031 Oct 2024Commits, not release notes
This project publishes no release notes. Between
0.16.1and0.17.0there were 44 commits, 44 of them substantive:- Add scipy-openblas support
- Bump gast requirement to 0.6.0
- Append version number to changelog summary lines
- Make sure we have a decent optimization level for the C++ compilation step
- Reduce complexity of forward substitution algorithm
- Fix numpy.fix output type
- Fix docstring and implementation of Interval.power
- Remove dependency on setuptools for
pythran -E - array module support: typecodes
- array module support: array creation
- array module support: tolist()
- Rename types::array into types::array_tuple so that types::array can be used normally
- array module support: append()
- array module support: buffer_info()
- array module support: byteswap()
- array module support: count()
- array module support: extend()
- array module support: fromfile()
- array module support: fromlist()
- array module support: frombytes()
…and 24 more.
-
0.16.128 May 2024Commits, not release notes
This project publishes no release notes. Between
0.16.0and0.16.1there were 3 commits, 3 of them substantive:- Fix user manual sections
- Fix massive memory leakage in all ndarray
- \0.16.1 - piched
-
0.16.020 May 2024Commits, not release notes
This project publishes no release notes. Between
0.15.0and0.16.0there were 38 commits, 38 of them substantive:- Remove swap files
- Read the docs update - .readthedocs.yaml
- Support empty PYTHRANRC
- Fix numpy bool type conversion, and properly support np.bool_
- Centralize all pythran-managed allocation in one place
- Provide --trace-allocations switch
- Add missing baseid() method for sliced list
- Fix constant folding in aug assign
- Add missing descriptor for omp.set_num_threads
- Allow taking the real/imag part of a numpy_iexpr
- Support numpy.argsort kind keyword argument
- Add support for numpy.vectorize
- Move more exceptions to pythran.errors
- Always lazily load pythran.types.tog
- setuptools 62+ required to build
- Add missing descr field in pythran/version.py
- Test package distribution
- Handle situation where we already have an incompatible scipy version installed
- Add basic support for generation of ufunc
- FIx leak on slices when converting a gexpr back to python
…and 18 more.
-
0.15.007 Jan 2024Commits, not release notes
This project publishes no release notes. Between
0.14.0and0.15.0there were 15 commits, 15 of them substantive:- Remove pytest.mark.module usage
- Use a requirement file for test requirements
- Support Python 3.12
- Update icc github action
- Avoid extra allocation when evaluation complex gexpr
- Add support for clear for lists
- Detect situation where functions are called as methods
- Correctly handle overlapping detection between gexpr and vexpr
- Move setup configuration to pyproject.toml
- Upgrade xsimd to a48ab430d4b84ecd5449180ee1c6d2eed67c4191
- Fix tuple + indexable_container combiner
- Avoid redefining
NPY_NO_DEPRECATED_APIif already defined by user - Remove xsimd and boost from git ignore file
- When failing to find pythran-openblas, default to none
- \0.15.0 - ibil
-
0.14.006 Sep 2023Commits, not release notes
This project publishes no release notes. Between
0.13.1and0.14.0there were 31 commits, 31 of them substantive:- Fix filtering of empty sequence
- When reserving data for list, enlarge increase capacity by a golden ratio
- Add more docs about using Pythran in a Python package
- Get rid of legacy OpenMP customization points
- Support numpy.ndarray.view
- Support taking a view on numpy_[itg]expr
- Fix ambiguous value_type in enumerate
- Provide a decent implementation of np.roll for multiple axes
- Added test case _solve_toeplitz.py
- Introduce pythran/pythonic/include/types/longdouble.hpp et cie
- assertEquals was removed from unittest in Python 3.12
- Use pythran logger instead of default logger to report absence of spec
- Add missing std::forward
- Loosen warning checks to take into account cython-generated code
- Use npy_creal/npy_cimag from npy_math in from_python::convert
- Cleaner exception handling when filling global tables
- Do not include time in compiled metadata
- Fix call to Py_BuildValue in module init
- Fix call argument forward signature
- Bump minimal clang requirement
…and 11 more.
-
0.13.102 May 2023Commits, not release notes
This project publishes no release notes. Between
0.13.0and0.13.1there were 3 commits, 3 of them substantive:- Update xsimd to 11.0.0
- Backport "Defer to (good) compiler the task of computing ln10" commit from xsimd
- \0.13.1 - bouc'hal levnet
-
0.13.002 May 2023Commits, not release notes
This project publishes no release notes. Between
0.12.2and0.13.0there were 27 commits, 26 of them substantive:- Basic support of empty arrays
- Backport 995ba19886255c84024afb5531154f314c840967 from xsimd
- Do not generate trailing loop update if not needed
- Get rid of unused functions warnings
- Fix bad interaction between broadcasting, indexing and numpy expr
- Fix simd version of argminmax
- Improve and optimize numpy.array_split implementation
- Perform early forward substitution to enable more inlining
- New pattern: numpy.argmax(cst * expr) => numpy.argmax(expr) | cst > 0
- Provide entry points pythran.import_pythrancode and pythran.import_pythranfile
- Add missing documentation
- Allow more expressions as numpy function parameters
- Force internal linkage for the translated functions
- Support downcasting numpy arrays
- Raise Error when exporting a global as a function, or vice-versa
- Upgrade notebook validation
- Make sure an array of float32 added to a float64 scalar generates an array of float32
- curse one letter typos of course!
- Detect potential copyto usage and improve numpy.copyto support
- Prevent ambigouous overload due to ADL
…and 6 more.
-
0.12.202 May 2023Nothing published for this version
-
0.12.115 Jan 2023Nothing published for this version
-
0.12.028 Sep 2022Nothing published for this version
-
0.11.014 Dec 2021Nothing published for this version
-
0.10.014 Sep 2021Nothing published for this version
-
0.9.12.post114 Jul 2021Nothing published for this version
-
0.9.1213 Jul 2021Nothing published for this version
-
0.9.1123 May 2021Nothing published for this version
-
0.9.1009 May 2021Nothing published for this version
-
0.9.931 Mar 2021Nothing published for this version
-
0.9.8.post211 Dec 2020Nothing published for this version
-
0.9.8.post111 Dec 2020Nothing published for this version
-
0.9.809 Dec 2020Nothing published for this version
-
0.9.723 Sep 2020Nothing published for this version
-
0.9.601 Aug 2020Nothing published for this version
-
0.9.502 Jan 2020Nothing published for this version
-
0.9.4.post114 Nov 2019Nothing published for this version
-
0.9.4.post031 Oct 2019Nothing published for this version
-
0.9.431 Oct 2019Nothing published for this version
-
0.9.3.post131 Aug 2019Nothing published for this version
-
0.9.3.post025 Aug 2019Nothing published for this version
-
0.9.319 Aug 2019Nothing published for this version
-
0.9.205 May 2019Nothing published for this version
-
0.9.1.post030 Jan 2019Nothing published for this version
-
0.9.118 Jan 2019Nothing published for this version
-
0.9.006 Nov 2018Nothing published for this version
-
0.8.716 Sep 2018Nothing published for this version
-
0.8.607 Jun 2018Nothing published for this version
-
0.8.523 Apr 2018Nothing published for this version
-
0.8.4.post009 Feb 2018Nothing published for this version
-
0.8.405 Feb 2018Nothing published for this version
-
0.8.314 Oct 2017Nothing published for this version
-
0.8.212 Sep 2017Nothing published for this version
-
0.8.104 Jul 2017Nothing published for this version
-
0.8.005 Jan 2017Nothing published for this version
-
0.7.6.post106 Jul 2016Nothing published for this version
-
0.7.605 Jul 2016Nothing published for this version
-
0.7.5.post221 Jun 2016Nothing published for this version
-
0.7.5.post121 Jun 2016Nothing published for this version
-
0.7.514 Jun 2016Nothing published for this version
-
0.7.4.post107 Jan 2016Nothing published for this version
-
0.7.4.post007 Jan 2016Nothing published for this version
-
0.7.407 Jan 2016Nothing published for this version
-
0.7.318 Oct 2015Nothing published for this version
-
0.7.2no dateNothing published for this version
-
0.7.101 May 2015Nothing published for this version
-
0.7.016 Apr 2015Nothing published for this version
-
0.6.022 Oct 2014Nothing published for this version
-
0.5.019 May 2014Nothing published for this version
-
0.4.004 Feb 2014Nothing published for this version