Re: Mutual module imports

2005-10-17 Thread George Sakkis
"Tony Nelson" <[EMAIL PROTECTED]> wrote:

> [snipped]
>
> I have written a Python module that uses some C functions.  I wrote the
> module in two parts, one Python, one Pyrex (C).  They need to share some
> globals.
>

> [snipped]
>
> Now the Python module imports the Pyrex module and just shoves
> references to its globals into the Pyrex module (the Pyrex module
> defines them as None).  The Pyrex module doesn't import the Python
> module anymore.  This also works, even when the Python module has a
> different name (e.g. "__main__").  I just feel dirty about it.

Well, I feel dirty every time I have to share globals .

George


-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Mutual module imports

2005-10-17 Thread Tuvas
The trick is via something called Extending. Pyrex just makes extending
a bit easier, but, depending on the complexity of the function, it
might be easier just to extend it yourself. Basically you make a
function that translates python into C. There are some instructions on
the Python website, http://www.python.org . Look around, and you'll
find lots of cool stuff on it.

-- 
http://mail.python.org/mailman/listinfo/python-list


Mutual module imports

2005-10-17 Thread Tony Nelson
How does one normally make a Python extension module that has some parts 
in Python and some functions in C share globals between the Python and C 
functions?  Will that approach work with Pyrex?

I have written a Python module that uses some C functions.  I wrote the 
module in two parts, one Python, one Pyrex (C).  They need to share some 
globals.  (I use pyrex to handle ref counting.  I think I'm glad I did.)

At first they just sort of mutually imported each other, and it worked 
until I put tests in the Python one and set it up to run them when it is 
named "__main__".  What happened reminded me that there are also other 
ways modules can be imported under different names, so I tried a 
different approach.

Now the Python module imports the Pyrex module and just shoves 
references to its globals into the Pyrex module (the Pyrex module 
defines them as None).  The Pyrex module doesn't import the Python 
module anymore.  This also works, even when the Python module has a 
different name (e.g. "__main__").  I just feel dirty about it.

TonyN.:'[EMAIL PROTECTED]
  '  
-- 
http://mail.python.org/mailman/listinfo/python-list