Hi, Can you send the patch for the same. I think this is the valid fix.
Thanks, Khushboo On Tue, Jun 27, 2017 at 3:02 PM, Ladislav Jech <archenr...@gmail.com> wrote: > 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. >