cython

Python Distutils

I was unable to install cython due to strict version numbering class of Distutils. For example binutils-2.18.50-20080109-2.tar.gz cannot be used along with MinGW for installing cython. The source code documentation says that "The rationale for this version numbering system will be explained in the distutils documentation." I am unable to...

Dynamic use of a class method defined in a Cython extension module

I would like to use the C implementation of a class method (generated from Cython) if it is present, or use its Python equivalent if the C extension is not present. I first tried this: class A(object): try: import c_ext method = c_ext.optimized_method except ImportError: def method(self): retu...

Cython pyximport error on Windows

I'm making my first steps with Cython, and I've installed it on my machine according to the instructions in the wiki. Working through the Cython tutorial I got to pyximport, which is supposed to make cython compilation really simple. When I tried using it, though, I got the following error message (reformatted): ImportError: Building m...

String manipulation in Cython

I have code that does some very CPU-intensive string manipulations and I was looking for ways to improve performance. (EDIT: I'm doing stuff like finding longest common substring, running lots of regular expressions which might be better expressed as state machines in c, stripping comments from HTML, stuff like that.) I am currently lo...

Hello World from cython wiki not working

Hi, I'm trying to follow this tutorial from Cython: http://docs.cython.org/docs/tutorial.html#the-basics-of-cython and I'm having a problem. The files are very simple. I have a helloworld.pyx: print "Hello World" and a setup.py: from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import...

Cython and numpy speed

Hi I'm using cython for a correlation calculation in my python program. I have two audio data sets and I need to know the time difference between them. The second set is cut based on onset times and then slid across the first set. There are two for-loops: one slides the set and the inner loop calculates correlation at that point. This m...

Are Python extensions produced by Cython/Pyrex threadsafe?

If not, is there a way I can guarantee thread safety by programming a certain way? To clarify, when talking about "threadsafe,' I mean Python threads, not OS-level threads. ...

Idiomatic way to do list/dict in Cython?

My problem: I've found that processing large data sets with raw C++ using the STL map and vector can often be considerably faster (and with lower memory footprint) than using Cython. I figure that part of this speed penalty is due to using Python lists and dicts, and that there might be some tricks to use less encumbered data structur...

Noob-Ready Cython Tutorials

I know a bunch of scripting languages, (python, ruby, lua, php) but I don't know any compiled languages like C/C++ , I wanted to try and speed up some python code using cython, which is essentially a python -> C compiler, aimed at creating C extensions for python. Basically you code in a stricter version of python which compiles into C -...

Differences between Go and Cython

Today a great friend of mine asked me what are the main differences between the newest Go language and Cython, which is a set of C-extensions for Python. I don't have much knowledge on Python, can anyone tell me why Go is better/worse than Cython? Best regards, Miguel Rentes ...

Referencing an old .lib in setup.py (or How can I convert an old .lib to a .a file)

I'm writing a python wrapper for an old proprietary system with header files, a .lib and some .dlls available to me on Windows. The library that is referenced is in .lib format (header files have references to Borland C & MSC) I've attempted to convert the .lib to a .a file with pexports -- it complains about not being able to load PE ...

Wrapping a C library in Python: C, Cython or ctypes?

I want to call a C library from a Python application. I don't want to wrap the whole API, only the functions and datatypes that are relevant to my case. As I see it, I have three choices: Create an actual extension module in C. Probably overkill, and I'd also like to avoid the overhead of learning extension writing. Use Cython to expos...

Extending numpy with cython

I am trying to wrap a header file which has lots of functions like this test.h void test(int N, int* data_in, int* data_out); so that I can use those from numpy. Right now I have the following cython code: test.pyx import numpy as np cimport numpy as np ctypedef np.int_t itype_t cdef extern from 'VolumeForm.h': void _test '...

Wrap C++ lib with Cython

I'm new to Cython and I'm tring to use Cython to wrap a C/C++ static library. I made a simply example as following. Test.h: #ifndef TEST_H #define TEST_H int add(int a, int b); int multipy(int a, int b); #endif Test.cpp #include "test.h" int add(int a, int b) { return a+b; } int multipy(int a, int b) { return a*b; } ...

Can't get Cython to work with complex Numpy Arrays.

Hello, i am trying to subistute a small bit of Python Code with Cython for a speed up. While Cython itself dosen't complain, but gcc does. from __future__ import division import numpy cimport numpy cimport cython def calc_shg(numpy.ndarray[numpy.complex128_t, ndim = 1] par, numpy.ndarray[numpy.complex128_t, ndim = 1]...

Accessing C header magic numbers/flags with Cython

Some standard C libraries that I want to access with Cython have a ton of flags. The Cython docs state that I must replicate the parts of the header I need. Which is fine when it comes to functions definitions. They are usually replicated everywhere, docs included. But what about all those magic numbers? If I want to call mmap, I can a...

Make distutils look for numpy header files in the correct place

In my installation, numpy's arrayobject.h is located at …/site-packages/numpy/core/include/numpy/arrayobject.h. I wrote a trivial Cython script that uses numpy: cimport numpy as np def say_hello_to(name): print("Hello %s!" % name) I also have the following distutils setup.py (copied from the Cython user guide): from distutils.c...

calling a cdef in a cdef class

Hello, is their any way to make this work, without sacrificing the cdef in cdef caller? (no use of cpdef either) from array import * from numpy import * cdef class Agents: cdef public caller(self): print "caller" A[1].called() cdef called(self): print "called" A = [Agents() for i in range(2)] def mai...

Can Cython compile to an EXE?

I know what Cythons purpose is. It's to write compilable C extensions in a Python-like language in order to produce speedups in your code. What I would like to know (and can't seem to find using my google-fu) is if Cython can somehow compile into an executable format since it already seems to break python code down into C. I already u...

Trouble using eval() with cython

I was trying to speed up some code, and then I tried compiling a class and a function using cython and WOW! I havn't measured it yet but it looks at least 10x faster. I first looked at cython just two days ago, I'm very impressed! However, I can't get eval() to work. def thefirst(int a): d = eval('1+2+a') return d I compil...