Addendum, these examples illustrate what the use of encode and quote is doing for us in the legacy python...
from urllib.parse import quote myString = "/Ted \\Las$o & Roy Kent, @ AFC Richmond, öööö !" print(myString) # result is /Ted \Las$o & Roy Kent, @ AFC Richmond, öööö ! myString_quoted = quote(myString) print(myString_quoted) # result is /Ted%20%5CLas%24o%20%26%20Roy%20Kent%2C%20%40%20AFC%20Richmond%2C%20%C3%B6%C3%B6%C3%B6%C3%B6%20%21 myString_encoded = myString.encode('utf8') print(myString_encoded) # result is b'/Ted \\Las$o & Roy Kent, @ AFC Richmond, \xc3\xb6\xc3\xb6\xc3\xb6\xc3\xb6 !' myString_encoded_then_quoted = quote(myString.encode('utf8')) print(myString_encoded_then_quoted) # result is same as when we just quote(myString) myString_quoted_then_encoded = quote(myString).encode('utf8') print(myString_quoted_then_encoded) # result is b'/Ted%20%5CLas%24o%20%26%20Roy%20Kent%2C%20%40%20AFC%20Richmond%2C%20%C3%B6%C3%B6%C3%B6%C3%B6%20%21' On Thu, Sep 23, 2021 at 6:24 AM James McMahon <jsmcmah...@gmail.com> wrote: > Hello. I am new to groovy, assigned an effort to convert legacy python > scripts to groovy replacements. We are doing this in an effort to decouple > from dependencies on the jython engine in NiFi for scripts we run from its > ExecuteScript processor. > > In one of these python scripts, this gets done to an encoded string that > represents a disk file path: > > import urllib > . > . > . > result['fileURL'] = urllib.quote(temp_result['fileURL'].encode('utf8')) > > Based on my initial research (though very limited understanding), it > appears that the urllib.quote() is intended to quote reserved characters in > a path. I haven't been able to find the function that serves an equivalent > purpose in Groovy. Can anyone show me how this should be accomplished? > > I should add that I have successfully replaced the python dictionary > structures you see above and calls to manipulate the same with Groovy Map > operations. > > Thanks in advance for any help. - Jim >