[Twisted-Python] Request for help with Twisted bindings in M2Crypto
Matěj Cepl
mcepl at cepl.eu
Tue Jul 26 09:47:10 MDT 2016
On 2016-07-25, 09:55 GMT, Craig Rodrigues wrote:
First of all, thank you very much for all help you gave to
M2Crypto. However, ...
> I call shenanigans on you.
Nothing of which I have been accused of has anything to do with
what I meant. When I said „opaque“, I didn’t mean to offend
Twisted. Just to say, that while I was marking whole library
with PEP-484 type hints, I usually dealt with bytes, str, ints,
and very few rather simple objects. With Twisted I get object
@implementer(ITLSTransport)
class TLSProtocolWrapper(ProtocolWrapper):
def __init__(self, factory, wrappedProtocol,
startPassThrough, client,
contextFactory, postConnectionCheck):
# type: policies.WrappingFactory, object, int, int, object, Checker
(and with those two objects, I don't even dare to guess what
types these are, and all that covered in some weird decorator
from Zope (?)).
That's nothing wrong with Twisted, just that it is really
difficult for idiot like me to understand what's going on.
> If you are unfamiliar with Twisted's code and data types, and
> don't have the energy to dig in, then be honest about that,
> but don't accuse Twisted of being "opaque", because it isn't.
I don't think what's dishonest on saying that Twisted API is
quite complicated and I am stupid enough not understanding
what's going on.
> Regarding your code example which is failing,
> your code is failing because you are intermixing bytes and strings which is
> a big no-no for Python 3.
Of course I know that (it is not the first place where I have to
deal with bytes × str dichotomy in py3k), but in order to
understand what's going, I have to first understand where these
values come from and where they run to, i.e., to decipher
Twisted. Thus I was asking for help.
> If I look at this line for example:
> https://gitlab.com/m2crypto/m2crypto/blob/master/M2Crypto/SSL/TwistedProtocolWrapper.py#L357
>
> I see the code is doing stuff like:
> data = ''
> encryptedData = ''
>
> Those are of type str, and need to be of type bytes:
>
> data = b''
> encryptedData = b''
>
> You need to clean stuff like that up in your code so that you are only
> using bytes.
I believe I have fixed all I can do without actually
understanding Twisted in
https://gitlab.com/mcepl/m2crypto/commit/6cd5f87b31e50016ebb7e44f3f2ae46610bc24e0.
So now, if Twisted is so transparent and perfectly
understandable, could you please suggest, what I do wrong, that
the test ends in the endless loop
(https://travis-ci.org/mcepl/M2Crypto/builds/147175901)?
Thank you,
Matěj Cepl
--
https://matej.ceplovi.cz/blog/, Jabber: mcepl at ceplovi.cz
GPG Finger: 3C76 A027 CA45 AD70 98B5 BC1D 7920 5802 880B C9D8
Never ascribe to malice that which is adequately explained by
stupidity.
-- Napoleon Bonaparte (or many other people to whom this
quote is ascribed)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: </pipermail/twisted-python/attachments/20160726/0a218800/attachment.sig>
More information about the Twisted-Python
mailing list