Do you think, poster.encode could see it's place i Python3, urllib.request to to enable multipart/form-data handling ? I was writing one and then I stumbled upon yours and see pretty comprehensive. Not sure you have already raised a bug against python?
Please let me know. this integrates well with the urllib.request mechanism.