Re: [pgAdmin4][Patch]: RM #2781 - New option to set the quotation mark for copying to clipboard.

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Khushboo Vashi <khushboo(dot)vashi(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin4][Patch]: RM #2781 - New option to set the quotation mark for copying to clipboard.
Date: 2017-11-20 16:20:51
Message-ID: CA+OCxoxv9p2_3sUs3rfpzao=H8PPNft2OtWscKnCzBCMA8MJaQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)vashi(at)enterprisedb(dot)com> wrote:

> Hi Dave,
>
> Please find the attached patch.
>
> Thanks,
> Khushboo
>
>
> On Mon, Nov 20, 2017 at 8:59 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>
>> Hi
>>
>> Thanks, but I'm still getting the same error.
>>
>>
> On Mon, Nov 20, 2017 at 3:23 PM, Khushboo Vashi <
>> khushboo(dot)vashi(at)enterprisedb(dot)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(at)pgadmin(dot)org> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Nov 20, 2017 at 2:20 PM, Khushboo Vashi <
>>>> khushboo(dot)vashi(at)enterprisedb(dot)com> wrote:
>>>>
>>>>>
>>>>>
>>>>> On 20 Nov 2017 19:45, "Dave Page" <dpage(at)pgadmin(dot)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/li
>>>>> b/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(at)pgadmin(dot)org> wrote:
>>>>>
>>>>>> Thanks, applied.
>>>>>>
>>>>>> On Mon, Nov 20, 2017 at 5:18 AM, Khushboo Vashi <
>>>>>> khushboo(dot)vashi(at)enterprisedb(dot)com> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Please find the attached updated patch.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Nov 16, 2017 at 7:42 PM, Dave Page <dpage(at)pgadmin(dot)org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> On Thu, Nov 16, 2017 at 10:01 AM, Khushboo Vashi <
>>>>>>>> khushboo(dot)vashi(at)enterprisedb(dot)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

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2017-11-20 16:28:17 pgAdmin 4 commit: Decode the field separator and quote char if needed.
Previous Message Murtuza Zabuawala 2017-11-20 16:19:41 Re: [pgAdmin4][Patch]: Allow user to choose background colour for server