xmlrpc newPaste - ожидал объект с интерфейсом буфера - PullRequest
0 голосов
/ 25 июля 2011

в py2 было

rv = xmlrpc.pastes.newPaste(language, code, None, filename, mimetype, private)

Я получаю сообщение об ошибке: ожидается объект с интерфейсом буфера

Не могу найти никаких документов о xmlrpc и py3. Я нашел только этот фрагмент:

p1 = subprocess.Popen(['gpg','--clearsign'], stdin = subprocess.PIPE, stdout=subprocess.PIPE)
p1.stdin.write(bytes(input, 'UTF8'))
output = p1.communicate()[0]

s = ServerProxy('http://paste.pocoo.org/xmlrpc/')
pasteid = s.pastes.newPaste('text',output.decode())
print ("http://paste.pocoo.org/raw/",pasteid,"/", sep="")

но я все еще в замешательстве ... моя версия использовала много аргументов, где я могу найти полное описание этого / исправить его?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Это сообщение об ошибке обычно означает, что оно ищет str (то есть Unicode в Python 3), а не bytes. Как и в примере, вам нужно декодировать аргумент в байтах. Может быть:

rv = xmlrpc.pastes.newPaste(language, code.decode(), None, filename, mimetype, private)

Но трудно понять, в чем проблема, не видя ваш код.

1 голос
/ 25 июля 2011

В Python 3. xmlrpclib разделен на два модуля, xmlrpc.client и xmlrpc.server.

Документы по 3.2.1 можно найти по адресу:

http://docs.python.org/release/3.2.1/library/xmlrpc.client.html

http://docs.python.org/release/3.2.1/library/xmlrpc.server.html

...