2.4. Optimization Transpiler

2.4.1. Cython

  • Cython is a compiled language that generates CPython extension modules

  • Cython is a superset of the Python programming language

  • Designed to give C-like performance with code that is written mostly in Python

  • These extension modules can then be loaded and used by regular Python code using the import statement

  • https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html

>>>
... import cython
...
...
... def primes(nb_primes: cython.int):
...     i: cython.int
...     p: cython.int[1000]
...
...     if nb_primes > 1000:
...         nb_primes = 1000
...
...     if not cython.compiled:  # Only if regular Python is running
...         p = [0] * 1000       # Make p work almost like a C array
...
...     len_p: cython.int = 0  # The current number of elements in p.
...     n: cython.int = 2
...     while len_p < nb_primes:
...         # Is n prime?
...         for i in p[:len_p]:
...             if n % i == 0:
...                 break
...
...         # If no break occurred in the loop, we have a prime.
...         else:
...             p[len_p] = n
...             len_p += 1
...         n += 1
...
...     # Let's copy the result into a Python list:
...     result_as_list = [prime for prime in p[:len_p]]
...     return result_as_list

2.4.2. Mypyc