Convert PySerial to python 3.0
Seth
king.seth at gmail.com
Wed Feb 25 11:07:30 EST 2009
This is not my code and I am fairly new to Python. I did not know how
much it would take to convert pyserial to 3.0. Someone more
knowledgeable than me could do it better and faster. I just want to
see if I could help get it to work.
I was wrong, it seems that if type(port) in (str, bytes): or isinstance
(port, str) works just fine for setting the ports.
The issue now is reading and writing the data.
I got the read() to kind of work with:
bytes(buf[:n]) replacing str(buf[:n])
but with readline() it seems to be missing the '\n' because it just
runs indefinitely( I can see the \n if I read enough bytes with read()
write seems to be related to a win32 issue. win32file.WriteFile does
not like anything I convert it to:
str gives the buffer error
bytes gives a "string argument without an encoding" error
Sorry for the confusion, I just want to be able to use all Py3k on
this project that I am working on and pyserial has not been converted
so I just started messing around with it.
Thanks for the help.
Seth
On Feb 25, 10:16 am, Christian Heimes <li... at cheimes.de> wrote:
> Seth wrote:
> > I tried all three ways you guys listed nothing seems to convert the
> > string to bytes.
>
> > It may have to do with the makeDeviceName function, but I can't find
> > where that is defined.
>
> > Any thoughts??
>
> > Here is the whole block of code:
>
> > if type(port) in (str, bytes): #strings are taken directly
> > Originally: if type(port) in [type(''), type(u'')]
> > self.portstr = port
> > else:
> > self.portstr = self.makeDeviceName(port)
>
> str and bytes are two totally unrelated things in Python 3.0. You can no
> longer treat them equally like str and unicode in Python 2.x. Your could
> should not work under Python 3.0 anyway. u'' is invalid in 3.x.
>
> Also please don't use ugly type checks like type(something) == type('').
> Starting with Python 2.2 you should use isinstance, for example
> isinstance(number, (int, long)).
>
> Christian
More information about the Python-list
mailing list