2.7にバックポートされた PEP 3118をサポートするために、ライブラリ (Python 2.7 をサポートする) のクラスを拡張している最中です。
ドキュメントから、tp_as_buffer
を指すようにフィールドを初期化する必要がありますPyBufferProcs
。ただし、2.7 のドキュメントによると、この構造体の説明には古いバッファ プロトコルのエントリしか含まれていません。ソースから、新しいプロトコル (および)の追加エントリがいくつかあることを収集し
ます。 PyBufferProcs
bf_getbuffer
bf_releasebuffer
疑問は残ります:
これらの新しいエントリが有効であることを Python に伝えるために何か特別なことをする必要がありますか?
古いプロトコルのエントリを入力する必要がありますか? (たとえば、2.7 のドキュメントには、
bf_getsegcount
null ではない可能性があると記載されています。ただし、PEP 3118 をサポートしている場合は、このエントリを使用しないでください。)