On Apr 7, 2009, at 12:29 PM, Brian Blais wrote:

> On Apr 7, 2009, at 15:05 , Lev Givon wrote:
>
>> Received from Brian Blais on Tue, Apr 07, 2009 at 02:48:51PM EDT:
>>> I am writing a tool to do some neural simulation, where I have  
>>> several
>>> different neuron groups, which are defined as python classes.  Is  
>>> there a
>>> preferred way to write a cython-only replacement such that the  
>>> end-user
>>> sees no difference?  What I mean is that they should be able to do:
>>>
>>> import sim
>>>
>>> n1=sim.NeuronGroup1(5)
>>>
>>> sim.run_sim([n1])
>>>
>>> and if the cython version exists, use that one (for both the neuron
>>> group and the function to run the simulation), otherwise use the  
>>> python
>>> one.
>>>
>>>
>> You could give the cython and python modules slightly different names
>> (e.g., sim_cython and sim_python) and create a wrapper module (called
>> sim) that contains the following code:
>>
>> try:
>>     from sim_cython import *
>> except ImportError:
>>     from sim_python import *
>>
>
> Thanks!  Now, if not every class is implemented in sim_cython,  
> should I do:
>
> from sim_python import *
> try:
>     from sim_cython import *
> except ImportError:
>     pass

Yes, that would work well.

You might also be interested in http://wiki.cython.org/pure which may  
allow you to keep a single codebase for the compiled and interpreted  
implementations.

- Robert

_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to