1946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca# reload seems to work for Python 2.3 but not 2.2. 2946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaimport time, os, sys 3946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaimport test_pyximport 4946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 5946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca# debugging the 2.2 problem 6946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecaif 1: 7946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca from distutils import sysconfig 8946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca try: 9946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca sysconfig.set_python_build() 10946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca except AttributeError: 11946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca pass 12946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca import pyxbuild 13946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca print pyxbuild.distutils.sysconfig == sysconfig 14946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 15946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecadef test(): 16946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca tempdir = test_pyximport.make_tempdir() 17946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca sys.path.append(tempdir) 18946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca hello_file = os.path.join(tempdir, "hello.pyx") 19946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca open(hello_file, "w").write("x = 1; print x; before = 'before'\n") 20946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca import hello 21946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca assert hello.x == 1 22946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 23946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca time.sleep(1) # sleep to make sure that new "hello.pyx" has later 24946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca # timestamp than object file. 25946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 26946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca open(hello_file, "w").write("x = 2; print x; after = 'after'\n") 27946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca reload(hello) 28946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca assert hello.x == 2, "Reload should work on Python 2.3 but not 2.2" 29946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca test_pyximport.remove_tempdir(tempdir) 30946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 31c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonsecaif __name__=="__main__": 32c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca test() 33946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 34946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca