Re: [pgAdmin4][Patch]: RM #2781 - New option to set the quotationmark for copying to clipboard. - Mailing list pgadmin-hackers

From Dave Page
Subject Re: [pgAdmin4][Patch]: RM #2781 - New option to set the quotationmark for copying to clipboard.
Date
Msg-id CA+OCxoxv9p2_3sUs3rfpzao=H8PPNft2OtWscKnCzBCMA8MJaQ@mail.gmail.com
Whole thread Raw
In response to Re: [pgAdmin4][Patch]: RM #2781 - New option to set the quotationmark for copying to clipboard.  (Khushboo Vashi <khushboo.vashi@enterprisedb.com>)
List pgadmin-hackers
I still see the same error I'm afraid. I played around in another system, and if I set the delimiter to "xx", then it crashes with:

Exception in thread Thread-675:
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 602, in process_request_thread
    self.handle_error(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 599, in process_request_thread
    self.finish_request(request, client_address)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 655, in __init__
    self.handle()
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 200, in handle
    rv = BaseHTTPRequestHandler.handle(self)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 235, in handle_one_request
    return self.run_wsgi()
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 177, in run_wsgi
    execute(self.server.app)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 167, in execute
    for data in application_iter:
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/wsgi.py", line 691, in __next__
    return self._next()
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/wrappers.py", line 81, in _iter_encoded
    for item in iterable:
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py", line 842, in gen
    quotechar=quote_char
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/backports/csv.py", line 670, in __init__
    self.writer = writer(f, dialect, *args, **kwds)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/backports/csv.py", line 185, in __init__
    raise TypeError(*e.args)
TypeError: "delimiter" must be a 1-character string


On Mon, Nov 20, 2017 at 4:09 PM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi Dave,

Please find the attached patch.

Thanks,
Khushboo


On Mon, Nov 20, 2017 at 8:59 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

Thanks, but I'm still getting the same error.
 
On Mon, Nov 20, 2017 at 3:23 PM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi Dave,

Please find the attached patch to fix the issue.
I have fixed the issue looking at the error you got as I can not reproduce the issue on Python 2.7 or Python 3.5.

Thanks,
Khushboo



On Mon, Nov 20, 2017 at 8:05 PM, Dave Page <dpage@pgadmin.org> wrote:


On Mon, Nov 20, 2017 at 2:20 PM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:


On 20 Nov 2017 19:45, "Dave Page" <dpage@pgadmin.org> wrote:
Though whilst it worked fine when I was testing, I now get the following. Khushboo - can you investigate please?

Exception in thread Thread-96:

Traceback (most recent call last):

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 810, in __bootstrap_inner

self.run()

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run

self.__target(*self.__args, **self.__kwargs)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 602, in process_request_thread

self.handle_error(request, client_address)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 599, in process_request_thread

self.finish_request(request, client_address)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 334, in finish_request

self.RequestHandlerClass(request, client_address, self)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SocketServer.py", line 655, in __init__

self.handle()

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 200, in handle

rv = BaseHTTPRequestHandler.handle(self)

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer.py", line 340, in handle

self.handle_one_request()

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 235, in handle_one_request

return self.run_wsgi()

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 177, in run_wsgi

execute(self.server.app)

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py", line 167, in execute

for data in application_iter:

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/wsgi.py", line 691, in __next__

return self._next()

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/wrappers.py", line 81, in _iter_encoded

for item in iterable:

File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py", line 828, in gen

quotechar=quote_char

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/backports/csv.py", line 670, in __init__

self.writer = writer(f, dialect, *args, **kwds)

File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/backports/csv.py", line 185, in __init__

raise TypeError(*e.args)

TypeError: "delimiter" must be string, not bytes

Please share your CSV Output settings.

Screenshot attached.

 

On Mon, Nov 20, 2017 at 1:51 PM, Dave Page <dpage@pgadmin.org> wrote:
Thanks, applied.

On Mon, Nov 20, 2017 at 5:18 AM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,

Please find the attached updated patch.


On Thu, Nov 16, 2017 at 7:42 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Thu, Nov 16, 2017 at 10:01 AM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,

Please find the attached patch for RM #2781 : New option to set the quotation mark for copying to clipboard.

This patch includes:

- Provide options in preferences to control the CSV output which includes copy to clipboard and download as CSV features in Query Tool
- Modified related jasmine tests
- Modified related feature tests 

Thanks. At first glance, I see a few issues with this patch:

- I can type into the combo boxes in the preferences, but only to search. That means (for example) that the only quote character I can use is ". I can't use anything else as a might want. The same applies to the field separator. 
 
Provided provision to add user defined field separator and quote character. 

- I can click the x to clear the options in the combo boxes, but then the settings can be accepted and stored. For the separator and quote char, I assume they just become blank, however the quoting method makes no sense to be unspecified.

Fixed. User can not clear the combo-boxes. 

- There don't seem to be any documentation updates.
The documents of SQL Editor and Preferences are updated. 

- The CSV Quoting options appear to apply to copying from the grid, but they should apply to saving results as CSV.
 
- The Result Copy quoting options (which should apply to copied data) are missing altogether.

To be clear, there should be 6 new config options, 3 of which apply to data when copied from the grid, and the other 3 which apply when saving data as CSV. Please see the original RM case in which I detailed what the settings should be and what they should do.
 
Provided 2 set of options (one set consists of 3 options);  one for CSV output and another for Results grid.

 
Thanks.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Thanks,
Khushboo 




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company




--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

pgadmin-hackers by date:

Previous
From: Murtuza Zabuawala
Date:
Subject: Re: [pgAdmin4][Patch]: Allow user to choose background colour for server
Next
From: Dave Page
Date:
Subject: pgAdmin 4 commit: Decode the field separator and quote char if needed.