Martin Landa wrote: > >> Yes, it's seems to be a ctypes issue. > > > > Well, the "manual" ctypes version worked earlier, so it appears to be > > a problem with the wrappers. The preamble's String type looks > > unnecessarily complex; there's probably a reason, but I have doubts as > > to whether the benefits outweight the drawbacks. > > > > Can you try r42331? This eliminates most of the preamble, making > > String and ReturnString aliases for c_char_p. If there's a need for > > something more complex, I'll deal with that if and when it happens. > > Sample script: > > #!/usr/bin/env python > import os, sys > from grass.lib import grass > from ctypes import * > > grass.G_gisinit(sys.argv[0]) > > mapset = grass.G_find_raster2("elevation", "") > print mapset > > Result: > > Traceback (most recent call last): > File "/home/martin/smetiste/example7.py", line 8, in <module> > mapset = grass.G_find_raster2("elevation", "") > TypeError: __init__ expected at most 1 arguments, got 3
Not only can I not reproduce this, I can't see any mechanism by which it can occur. Have you done "make clean"? What is the value of grass.__file__ after importing it? Given that ctypes_preamble.py defines: String = c_char_p ReturnString = c_char_p it shouldn't be possible for this: G_find_raster2.argtypes = [c_char_p, c_char_p] G_find_raster2.restype = c_char_p to work but this: G_find_raster2.argtypes = [String, String] G_find_raster2.restype = ReturnString to fail. -- Glynn Clements <gl...@gclements.plus.com> _______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev