Hi Todd,yes, it seems that chirp only accepts strings. I just tried to feed a classad object to chirp, but it accepts only byte/strings [1].
afais a classad object can not be easily flatten/serialized into a htchirp compatible string. For python dicts flatten()/printJson/printOld/... return strings in different formattings or fail.
btw: can python list be cast into classads? I tried something like [2] but failed. Max suggested to use enumerate for Lua-like lists with keys as consecutive numbers, but one would need to explicitly cast the int indices into strings in a second step.
Cheers and thanks,
Thomas
[1]
fooAd = classad.ClassAd({"key1": "value1", 'key2':'value2'})
with htcondor.htchirp.HTChirp() as chirp:
chirp.connect()
chirp.set_job_attr("THTestDict",fooAd)
chirp.disconnect()
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File
"/usr/lib64/python3.6/site-packages/htcondor/htchirp/htchirp.py", line
705, in set_job_attr
quote(job_attribute), quote(attribute_value)
File
"/usr/lib64/python3.6/site-packages/htcondor/htchirp/htchirp.py", line
43, in quote
return escape.sub(replace, chirp_string)
TypeError: expected string or bytes-like object
[2]
listAd = classad.ClassAd(['1','22','333'])
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature