До чего ж большое спасибо хочется сказать Гвидо нашему ван Россуму за отдельные нововведения в 3 питоне.
Имеем байтовый буфер вида x=b'12345678'
Привычное по второй версии struct.unpack('B',x[5]) вываливается со словами TypeError: 'str' does not support the buffer interface
А struct.unpack('B',x[5:6]) - работает.
Всё потому, что type(x[5]) - class 'int'. А type(x[5:6]) - class 'bytes'.
Поубывыв бы ;)
З.Ы. В общем, перепёр в первом приближении pyExcelerator на третий диалект. Докую - выложу на sourceforge в проект py3xcel.
Имеем байтовый буфер вида x=b'12345678'
Привычное по второй версии struct.unpack('B',x[5]) вываливается со словами TypeError: 'str' does not support the buffer interface
А struct.unpack('B',x[5:6]) - работает.
Всё потому, что type(x[5]) - class 'int'. А type(x[5:6]) - class 'bytes'.
Поубывыв бы ;)
З.Ы. В общем, перепёр в первом приближении pyExcelerator на третий диалект. Докую - выложу на sourceforge в проект py3xcel.
no subject
Date: 2012-08-24 01:21 pm (UTC)Как грамотнее поддержать 2+3 и стоит ли это делать вообще - думаю.
Мне он, собственно, нужен под 3.1+
Интересно, как отдельные граждане кошерно поддерживают сразу 2 и 3 диалекты?
Надо, что ли, в cx_Oracle посмотреть, там оба варианта заявлены.
no subject
Date: 2012-08-24 01:58 pm (UTC)no subject
Date: 2012-08-24 02:00 pm (UTC)no subject
Date: 2012-08-24 02:09 pm (UTC)И как я понимкюа, глубинные проблемы начнутся когда буджут портировать хардкор от Zope2, там же ад с коровниками.
PS Но ты посмотри как в том же хамелеоне обходятся, там довольно глубоко лезут в потроха питона (аст и кодогенерация) и при этом поддерживают все основные ветки.