Typed Python?

Michael Sparks zathras at thwackety.com
Sat Jul 3 13:10:52 CEST 2004


On Sat, 3 Jul 2004, Thomas Reichelt wrote:
> short question: is there any language combining the syntax, flexibility and
> great programming experience of Python with static typing? Is there a
> project to add static typing to Python?

This is almost a word for word description of how I've heard Pyrex
described.

   * http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/

It's a language that combines the best elements (IMO) of C and Python.
It's designed for writing extension modules for python, however people
have successfully used it for writing standalone programs - albeit with a
C bootstrap/harness.

It's very pleasant to work work, and you can use distutils to
build/distribute your code.

Example code fragments:
------------------
cdef class vorbissimple:
   cdef ogg_vorbis_context* oggVorbisContext
   cdef source_buffer* sourceBuffer
   cdef decode_buffer* decodeBuffer

   def __init__(self):
      self.sourceBuffer = newSourceBuffer(NULL,BUFSIZE)
      self.oggVorbisContext = newOggVorbisContext()
      self.decodeBuffer = NULL
------------------
def primes(int kmax):
        cdef int n, k, i
        cdef int p[1000]
        result = []
        if kmax > 1000:
                kmax = 1000
        k = 0
        n = 2
        while k < kmax:
                i = 0
                while i < k and n % p[i] <> 0:
                        i = i + 1
                if i == k:
                        p[k] = n
                        k = k + 1
                        result.append(n)
                n = n + 1
        return result
----------------------
There's also an excellent tutorial/guide here:
   * http://ldots.org/pyrex-guide/

HTH,


Michael.





More information about the Python-list mailing list