From: | Ladislav Jech <archenroot(at)gmail(dot)com> |
---|---|
To: | pgadmin-hackers(at)lists(dot)postgresql(dot)org |
Subject: | crypto.py bug on server add form (button save) with python 3.5 - Can't convert 'bytes' object to str implicitly |
Date: | 2017-06-27 09:32:11 |
Message-ID: | CAOxf7XYg9YPYV5KCv3xEyoWTf9O9+bLV2zjvuc4tpUaFy3gb-w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgadmin-hackers |
I am running on following Gentoo system with Python 3.5 as default
(although i have 2.7 and 3.4 available to switch as well).
I compiled from source code via github:
commit 15cb9fc35b41736a331a452b9303a79e8f13ee36 (HEAD -> master,
origin/master, origin/HEAD)
The error appears when I want to click on Save while adding new server to
the list, I put few lines into the code to detect the times:
2017-06-27 13:21:48,329: DEBUG pgadmin: Not running under the desktop
runtime, port: 5050
Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your
browser.
str var python type is <class 'str'>
str var object's type is str
padding_string var python type is <class 'bytes'>
padding_string var object's type is bytes
2017-06-27 13:21:53,028: ERROR pgadmin: Can't convert 'bytes' object to str
implicitly
Traceback (most recent call last):
File
"/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 619, in create
password = encrypt(password, current_user.password)
File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py",
line 31, in encrypt
cipher = AES.new(pad(key), AES.MODE_CFB, iv)
File "/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py",
line 80, in pad
return str + ((32 - len(str) % 32) * padding_string)
TypeError: Can't convert 'bytes' object to str implicitly
2017-06-27 13:21:53,031: INFO werkzeug: 127.0.0.1 - - [27/Jun/2017
13:21:53] "POST /browser/server/obj/2/ HTTP/1.1" 410 -
2017-06-27 13:22:49,936: INFO werkzeug: * Detected change in
'/home/zangetsu/devel/tmp/pgadmin4/web/pgadmin/utils/crypto.py', reloading
2017-06-27 13:22:50,138: INFO werkzeug: * Restarting with reloader
So this is the error:
Can't convert 'bytes' object to str implicitly
To fix this on Python 3.5 I simply changed in
pgadmin4/web/pgadmin/utils/crypto.py file this line:
return str + ((32 - len(str) % 32) * padding_string)
to
return str + ((32 - len(str) % 32) * padding_string.decode())
Another solution could be to change whole str into bytes. Not sure what is
better, but now it works.
From | Date | Subject | |
---|---|---|---|
Next Message | Khushboo Vashi | 2017-06-27 09:52:27 | Re: crypto.py bug on server add form (button save) with python 3.5 - Can't convert 'bytes' object to str implicitly |
Previous Message | Murtuza Zabuawala | 2017-06-27 08:21:29 | Re: [pgAdmin4][Patch] To fix the issue in Debugger module |