Oh, I just realized, another way you can do it right now is that instead of constructing a ParamValue and adding it to extra_attribs, you can do this:
for inParm in spec.extra_attribs: specCopy.attribute (inParam.name, inParam.value) > On Nov 26, 2019, at 8:58 AM, Larry Gritz <l...@larrygritz.com> wrote: > > I'm afraid you are right -- at the moment, the python interface only exposes > ParamValue(name,int), (name,float), and (name,string). It doesn't expose the > general (name, anything) constructor, so it's probably getting tripped up on > some compound object. > > Maybe as a workaround, it would be easier to use ParamValueList.remove(name) > to just exclude the specific things you want to eliminate, rather than add > one by one everything else? > > Also, if this is all you're doing from python, you could try from the command > line with oiiotool using the --eraseattrib command? > > -- lg > > >> On Nov 26, 2019, at 5:32 AM, ha...@haggi.de <mailto:ha...@haggi.de> wrote: >> >> Hi, >> >> we try to get rid of the huge crypto matte headers in exr files and instead >> load the data from an external file. >> To eliminate the crypto data I tried to copy the original image spec, clear >> the extra_attribs and only copy the non crypto data from the origial spec >> like this: >> >> localImage = oiio.ImageInput.open("C:/data/crypto.00090.exr") >> spec = localImage.spec() >> specCopy = oiio.ImageSpec(spec) >> specCopy.extra_attribs.clear() >> crypto = {} >> for inParm in spec.extra_attribs: >> pv = oiio.ParamValue(inParm.name, inParm.value) >> specCopy.extra_attribs.append(pv) >> >> If I try it this way I get an error: >> >> # Error: Python argument types in >> # ParamValue.__init__(ParamValue, str, str) >> # did not match C++ signature: >> # __init__(struct _object * __ptr64) >> # Traceback (most recent call last): >> # File "<maya console>", line 13, in <module> >> # ArgumentError: Python argument types in >> # ParamValue.__init__(ParamValue, str, str) >> # did not match C++ signature: >> # __init__(struct _object * __ptr64) # >> >> In c++ the ParamValue can be initialized with a string and a value, so I'm a >> bit confused. What's the correct way to add values to a ParamValueList in >> python? >> >> >> haggi >> _______________________________________________ >> Oiio-dev mailing list >> Oiio-dev@lists.openimageio.org <mailto:Oiio-dev@lists.openimageio.org> >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >> > > -- > Larry Gritz > l...@larrygritz.com <mailto:l...@larrygritz.com> > > > > > _______________________________________________ > Oiio-dev mailing list > Oiio-dev@lists.openimageio.org > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org -- Larry Gritz l...@larrygritz.com
_______________________________________________ Oiio-dev mailing list Oiio-dev@lists.openimageio.org http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org