public inbox for [email protected]help / color / mirror / Atom feed
[pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export 20+ messages / 3 participants [nested] [flat]
* [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-18 03:45 Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-18 03:45 UTC (permalink / raw) To: pgadmin-hackers Hi Hackers, Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to specify NULL values in CSV export. Please review it. -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* Attachments: [application/octet-stream] RM_3780.patch (13.9K, 3-RM_3780.patch) download | inline diff: diff --git a/web/pgadmin/utils/csv.py b/web/pgadmin/utils/csv.py new file mode 100644 index 0000000..2b46478 --- /dev/null +++ b/web/pgadmin/utils/csv.py @@ -0,0 +1,414 @@ +# -*- coding: utf-8 -*- +"""A port of Python 3's csv module to Python 2. + +The API of the csv module in Python 2 is drastically different from +the csv module in Python 3. This is due, for the most part, to the +difference between str in Python 2 and Python 3. + +The semantics of Python 3's version are more useful because they support +unicode natively, while Python 2's csv does not. +""" +from __future__ import unicode_literals, absolute_import + +__all__ = ["QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE", + "Error", "Dialect", "excel", "excel_tab", "writer", + "register_dialect", "get_dialect", "DictWriter"] + +import re +import numbers +from csv import ( + QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, Error, +) + +# Stuff needed from six +import sys +PY3 = sys.version_info[0] == 3 +if PY3: + string_types = str + text_type = str + binary_type = bytes + unichr = chr +else: + string_types = basestring + text_type = unicode + binary_type = str + + +class QuoteStrategy(object): + quoting = None + + def __init__(self, dialect): + if self.quoting is not None: + assert dialect.quoting == self.quoting + self.dialect = dialect + self.setup() + + escape_pattern_quoted = r'({quotechar})'.format( + quotechar=re.escape(self.dialect.quotechar or '"')) + escape_pattern_unquoted = r'([{specialchars}])'.format( + specialchars=re.escape(self.specialchars)) + + self.escape_re_quoted = re.compile(escape_pattern_quoted) + self.escape_re_unquoted = re.compile(escape_pattern_unquoted) + + def setup(self): + """Optional method for strategy-wide optimizations.""" + + def quoted(self, field=None, raw_field=None, only=None): + """Determine whether this field should be quoted.""" + raise NotImplementedError( + 'quoted must be implemented by a subclass') + + @property + def specialchars(self): + """The special characters that need to be escaped.""" + raise NotImplementedError( + 'specialchars must be implemented by a subclass') + + def escape_re(self, quoted=None): + if quoted: + return self.escape_re_quoted + return self.escape_re_unquoted + + def escapechar(self, quoted=None): + if quoted and self.dialect.doublequote: + return self.dialect.quotechar + return self.dialect.escapechar + + def prepare(self, raw_field, only=None): + field = text_type(raw_field if raw_field is not None else '') + quoted = self.quoted(field=field, raw_field=raw_field, only=only) + + escape_re = self.escape_re(quoted=quoted) + escapechar = self.escapechar(quoted=quoted) + + if escape_re.search(field): + escapechar = '\\\\' if escapechar == '\\' else escapechar + if not escapechar: + raise Error('No escapechar is set') + escape_replace = r'{escapechar}\1'.format(escapechar=escapechar) + field = escape_re.sub(escape_replace, field) + + if quoted: + field = '{quotechar}{field}{quotechar}'.format( + quotechar=self.dialect.quotechar, field=field) + + return field + + +class QuoteMinimalStrategy(QuoteStrategy): + quoting = QUOTE_MINIMAL + + def setup(self): + self.quoted_re = re.compile(r'[{specialchars}]'.format( + specialchars=re.escape(self.specialchars))) + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == self.dialect.quotechar and not self.dialect.doublequote: + # If the only character in the field is the quotechar, and + # doublequote is false, then just escape without outer quotes. + return False + return field == '' and only or bool(self.quoted_re.search(field)) + + +class QuoteAllStrategy(QuoteStrategy): + quoting = QUOTE_ALL + + @property + def specialchars(self): + return self.dialect.quotechar + + def quoted(self, **kwargs): + return True + + +class QuoteNonnumericStrategy(QuoteStrategy): + quoting = QUOTE_NONNUMERIC + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, raw_field, **kwargs): + if raw_field is None: + return False + return not isinstance(raw_field, numbers.Number) + + +class QuoteNoneStrategy(QuoteStrategy): + quoting = QUOTE_NONE + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + (self.dialect.quotechar or '') + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == '' and only: + raise Error('single empty field record must be quoted') + return False + + +class writer(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + if fileobj is None: + raise TypeError('fileobj must be file-like, not None') + + self.fileobj = fileobj + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + strategies = { + QUOTE_MINIMAL: QuoteMinimalStrategy, + QUOTE_ALL: QuoteAllStrategy, + QUOTE_NONNUMERIC: QuoteNonnumericStrategy, + QUOTE_NONE: QuoteNoneStrategy, + } + self.strategy = strategies[self.dialect.quoting](self.dialect) + + def writerow(self, row): + if row is None: + raise Error('row must be an iterable') + + row = list(row) + only = len(row) == 1 + row = [self.strategy.prepare(field, only=only) for field in row] + + line = self.dialect.delimiter.join(row) + self.dialect.lineterminator + return self.fileobj.write(line) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + +_dialect_registry = {} + + +def register_dialect(name, dialect='excel', **fmtparams): + if not isinstance(name, text_type): + raise TypeError('"name" must be a string') + + dialect = Dialect.extend(dialect, fmtparams) + + try: + Dialect.validate(dialect) + except Exception: + raise TypeError('dialect is invalid') + + assert name not in _dialect_registry + _dialect_registry[name] = dialect + + +def get_dialect(name): + try: + return _dialect_registry[name] + except KeyError: + raise Error('Could not find dialect {0}'.format(name)) + + +class Dialect(object): + """Describe a CSV dialect. + This must be subclassed (see csv.excel). Valid attributes are: + delimiter, quotechar, escapechar, doublequote, skipinitialspace, + lineterminator, quoting, strict. + """ + _name = "" + _valid = False + # placeholders + delimiter = None + quotechar = None + escapechar = None + doublequote = None + skipinitialspace = None + lineterminator = None + quoting = None + strict = None + + def __init__(self): + self.validate(self) + if self.__class__ != Dialect: + self._valid = True + + @classmethod + def validate(cls, dialect): + dialect = cls.extend(dialect) + + if not isinstance(dialect.quoting, int): + raise Error('"quoting" must be an integer') + + if dialect.delimiter is None: + raise Error('delimiter must be set') + cls.validate_text(dialect, 'delimiter') + + if dialect.lineterminator is None: + raise Error('lineterminator must be set') + if not isinstance(dialect.lineterminator, text_type): + raise Error('"lineterminator" must be a string') + + if dialect.quoting not in [ + QUOTE_NONE, QUOTE_MINIMAL, QUOTE_NONNUMERIC, QUOTE_ALL]: + raise Error('Invalid quoting specified') + + if dialect.quoting != QUOTE_NONE: + if dialect.quotechar is None and dialect.escapechar is None: + raise Error('quotechar must be set if quoting enabled') + if dialect.quotechar is not None: + cls.validate_text(dialect, 'quotechar') + + @staticmethod + def validate_text(dialect, attr): + val = getattr(dialect, attr) + if not isinstance(val, text_type): + if type(val) == bytes: + raise Error('"{0}" must be string, not bytes'.format(attr)) + raise Error('"{0}" must be string, not {1}'.format( + attr, type(val).__name__)) + + if len(val) != 1: + raise Error('"{0}" must be a 1-character string'.format(attr)) + + @staticmethod + def defaults(): + return { + 'delimiter': ',', + 'doublequote': True, + 'escapechar': None, + 'lineterminator': '\r\n', + 'quotechar': '"', + 'quoting': QUOTE_MINIMAL, + 'skipinitialspace': False, + 'strict': False, + } + + @classmethod + def extend(cls, dialect, fmtparams=None): + if isinstance(dialect, string_types): + dialect = get_dialect(dialect) + + if fmtparams is None: + return dialect + + defaults = cls.defaults() + + if any(param not in defaults for param in fmtparams): + raise TypeError('Invalid fmtparam') + + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in cls.defaults() + ) + + specified.update(fmtparams) + return type(str('ExtendedDialect'), (cls,), specified) + + @classmethod + def combine(cls, dialect, fmtparams): + """Create a new dialect with defaults and added parameters.""" + dialect = cls.extend(dialect, fmtparams) + defaults = cls.defaults() + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in defaults + if getattr(dialect, attr, None) is not None or + attr in ['quotechar', 'delimiter', 'lineterminator', 'quoting'] + ) + + defaults.update(specified) + dialect = type(str('CombinedDialect'), (cls,), defaults) + cls.validate(dialect) + return dialect() + + def __delattr__(self, attr): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__delattr__(attr) + + def __setattr__(self, attr, value): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__setattr__(attr, value) + + +class excel(Dialect): + """Describe the usual properties of Excel-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\r\n' + quoting = QUOTE_MINIMAL + + +class excel_tab(excel): + """Describe the usual properties of Excel-generated TAB-delimited files.""" + delimiter = '\t' + + +class unix_dialect(Dialect): + """Describe the usual properties of Unix-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\n' + quoting = QUOTE_ALL + + +register_dialect("excel", excel) +register_dialect("excel-tab", excel_tab) +register_dialect("unix", unix_dialect) + + +class DictWriter(object): + def __init__(self, f, fieldnames, restval="", extrasaction="raise", + dialect="excel", *args, **kwds): + self.fieldnames = fieldnames # list of keys for the dict + self.restval = restval # for writing short dicts + if extrasaction.lower() not in ("raise", "ignore"): + raise ValueError("extrasaction (%s) must be 'raise' or 'ignore'" + % extrasaction) + self.extrasaction = extrasaction + self.writer = writer(f, dialect, *args, **kwds) + + def writeheader(self): + header = dict(zip(self.fieldnames, self.fieldnames)) + self.writerow(header) + + def _dict_to_list(self, rowdict): + if self.extrasaction == "raise": + wrong_fields = [k for k in rowdict if k not in self.fieldnames] + if wrong_fields: + raise ValueError("dict contains fields not in fieldnames: " + + ", ".join([repr(x) for x in wrong_fields])) + return (rowdict.get(key, self.restval) for key in self.fieldnames) + + def writerow(self, rowdict): + return self.writer.writerow(self._dict_to_list(rowdict)) + + def writerows(self, rowdicts): + return self.writer.writerows(map(self._dict_to_list, rowdicts)) diff --git a/web/pgadmin/utils/driver/psycopg2/connection.py b/web/pgadmin/utils/driver/psycopg2/connection.py index 2c9fcb5..d31df4a 100644 --- a/web/pgadmin/utils/driver/psycopg2/connection.py +++ b/web/pgadmin/utils/driver/psycopg2/connection.py @@ -37,16 +37,13 @@ from .typecast import register_global_typecasters, \ register_string_typecasters, register_binary_typecasters, \ register_array_to_string_typecasters, ALL_JSON_TYPES from .encoding import getEncoding +from pgadmin.utils import csv if sys.version_info < (3,): - # Python2 in-built csv module do not handle unicode - # backports.csv module ported from PY3 csv module for unicode handling - from backports import csv from StringIO import StringIO IS_PY2 = True else: from io import StringIO - import csv IS_PY2 = False _ = gettext ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-18 09:19 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Dave Page @ 2018-12-18 09:19 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers Hi On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi <[email protected]> wrote: > Hi Hackers, > > Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to specify > NULL values in CSV export. > > Please review it. > A few points; - You've included code from backports.csv, but per the licence you need to include a description of the changes made. - Shouldn't backports.csv be removed from requirements.txt, or is it used elsewhere? - If the previous point is true, then I'm fairly sure there is code in one or more of the many package build scripts that adds an __init__.py file to backports.csv in the venv that's created. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-18 09:30 Akshay Joshi <[email protected]> parent: Dave Page <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-18 09:30 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: > Hi > > On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < > [email protected]> wrote: > >> Hi Hackers, >> >> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to specify >> NULL values in CSV export. >> >> Please review it. >> > > A few points; > > - You've included code from backports.csv, but per the licence you need to > include a description of the changes made. > Sure. In that case I'll copy the complete file and will do my changes which is of two lines only. With my patch I have remove all the unwanted code from backport.csv. > > - Shouldn't backports.csv be removed from requirements.txt, or is it used > elsewhere? > Yes. Will do that. > > - If the previous point is true, then I'm fairly sure there is code in one > or more of the many package build scripts that adds an __init__.py file to > backports.csv in the venv that's created. > I'll remove that code as well. > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-18 11:13 Akshay Joshi <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-18 11:13 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers Hi Dave Attached is the modified patch to fix review comments. On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi <[email protected]> wrote: > > > On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: > >> Hi >> >> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >> [email protected]> wrote: >> >>> Hi Hackers, >>> >>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to specify >>> NULL values in CSV export. >>> >>> Please review it. >>> >> >> A few points; >> >> - You've included code from backports.csv, but per the licence you need >> to include a description of the changes made. >> > > Sure. In that case I'll copy the complete file and will do my > changes which is of two lines only. With my patch I have remove all the > unwanted code from backport.csv. > >> >> - Shouldn't backports.csv be removed from requirements.txt, or is it used >> elsewhere? >> > > Yes. Will do that. > >> >> - If the previous point is true, then I'm fairly sure there is code in >> one or more of the many package build scripts that adds an __init__.py file >> to backports.csv in the venv that's created. >> > > I'll remove that code as well. > >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* Attachments: [application/octet-stream] RM_3780_v2.patch (27.6K, 3-RM_3780_v2.patch) download | inline diff: diff --git a/Make.bat b/Make.bat index fdd62a0..592d0d8 100644 --- a/Make.bat +++ b/Make.bat @@ -255,11 +255,6 @@ REM Main build sequence Ends ECHO Removing Sphinx CALL pip uninstall -y sphinx Pygments alabaster colorama docutils imagesize requests snowballstemmer - IF %PYTHON_MAJOR% == 2 ( - ECHO Fixing backports.csv for Python 2 by adding missing __init__.py - type nul >> "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\backports\__init__.py" - ) - IF %PYTHON_MAJOR% == 3 ( ECHO Fixing PyCrypto module for Python 3... CALL "%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py" "-o" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py.new" "-s" "import winrandom" -r "from . import winrandom" diff --git a/pkg/mac/build.sh b/pkg/mac/build.sh index 11d17e8..3cb9741 100755 --- a/pkg/mac/build.sh +++ b/pkg/mac/build.sh @@ -144,11 +144,6 @@ _create_python_virtualenv() { if test -d $DIR_PYMODULES_PATH; then ln -s $(basename $DIR_PYMODULES_PATH) $DIR_PYMODULES_PATH/../python fi - - # Fix the backports module which will have no __init__.py file - if [ "$PYTHON_VERSION" -lt "30" ]; then - touch $BUILDROOT/$VIRTUALENV/lib/python/site-packages/backports/__init__.py - fi } _build_runtime() { diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py index 92df74e..17a270f 100644 --- a/pkg/pip/setup_pip.py +++ b/pkg/pip/setup_pip.py @@ -96,7 +96,6 @@ setup( "Flask-BabelEx==0.9.3" ], ":python_version<='2.7'": [ - "backports.csv==1.0.5", "importlib==1.0.3" ], ":python_version>='2.7'": [ diff --git a/requirements.txt b/requirements.txt index 74c4603..92eae7d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,7 +44,6 @@ sshtunnel>=0.1.3; python_version >= '2.7' ############################################################### # Modules specifically required for Python2.7 or lesser version ############################################################### -backports.csv==1.0.5; python_version <= '2.7' importlib==1.0.3; python_version <= '2.7' ############################################################### diff --git a/web/pgadmin/utils/csv.py b/web/pgadmin/utils/csv.py new file mode 100644 index 0000000..7ed0f27 --- /dev/null +++ b/web/pgadmin/utils/csv.py @@ -0,0 +1,749 @@ +""" +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,2010 +2011, 2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation; All Rights +Reserved" are retained in Python alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. +""" + +# Changes: Handle the null values for QUOTE_NONNUMERIC strategy. +# If value is None then no need to quote that values as it represents null +# value and empty string will be represented by ''. + +from __future__ import unicode_literals, absolute_import + +__all__ = ["QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE", + "Error", "Dialect", "__doc__", "excel", "excel_tab", + "field_size_limit", "reader", "writer", "register_dialect", + "get_dialect", "list_dialects", "unregister_dialect", + "__version__", "DictReader", "DictWriter"] + +import re +import numbers +from io import StringIO +from csv import ( + QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, + __version__, __doc__, Error, field_size_limit, +) + +# Stuff needed from six +import sys +PY3 = sys.version_info[0] == 3 +if PY3: + string_types = str + text_type = str + binary_type = bytes + unichr = chr +else: + string_types = basestring + text_type = unicode + binary_type = str + + +class QuoteStrategy(object): + quoting = None + + def __init__(self, dialect): + if self.quoting is not None: + assert dialect.quoting == self.quoting + self.dialect = dialect + self.setup() + + escape_pattern_quoted = r'({quotechar})'.format( + quotechar=re.escape(self.dialect.quotechar or '"')) + escape_pattern_unquoted = r'([{specialchars}])'.format( + specialchars=re.escape(self.specialchars)) + + self.escape_re_quoted = re.compile(escape_pattern_quoted) + self.escape_re_unquoted = re.compile(escape_pattern_unquoted) + + def setup(self): + """Optional method for strategy-wide optimizations.""" + + def quoted(self, field=None, raw_field=None, only=None): + """Determine whether this field should be quoted.""" + raise NotImplementedError( + 'quoted must be implemented by a subclass') + + @property + def specialchars(self): + """The special characters that need to be escaped.""" + raise NotImplementedError( + 'specialchars must be implemented by a subclass') + + def escape_re(self, quoted=None): + if quoted: + return self.escape_re_quoted + return self.escape_re_unquoted + + def escapechar(self, quoted=None): + if quoted and self.dialect.doublequote: + return self.dialect.quotechar + return self.dialect.escapechar + + def prepare(self, raw_field, only=None): + field = text_type(raw_field if raw_field is not None else '') + quoted = self.quoted(field=field, raw_field=raw_field, only=only) + + escape_re = self.escape_re(quoted=quoted) + escapechar = self.escapechar(quoted=quoted) + + if escape_re.search(field): + escapechar = '\\\\' if escapechar == '\\' else escapechar + if not escapechar: + raise Error('No escapechar is set') + escape_replace = r'{escapechar}\1'.format(escapechar=escapechar) + field = escape_re.sub(escape_replace, field) + + if quoted: + field = '{quotechar}{field}{quotechar}'.format( + quotechar=self.dialect.quotechar, field=field) + + return field + + +class QuoteMinimalStrategy(QuoteStrategy): + quoting = QUOTE_MINIMAL + + def setup(self): + self.quoted_re = re.compile(r'[{specialchars}]'.format( + specialchars=re.escape(self.specialchars))) + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == self.dialect.quotechar and not self.dialect.doublequote: + # If the only character in the field is the quotechar, and + # doublequote is false, then just escape without outer quotes. + return False + return field == '' and only or bool(self.quoted_re.search(field)) + + +class QuoteAllStrategy(QuoteStrategy): + quoting = QUOTE_ALL + + @property + def specialchars(self): + return self.dialect.quotechar + + def quoted(self, **kwargs): + return True + + +class QuoteNonnumericStrategy(QuoteStrategy): + quoting = QUOTE_NONNUMERIC + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, raw_field, **kwargs): + # Handle the null value if raw_field is None then it represents + # null value. + if raw_field is None: + return False + return not isinstance(raw_field, numbers.Number) + + +class QuoteNoneStrategy(QuoteStrategy): + quoting = QUOTE_NONE + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + (self.dialect.quotechar or '') + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == '' and only: + raise Error('single empty field record must be quoted') + return False + + +class writer(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + if fileobj is None: + raise TypeError('fileobj must be file-like, not None') + + self.fileobj = fileobj + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + strategies = { + QUOTE_MINIMAL: QuoteMinimalStrategy, + QUOTE_ALL: QuoteAllStrategy, + QUOTE_NONNUMERIC: QuoteNonnumericStrategy, + QUOTE_NONE: QuoteNoneStrategy, + } + self.strategy = strategies[self.dialect.quoting](self.dialect) + + def writerow(self, row): + if row is None: + raise Error('row must be an iterable') + + row = list(row) + only = len(row) == 1 + row = [self.strategy.prepare(field, only=only) for field in row] + + line = self.dialect.delimiter.join(row) + self.dialect.lineterminator + return self.fileobj.write(line) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + +START_RECORD = 0 +START_FIELD = 1 +ESCAPED_CHAR = 2 +IN_FIELD = 3 +IN_QUOTED_FIELD = 4 +ESCAPE_IN_QUOTED_FIELD = 5 +QUOTE_IN_QUOTED_FIELD = 6 +EAT_CRNL = 7 +AFTER_ESCAPED_CRNL = 8 + + +class reader(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + self.input_iter = iter(fileobj) + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + self.fields = None + self.field = None + self.line_num = 0 + + def parse_reset(self): + self.fields = [] + self.field = [] + self.state = START_RECORD + self.numeric_field = False + + def parse_save_field(self): + field = ''.join(self.field) + self.field = [] + if self.numeric_field: + field = float(field) + self.numeric_field = False + self.fields.append(field) + + def parse_add_char(self, c): + if len(self.field) >= field_size_limit(): + raise Error('field size limit exceeded') + self.field.append(c) + + def parse_process_char(self, c): + switch = { + START_RECORD: self._parse_start_record, + START_FIELD: self._parse_start_field, + ESCAPED_CHAR: self._parse_escaped_char, + AFTER_ESCAPED_CRNL: self._parse_after_escaped_crnl, + IN_FIELD: self._parse_in_field, + IN_QUOTED_FIELD: self._parse_in_quoted_field, + ESCAPE_IN_QUOTED_FIELD: self._parse_escape_in_quoted_field, + QUOTE_IN_QUOTED_FIELD: self._parse_quote_in_quoted_field, + EAT_CRNL: self._parse_eat_crnl, + } + return switch[self.state](c) + + def _parse_start_record(self, c): + if c == '\0': + return + elif c == '\n' or c == '\r': + self.state = EAT_CRNL + return + + self.state = START_FIELD + return self._parse_start_field(c) + + def _parse_start_field(self, c): + if c == '\n' or c == '\r' or c == '\0': + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + self.state = IN_QUOTED_FIELD + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == ' ' and self.dialect.skipinitialspace: + pass # Ignore space at start of field + elif c == self.dialect.delimiter: + # Save empty field + self.parse_save_field() + else: + # Begin new unquoted field + if self.dialect.quoting == QUOTE_NONNUMERIC: + self.numeric_field = True + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_escaped_char(self, c): + if c == '\n' or c == '\r': + self.parse_add_char(c) + self.state = AFTER_ESCAPED_CRNL + return + if c == '\0': + c = '\n' + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_after_escaped_crnl(self, c): + if c == '\0': + return + return self._parse_in_field(c) + + def _parse_in_field(self, c): + # In unquoted field + if c == '\n' or c == '\r' or c == '\0': + # End of line - return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + else: + # Normal character - save in field + self.parse_add_char(c) + + def _parse_in_quoted_field(self, c): + if c == '\0': + pass + elif c == self.dialect.escapechar: + self.state = ESCAPE_IN_QUOTED_FIELD + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + if self.dialect.doublequote: + self.state = QUOTE_IN_QUOTED_FIELD + else: + self.state = IN_FIELD + else: + self.parse_add_char(c) + + def _parse_escape_in_quoted_field(self, c): + if c == '\0': + c = '\n' + + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + + def _parse_quote_in_quoted_field(self, c): + if (self.dialect.quoting != QUOTE_NONE and + c == self.dialect.quotechar): + # save "" as " + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + elif c == '\n' or c == '\r' or c == '\0': + # End of line = return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif not self.dialect.strict: + self.parse_add_char(c) + self.state = IN_FIELD + else: + # illegal + raise Error("{delimiter}' expected after '{quotechar}".format( + delimiter=self.dialect.delimiter, + quotechar=self.dialect.quotechar, + )) + + def _parse_eat_crnl(self, c): + if c == '\n' or c == '\r': + pass + elif c == '\0': + self.state = START_RECORD + else: + raise Error('new-line character seen in unquoted field - do you ' + 'need to open the file in universal-newline mode?') + + def __iter__(self): + return self + + def __next__(self): + self.parse_reset() + + while True: + try: + lineobj = next(self.input_iter) + except StopIteration: + if len(self.field) != 0 or self.state == IN_QUOTED_FIELD: + if self.dialect.strict: + raise Error('unexpected end of data') + self.parse_save_field() + if self.fields: + break + raise + + if not isinstance(lineobj, text_type): + typ = type(lineobj) + typ_name = 'bytes' if typ == bytes else typ.__name__ + err_str = ('iterator should return strings, not {0}' + ' (did you open the file in text mode?)') + raise Error(err_str.format(typ_name)) + + self.line_num += 1 + for c in lineobj: + if c == '\0': + raise Error('line contains NULL byte') + self.parse_process_char(c) + + self.parse_process_char('\0') + + if self.state == START_RECORD: + break + + fields = self.fields + self.fields = None + return fields + + next = __next__ + + +_dialect_registry = {} + + +def register_dialect(name, dialect='excel', **fmtparams): + if not isinstance(name, text_type): + raise TypeError('"name" must be a string') + + dialect = Dialect.extend(dialect, fmtparams) + + try: + Dialect.validate(dialect) + except Exception as e: + raise TypeError('dialect is invalid') + + assert name not in _dialect_registry + _dialect_registry[name] = dialect + + +def unregister_dialect(name): + try: + _dialect_registry.pop(name) + except KeyError: + raise Error('"{name}" not a registered dialect'.format(name=name)) + + +def get_dialect(name): + try: + return _dialect_registry[name] + except KeyError: + raise Error('Could not find dialect {0}'.format(name)) + + +def list_dialects(): + return list(_dialect_registry) + + +class Dialect(object): + """Describe a CSV dialect. + This must be subclassed (see csv.excel). Valid attributes are: + delimiter, quotechar, escapechar, doublequote, skipinitialspace, + lineterminator, quoting, strict. + """ + _name = "" + _valid = False + # placeholders + delimiter = None + quotechar = None + escapechar = None + doublequote = None + skipinitialspace = None + lineterminator = None + quoting = None + strict = None + + def __init__(self): + self.validate(self) + if self.__class__ != Dialect: + self._valid = True + + @classmethod + def validate(cls, dialect): + dialect = cls.extend(dialect) + + if not isinstance(dialect.quoting, int): + raise Error('"quoting" must be an integer') + + if dialect.delimiter is None: + raise Error('delimiter must be set') + cls.validate_text(dialect, 'delimiter') + + if dialect.lineterminator is None: + raise Error('lineterminator must be set') + if not isinstance(dialect.lineterminator, text_type): + raise Error('"lineterminator" must be a string') + + if dialect.quoting not in [ + QUOTE_NONE, QUOTE_MINIMAL, QUOTE_NONNUMERIC, QUOTE_ALL]: + raise Error('Invalid quoting specified') + + if dialect.quoting != QUOTE_NONE: + if dialect.quotechar is None and dialect.escapechar is None: + raise Error('quotechar must be set if quoting enabled') + if dialect.quotechar is not None: + cls.validate_text(dialect, 'quotechar') + + @staticmethod + def validate_text(dialect, attr): + val = getattr(dialect, attr) + if not isinstance(val, text_type): + if type(val) == bytes: + raise Error('"{0}" must be string, not bytes'.format(attr)) + raise Error('"{0}" must be string, not {1}'.format( + attr, type(val).__name__)) + + if len(val) != 1: + raise Error('"{0}" must be a 1-character string'.format(attr)) + + @staticmethod + def defaults(): + return { + 'delimiter': ',', + 'doublequote': True, + 'escapechar': None, + 'lineterminator': '\r\n', + 'quotechar': '"', + 'quoting': QUOTE_MINIMAL, + 'skipinitialspace': False, + 'strict': False, + } + + @classmethod + def extend(cls, dialect, fmtparams=None): + if isinstance(dialect, string_types): + dialect = get_dialect(dialect) + + if fmtparams is None: + return dialect + + defaults = cls.defaults() + + if any(param not in defaults for param in fmtparams): + raise TypeError('Invalid fmtparam') + + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in cls.defaults() + ) + + specified.update(fmtparams) + return type(str('ExtendedDialect'), (cls,), specified) + + @classmethod + def combine(cls, dialect, fmtparams): + """Create a new dialect with defaults and added parameters.""" + dialect = cls.extend(dialect, fmtparams) + defaults = cls.defaults() + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in defaults + if getattr(dialect, attr, None) is not None or + attr in ['quotechar', 'delimiter', 'lineterminator', 'quoting'] + ) + + defaults.update(specified) + dialect = type(str('CombinedDialect'), (cls,), defaults) + cls.validate(dialect) + return dialect() + + def __delattr__(self, attr): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__delattr__(attr) + + def __setattr__(self, attr, value): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__setattr__(attr, value) + + +class excel(Dialect): + """Describe the usual properties of Excel-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\r\n' + quoting = QUOTE_MINIMAL + + +register_dialect("excel", excel) + + +class excel_tab(excel): + """Describe the usual properties of Excel-generated TAB-delimited files.""" + delimiter = '\t' + + +register_dialect("excel-tab", excel_tab) + + +class unix_dialect(Dialect): + """Describe the usual properties of Unix-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\n' + quoting = QUOTE_ALL + + +register_dialect("unix", unix_dialect) + + +class DictReader(object): + def __init__(self, f, fieldnames=None, restkey=None, restval=None, + dialect="excel", *args, **kwds): + self._fieldnames = fieldnames # list of keys for the dict + self.restkey = restkey # key to catch long rows + self.restval = restval # default value for short rows + self.reader = reader(f, dialect, *args, **kwds) + self.dialect = dialect + self.line_num = 0 + + def __iter__(self): + return self + + @property + def fieldnames(self): + if self._fieldnames is None: + try: + self._fieldnames = next(self.reader) + except StopIteration: + pass + self.line_num = self.reader.line_num + return self._fieldnames + + @fieldnames.setter + def fieldnames(self, value): + self._fieldnames = value + + def __next__(self): + if self.line_num == 0: + # Used only for its side effect. + self.fieldnames + row = next(self.reader) + self.line_num = self.reader.line_num + + # unlike the basic reader, we prefer not to return blanks, + # because we will typically wind up with a dict full of None + # values + while row == []: + row = next(self.reader) + d = dict(zip(self.fieldnames, row)) + lf = len(self.fieldnames) + lr = len(row) + if lf < lr: + d[self.restkey] = row[lf:] + elif lf > lr: + for key in self.fieldnames[lr:]: + d[key] = self.restval + return d + + next = __next__ + + +class DictWriter(object): + def __init__(self, f, fieldnames, restval="", extrasaction="raise", + dialect="excel", *args, **kwds): + self.fieldnames = fieldnames # list of keys for the dict + self.restval = restval # for writing short dicts + if extrasaction.lower() not in ("raise", "ignore"): + raise ValueError("extrasaction (%s) must be 'raise' or 'ignore'" + % extrasaction) + self.extrasaction = extrasaction + self.writer = writer(f, dialect, *args, **kwds) + + def writeheader(self): + header = dict(zip(self.fieldnames, self.fieldnames)) + self.writerow(header) + + def _dict_to_list(self, rowdict): + if self.extrasaction == "raise": + wrong_fields = [k for k in rowdict if k not in self.fieldnames] + if wrong_fields: + raise ValueError("dict contains fields not in fieldnames: " + + ", ".join([repr(x) for x in wrong_fields])) + return (rowdict.get(key, self.restval) for key in self.fieldnames) + + def writerow(self, rowdict): + return self.writer.writerow(self._dict_to_list(rowdict)) + + def writerows(self, rowdicts): + return self.writer.writerows(map(self._dict_to_list, rowdicts)) diff --git a/web/pgadmin/utils/driver/psycopg2/connection.py b/web/pgadmin/utils/driver/psycopg2/connection.py index 2c9fcb5..d31df4a 100644 --- a/web/pgadmin/utils/driver/psycopg2/connection.py +++ b/web/pgadmin/utils/driver/psycopg2/connection.py @@ -37,16 +37,13 @@ from .typecast import register_global_typecasters, \ register_string_typecasters, register_binary_typecasters, \ register_array_to_string_typecasters, ALL_JSON_TYPES from .encoding import getEncoding +from pgadmin.utils import csv if sys.version_info < (3,): - # Python2 in-built csv module do not handle unicode - # backports.csv module ported from PY3 csv module for unicode handling - from backports import csv from StringIO import StringIO IS_PY2 = True else: from io import StringIO - import csv IS_PY2 = False _ = gettext ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-20 09:38 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Dave Page @ 2018-12-20 09:38 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers Hi When testing with quoting set to None, quote = " and delimiter = , I get the following exception when I try to download: 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) for server #2 - CONN:354106 (Query-id: 4121147): SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 09:34:02] "GET /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv HTTP/1.1" 500 - 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: Traceback (most recent call last): File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", line 270, in run_wsgi execute(self.server.app) File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", line 260, in execute for data in application_iter: File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", line 870, in __next__ return self._next() File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", line 82, in _iter_encoded for item in iterable: File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", line 820, in gen csv_writer.writerows(results) File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 748, in writerows return self.writer.writerows(map(self._dict_to_list, rowdicts)) File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 256, in writerows self.writerow(row) File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, in writerow row = [self.strategy.prepare(field, only=only) for field in row] File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, in <listcomp> row = [self.strategy.prepare(field, only=only) for field in row] File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 136, in prepare raise Error('No escapechar is set') _csv.Error: No escapechar is set When I have quoting set to All, the first column is returned as "" dpage@hal:*~/Downloads*$ more data-1545298598112.csv "text","int4","text-2","text-3" "","1234","Foo bar","Foo Bar" Isn't the point for it to be NULL? On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi <[email protected]> wrote: > Hi Dave > > Attached is the modified patch to fix review comments. > > On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < > [email protected]> wrote: > >> >> >> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: >> >>> Hi >>> >>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> Hi Hackers, >>>> >>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to specify >>>> NULL values in CSV export. >>>> >>>> Please review it. >>>> >>> >>> A few points; >>> >>> - You've included code from backports.csv, but per the licence you need >>> to include a description of the changes made. >>> >> >> Sure. In that case I'll copy the complete file and will do my >> changes which is of two lines only. With my patch I have remove all the >> unwanted code from backport.csv. >> >>> >>> - Shouldn't backports.csv be removed from requirements.txt, or is it >>> used elsewhere? >>> >> >> Yes. Will do that. >> >>> >>> - If the previous point is true, then I'm fairly sure there is code in >>> one or more of the many package build scripts that adds an __init__.py file >>> to backports.csv in the venv that's created. >>> >> >> I'll remove that code as well. >> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-20 10:08 Akshay Joshi <[email protected]> parent: Dave Page <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-20 10:08 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers Hi Dave On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: > Hi > > When testing with quoting set to None, quote = " and delimiter = , I get > the following exception when I try to download: > > 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) for > server #2 - CONN:354106 (Query-id: 4121147): > SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text > 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 > 09:34:02] "GET > /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv > HTTP/1.1" 500 - > 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: > Traceback (most recent call last): > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 270, in run_wsgi > execute(self.server.app) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 260, in execute > for data in application_iter: > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", > line 870, in __next__ > return self._next() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", > line 82, in _iter_encoded > for item in iterable: > File > "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", > line 820, in gen > csv_writer.writerows(results) > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 748, in > writerows > return self.writer.writerows(map(self._dict_to_list, rowdicts)) > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 256, in > writerows > self.writerow(row) > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, in > writerow > row = [self.strategy.prepare(field, only=only) for field in row] > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, in > <listcomp> > row = [self.strategy.prepare(field, only=only) for field in row] > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 136, in > prepare > raise Error('No escapechar is set') > _csv.Error: No escapechar is set > Not able to reproduce the above issue. I have tested it with the same setting as you mentioned. Please refer all the attached screenshots. Please specify the steps if they are different. > > When I have quoting set to All, the first column is returned as "" > > dpage@hal:*~/Downloads*$ more data-1545298598112.csv > > "text","int4","text-2","text-3" > > "","1234","Foo bar","Foo > > Bar" > > Isn't the point for it to be NULL? > while quoting is set to ALL, all the data types has been quoted, so I thought null values should be replaced by "" instead of blank. But if you think null values shouldn't be quoted even if user select quote ALL, I'll fix it and resend the patch. > > On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < > [email protected]> wrote: > >> Hi Dave >> >> Attached is the modified patch to fix review comments. >> >> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >> [email protected]> wrote: >> >>> >>> >>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: >>> >>>> Hi >>>> >>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> Hi Hackers, >>>>> >>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>> specify NULL values in CSV export. >>>>> >>>>> Please review it. >>>>> >>>> >>>> A few points; >>>> >>>> - You've included code from backports.csv, but per the licence you need >>>> to include a description of the changes made. >>>> >>> >>> Sure. In that case I'll copy the complete file and will do my >>> changes which is of two lines only. With my patch I have remove all the >>> unwanted code from backport.csv. >>> >>>> >>>> - Shouldn't backports.csv be removed from requirements.txt, or is it >>>> used elsewhere? >>>> >>> >>> Yes. Will do that. >>> >>>> >>>> - If the previous point is true, then I'm fairly sure there is code in >>>> one or more of the many package build scripts that adds an __init__.py file >>>> to backports.csv in the venv that's created. >>>> >>> >>> I'll remove that code as well. >>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* Attachments: [image/png] Table_Data.png (43.9K, 3-Table_Data.png) download | view image [image/png] Preferences.png (93.9K, 4-Preferences.png) download | view image [image/png] Downloaded_File.png (43.8K, 5-Downloaded_File.png) download | view image ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-20 11:18 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Dave Page @ 2018-12-20 11:18 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers Hi On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi <[email protected]> wrote: > Hi Dave > > On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: > >> Hi >> >> When testing with quoting set to None, quote = " and delimiter = , I get >> the following exception when I try to download: >> >> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) for >> server #2 - CONN:354106 (Query-id: 4121147): >> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 >> 09:34:02] "GET >> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >> HTTP/1.1" 500 - >> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >> Traceback (most recent call last): >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >> line 270, in run_wsgi >> execute(self.server.app) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >> line 260, in execute >> for data in application_iter: >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >> line 870, in __next__ >> return self._next() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >> line 82, in _iter_encoded >> for item in iterable: >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >> line 820, in gen >> csv_writer.writerows(results) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 748, in >> writerows >> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 256, in >> writerows >> self.writerow(row) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, in >> writerow >> row = [self.strategy.prepare(field, only=only) for field in row] >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, in >> <listcomp> >> row = [self.strategy.prepare(field, only=only) for field in row] >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 136, in >> prepare >> raise Error('No escapechar is set') >> _csv.Error: No escapechar is set >> > > Not able to reproduce the above issue. I have tested it with the same > setting as you mentioned. Please refer all the attached screenshots. Please > specify the steps if they are different. > >> >> When I have quoting set to All, the first column is returned as "" >> >> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >> >> "text","int4","text-2","text-3" >> >> "","1234","Foo bar","Foo >> >> Bar" >> >> Isn't the point for it to be NULL? >> > > while quoting is set to ALL, all the data types has been quoted, so I > thought null values should be replaced by "" instead of blank. But if you > think null values shouldn't be quoted even if user select quote ALL, I'll > fix it and resend the patch. > So how would you distinguish NULL from an empty string? Isn't that exactly what the bug is about? I still think we need a "Replace NULLs with" config option, and regardless of quoting settings we always replace NULL values with whatever that is set to - for which the user could then choose options like: NULL "NULL" "" '' <empty string> We would never quote the NULL replacement value - if the user wanted it to be quoted, they would include the quotes in the configured string. > >> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >> [email protected]> wrote: >> >>> Hi Dave >>> >>> Attached is the modified patch to fix review comments. >>> >>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> >>>> >>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: >>>> >>>>> Hi >>>>> >>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi Hackers, >>>>>> >>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>>> specify NULL values in CSV export. >>>>>> >>>>>> Please review it. >>>>>> >>>>> >>>>> A few points; >>>>> >>>>> - You've included code from backports.csv, but per the licence you >>>>> need to include a description of the changes made. >>>>> >>>> >>>> Sure. In that case I'll copy the complete file and will do my >>>> changes which is of two lines only. With my patch I have remove all the >>>> unwanted code from backport.csv. >>>> >>>>> >>>>> - Shouldn't backports.csv be removed from requirements.txt, or is it >>>>> used elsewhere? >>>>> >>>> >>>> Yes. Will do that. >>>> >>>>> >>>>> - If the previous point is true, then I'm fairly sure there is code in >>>>> one or more of the many package build scripts that adds an __init__.py file >>>>> to backports.csv in the venv that's created. >>>>> >>>> >>>> I'll remove that code as well. >>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-20 11:42 Akshay Joshi <[email protected]> parent: Dave Page <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-20 11:42 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: > Hi > > On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < > [email protected]> wrote: > >> Hi Dave >> >> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: >> >>> Hi >>> >>> When testing with quoting set to None, quote = " and delimiter = , I get >>> the following exception when I try to download: >>> >>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) for >>> server #2 - CONN:354106 (Query-id: 4121147): >>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 >>> 09:34:02] "GET >>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>> HTTP/1.1" 500 - >>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>> Traceback (most recent call last): >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>> line 270, in run_wsgi >>> execute(self.server.app) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>> line 260, in execute >>> for data in application_iter: >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>> line 870, in __next__ >>> return self._next() >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>> line 82, in _iter_encoded >>> for item in iterable: >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>> line 820, in gen >>> csv_writer.writerows(results) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 748, >>> in writerows >>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 256, >>> in writerows >>> self.writerow(row) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, >>> in writerow >>> row = [self.strategy.prepare(field, only=only) for field in row] >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, >>> in <listcomp> >>> row = [self.strategy.prepare(field, only=only) for field in row] >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 136, >>> in prepare >>> raise Error('No escapechar is set') >>> _csv.Error: No escapechar is set >>> >> >> Not able to reproduce the above issue. I have tested it with the same >> setting as you mentioned. Please refer all the attached screenshots. Please >> specify the steps if they are different. >> >>> >>> When I have quoting set to All, the first column is returned as "" >>> >>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>> >>> "text","int4","text-2","text-3" >>> >>> "","1234","Foo bar","Foo >>> >>> Bar" >>> >>> Isn't the point for it to be NULL? >>> >> >> while quoting is set to ALL, all the data types has been quoted, so I >> thought null values should be replaced by "" instead of blank. But if you >> think null values shouldn't be quoted even if user select quote ALL, I'll >> fix it and resend the patch. >> > > So how would you distinguish NULL from an empty string? Isn't that exactly > what the bug is about? > > I still think we need a "Replace NULLs with" config option, and regardless > of quoting settings we always replace NULL values with whatever that is set > to - for which the user could then choose options like: > > NULL > "NULL" > "" > '' > <empty string> > > We would never quote the NULL replacement value - if the user wanted it to > be quoted, they would include the quotes in the configured string. > OK, Will work on it and send the modified patch again. > > >> >>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> Hi Dave >>>> >>>> Attached is the modified patch to fix review comments. >>>> >>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> >>>>> >>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Hackers, >>>>>>> >>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>>>> specify NULL values in CSV export. >>>>>>> >>>>>>> Please review it. >>>>>>> >>>>>> >>>>>> A few points; >>>>>> >>>>>> - You've included code from backports.csv, but per the licence you >>>>>> need to include a description of the changes made. >>>>>> >>>>> >>>>> Sure. In that case I'll copy the complete file and will do my >>>>> changes which is of two lines only. With my patch I have remove all the >>>>> unwanted code from backport.csv. >>>>> >>>>>> >>>>>> - Shouldn't backports.csv be removed from requirements.txt, or is it >>>>>> used elsewhere? >>>>>> >>>>> >>>>> Yes. Will do that. >>>>> >>>>>> >>>>>> - If the previous point is true, then I'm fairly sure there is code >>>>>> in one or more of the many package build scripts that adds an __init__.py >>>>>> file to backports.csv in the venv that's created. >>>>>> >>>>> >>>>> I'll remove that code as well. >>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-20 13:05 Akshay Joshi <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-20 13:05 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers Hi Dave On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi <[email protected]> wrote: > > > On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: > >> Hi >> >> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >> [email protected]> wrote: >> >>> Hi Dave >>> >>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: >>> >>>> Hi >>>> >>>> When testing with quoting set to None, quote = " and delimiter = , I >>>> get the following exception when I try to download: >>>> >>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) for >>>> server #2 - CONN:354106 (Query-id: 4121147): >>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 >>>> 09:34:02] "GET >>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>> HTTP/1.1" 500 - >>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>> Traceback (most recent call last): >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>> line 270, in run_wsgi >>>> execute(self.server.app) >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>> line 260, in execute >>>> for data in application_iter: >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>> line 870, in __next__ >>>> return self._next() >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>> line 82, in _iter_encoded >>>> for item in iterable: >>>> File >>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>> line 820, in gen >>>> csv_writer.writerows(results) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 748, >>>> in writerows >>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 256, >>>> in writerows >>>> self.writerow(row) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, >>>> in writerow >>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, >>>> in <listcomp> >>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 136, >>>> in prepare >>>> raise Error('No escapechar is set') >>>> _csv.Error: No escapechar is set >>>> >>> >>> Not able to reproduce the above issue. I have tested it with the >>> same setting as you mentioned. Please refer all the attached screenshots. >>> Please specify the steps if they are different. >>> >>>> >>>> When I have quoting set to All, the first column is returned as "" >>>> >>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>> >>>> "text","int4","text-2","text-3" >>>> >>>> "","1234","Foo bar","Foo >>>> >>>> Bar" >>>> >>>> Isn't the point for it to be NULL? >>>> >>> >>> while quoting is set to ALL, all the data types has been quoted, so >>> I thought null values should be replaced by "" instead of blank. But if you >>> think null values shouldn't be quoted even if user select quote ALL, I'll >>> fix it and resend the patch. >>> >> >> So how would you distinguish NULL from an empty string? Isn't that >> exactly what the bug is about? >> >> I still think we need a "Replace NULLs with" config option, and >> regardless of quoting settings we always replace NULL values with whatever >> that is set to - for which the user could then choose options like: >> >> NULL >> "NULL" >> "" >> '' >> <empty string> >> >> We would never quote the NULL replacement value - if the user wanted it >> to be quoted, they would include the quotes in the configured string. >> > > > OK, Will work on it and send the modified patch again. > Attached is the modified patch as per your suggestion. > >> >>> >>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> Hi Dave >>>>> >>>>> Attached is the modified patch to fix review comments. >>>>> >>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi Hackers, >>>>>>>> >>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>>>>> specify NULL values in CSV export. >>>>>>>> >>>>>>>> Please review it. >>>>>>>> >>>>>>> >>>>>>> A few points; >>>>>>> >>>>>>> - You've included code from backports.csv, but per the licence you >>>>>>> need to include a description of the changes made. >>>>>>> >>>>>> >>>>>> Sure. In that case I'll copy the complete file and will do my >>>>>> changes which is of two lines only. With my patch I have remove all the >>>>>> unwanted code from backport.csv. >>>>>> >>>>>>> >>>>>>> - Shouldn't backports.csv be removed from requirements.txt, or is it >>>>>>> used elsewhere? >>>>>>> >>>>>> >>>>>> Yes. Will do that. >>>>>> >>>>>>> >>>>>>> - If the previous point is true, then I'm fairly sure there is code >>>>>>> in one or more of the many package build scripts that adds an __init__.py >>>>>>> file to backports.csv in the venv that's created. >>>>>>> >>>>>> >>>>>> I'll remove that code as well. >>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* Attachments: [application/octet-stream] RM_3780_v3.patch (532.7K, 3-RM_3780_v3.patch) download | inline diff: diff --git a/Make.bat b/Make.bat index fdd62a0c..592d0d88 100644 --- a/Make.bat +++ b/Make.bat @@ -255,11 +255,6 @@ REM Main build sequence Ends ECHO Removing Sphinx CALL pip uninstall -y sphinx Pygments alabaster colorama docutils imagesize requests snowballstemmer - IF %PYTHON_MAJOR% == 2 ( - ECHO Fixing backports.csv for Python 2 by adding missing __init__.py - type nul >> "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\backports\__init__.py" - ) - IF %PYTHON_MAJOR% == 3 ( ECHO Fixing PyCrypto module for Python 3... CALL "%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py" "-o" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py.new" "-s" "import winrandom" -r "from . import winrandom" diff --git a/docs/en_US/images/preferences_sql_csv_output.png b/docs/en_US/images/preferences_sql_csv_output.png index 48dee9c62a87640af5085cefad9dbd400912c867..a8036cad9681f97df80531d436c2d682f1093cab 100644 GIT binary patch literal 291152 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	xqG91UVPh_HRK=*1J;({O`SW!A9*em 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%0Deo6?|W~X>bb(#in>=oP;^0$VtLqoEeylw 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≈=NGoBG)D;(XumAjWVdb&^kHn)ddXDVo>9@2BO)!E^4~JT>_eHBLzM`)Bvk z_ot$Tr443E)Zl(ja&eZ~%4W_P56;TBGJd8sPMcN!m+Fkpn?kzuEChV@Hg!r=YYz`> zNyyZCkE<RJ3(ssAm59=LOTaWX9v<&Z^?j**z!oOfYt!p|;tAS+w*y+>7riSTW3mvn zOYc(S$Hd07)5sQC!mM2A!~ke-LZCr5oWaB{o;BkR*J@)7LQTP+OV0T_eSpQ;H}_KE z;;K$x!v|DDF}N^d5iwaA0`mRh(!F%Yif}TkHv3`fOYKJYKF&Sfr-QWYQ3cPh&g3<o zj~79`OSesrvF4(cBpw<}3S$PTJ@7Ef_d9&OakN)Y$wvnL(cx<1yuOxt|8X?3eL-)g zgnT|G@^v`*EjwG=Eqr|fZ6r;~ynD6As<PEMNP&UiE$2hp9m(xFpB9qe_ih4Zds`zx zRCAfz)<nEd;^%$daYlukMm~=b*lrFH=pc${g0_jLnjE@MHoYhRbiO6bS7=wi93_|Y zc^GSHX}P>U*rcVU!5l{(PX06(6@0!sE8EBCaq}}qrWCWWwFPJTW$`Fr$QAvw2J>}r zG`%mmNBeCX)2q!s)jb2`8MiO9VPbAJ0!y<VZ81xOY=6B&RfjK1?Y=ra$wJ*#o4z6P zww>X8=V!d5R^@0VR*`TkU!RHj?&9%{&-o*-X-5$jOPv+XT0}>ic05|FeMb?m+-gIs z%d47wi%h9~E$+|F@Y(C9otM>RM&Hh@`~35n_p1*#f;R0|4xKE$qH|vUsCDv*@L8Wt zqYb0f?pF-@E3{QN-NdC)_cN0nEBVIo_J~2-qz>C8dG5}^rJs{vm9x9fX>#`3MT_&) za*Nyh$(P42_S`rJgErS((pN5P3zfVNZ!Y#~t?whAyvIwU^`nok_?Ko$_Z^F_OHDeS z$6lQmg}e->_S)j<hZfQ66O~_6@OW4ce$*=1<yq<LzH~o(oLS7=q%Ncre!-g59Q1L? zxNvR3cy#9H?wo9z*Vt*9IsO?Rx_X?b-s0V9tIB>^uxep;`E1{|xin)lV6y8()5<Yv zv)l3F{q@SXJaUKEsm}Sg?HhnRi(O~8wLcN7gVn2^xJh54d4C^yeQ%QCI%nfUCn#zh z=IA)w=Y6=b&7$ADXi<GubDoYOvLY})b@m)<bGq_8=CDcXkXwCaJ?9xu&Y53YC&&EW zskz_(xLdb6VB@B1og~*9IoPHr%+KC%(x6$PSugYpF1@n1!d3UBpmf0*2c$3gCqT7p z*+99!Z9Ib-b5cJ#Yd<3w^zyXPW85K{K+Cq>y4kYd;jRIiqW)5Y#y%HHKLft8mCK1N zjoZuxT8M0bMUfgzoT`HkfUhNbOes28LLra8d+v`jRit}{RzBp1p#1i0p!taavXk%F zzLY8Rj;ZAHzuQL!)D#xwWaSlto=%X)aoDVm>O!y321c}}hV#K6WTM}xDsVd}p0QL4 zQ(Y4kSGI$;MP$mt%-9^jJfP__Jb|UuJf$Z~<A+g-bE$8;9;mKQ<rNjnGw-iz65)!+ zr~U}0esB(DgMw`*qWmo-d1=hw(lbdcPKr~i-gSeYo-dr&+m9$-UFXJXqw-dLT(sz| zI$Nr_qrAC>IN)bLd*gW}2p~+-oOynngU?_3)W?~m|FC|U@7z_oRAl0iXoaZerPr># z+a-;rvD&O%;jC19D8E_b!z1WpqsRIBuC}w(lb7ch1clb6EuK1hrEDGvNf%ZxE$Zh^ zS_rSglbL<>Qa(KE4r7}1(-}voaXFxe;6h@_2^;jG%-`wbI*_+g5n9*X_~yUbl-gVm zqj-W=wm2S6fL;Ev!R_+>A{ndV1)#42%Xh<koqyN5YVfek<C*=lj-`5S*jV{3gj&Aw z7-r>akgVoZbY}HL{A;pVCvL1zSIu{3w^g8T%MVRS&IAp1w39yWn;wc;C;#=tIXXaf z+uRJSI0jFSXNz2}cSKj0mLMT280hH0ro#p~5=Kq5bafk`MaDuyC26jvO5LuL<s6%i zgG|0=De(s6RvEpBI`0PQRk?a+U*iLY!~qZbBy*F3a9Do*`Tc5ERHCmWX3L}b)$35f zm33~jbW@48qW{?G{n!dV^uY;YKhtC*deoK47!Bz^+XBY`XwyZWM*Z7Wj?GTh{nzix zu#MuXZRc>g)-31I%Rm?Fc)G{DCg|#my~Oeg&ckVVXK=IlkO^b@W7{wl&V3A9i%tSz zBos!ip}nc8sn%`Z@HL#Fqbeu}to5te{KWPZL^-#OJQiVeOBSCFd!`h>>x1=*$RaT# z00b3)d9l`P^x5pW$oH{lq^0Atq{`p%`Hu6jprw9xGGEHZ!eX?$ySwcwiZMFL_d3V- z)gQCs<Xq+GW`C58mlyA2>Iz}v<iwJ~@pT)5VCjoF$!@Vi7pC)F_YLoODcknnPKqBS zYzR<7(mKYo;w{#2B<ZiaUaH~6PA3KIuhjU`l19^{RpH>kpfxH}P$>w@4}S)1D)efQ z0Uw9gs7G;9P5XS^fn8hi$%o~IzCMv+Vpzy?M~2<Kz5E0~F3%-PCx*Y#YOsfRM46T# zXjE($xi;w~zni|EkNYfsId8yLtszQ(Z2MQka~Jen>V87LqBrj=*Dis^kwZkCW4U33 z&6i<>*)L40E|$kAzEKvSnj>nH#h2TZhNd*fwj*Kt<^FWwy+>JDdE0e>?MZ9bF5`ZN zERLY?`PFn4gI*i5;f<tct5ba7<GK?p;@N<&ol{*+?X0x2qox&c@90EQ@w8T+zaFjl z%&ya$^)ATh?j{G=``^x#A7nZQNQW9Mo?Qh-NiSm-6F*OUyI;L!$8Q8|6~yAIjs4Ul ftED%I*iT;rz^r7K)}L6Qub-r-oJfU`e!%|%S*90w literal 140688 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%0DPVs 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 Vn2yhodJp^~Eg^R&T};>Ge*s}b_I>~W diff --git a/docs/en_US/preferences.rst b/docs/en_US/preferences.rst index e47866f0..ae14ec78 100644 --- a/docs/en_US/preferences.rst +++ b/docs/en_US/preferences.rst @@ -146,6 +146,7 @@ Use the fields on the *CSV Output* panel to control the CSV output. * Use the *CSV field separator* drop-down listbox to specify the separator character that will be used in CSV output. * Use the *CSV quote character* drop-down listbox to specify the quote character that will be used in CSV output. * Use the *CSV quoting* drop-down listbox to select the fields that will be quoted in the CSV output; select *Strings*, *All*, or *None*. +* Use the *Replace null values with* to replace the null values with specified arbitrary string in the results. Default is set to 'NULL'. .. image:: images/preferences_sql_display.png :alt: Preferences dialog sqleditor display options diff --git a/pkg/mac/build.sh b/pkg/mac/build.sh index 11d17e80..3cb97417 100755 --- a/pkg/mac/build.sh +++ b/pkg/mac/build.sh @@ -144,11 +144,6 @@ _create_python_virtualenv() { if test -d $DIR_PYMODULES_PATH; then ln -s $(basename $DIR_PYMODULES_PATH) $DIR_PYMODULES_PATH/../python fi - - # Fix the backports module which will have no __init__.py file - if [ "$PYTHON_VERSION" -lt "30" ]; then - touch $BUILDROOT/$VIRTUALENV/lib/python/site-packages/backports/__init__.py - fi } _build_runtime() { diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py index 693fcadf..2ab1c1d3 100644 --- a/pkg/pip/setup_pip.py +++ b/pkg/pip/setup_pip.py @@ -96,7 +96,6 @@ setup( "Flask-BabelEx==0.9.3" ], ":python_version<='2.7'": [ - "backports.csv==1.0.5", "importlib==1.0.3" ], ":python_version>='2.7'": [ diff --git a/requirements.txt b/requirements.txt index 74c46035..92eae7dd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,7 +44,6 @@ sshtunnel>=0.1.3; python_version >= '2.7' ############################################################### # Modules specifically required for Python2.7 or lesser version ############################################################### -backports.csv==1.0.5; python_version <= '2.7' importlib==1.0.3; python_version <= '2.7' ############################################################### diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index 43e1a094..1245c861 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -1434,7 +1434,8 @@ def start_query_download_tool(trans_id): gen( quote=blueprint.csv_quoting.get(), quote_char=blueprint.csv_quote_char.get(), - field_separator=blueprint.csv_field_separator.get() + field_separator=blueprint.csv_field_separator.get(), + replace_nulls_with=blueprint.replace_nulls_with.get() ), mimetype='text/csv' ) diff --git a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py index 5e2a8ef1..805e1bec 100644 --- a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py +++ b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py @@ -198,6 +198,17 @@ def RegisterQueryToolPreferences(self): } ) + self.replace_nulls_with = self.preference.register( + 'CSV_output', 'csv_replace_nulls_with', + gettext("Replace null values with"), 'text', 'NULL', + category_label=gettext('CSV output'), + help_str=gettext('Specifies the string that represents a null value ' + 'while downloading query results as CSV. You can ' + 'specify any arbitrary string that represent the ' + 'null value. You will have to specify the same ' + 'string while importing the downloaded CSV file.') + ) + self.results_grid_quoting = self.preference.register( 'Results_grid', 'results_grid_quoting', gettext("Result copy quoting"), 'options', 'strings', diff --git a/web/pgadmin/utils/csv.py b/web/pgadmin/utils/csv.py new file mode 100644 index 00000000..97ee8155 --- /dev/null +++ b/web/pgadmin/utils/csv.py @@ -0,0 +1,761 @@ +""" +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,2010 +2011, 2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation; All Rights +Reserved" are retained in Python alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. +""" + +############################################################################ +# Changes: +# Added new parameter in dialect 'replace_nulls_with' to compare it against +# the value to be quoted or not. +# Handle the null value if value is None or equal to +# 'replace_nulls_with' then it represents the null value, so no need to +# quote it. +############################################################################ + +from __future__ import unicode_literals, absolute_import + +__all__ = ["QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE", + "Error", "Dialect", "__doc__", "excel", "excel_tab", + "field_size_limit", "reader", "writer", "register_dialect", + "get_dialect", "list_dialects", "unregister_dialect", + "__version__", "DictReader", "DictWriter"] + +import re +import numbers +from io import StringIO +from csv import ( + QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, + __version__, __doc__, Error, field_size_limit, +) + +# Stuff needed from six +import sys +PY3 = sys.version_info[0] == 3 +if PY3: + string_types = str + text_type = str + binary_type = bytes + unichr = chr +else: + string_types = basestring + text_type = unicode + binary_type = str + + +class QuoteStrategy(object): + quoting = None + + def __init__(self, dialect): + if self.quoting is not None: + assert dialect.quoting == self.quoting + self.dialect = dialect + self.setup() + + escape_pattern_quoted = r'({quotechar})'.format( + quotechar=re.escape(self.dialect.quotechar or '"')) + escape_pattern_unquoted = r'([{specialchars}])'.format( + specialchars=re.escape(self.specialchars)) + + self.escape_re_quoted = re.compile(escape_pattern_quoted) + self.escape_re_unquoted = re.compile(escape_pattern_unquoted) + + def setup(self): + """Optional method for strategy-wide optimizations.""" + + def quoted(self, field=None, raw_field=None, only=None): + """Determine whether this field should be quoted.""" + raise NotImplementedError( + 'quoted must be implemented by a subclass') + + @property + def specialchars(self): + """The special characters that need to be escaped.""" + raise NotImplementedError( + 'specialchars must be implemented by a subclass') + + def escape_re(self, quoted=None): + if quoted: + return self.escape_re_quoted + return self.escape_re_unquoted + + def escapechar(self, quoted=None): + if quoted and self.dialect.doublequote: + return self.dialect.quotechar + return self.dialect.escapechar + + def prepare(self, raw_field, only=None): + field = text_type(raw_field if raw_field is not None else '') + quoted = self.quoted(field=field, raw_field=raw_field, only=only) + + escape_re = self.escape_re(quoted=quoted) + escapechar = self.escapechar(quoted=quoted) + + if escape_re.search(field): + escapechar = '\\\\' if escapechar == '\\' else escapechar + if not escapechar: + raise Error('No escapechar is set') + escape_replace = r'{escapechar}\1'.format(escapechar=escapechar) + field = escape_re.sub(escape_replace, field) + + if quoted: + field = '{quotechar}{field}{quotechar}'.format( + quotechar=self.dialect.quotechar, field=field) + + return field + + +class QuoteMinimalStrategy(QuoteStrategy): + quoting = QUOTE_MINIMAL + + def setup(self): + self.quoted_re = re.compile(r'[{specialchars}]'.format( + specialchars=re.escape(self.specialchars))) + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == self.dialect.quotechar and not self.dialect.doublequote: + # If the only character in the field is the quotechar, and + # doublequote is false, then just escape without outer quotes. + return False + return field == '' and only or bool(self.quoted_re.search(field)) + + +class QuoteAllStrategy(QuoteStrategy): + quoting = QUOTE_ALL + + @property + def specialchars(self): + return self.dialect.quotechar + + def quoted(self, raw_field, **kwargs): + # Handle the null value if raw_field is None or equal to + # replace_nulls_with then it represents the null value, so no need to + # quote it. + if raw_field is None or raw_field == self.dialect.replace_nulls_with: + return False + return True + + +class QuoteNonnumericStrategy(QuoteStrategy): + quoting = QUOTE_NONNUMERIC + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, raw_field, **kwargs): + # Handle the null value if raw_field is None or equal to + # replace_nulls_with then it represents the null value, so no need to + # quote it. + if raw_field is None or raw_field == self.dialect.replace_nulls_with: + return False + return not isinstance(raw_field, numbers.Number) + + +class QuoteNoneStrategy(QuoteStrategy): + quoting = QUOTE_NONE + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + (self.dialect.quotechar or '') + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == '' and only: + raise Error('single empty field record must be quoted') + return False + + +class writer(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + if fileobj is None: + raise TypeError('fileobj must be file-like, not None') + + self.fileobj = fileobj + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + strategies = { + QUOTE_MINIMAL: QuoteMinimalStrategy, + QUOTE_ALL: QuoteAllStrategy, + QUOTE_NONNUMERIC: QuoteNonnumericStrategy, + QUOTE_NONE: QuoteNoneStrategy, + } + self.strategy = strategies[self.dialect.quoting](self.dialect) + + def writerow(self, row): + if row is None: + raise Error('row must be an iterable') + + row = list(row) + only = len(row) == 1 + row = [self.strategy.prepare(field, only=only) for field in row] + + line = self.dialect.delimiter.join(row) + self.dialect.lineterminator + return self.fileobj.write(line) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + +START_RECORD = 0 +START_FIELD = 1 +ESCAPED_CHAR = 2 +IN_FIELD = 3 +IN_QUOTED_FIELD = 4 +ESCAPE_IN_QUOTED_FIELD = 5 +QUOTE_IN_QUOTED_FIELD = 6 +EAT_CRNL = 7 +AFTER_ESCAPED_CRNL = 8 + + +class reader(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + self.input_iter = iter(fileobj) + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + self.fields = None + self.field = None + self.line_num = 0 + + def parse_reset(self): + self.fields = [] + self.field = [] + self.state = START_RECORD + self.numeric_field = False + + def parse_save_field(self): + field = ''.join(self.field) + self.field = [] + if self.numeric_field: + field = float(field) + self.numeric_field = False + self.fields.append(field) + + def parse_add_char(self, c): + if len(self.field) >= field_size_limit(): + raise Error('field size limit exceeded') + self.field.append(c) + + def parse_process_char(self, c): + switch = { + START_RECORD: self._parse_start_record, + START_FIELD: self._parse_start_field, + ESCAPED_CHAR: self._parse_escaped_char, + AFTER_ESCAPED_CRNL: self._parse_after_escaped_crnl, + IN_FIELD: self._parse_in_field, + IN_QUOTED_FIELD: self._parse_in_quoted_field, + ESCAPE_IN_QUOTED_FIELD: self._parse_escape_in_quoted_field, + QUOTE_IN_QUOTED_FIELD: self._parse_quote_in_quoted_field, + EAT_CRNL: self._parse_eat_crnl, + } + return switch[self.state](c) + + def _parse_start_record(self, c): + if c == '\0': + return + elif c == '\n' or c == '\r': + self.state = EAT_CRNL + return + + self.state = START_FIELD + return self._parse_start_field(c) + + def _parse_start_field(self, c): + if c == '\n' or c == '\r' or c == '\0': + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + self.state = IN_QUOTED_FIELD + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == ' ' and self.dialect.skipinitialspace: + pass # Ignore space at start of field + elif c == self.dialect.delimiter: + # Save empty field + self.parse_save_field() + else: + # Begin new unquoted field + if self.dialect.quoting == QUOTE_NONNUMERIC: + self.numeric_field = True + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_escaped_char(self, c): + if c == '\n' or c == '\r': + self.parse_add_char(c) + self.state = AFTER_ESCAPED_CRNL + return + if c == '\0': + c = '\n' + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_after_escaped_crnl(self, c): + if c == '\0': + return + return self._parse_in_field(c) + + def _parse_in_field(self, c): + # In unquoted field + if c == '\n' or c == '\r' or c == '\0': + # End of line - return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + else: + # Normal character - save in field + self.parse_add_char(c) + + def _parse_in_quoted_field(self, c): + if c == '\0': + pass + elif c == self.dialect.escapechar: + self.state = ESCAPE_IN_QUOTED_FIELD + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + if self.dialect.doublequote: + self.state = QUOTE_IN_QUOTED_FIELD + else: + self.state = IN_FIELD + else: + self.parse_add_char(c) + + def _parse_escape_in_quoted_field(self, c): + if c == '\0': + c = '\n' + + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + + def _parse_quote_in_quoted_field(self, c): + if (self.dialect.quoting != QUOTE_NONE and + c == self.dialect.quotechar): + # save "" as " + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + elif c == '\n' or c == '\r' or c == '\0': + # End of line = return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif not self.dialect.strict: + self.parse_add_char(c) + self.state = IN_FIELD + else: + # illegal + raise Error("{delimiter}' expected after '{quotechar}".format( + delimiter=self.dialect.delimiter, + quotechar=self.dialect.quotechar, + )) + + def _parse_eat_crnl(self, c): + if c == '\n' or c == '\r': + pass + elif c == '\0': + self.state = START_RECORD + else: + raise Error('new-line character seen in unquoted field - do you ' + 'need to open the file in universal-newline mode?') + + def __iter__(self): + return self + + def __next__(self): + self.parse_reset() + + while True: + try: + lineobj = next(self.input_iter) + except StopIteration: + if len(self.field) != 0 or self.state == IN_QUOTED_FIELD: + if self.dialect.strict: + raise Error('unexpected end of data') + self.parse_save_field() + if self.fields: + break + raise + + if not isinstance(lineobj, text_type): + typ = type(lineobj) + typ_name = 'bytes' if typ == bytes else typ.__name__ + err_str = ('iterator should return strings, not {0}' + ' (did you open the file in text mode?)') + raise Error(err_str.format(typ_name)) + + self.line_num += 1 + for c in lineobj: + if c == '\0': + raise Error('line contains NULL byte') + self.parse_process_char(c) + + self.parse_process_char('\0') + + if self.state == START_RECORD: + break + + fields = self.fields + self.fields = None + return fields + + next = __next__ + + +_dialect_registry = {} + + +def register_dialect(name, dialect='excel', **fmtparams): + if not isinstance(name, text_type): + raise TypeError('"name" must be a string') + + dialect = Dialect.extend(dialect, fmtparams) + + try: + Dialect.validate(dialect) + except Exception as e: + raise TypeError('dialect is invalid') + + assert name not in _dialect_registry + _dialect_registry[name] = dialect + + +def unregister_dialect(name): + try: + _dialect_registry.pop(name) + except KeyError: + raise Error('"{name}" not a registered dialect'.format(name=name)) + + +def get_dialect(name): + try: + return _dialect_registry[name] + except KeyError: + raise Error('Could not find dialect {0}'.format(name)) + + +def list_dialects(): + return list(_dialect_registry) + + +class Dialect(object): + """Describe a CSV dialect. + This must be subclassed (see csv.excel). Valid attributes are: + delimiter, quotechar, escapechar, doublequote, skipinitialspace, + lineterminator, quoting, strict. + """ + _name = "" + _valid = False + # placeholders + delimiter = None + quotechar = None + escapechar = None + doublequote = None + skipinitialspace = None + lineterminator = None + quoting = None + strict = None + + def __init__(self): + self.validate(self) + if self.__class__ != Dialect: + self._valid = True + + @classmethod + def validate(cls, dialect): + dialect = cls.extend(dialect) + + if not isinstance(dialect.quoting, int): + raise Error('"quoting" must be an integer') + + if dialect.delimiter is None: + raise Error('delimiter must be set') + cls.validate_text(dialect, 'delimiter') + + if dialect.lineterminator is None: + raise Error('lineterminator must be set') + if not isinstance(dialect.lineterminator, text_type): + raise Error('"lineterminator" must be a string') + + if dialect.quoting not in [ + QUOTE_NONE, QUOTE_MINIMAL, QUOTE_NONNUMERIC, QUOTE_ALL]: + raise Error('Invalid quoting specified') + + if dialect.quoting != QUOTE_NONE: + if dialect.quotechar is None and dialect.escapechar is None: + raise Error('quotechar must be set if quoting enabled') + if dialect.quotechar is not None: + cls.validate_text(dialect, 'quotechar') + + @staticmethod + def validate_text(dialect, attr): + val = getattr(dialect, attr) + if not isinstance(val, text_type): + if type(val) == bytes: + raise Error('"{0}" must be string, not bytes'.format(attr)) + raise Error('"{0}" must be string, not {1}'.format( + attr, type(val).__name__)) + + if len(val) != 1: + raise Error('"{0}" must be a 1-character string'.format(attr)) + + @staticmethod + def defaults(): + return { + 'delimiter': ',', + 'doublequote': True, + 'escapechar': None, + 'lineterminator': '\r\n', + 'quotechar': '"', + 'quoting': QUOTE_MINIMAL, + 'skipinitialspace': False, + 'strict': False, + 'replace_nulls_with': None + } + + @classmethod + def extend(cls, dialect, fmtparams=None): + if isinstance(dialect, string_types): + dialect = get_dialect(dialect) + + if fmtparams is None: + return dialect + + defaults = cls.defaults() + + if any(param not in defaults for param in fmtparams): + raise TypeError('Invalid fmtparam') + + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in cls.defaults() + ) + + specified.update(fmtparams) + return type(str('ExtendedDialect'), (cls,), specified) + + @classmethod + def combine(cls, dialect, fmtparams): + """Create a new dialect with defaults and added parameters.""" + dialect = cls.extend(dialect, fmtparams) + defaults = cls.defaults() + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in defaults + if getattr(dialect, attr, None) is not None or + attr in ['quotechar', 'delimiter', 'lineterminator', 'quoting'] + ) + + defaults.update(specified) + dialect = type(str('CombinedDialect'), (cls,), defaults) + cls.validate(dialect) + return dialect() + + def __delattr__(self, attr): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__delattr__(attr) + + def __setattr__(self, attr, value): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__setattr__(attr, value) + + +class excel(Dialect): + """Describe the usual properties of Excel-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\r\n' + quoting = QUOTE_MINIMAL + + +register_dialect("excel", excel) + + +class excel_tab(excel): + """Describe the usual properties of Excel-generated TAB-delimited files.""" + delimiter = '\t' + + +register_dialect("excel-tab", excel_tab) + + +class unix_dialect(Dialect): + """Describe the usual properties of Unix-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\n' + quoting = QUOTE_ALL + + +register_dialect("unix", unix_dialect) + + +class DictReader(object): + def __init__(self, f, fieldnames=None, restkey=None, restval=None, + dialect="excel", *args, **kwds): + self._fieldnames = fieldnames # list of keys for the dict + self.restkey = restkey # key to catch long rows + self.restval = restval # default value for short rows + self.reader = reader(f, dialect, *args, **kwds) + self.dialect = dialect + self.line_num = 0 + + def __iter__(self): + return self + + @property + def fieldnames(self): + if self._fieldnames is None: + try: + self._fieldnames = next(self.reader) + except StopIteration: + pass + self.line_num = self.reader.line_num + return self._fieldnames + + @fieldnames.setter + def fieldnames(self, value): + self._fieldnames = value + + def __next__(self): + if self.line_num == 0: + # Used only for its side effect. + self.fieldnames + row = next(self.reader) + self.line_num = self.reader.line_num + + # unlike the basic reader, we prefer not to return blanks, + # because we will typically wind up with a dict full of None + # values + while row == []: + row = next(self.reader) + d = dict(zip(self.fieldnames, row)) + lf = len(self.fieldnames) + lr = len(row) + if lf < lr: + d[self.restkey] = row[lf:] + elif lf > lr: + for key in self.fieldnames[lr:]: + d[key] = self.restval + return d + + next = __next__ + + +class DictWriter(object): + def __init__(self, f, fieldnames, restval="", extrasaction="raise", + dialect="excel", *args, **kwds): + self.fieldnames = fieldnames # list of keys for the dict + self.restval = restval # for writing short dicts + if extrasaction.lower() not in ("raise", "ignore"): + raise ValueError("extrasaction (%s) must be 'raise' or 'ignore'" + % extrasaction) + self.extrasaction = extrasaction + self.writer = writer(f, dialect, *args, **kwds) + + def writeheader(self): + header = dict(zip(self.fieldnames, self.fieldnames)) + self.writerow(header) + + def _dict_to_list(self, rowdict): + if self.extrasaction == "raise": + wrong_fields = [k for k in rowdict if k not in self.fieldnames] + if wrong_fields: + raise ValueError("dict contains fields not in fieldnames: " + + ", ".join([repr(x) for x in wrong_fields])) + return (rowdict.get(key, self.restval) for key in self.fieldnames) + + def writerow(self, rowdict): + return self.writer.writerow(self._dict_to_list(rowdict)) + + def writerows(self, rowdicts): + return self.writer.writerows(map(self._dict_to_list, rowdicts)) diff --git a/web/pgadmin/utils/driver/psycopg2/connection.py b/web/pgadmin/utils/driver/psycopg2/connection.py index 2c9fcb5a..1e0253d3 100644 --- a/web/pgadmin/utils/driver/psycopg2/connection.py +++ b/web/pgadmin/utils/driver/psycopg2/connection.py @@ -37,16 +37,13 @@ from .typecast import register_global_typecasters, \ register_string_typecasters, register_binary_typecasters, \ register_array_to_string_typecasters, ALL_JSON_TYPES from .encoding import getEncoding +from pgadmin.utils import csv if sys.version_info < (3,): - # Python2 in-built csv module do not handle unicode - # backports.csv module ported from PY3 csv module for unicode handling - from backports import csv from StringIO import StringIO IS_PY2 = True else: from io import StringIO - import csv IS_PY2 = False _ = gettext @@ -765,7 +762,31 @@ WHERE ) return new_results - def gen(quote='strings', quote_char="'", field_separator=','): + def handle_null_values(results, replace_nulls_with): + """ + This function is used to replace null values with the given string + + :param results: + :param replace_nulls_with: null values will be replaced by this + string. + :return: modified result + """ + + temp_results = [] + for row in results: + res = dict() + for k, v in row.items(): + if v is None: + res[k] = replace_nulls_with + else: + res[k] = v + temp_results.append(res) + results = temp_results + + return results + + def gen(quote='strings', quote_char="'", field_separator=',', + replace_nulls_with=None): results = cur.fetchmany(records) if not results: @@ -815,11 +836,15 @@ WHERE csv_writer = csv.DictWriter( res_io, fieldnames=header, delimiter=field_separator, quoting=quote, - quotechar=quote_char + quotechar=quote_char, + replace_nulls_with=replace_nulls_with ) csv_writer.writeheader() results = handle_json_data(json_columns, results) + # Replace the null values with given string if configured. + if replace_nulls_with is not None: + results = handle_null_values(results, replace_nulls_with) csv_writer.writerows(results) yield res_io.getvalue() @@ -836,13 +861,17 @@ WHERE csv_writer = csv.DictWriter( res_io, fieldnames=header, delimiter=field_separator, quoting=quote, - quotechar=quote_char + quotechar=quote_char, + replace_nulls_with=replace_nulls_with ) if IS_PY2: results = convert_keys_to_unicode(results, conn_encoding) results = handle_json_data(json_columns, results) + # Replace the null values with given string if configured. + if replace_nulls_with is not None: + results = handle_null_values(results, replace_nulls_with) csv_writer.writerows(results) yield res_io.getvalue() ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-21 11:57 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Dave Page @ 2018-12-21 11:57 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers Hi Here's an updated patch as I've tweaked some of the wording. The screenshot probably isn't the right resolution, but as we're replacing them anyway it doesn't seem overly important. Feel free to fix if you like :-) With quoting set to either All or Strings, everything looks good. With it set to None, I still get an exception (below). The query I'm using is this: SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text Field separator: , Quote character: " Replace null's with: NULL Steps: 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, using the venv detailed below. 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on MacOS 10.14.1 3) Run the above query, wit quoting set to All and check the result in the grid. 4) Download the CSV file and check. 5) Open Preferences and set quoting to Strings. 6) Download the CSV file and check. 7) Open Preferences and set quoting to None. 8) Download the CSV file *exception occurs*. System info: (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version Python 3.6.7 (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze alabaster==0.7.11 alembic==1.0.0 asn1crypto==0.24.0 Babel==2.6.0 bcrypt==3.1.4 blinker==1.4 certifi==2018.8.24 cffi==1.11.5 chardet==3.0.4 chromedriver-installer==0.0.6 click==6.7 cryptography==2.3 docutils==0.14 extras==1.0.0 fixtures==3.0.0 Flask==0.12.4 Flask-BabelEx==0.9.3 Flask-Gravatar==0.5.0 Flask-HTMLmin==1.3.2 Flask-Login==0.3.2 Flask-Mail==0.9.1 Flask-Migrate==2.1.1 Flask-Paranoid==0.2.0 Flask-Principal==0.4.0 Flask-Security==3.0.0 Flask-SQLAlchemy==2.3.2 Flask-WTF==0.14.2 html5lib==1.0.1 htmlmin==0.1.12 idna==2.7 imagesize==1.1.0 itsdangerous==0.24 Jinja2==2.10 linecache2==1.0.0 Mako==1.0.7 MarkupSafe==1.0 packaging==18.0 paramiko==2.4.1 passlib==1.7.1 pbr==3.1.1 psutil==5.4.8 psycopg2==2.7.5 pyasn1==0.4.4 pycodestyle==2.3.1 pycparser==2.18 pycrypto==2.6.1 Pygments==2.2.0 PyNaCl==1.2.1 pyparsing==2.2.2 pyperclip==1.6.4 pyrsistent==0.14.2 python-dateutil==2.7.3 python-editor==1.0.3 python-mimeparse==1.6.0 pytz==2018.3 requests==2.19.1 selenium==3.14.1 simplejson==3.13.2 six==1.11.0 snowballstemmer==1.2.1 speaklater==1.3 Sphinx==1.8.2 sphinxcontrib-websupport==1.1.0 SQLAlchemy==1.2.10 sqlparse==0.2.4 sshtunnel==0.1.4 testscenarios==0.5.0 testtools==2.3.0 traceback2==1.4.0 unittest2==1.1.0 urllib3==1.23 webencodings==0.5.1 Werkzeug==0.14.1 WTForms==2.1 Exception: 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) for server #2 - CONN:8760231 (Query-id: 8649354): SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 11:47:29] "GET /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv HTTP/1.1" 500 - 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: Traceback (most recent call last): File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", line 270, in run_wsgi execute(self.server.app) File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", line 260, in execute for data in application_iter: File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", line 870, in __next__ return self._next() File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", line 82, in _iter_encoded for item in iterable: File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", line 848, in gen csv_writer.writerows(results) File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 761, in writerows return self.writer.writerows(map(self._dict_to_list, rowdicts)) File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 268, in writerows self.writerow(row) File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, in writerow row = [self.strategy.prepare(field, only=only) for field in row] File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, in <listcomp> row = [self.strategy.prepare(field, only=only) for field in row] File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 142, in prepare raise Error('No escapechar is set') _csv.Error: No escapechar is set On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi <[email protected]> wrote: > Hi Dave > > On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < > [email protected]> wrote: > >> >> >> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: >> >>> Hi >>> >>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> Hi Dave >>>> >>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: >>>> >>>>> Hi >>>>> >>>>> When testing with quoting set to None, quote = " and delimiter = , I >>>>> get the following exception when I try to download: >>>>> >>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) >>>>> for server #2 - CONN:354106 (Query-id: 4121147): >>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 >>>>> 09:34:02] "GET >>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>> HTTP/1.1" 500 - >>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>> Traceback (most recent call last): >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>> line 270, in run_wsgi >>>>> execute(self.server.app) >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>> line 260, in execute >>>>> for data in application_iter: >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>> line 870, in __next__ >>>>> return self._next() >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>> line 82, in _iter_encoded >>>>> for item in iterable: >>>>> File >>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>> line 820, in gen >>>>> csv_writer.writerows(results) >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 748, >>>>> in writerows >>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 256, >>>>> in writerows >>>>> self.writerow(row) >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, >>>>> in writerow >>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 249, >>>>> in <listcomp> >>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 136, >>>>> in prepare >>>>> raise Error('No escapechar is set') >>>>> _csv.Error: No escapechar is set >>>>> >>>> >>>> Not able to reproduce the above issue. I have tested it with the >>>> same setting as you mentioned. Please refer all the attached screenshots. >>>> Please specify the steps if they are different. >>>> >>>>> >>>>> When I have quoting set to All, the first column is returned as "" >>>>> >>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>> >>>>> "text","int4","text-2","text-3" >>>>> >>>>> "","1234","Foo bar","Foo >>>>> >>>>> Bar" >>>>> >>>>> Isn't the point for it to be NULL? >>>>> >>>> >>>> while quoting is set to ALL, all the data types has been quoted, so >>>> I thought null values should be replaced by "" instead of blank. But if you >>>> think null values shouldn't be quoted even if user select quote ALL, I'll >>>> fix it and resend the patch. >>>> >>> >>> So how would you distinguish NULL from an empty string? Isn't that >>> exactly what the bug is about? >>> >>> I still think we need a "Replace NULLs with" config option, and >>> regardless of quoting settings we always replace NULL values with whatever >>> that is set to - for which the user could then choose options like: >>> >>> NULL >>> "NULL" >>> "" >>> '' >>> <empty string> >>> >>> We would never quote the NULL replacement value - if the user wanted it >>> to be quoted, they would include the quotes in the configured string. >>> >> >> >> OK, Will work on it and send the modified patch again. >> > > Attached is the modified patch as per your suggestion. > >> >>> >>>> >>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi Dave >>>>>> >>>>>> Attached is the modified patch to fix review comments. >>>>>> >>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Hackers, >>>>>>>>> >>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>>>>>> specify NULL values in CSV export. >>>>>>>>> >>>>>>>>> Please review it. >>>>>>>>> >>>>>>>> >>>>>>>> A few points; >>>>>>>> >>>>>>>> - You've included code from backports.csv, but per the licence you >>>>>>>> need to include a description of the changes made. >>>>>>>> >>>>>>> >>>>>>> Sure. In that case I'll copy the complete file and will do my >>>>>>> changes which is of two lines only. With my patch I have remove all the >>>>>>> unwanted code from backport.csv. >>>>>>> >>>>>>>> >>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, or is >>>>>>>> it used elsewhere? >>>>>>>> >>>>>>> >>>>>>> Yes. Will do that. >>>>>>> >>>>>>>> >>>>>>>> - If the previous point is true, then I'm fairly sure there is code >>>>>>>> in one or more of the many package build scripts that adds an __init__.py >>>>>>>> file to backports.csv in the venv that's created. >>>>>>>> >>>>>>> >>>>>>> I'll remove that code as well. >>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-21 12:12 Akshay Joshi <[email protected]> parent: Dave Page <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-21 12:12 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers Hi Dave Can you please attached the updated patch with your changes. I'll try to fix the exception. On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: > Hi > > Here's an updated patch as I've tweaked some of the wording. The > screenshot probably isn't the right resolution, but as we're replacing them > anyway it doesn't seem overly important. Feel free to fix if you like :-) > > With quoting set to either All or Strings, everything looks good. With it > set to None, I still get an exception (below). The query I'm using is this: > > SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text > > Field separator: , > Quote character: " > Replace null's with: NULL > > Steps: > > 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, using > the venv detailed below. > 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on MacOS > 10.14.1 > 3) Run the above query, wit quoting set to All and check the result in the > grid. > 4) Download the CSV file and check. > 5) Open Preferences and set quoting to Strings. > 6) Download the CSV file and check. > 7) Open Preferences and set quoting to None. > 8) Download the CSV file *exception occurs*. > > > System info: > > (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version > > Python 3.6.7 > > (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze > > alabaster==0.7.11 > > alembic==1.0.0 > > asn1crypto==0.24.0 > > Babel==2.6.0 > > bcrypt==3.1.4 > > blinker==1.4 > > certifi==2018.8.24 > > cffi==1.11.5 > > chardet==3.0.4 > > chromedriver-installer==0.0.6 > > click==6.7 > > cryptography==2.3 > > docutils==0.14 > > extras==1.0.0 > > fixtures==3.0.0 > > Flask==0.12.4 > > Flask-BabelEx==0.9.3 > > Flask-Gravatar==0.5.0 > > Flask-HTMLmin==1.3.2 > > Flask-Login==0.3.2 > > Flask-Mail==0.9.1 > > Flask-Migrate==2.1.1 > > Flask-Paranoid==0.2.0 > > Flask-Principal==0.4.0 > > Flask-Security==3.0.0 > > Flask-SQLAlchemy==2.3.2 > > Flask-WTF==0.14.2 > > html5lib==1.0.1 > > htmlmin==0.1.12 > > idna==2.7 > > imagesize==1.1.0 > > itsdangerous==0.24 > > Jinja2==2.10 > > linecache2==1.0.0 > > Mako==1.0.7 > > MarkupSafe==1.0 > > packaging==18.0 > > paramiko==2.4.1 > > passlib==1.7.1 > > pbr==3.1.1 > > psutil==5.4.8 > > psycopg2==2.7.5 > > pyasn1==0.4.4 > > pycodestyle==2.3.1 > > pycparser==2.18 > > pycrypto==2.6.1 > > Pygments==2.2.0 > > PyNaCl==1.2.1 > > pyparsing==2.2.2 > > pyperclip==1.6.4 > > pyrsistent==0.14.2 > > python-dateutil==2.7.3 > > python-editor==1.0.3 > > python-mimeparse==1.6.0 > > pytz==2018.3 > > requests==2.19.1 > > selenium==3.14.1 > > simplejson==3.13.2 > > six==1.11.0 > > snowballstemmer==1.2.1 > > speaklater==1.3 > > Sphinx==1.8.2 > > sphinxcontrib-websupport==1.1.0 > > SQLAlchemy==1.2.10 > > sqlparse==0.2.4 > > sshtunnel==0.1.4 > > testscenarios==0.5.0 > > testtools==2.3.0 > > traceback2==1.4.0 > > unittest2==1.1.0 > > urllib3==1.23 > > webencodings==0.5.1 > > Werkzeug==0.14.1 > > WTForms==2.1 > > Exception: > > 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) for > server #2 - CONN:8760231 (Query-id: 8649354): > SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text > 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 > 11:47:29] "GET > /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv > HTTP/1.1" 500 - > 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: > Traceback (most recent call last): > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 270, in run_wsgi > execute(self.server.app) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 260, in execute > for data in application_iter: > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", > line 870, in __next__ > return self._next() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", > line 82, in _iter_encoded > for item in iterable: > File > "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", > line 848, in gen > csv_writer.writerows(results) > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 761, in > writerows > return self.writer.writerows(map(self._dict_to_list, rowdicts)) > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 268, in > writerows > self.writerow(row) > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, in > writerow > row = [self.strategy.prepare(field, only=only) for field in row] > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, in > <listcomp> > row = [self.strategy.prepare(field, only=only) for field in row] > File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 142, in > prepare > raise Error('No escapechar is set') > _csv.Error: No escapechar is set > > On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < > [email protected]> wrote: > >> Hi Dave >> >> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >> [email protected]> wrote: >> >>> >>> >>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: >>> >>>> Hi >>>> >>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> Hi Dave >>>>> >>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> When testing with quoting set to None, quote = " and delimiter = , I >>>>>> get the following exception when I try to download: >>>>>> >>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) >>>>>> for server #2 - CONN:354106 (Query-id: 4121147): >>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 >>>>>> 09:34:02] "GET >>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>> HTTP/1.1" 500 - >>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>> Traceback (most recent call last): >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>> line 270, in run_wsgi >>>>>> execute(self.server.app) >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>> line 260, in execute >>>>>> for data in application_iter: >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>> line 870, in __next__ >>>>>> return self._next() >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>> line 82, in _iter_encoded >>>>>> for item in iterable: >>>>>> File >>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>> line 820, in gen >>>>>> csv_writer.writerows(results) >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 748, in writerows >>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 256, in writerows >>>>>> self.writerow(row) >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 249, in writerow >>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 249, in <listcomp> >>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 136, in prepare >>>>>> raise Error('No escapechar is set') >>>>>> _csv.Error: No escapechar is set >>>>>> >>>>> >>>>> Not able to reproduce the above issue. I have tested it with the >>>>> same setting as you mentioned. Please refer all the attached screenshots. >>>>> Please specify the steps if they are different. >>>>> >>>>>> >>>>>> When I have quoting set to All, the first column is returned as "" >>>>>> >>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>> >>>>>> "text","int4","text-2","text-3" >>>>>> >>>>>> "","1234","Foo bar","Foo >>>>>> >>>>>> Bar" >>>>>> >>>>>> Isn't the point for it to be NULL? >>>>>> >>>>> >>>>> while quoting is set to ALL, all the data types has been quoted, >>>>> so I thought null values should be replaced by "" instead of blank. But if >>>>> you think null values shouldn't be quoted even if user select quote ALL, >>>>> I'll fix it and resend the patch. >>>>> >>>> >>>> So how would you distinguish NULL from an empty string? Isn't that >>>> exactly what the bug is about? >>>> >>>> I still think we need a "Replace NULLs with" config option, and >>>> regardless of quoting settings we always replace NULL values with whatever >>>> that is set to - for which the user could then choose options like: >>>> >>>> NULL >>>> "NULL" >>>> "" >>>> '' >>>> <empty string> >>>> >>>> We would never quote the NULL replacement value - if the user wanted it >>>> to be quoted, they would include the quotes in the configured string. >>>> >>> >>> >>> OK, Will work on it and send the modified patch again. >>> >> >> Attached is the modified patch as per your suggestion. >> >>> >>>> >>>>> >>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Dave >>>>>>> >>>>>>> Attached is the modified patch to fix review comments. >>>>>>> >>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Hackers, >>>>>>>>>> >>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>>>>>>> specify NULL values in CSV export. >>>>>>>>>> >>>>>>>>>> Please review it. >>>>>>>>>> >>>>>>>>> >>>>>>>>> A few points; >>>>>>>>> >>>>>>>>> - You've included code from backports.csv, but per the licence you >>>>>>>>> need to include a description of the changes made. >>>>>>>>> >>>>>>>> >>>>>>>> Sure. In that case I'll copy the complete file and will do my >>>>>>>> changes which is of two lines only. With my patch I have remove all the >>>>>>>> unwanted code from backport.csv. >>>>>>>> >>>>>>>>> >>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, or is >>>>>>>>> it used elsewhere? >>>>>>>>> >>>>>>>> >>>>>>>> Yes. Will do that. >>>>>>>> >>>>>>>>> >>>>>>>>> - If the previous point is true, then I'm fairly sure there is >>>>>>>>> code in one or more of the many package build scripts that adds an >>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>> >>>>>>>> >>>>>>>> I'll remove that code as well. >>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Dave Page >>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>> Twitter: @pgsnake >>>>>>>>> >>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Akshay Joshi* >>>>>>>> >>>>>>>> *Sr. Software Architect * >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-21 12:22 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Dave Page @ 2018-12-21 12:22 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers Sorry! Here is is. On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi <[email protected]> wrote: > Hi Dave > > Can you please attached the updated patch with your changes. I'll try to > fix the exception. > > On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: > >> Hi >> >> Here's an updated patch as I've tweaked some of the wording. The >> screenshot probably isn't the right resolution, but as we're replacing them >> anyway it doesn't seem overly important. Feel free to fix if you like :-) >> >> With quoting set to either All or Strings, everything looks good. With it >> set to None, I still get an exception (below). The query I'm using is this: >> >> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >> >> Field separator: , >> Quote character: " >> Replace null's with: NULL >> >> Steps: >> >> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, using >> the venv detailed below. >> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on MacOS >> 10.14.1 >> 3) Run the above query, wit quoting set to All and check the result in >> the grid. >> 4) Download the CSV file and check. >> 5) Open Preferences and set quoting to Strings. >> 6) Download the CSV file and check. >> 7) Open Preferences and set quoting to None. >> 8) Download the CSV file *exception occurs*. >> >> >> System info: >> >> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >> >> Python 3.6.7 >> >> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >> >> alabaster==0.7.11 >> >> alembic==1.0.0 >> >> asn1crypto==0.24.0 >> >> Babel==2.6.0 >> >> bcrypt==3.1.4 >> >> blinker==1.4 >> >> certifi==2018.8.24 >> >> cffi==1.11.5 >> >> chardet==3.0.4 >> >> chromedriver-installer==0.0.6 >> >> click==6.7 >> >> cryptography==2.3 >> >> docutils==0.14 >> >> extras==1.0.0 >> >> fixtures==3.0.0 >> >> Flask==0.12.4 >> >> Flask-BabelEx==0.9.3 >> >> Flask-Gravatar==0.5.0 >> >> Flask-HTMLmin==1.3.2 >> >> Flask-Login==0.3.2 >> >> Flask-Mail==0.9.1 >> >> Flask-Migrate==2.1.1 >> >> Flask-Paranoid==0.2.0 >> >> Flask-Principal==0.4.0 >> >> Flask-Security==3.0.0 >> >> Flask-SQLAlchemy==2.3.2 >> >> Flask-WTF==0.14.2 >> >> html5lib==1.0.1 >> >> htmlmin==0.1.12 >> >> idna==2.7 >> >> imagesize==1.1.0 >> >> itsdangerous==0.24 >> >> Jinja2==2.10 >> >> linecache2==1.0.0 >> >> Mako==1.0.7 >> >> MarkupSafe==1.0 >> >> packaging==18.0 >> >> paramiko==2.4.1 >> >> passlib==1.7.1 >> >> pbr==3.1.1 >> >> psutil==5.4.8 >> >> psycopg2==2.7.5 >> >> pyasn1==0.4.4 >> >> pycodestyle==2.3.1 >> >> pycparser==2.18 >> >> pycrypto==2.6.1 >> >> Pygments==2.2.0 >> >> PyNaCl==1.2.1 >> >> pyparsing==2.2.2 >> >> pyperclip==1.6.4 >> >> pyrsistent==0.14.2 >> >> python-dateutil==2.7.3 >> >> python-editor==1.0.3 >> >> python-mimeparse==1.6.0 >> >> pytz==2018.3 >> >> requests==2.19.1 >> >> selenium==3.14.1 >> >> simplejson==3.13.2 >> >> six==1.11.0 >> >> snowballstemmer==1.2.1 >> >> speaklater==1.3 >> >> Sphinx==1.8.2 >> >> sphinxcontrib-websupport==1.1.0 >> >> SQLAlchemy==1.2.10 >> >> sqlparse==0.2.4 >> >> sshtunnel==0.1.4 >> >> testscenarios==0.5.0 >> >> testtools==2.3.0 >> >> traceback2==1.4.0 >> >> unittest2==1.1.0 >> >> urllib3==1.23 >> >> webencodings==0.5.1 >> >> Werkzeug==0.14.1 >> >> WTForms==2.1 >> >> Exception: >> >> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) for >> server #2 - CONN:8760231 (Query-id: 8649354): >> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >> 11:47:29] "GET >> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >> HTTP/1.1" 500 - >> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >> Traceback (most recent call last): >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >> line 270, in run_wsgi >> execute(self.server.app) >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >> line 260, in execute >> for data in application_iter: >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >> line 870, in __next__ >> return self._next() >> File >> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >> line 82, in _iter_encoded >> for item in iterable: >> File >> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >> line 848, in gen >> csv_writer.writerows(results) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 761, in >> writerows >> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 268, in >> writerows >> self.writerow(row) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, in >> writerow >> row = [self.strategy.prepare(field, only=only) for field in row] >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, in >> <listcomp> >> row = [self.strategy.prepare(field, only=only) for field in row] >> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 142, in >> prepare >> raise Error('No escapechar is set') >> _csv.Error: No escapechar is set >> >> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >> [email protected]> wrote: >> >>> Hi Dave >>> >>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> >>>> >>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: >>>> >>>>> Hi >>>>> >>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi Dave >>>>>> >>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> When testing with quoting set to None, quote = " and delimiter = , I >>>>>>> get the following exception when I try to download: >>>>>>> >>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) >>>>>>> for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 >>>>>>> 09:34:02] "GET >>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>> HTTP/1.1" 500 - >>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>> Traceback (most recent call last): >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>> line 270, in run_wsgi >>>>>>> execute(self.server.app) >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>> line 260, in execute >>>>>>> for data in application_iter: >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>> line 870, in __next__ >>>>>>> return self._next() >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>> line 82, in _iter_encoded >>>>>>> for item in iterable: >>>>>>> File >>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>> line 820, in gen >>>>>>> csv_writer.writerows(results) >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 748, in writerows >>>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 256, in writerows >>>>>>> self.writerow(row) >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 249, in writerow >>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 249, in <listcomp> >>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 136, in prepare >>>>>>> raise Error('No escapechar is set') >>>>>>> _csv.Error: No escapechar is set >>>>>>> >>>>>> >>>>>> Not able to reproduce the above issue. I have tested it with the >>>>>> same setting as you mentioned. Please refer all the attached screenshots. >>>>>> Please specify the steps if they are different. >>>>>> >>>>>>> >>>>>>> When I have quoting set to All, the first column is returned as "" >>>>>>> >>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>> >>>>>>> "text","int4","text-2","text-3" >>>>>>> >>>>>>> "","1234","Foo bar","Foo >>>>>>> >>>>>>> Bar" >>>>>>> >>>>>>> Isn't the point for it to be NULL? >>>>>>> >>>>>> >>>>>> while quoting is set to ALL, all the data types has been quoted, >>>>>> so I thought null values should be replaced by "" instead of blank. But if >>>>>> you think null values shouldn't be quoted even if user select quote ALL, >>>>>> I'll fix it and resend the patch. >>>>>> >>>>> >>>>> So how would you distinguish NULL from an empty string? Isn't that >>>>> exactly what the bug is about? >>>>> >>>>> I still think we need a "Replace NULLs with" config option, and >>>>> regardless of quoting settings we always replace NULL values with whatever >>>>> that is set to - for which the user could then choose options like: >>>>> >>>>> NULL >>>>> "NULL" >>>>> "" >>>>> '' >>>>> <empty string> >>>>> >>>>> We would never quote the NULL replacement value - if the user wanted >>>>> it to be quoted, they would include the quotes in the configured string. >>>>> >>>> >>>> >>>> OK, Will work on it and send the modified patch again. >>>> >>> >>> Attached is the modified patch as per your suggestion. >>> >>>> >>>>> >>>>>> >>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi Dave >>>>>>>> >>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>> >>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Hackers, >>>>>>>>>>> >>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>>>>>>>> specify NULL values in CSV export. >>>>>>>>>>> >>>>>>>>>>> Please review it. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> A few points; >>>>>>>>>> >>>>>>>>>> - You've included code from backports.csv, but per the licence >>>>>>>>>> you need to include a description of the changes made. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Sure. In that case I'll copy the complete file and will do >>>>>>>>> my changes which is of two lines only. With my patch I have remove all the >>>>>>>>> unwanted code from backport.csv. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, or is >>>>>>>>>> it used elsewhere? >>>>>>>>>> >>>>>>>>> >>>>>>>>> Yes. Will do that. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> - If the previous point is true, then I'm fairly sure there is >>>>>>>>>> code in one or more of the many package build scripts that adds an >>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>> >>>>>>>>> >>>>>>>>> I'll remove that code as well. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Dave Page >>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>> Twitter: @pgsnake >>>>>>>>>> >>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Akshay Joshi* >>>>>>>>> >>>>>>>>> *Sr. Software Architect * >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Akshay Joshi* >>>>>>>> >>>>>>>> *Sr. Software Architect * >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company Attachments: [application/octet-stream] RM_3780_v4.patch (112.6K, 3-RM_3780_v4.patch) download | inline diff: Index: pkg/pip/setup_pip.py IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- pkg/pip/setup_pip.py (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ pkg/pip/setup_pip.py (date 1545392222000) @@ -96,7 +96,6 @@ "Flask-BabelEx==0.9.3" ], ":python_version<='2.7'": [ - "backports.csv==1.0.5", "importlib==1.0.3" ], ":python_version>='2.7'": [ Index: web/pgadmin/utils/csv.py IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- web/pgadmin/utils/csv.py (date 1545392222000) +++ web/pgadmin/utils/csv.py (date 1545392222000) @@ -0,0 +1,761 @@ +""" +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,2010 +2011, 2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation; All Rights +Reserved" are retained in Python alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. +""" + +############################################################################ +# Changes: +# Added new parameter in dialect 'replace_nulls_with' to compare it against +# the value to be quoted or not. +# Handle the null value if value is None or equal to +# 'replace_nulls_with' then it represents the null value, so no need to +# quote it. +############################################################################ + +from __future__ import unicode_literals, absolute_import + +__all__ = ["QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE", + "Error", "Dialect", "__doc__", "excel", "excel_tab", + "field_size_limit", "reader", "writer", "register_dialect", + "get_dialect", "list_dialects", "unregister_dialect", + "__version__", "DictReader", "DictWriter"] + +import re +import numbers +from io import StringIO +from csv import ( + QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, + __version__, __doc__, Error, field_size_limit, +) + +# Stuff needed from six +import sys +PY3 = sys.version_info[0] == 3 +if PY3: + string_types = str + text_type = str + binary_type = bytes + unichr = chr +else: + string_types = basestring + text_type = unicode + binary_type = str + + +class QuoteStrategy(object): + quoting = None + + def __init__(self, dialect): + if self.quoting is not None: + assert dialect.quoting == self.quoting + self.dialect = dialect + self.setup() + + escape_pattern_quoted = r'({quotechar})'.format( + quotechar=re.escape(self.dialect.quotechar or '"')) + escape_pattern_unquoted = r'([{specialchars}])'.format( + specialchars=re.escape(self.specialchars)) + + self.escape_re_quoted = re.compile(escape_pattern_quoted) + self.escape_re_unquoted = re.compile(escape_pattern_unquoted) + + def setup(self): + """Optional method for strategy-wide optimizations.""" + + def quoted(self, field=None, raw_field=None, only=None): + """Determine whether this field should be quoted.""" + raise NotImplementedError( + 'quoted must be implemented by a subclass') + + @property + def specialchars(self): + """The special characters that need to be escaped.""" + raise NotImplementedError( + 'specialchars must be implemented by a subclass') + + def escape_re(self, quoted=None): + if quoted: + return self.escape_re_quoted + return self.escape_re_unquoted + + def escapechar(self, quoted=None): + if quoted and self.dialect.doublequote: + return self.dialect.quotechar + return self.dialect.escapechar + + def prepare(self, raw_field, only=None): + field = text_type(raw_field if raw_field is not None else '') + quoted = self.quoted(field=field, raw_field=raw_field, only=only) + + escape_re = self.escape_re(quoted=quoted) + escapechar = self.escapechar(quoted=quoted) + + if escape_re.search(field): + escapechar = '\\\\' if escapechar == '\\' else escapechar + if not escapechar: + raise Error('No escapechar is set') + escape_replace = r'{escapechar}\1'.format(escapechar=escapechar) + field = escape_re.sub(escape_replace, field) + + if quoted: + field = '{quotechar}{field}{quotechar}'.format( + quotechar=self.dialect.quotechar, field=field) + + return field + + +class QuoteMinimalStrategy(QuoteStrategy): + quoting = QUOTE_MINIMAL + + def setup(self): + self.quoted_re = re.compile(r'[{specialchars}]'.format( + specialchars=re.escape(self.specialchars))) + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == self.dialect.quotechar and not self.dialect.doublequote: + # If the only character in the field is the quotechar, and + # doublequote is false, then just escape without outer quotes. + return False + return field == '' and only or bool(self.quoted_re.search(field)) + + +class QuoteAllStrategy(QuoteStrategy): + quoting = QUOTE_ALL + + @property + def specialchars(self): + return self.dialect.quotechar + + def quoted(self, raw_field, **kwargs): + # Handle the null value if raw_field is None or equal to + # replace_nulls_with then it represents the null value, so no need to + # quote it. + if raw_field is None or raw_field == self.dialect.replace_nulls_with: + return False + return True + + +class QuoteNonnumericStrategy(QuoteStrategy): + quoting = QUOTE_NONNUMERIC + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, raw_field, **kwargs): + # Handle the null value if raw_field is None or equal to + # replace_nulls_with then it represents the null value, so no need to + # quote it. + if raw_field is None or raw_field == self.dialect.replace_nulls_with: + return False + return not isinstance(raw_field, numbers.Number) + + +class QuoteNoneStrategy(QuoteStrategy): + quoting = QUOTE_NONE + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + (self.dialect.quotechar or '') + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == '' and only: + raise Error('single empty field record must be quoted') + return False + + +class writer(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + if fileobj is None: + raise TypeError('fileobj must be file-like, not None') + + self.fileobj = fileobj + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + strategies = { + QUOTE_MINIMAL: QuoteMinimalStrategy, + QUOTE_ALL: QuoteAllStrategy, + QUOTE_NONNUMERIC: QuoteNonnumericStrategy, + QUOTE_NONE: QuoteNoneStrategy, + } + self.strategy = strategies[self.dialect.quoting](self.dialect) + + def writerow(self, row): + if row is None: + raise Error('row must be an iterable') + + row = list(row) + only = len(row) == 1 + row = [self.strategy.prepare(field, only=only) for field in row] + + line = self.dialect.delimiter.join(row) + self.dialect.lineterminator + return self.fileobj.write(line) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + +START_RECORD = 0 +START_FIELD = 1 +ESCAPED_CHAR = 2 +IN_FIELD = 3 +IN_QUOTED_FIELD = 4 +ESCAPE_IN_QUOTED_FIELD = 5 +QUOTE_IN_QUOTED_FIELD = 6 +EAT_CRNL = 7 +AFTER_ESCAPED_CRNL = 8 + + +class reader(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + self.input_iter = iter(fileobj) + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + self.fields = None + self.field = None + self.line_num = 0 + + def parse_reset(self): + self.fields = [] + self.field = [] + self.state = START_RECORD + self.numeric_field = False + + def parse_save_field(self): + field = ''.join(self.field) + self.field = [] + if self.numeric_field: + field = float(field) + self.numeric_field = False + self.fields.append(field) + + def parse_add_char(self, c): + if len(self.field) >= field_size_limit(): + raise Error('field size limit exceeded') + self.field.append(c) + + def parse_process_char(self, c): + switch = { + START_RECORD: self._parse_start_record, + START_FIELD: self._parse_start_field, + ESCAPED_CHAR: self._parse_escaped_char, + AFTER_ESCAPED_CRNL: self._parse_after_escaped_crnl, + IN_FIELD: self._parse_in_field, + IN_QUOTED_FIELD: self._parse_in_quoted_field, + ESCAPE_IN_QUOTED_FIELD: self._parse_escape_in_quoted_field, + QUOTE_IN_QUOTED_FIELD: self._parse_quote_in_quoted_field, + EAT_CRNL: self._parse_eat_crnl, + } + return switch[self.state](c) + + def _parse_start_record(self, c): + if c == '\0': + return + elif c == '\n' or c == '\r': + self.state = EAT_CRNL + return + + self.state = START_FIELD + return self._parse_start_field(c) + + def _parse_start_field(self, c): + if c == '\n' or c == '\r' or c == '\0': + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + self.state = IN_QUOTED_FIELD + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == ' ' and self.dialect.skipinitialspace: + pass # Ignore space at start of field + elif c == self.dialect.delimiter: + # Save empty field + self.parse_save_field() + else: + # Begin new unquoted field + if self.dialect.quoting == QUOTE_NONNUMERIC: + self.numeric_field = True + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_escaped_char(self, c): + if c == '\n' or c == '\r': + self.parse_add_char(c) + self.state = AFTER_ESCAPED_CRNL + return + if c == '\0': + c = '\n' + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_after_escaped_crnl(self, c): + if c == '\0': + return + return self._parse_in_field(c) + + def _parse_in_field(self, c): + # In unquoted field + if c == '\n' or c == '\r' or c == '\0': + # End of line - return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + else: + # Normal character - save in field + self.parse_add_char(c) + + def _parse_in_quoted_field(self, c): + if c == '\0': + pass + elif c == self.dialect.escapechar: + self.state = ESCAPE_IN_QUOTED_FIELD + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + if self.dialect.doublequote: + self.state = QUOTE_IN_QUOTED_FIELD + else: + self.state = IN_FIELD + else: + self.parse_add_char(c) + + def _parse_escape_in_quoted_field(self, c): + if c == '\0': + c = '\n' + + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + + def _parse_quote_in_quoted_field(self, c): + if (self.dialect.quoting != QUOTE_NONE and + c == self.dialect.quotechar): + # save "" as " + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + elif c == '\n' or c == '\r' or c == '\0': + # End of line = return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif not self.dialect.strict: + self.parse_add_char(c) + self.state = IN_FIELD + else: + # illegal + raise Error("{delimiter}' expected after '{quotechar}".format( + delimiter=self.dialect.delimiter, + quotechar=self.dialect.quotechar, + )) + + def _parse_eat_crnl(self, c): + if c == '\n' or c == '\r': + pass + elif c == '\0': + self.state = START_RECORD + else: + raise Error('new-line character seen in unquoted field - do you ' + 'need to open the file in universal-newline mode?') + + def __iter__(self): + return self + + def __next__(self): + self.parse_reset() + + while True: + try: + lineobj = next(self.input_iter) + except StopIteration: + if len(self.field) != 0 or self.state == IN_QUOTED_FIELD: + if self.dialect.strict: + raise Error('unexpected end of data') + self.parse_save_field() + if self.fields: + break + raise + + if not isinstance(lineobj, text_type): + typ = type(lineobj) + typ_name = 'bytes' if typ == bytes else typ.__name__ + err_str = ('iterator should return strings, not {0}' + ' (did you open the file in text mode?)') + raise Error(err_str.format(typ_name)) + + self.line_num += 1 + for c in lineobj: + if c == '\0': + raise Error('line contains NULL byte') + self.parse_process_char(c) + + self.parse_process_char('\0') + + if self.state == START_RECORD: + break + + fields = self.fields + self.fields = None + return fields + + next = __next__ + + +_dialect_registry = {} + + +def register_dialect(name, dialect='excel', **fmtparams): + if not isinstance(name, text_type): + raise TypeError('"name" must be a string') + + dialect = Dialect.extend(dialect, fmtparams) + + try: + Dialect.validate(dialect) + except Exception as e: + raise TypeError('dialect is invalid') + + assert name not in _dialect_registry + _dialect_registry[name] = dialect + + +def unregister_dialect(name): + try: + _dialect_registry.pop(name) + except KeyError: + raise Error('"{name}" not a registered dialect'.format(name=name)) + + +def get_dialect(name): + try: + return _dialect_registry[name] + except KeyError: + raise Error('Could not find dialect {0}'.format(name)) + + +def list_dialects(): + return list(_dialect_registry) + + +class Dialect(object): + """Describe a CSV dialect. + This must be subclassed (see csv.excel). Valid attributes are: + delimiter, quotechar, escapechar, doublequote, skipinitialspace, + lineterminator, quoting, strict. + """ + _name = "" + _valid = False + # placeholders + delimiter = None + quotechar = None + escapechar = None + doublequote = None + skipinitialspace = None + lineterminator = None + quoting = None + strict = None + + def __init__(self): + self.validate(self) + if self.__class__ != Dialect: + self._valid = True + + @classmethod + def validate(cls, dialect): + dialect = cls.extend(dialect) + + if not isinstance(dialect.quoting, int): + raise Error('"quoting" must be an integer') + + if dialect.delimiter is None: + raise Error('delimiter must be set') + cls.validate_text(dialect, 'delimiter') + + if dialect.lineterminator is None: + raise Error('lineterminator must be set') + if not isinstance(dialect.lineterminator, text_type): + raise Error('"lineterminator" must be a string') + + if dialect.quoting not in [ + QUOTE_NONE, QUOTE_MINIMAL, QUOTE_NONNUMERIC, QUOTE_ALL]: + raise Error('Invalid quoting specified') + + if dialect.quoting != QUOTE_NONE: + if dialect.quotechar is None and dialect.escapechar is None: + raise Error('quotechar must be set if quoting enabled') + if dialect.quotechar is not None: + cls.validate_text(dialect, 'quotechar') + + @staticmethod + def validate_text(dialect, attr): + val = getattr(dialect, attr) + if not isinstance(val, text_type): + if type(val) == bytes: + raise Error('"{0}" must be string, not bytes'.format(attr)) + raise Error('"{0}" must be string, not {1}'.format( + attr, type(val).__name__)) + + if len(val) != 1: + raise Error('"{0}" must be a 1-character string'.format(attr)) + + @staticmethod + def defaults(): + return { + 'delimiter': ',', + 'doublequote': True, + 'escapechar': None, + 'lineterminator': '\r\n', + 'quotechar': '"', + 'quoting': QUOTE_MINIMAL, + 'skipinitialspace': False, + 'strict': False, + 'replace_nulls_with': None + } + + @classmethod + def extend(cls, dialect, fmtparams=None): + if isinstance(dialect, string_types): + dialect = get_dialect(dialect) + + if fmtparams is None: + return dialect + + defaults = cls.defaults() + + if any(param not in defaults for param in fmtparams): + raise TypeError('Invalid fmtparam') + + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in cls.defaults() + ) + + specified.update(fmtparams) + return type(str('ExtendedDialect'), (cls,), specified) + + @classmethod + def combine(cls, dialect, fmtparams): + """Create a new dialect with defaults and added parameters.""" + dialect = cls.extend(dialect, fmtparams) + defaults = cls.defaults() + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in defaults + if getattr(dialect, attr, None) is not None or + attr in ['quotechar', 'delimiter', 'lineterminator', 'quoting'] + ) + + defaults.update(specified) + dialect = type(str('CombinedDialect'), (cls,), defaults) + cls.validate(dialect) + return dialect() + + def __delattr__(self, attr): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__delattr__(attr) + + def __setattr__(self, attr, value): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__setattr__(attr, value) + + +class excel(Dialect): + """Describe the usual properties of Excel-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\r\n' + quoting = QUOTE_MINIMAL + + +register_dialect("excel", excel) + + +class excel_tab(excel): + """Describe the usual properties of Excel-generated TAB-delimited files.""" + delimiter = '\t' + + +register_dialect("excel-tab", excel_tab) + + +class unix_dialect(Dialect): + """Describe the usual properties of Unix-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\n' + quoting = QUOTE_ALL + + +register_dialect("unix", unix_dialect) + + +class DictReader(object): + def __init__(self, f, fieldnames=None, restkey=None, restval=None, + dialect="excel", *args, **kwds): + self._fieldnames = fieldnames # list of keys for the dict + self.restkey = restkey # key to catch long rows + self.restval = restval # default value for short rows + self.reader = reader(f, dialect, *args, **kwds) + self.dialect = dialect + self.line_num = 0 + + def __iter__(self): + return self + + @property + def fieldnames(self): + if self._fieldnames is None: + try: + self._fieldnames = next(self.reader) + except StopIteration: + pass + self.line_num = self.reader.line_num + return self._fieldnames + + @fieldnames.setter + def fieldnames(self, value): + self._fieldnames = value + + def __next__(self): + if self.line_num == 0: + # Used only for its side effect. + self.fieldnames + row = next(self.reader) + self.line_num = self.reader.line_num + + # unlike the basic reader, we prefer not to return blanks, + # because we will typically wind up with a dict full of None + # values + while row == []: + row = next(self.reader) + d = dict(zip(self.fieldnames, row)) + lf = len(self.fieldnames) + lr = len(row) + if lf < lr: + d[self.restkey] = row[lf:] + elif lf > lr: + for key in self.fieldnames[lr:]: + d[key] = self.restval + return d + + next = __next__ + + +class DictWriter(object): + def __init__(self, f, fieldnames, restval="", extrasaction="raise", + dialect="excel", *args, **kwds): + self.fieldnames = fieldnames # list of keys for the dict + self.restval = restval # for writing short dicts + if extrasaction.lower() not in ("raise", "ignore"): + raise ValueError("extrasaction (%s) must be 'raise' or 'ignore'" + % extrasaction) + self.extrasaction = extrasaction + self.writer = writer(f, dialect, *args, **kwds) + + def writeheader(self): + header = dict(zip(self.fieldnames, self.fieldnames)) + self.writerow(header) + + def _dict_to_list(self, rowdict): + if self.extrasaction == "raise": + wrong_fields = [k for k in rowdict if k not in self.fieldnames] + if wrong_fields: + raise ValueError("dict contains fields not in fieldnames: " + + ", ".join([repr(x) for x in wrong_fields])) + return (rowdict.get(key, self.restval) for key in self.fieldnames) + + def writerow(self, rowdict): + return self.writer.writerow(self._dict_to_list(rowdict)) + + def writerows(self, rowdicts): + return self.writer.writerows(map(self._dict_to_list, rowdicts)) Index: pkg/mac/build.sh IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- pkg/mac/build.sh (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ pkg/mac/build.sh (date 1545392222000) @@ -144,11 +144,6 @@ if test -d $DIR_PYMODULES_PATH; then ln -s $(basename $DIR_PYMODULES_PATH) $DIR_PYMODULES_PATH/../python fi - - # Fix the backports module which will have no __init__.py file - if [ "$PYTHON_VERSION" -lt "30" ]; then - touch $BUILDROOT/$VIRTUALENV/lib/python/site-packages/backports/__init__.py - fi } _build_runtime() { Index: web/pgadmin/utils/driver/psycopg2/connection.py IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- web/pgadmin/utils/driver/psycopg2/connection.py (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ web/pgadmin/utils/driver/psycopg2/connection.py (date 1545392222000) @@ -37,16 +37,13 @@ register_string_typecasters, register_binary_typecasters, \ register_array_to_string_typecasters, ALL_JSON_TYPES from .encoding import getEncoding +from pgadmin.utils import csv if sys.version_info < (3,): - # Python2 in-built csv module do not handle unicode - # backports.csv module ported from PY3 csv module for unicode handling - from backports import csv from StringIO import StringIO IS_PY2 = True else: from io import StringIO - import csv IS_PY2 = False _ = gettext @@ -765,7 +762,31 @@ ) return new_results - def gen(quote='strings', quote_char="'", field_separator=','): + def handle_null_values(results, replace_nulls_with): + """ + This function is used to replace null values with the given string + + :param results: + :param replace_nulls_with: null values will be replaced by this + string. + :return: modified result + """ + + temp_results = [] + for row in results: + res = dict() + for k, v in row.items(): + if v is None: + res[k] = replace_nulls_with + else: + res[k] = v + temp_results.append(res) + results = temp_results + + return results + + def gen(quote='strings', quote_char="'", field_separator=',', + replace_nulls_with=None): results = cur.fetchmany(records) if not results: @@ -815,11 +836,15 @@ csv_writer = csv.DictWriter( res_io, fieldnames=header, delimiter=field_separator, quoting=quote, - quotechar=quote_char + quotechar=quote_char, + replace_nulls_with=replace_nulls_with ) csv_writer.writeheader() results = handle_json_data(json_columns, results) + # Replace the null values with given string if configured. + if replace_nulls_with is not None: + results = handle_null_values(results, replace_nulls_with) csv_writer.writerows(results) yield res_io.getvalue() @@ -836,13 +861,17 @@ csv_writer = csv.DictWriter( res_io, fieldnames=header, delimiter=field_separator, quoting=quote, - quotechar=quote_char + quotechar=quote_char, + replace_nulls_with=replace_nulls_with ) if IS_PY2: results = convert_keys_to_unicode(results, conn_encoding) results = handle_json_data(json_columns, results) + # Replace the null values with given string if configured. + if replace_nulls_with is not None: + results = handle_null_values(results, replace_nulls_with) csv_writer.writerows(results) yield res_io.getvalue() Index: Make.bat IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- Make.bat (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ Make.bat (date 1545392222000) @@ -255,11 +255,6 @@ ECHO Removing Sphinx CALL pip uninstall -y sphinx Pygments alabaster colorama docutils imagesize requests snowballstemmer - IF %PYTHON_MAJOR% == 2 ( - ECHO Fixing backports.csv for Python 2 by adding missing __init__.py - type nul >> "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\backports\__init__.py" - ) - IF %PYTHON_MAJOR% == 3 ( ECHO Fixing PyCrypto module for Python 3... CALL "%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py" "-o" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py.new" "-s" "import winrandom" -r "from . import winrandom" Index: requirements.txt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- requirements.txt (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ requirements.txt (date 1545392222000) @@ -44,7 +44,6 @@ ############################################################### # Modules specifically required for Python2.7 or lesser version ############################################################### -backports.csv==1.0.5; python_version <= '2.7' importlib==1.0.3; python_version <= '2.7' ############################################################### Index: docs/en_US/preferences.rst IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- docs/en_US/preferences.rst (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ docs/en_US/preferences.rst (date 1545392477000) @@ -146,6 +146,7 @@ * Use the *CSV field separator* drop-down listbox to specify the separator character that will be used in CSV output. * Use the *CSV quote character* drop-down listbox to specify the quote character that will be used in CSV output. * Use the *CSV quoting* drop-down listbox to select the fields that will be quoted in the CSV output; select *Strings*, *All*, or *None*. +* Use the *Replace null values with* option to replace null values with specified string in the output file. Default is set to 'NULL'. .. image:: images/preferences_sql_display.png :alt: Preferences dialog sqleditor display options Index: web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py (date 1545392477000) @@ -198,6 +198,16 @@ } ) + self.replace_nulls_with = self.preference.register( + 'CSV_output', 'csv_replace_nulls_with', + gettext("Replace null values with"), 'text', 'NULL', + category_label=gettext('CSV output'), + help_str=gettext('Specifies the string that represents a null value ' + 'while downloading query results as CSV. You can ' + 'specify any arbitrary string to represent a ' + 'null value, with quotes if desired.') + ) + self.results_grid_quoting = self.preference.register( 'Results_grid', 'results_grid_quoting', gettext("Result copy quoting"), 'options', 'strings', Index: web/pgadmin/tools/sqleditor/__init__.py IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- web/pgadmin/tools/sqleditor/__init__.py (revision a000dc6f60cc4bcf527ecab264ca9261e5c8172f) +++ web/pgadmin/tools/sqleditor/__init__.py (date 1545392222000) @@ -1434,7 +1434,8 @@ gen( quote=blueprint.csv_quoting.get(), quote_char=blueprint.csv_quote_char.get(), - field_separator=blueprint.csv_field_separator.get() + field_separator=blueprint.csv_field_separator.get(), + replace_nulls_with=blueprint.replace_nulls_with.get() ), mimetype='text/csv' ) diff --git docs/en_US/images/preferences_sql_csv_output.png docs/en_US/images/preferences_sql_csv_output.png index 48dee9c62a87640af5085cefad9dbd400912c867..ee3475d57ce9865cfe1552f3ebe09fac96767519 GIT binary patch literal 71521 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 ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-21 12:56 Akshay Joshi <[email protected]> parent: Dave Page <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-21 12:56 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers Hi Dave I have modified the condition, it won't through any exception. Attached is the updated patch, please review it. On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: > Sorry! Here is is. > > On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < > [email protected]> wrote: > >> Hi Dave >> >> Can you please attached the updated patch with your changes. I'll try to >> fix the exception. >> >> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: >> >>> Hi >>> >>> Here's an updated patch as I've tweaked some of the wording. The >>> screenshot probably isn't the right resolution, but as we're replacing them >>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>> >>> With quoting set to either All or Strings, everything looks good. With >>> it set to None, I still get an exception (below). The query I'm using is >>> this: >>> >>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>> >>> Field separator: , >>> Quote character: " >>> Replace null's with: NULL >>> >>> Steps: >>> >>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, using >>> the venv detailed below. >>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on MacOS >>> 10.14.1 >>> 3) Run the above query, wit quoting set to All and check the result in >>> the grid. >>> 4) Download the CSV file and check. >>> 5) Open Preferences and set quoting to Strings. >>> 6) Download the CSV file and check. >>> 7) Open Preferences and set quoting to None. >>> 8) Download the CSV file *exception occurs*. >>> >>> >>> System info: >>> >>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>> >>> Python 3.6.7 >>> >>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>> >>> alabaster==0.7.11 >>> >>> alembic==1.0.0 >>> >>> asn1crypto==0.24.0 >>> >>> Babel==2.6.0 >>> >>> bcrypt==3.1.4 >>> >>> blinker==1.4 >>> >>> certifi==2018.8.24 >>> >>> cffi==1.11.5 >>> >>> chardet==3.0.4 >>> >>> chromedriver-installer==0.0.6 >>> >>> click==6.7 >>> >>> cryptography==2.3 >>> >>> docutils==0.14 >>> >>> extras==1.0.0 >>> >>> fixtures==3.0.0 >>> >>> Flask==0.12.4 >>> >>> Flask-BabelEx==0.9.3 >>> >>> Flask-Gravatar==0.5.0 >>> >>> Flask-HTMLmin==1.3.2 >>> >>> Flask-Login==0.3.2 >>> >>> Flask-Mail==0.9.1 >>> >>> Flask-Migrate==2.1.1 >>> >>> Flask-Paranoid==0.2.0 >>> >>> Flask-Principal==0.4.0 >>> >>> Flask-Security==3.0.0 >>> >>> Flask-SQLAlchemy==2.3.2 >>> >>> Flask-WTF==0.14.2 >>> >>> html5lib==1.0.1 >>> >>> htmlmin==0.1.12 >>> >>> idna==2.7 >>> >>> imagesize==1.1.0 >>> >>> itsdangerous==0.24 >>> >>> Jinja2==2.10 >>> >>> linecache2==1.0.0 >>> >>> Mako==1.0.7 >>> >>> MarkupSafe==1.0 >>> >>> packaging==18.0 >>> >>> paramiko==2.4.1 >>> >>> passlib==1.7.1 >>> >>> pbr==3.1.1 >>> >>> psutil==5.4.8 >>> >>> psycopg2==2.7.5 >>> >>> pyasn1==0.4.4 >>> >>> pycodestyle==2.3.1 >>> >>> pycparser==2.18 >>> >>> pycrypto==2.6.1 >>> >>> Pygments==2.2.0 >>> >>> PyNaCl==1.2.1 >>> >>> pyparsing==2.2.2 >>> >>> pyperclip==1.6.4 >>> >>> pyrsistent==0.14.2 >>> >>> python-dateutil==2.7.3 >>> >>> python-editor==1.0.3 >>> >>> python-mimeparse==1.6.0 >>> >>> pytz==2018.3 >>> >>> requests==2.19.1 >>> >>> selenium==3.14.1 >>> >>> simplejson==3.13.2 >>> >>> six==1.11.0 >>> >>> snowballstemmer==1.2.1 >>> >>> speaklater==1.3 >>> >>> Sphinx==1.8.2 >>> >>> sphinxcontrib-websupport==1.1.0 >>> >>> SQLAlchemy==1.2.10 >>> >>> sqlparse==0.2.4 >>> >>> sshtunnel==0.1.4 >>> >>> testscenarios==0.5.0 >>> >>> testtools==2.3.0 >>> >>> traceback2==1.4.0 >>> >>> unittest2==1.1.0 >>> >>> urllib3==1.23 >>> >>> webencodings==0.5.1 >>> >>> Werkzeug==0.14.1 >>> >>> WTForms==2.1 >>> >>> Exception: >>> >>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) for >>> server #2 - CONN:8760231 (Query-id: 8649354): >>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >>> 11:47:29] "GET >>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>> HTTP/1.1" 500 - >>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>> Traceback (most recent call last): >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>> line 270, in run_wsgi >>> execute(self.server.app) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>> line 260, in execute >>> for data in application_iter: >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>> line 870, in __next__ >>> return self._next() >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>> line 82, in _iter_encoded >>> for item in iterable: >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>> line 848, in gen >>> csv_writer.writerows(results) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 761, >>> in writerows >>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 268, >>> in writerows >>> self.writerow(row) >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, >>> in writerow >>> row = [self.strategy.prepare(field, only=only) for field in row] >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, >>> in <listcomp> >>> row = [self.strategy.prepare(field, only=only) for field in row] >>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 142, >>> in prepare >>> raise Error('No escapechar is set') >>> _csv.Error: No escapechar is set >>> >>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> Hi Dave >>>> >>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> >>>>> >>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Dave >>>>>>> >>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> When testing with quoting set to None, quote = " and delimiter = , >>>>>>>> I get the following exception when I try to download: >>>>>>>> >>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server cursor) >>>>>>>> for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - [20/Dec/2018 >>>>>>>> 09:34:02] "GET >>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>> HTTP/1.1" 500 - >>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>> Traceback (most recent call last): >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>> line 270, in run_wsgi >>>>>>>> execute(self.server.app) >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>> line 260, in execute >>>>>>>> for data in application_iter: >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>> line 870, in __next__ >>>>>>>> return self._next() >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>> line 82, in _iter_encoded >>>>>>>> for item in iterable: >>>>>>>> File >>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>> line 820, in gen >>>>>>>> csv_writer.writerows(results) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 748, in writerows >>>>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 256, in writerows >>>>>>>> self.writerow(row) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 249, in writerow >>>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 249, in <listcomp> >>>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 136, in prepare >>>>>>>> raise Error('No escapechar is set') >>>>>>>> _csv.Error: No escapechar is set >>>>>>>> >>>>>>> >>>>>>> Not able to reproduce the above issue. I have tested it with the >>>>>>> same setting as you mentioned. Please refer all the attached screenshots. >>>>>>> Please specify the steps if they are different. >>>>>>> >>>>>>>> >>>>>>>> When I have quoting set to All, the first column is returned as "" >>>>>>>> >>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>> >>>>>>>> "text","int4","text-2","text-3" >>>>>>>> >>>>>>>> "","1234","Foo bar","Foo >>>>>>>> >>>>>>>> Bar" >>>>>>>> >>>>>>>> Isn't the point for it to be NULL? >>>>>>>> >>>>>>> >>>>>>> while quoting is set to ALL, all the data types has been quoted, >>>>>>> so I thought null values should be replaced by "" instead of blank. But if >>>>>>> you think null values shouldn't be quoted even if user select quote ALL, >>>>>>> I'll fix it and resend the patch. >>>>>>> >>>>>> >>>>>> So how would you distinguish NULL from an empty string? Isn't that >>>>>> exactly what the bug is about? >>>>>> >>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>> that is set to - for which the user could then choose options like: >>>>>> >>>>>> NULL >>>>>> "NULL" >>>>>> "" >>>>>> '' >>>>>> <empty string> >>>>>> >>>>>> We would never quote the NULL replacement value - if the user wanted >>>>>> it to be quoted, they would include the quotes in the configured string. >>>>>> >>>>> >>>>> >>>>> OK, Will work on it and send the modified patch again. >>>>> >>>> >>>> Attached is the modified patch as per your suggestion. >>>> >>>>> >>>>>> >>>>>>> >>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Dave >>>>>>>>> >>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>> >>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi >>>>>>>>>>> >>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>> >>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability to >>>>>>>>>>>> specify NULL values in CSV export. >>>>>>>>>>>> >>>>>>>>>>>> Please review it. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> A few points; >>>>>>>>>>> >>>>>>>>>>> - You've included code from backports.csv, but per the licence >>>>>>>>>>> you need to include a description of the changes made. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Sure. In that case I'll copy the complete file and will do >>>>>>>>>> my changes which is of two lines only. With my patch I have remove all the >>>>>>>>>> unwanted code from backport.csv. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, or >>>>>>>>>>> is it used elsewhere? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Yes. Will do that. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - If the previous point is true, then I'm fairly sure there is >>>>>>>>>>> code in one or more of the many package build scripts that adds an >>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I'll remove that code as well. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dave Page >>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>> >>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Akshay Joshi* >>>>>>>>>> >>>>>>>>>> *Sr. Software Architect * >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Akshay Joshi* >>>>>>>>> >>>>>>>>> *Sr. Software Architect * >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* Attachments: [text/x-patch] RM_3780_v5.patch (254.1K, 3-RM_3780_v5.patch) download | inline diff: diff --git a/Make.bat b/Make.bat index fdd62a0c..592d0d88 100644 --- a/Make.bat +++ b/Make.bat @@ -255,11 +255,6 @@ REM Main build sequence Ends ECHO Removing Sphinx CALL pip uninstall -y sphinx Pygments alabaster colorama docutils imagesize requests snowballstemmer - IF %PYTHON_MAJOR% == 2 ( - ECHO Fixing backports.csv for Python 2 by adding missing __init__.py - type nul >> "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\backports\__init__.py" - ) - IF %PYTHON_MAJOR% == 3 ( ECHO Fixing PyCrypto module for Python 3... CALL "%PYTHON_HOME%\python" "%WD%\pkg\win32\replace.py" "-i" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py" "-o" "%PGBUILDPATH%\%VIRTUALENV%\Lib\site-packages\Crypto\Random\OSRNG\nt.py.new" "-s" "import winrandom" -r "from . import winrandom" diff --git a/docs/en_US/images/preferences_sql_csv_output.png b/docs/en_US/images/preferences_sql_csv_output.png index 48dee9c62a87640af5085cefad9dbd400912c867..ee3475d57ce9865cfe1552f3ebe09fac96767519 100644 GIT binary patch literal 71521 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%0A)`EkT9Dxm4H?(f%Tna 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 literal 140688 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%0DPVs zvJjPIpq-|hF$P3J%dJ;S7Bi(!?Ngdn=+ZGFgwIu^A+JZi4^WM%i$ZB%D1WtkMDq0c zaz@Sw>O+w`ZCk3wg>PpQ4Ff1zoumnCMnLGuBxhB;B6n(U8|BH_xIMK#w700W?e$8B zv%xJJR?C(|rn9llF7LSLbkwlSb_tH;Uz{vhf?aOpDOp^%@_WZ~{`_mzp%O3|(ToY< zTt6Vh5g-Z{YF!$b!zg-dao!%lo>Ni`t5Xkmzhvp3*fzYO9Uskc<Ycq^>TSmeuw%@r zz%T93>2%nNAkZFf!+!@vI(KhJ=eSMar#Ll3yX5zYfZ7z?Qz>RmN;pCN`M&O1!?kZS z?K#FO7hKx`@%vH}*!N1FxgcM_t*n2hioYHdf!&Y<t!c+k5wL^RSGmcmWy-^h^kZV; z7ArwBWH*hX1z>6$Gb>x0m2?TEem6&Gm_4G+4@<Xg$dpOka{MgCED+9$BEwb$A?dy9 ze_(a6W<_AP#F4M~ESu7kO3WkU(4XQR;<>1Ux`C~D3yncJ=6%9cp44`Gn78tRI6`IL z4B-3LR(`lDV0HoXy8iQI6-iW7*PIeSTO|PM#~`qC_g&b&FvbZ2IA|OaTDRk~V(!@h zBJ?~aph=Wy-7f&H9RQy_QLiNlqUf3<(tZH5mHpsiG(IkFa8Z$vDl03Shn9$Nnrc2x zgP1*(gn2<$ov=6Xp8~y~520#CKrB%P0FQpn9#H?GjV&A<Hw1H@JC8umLWJN~iN)(@ zNiEz&BX^=@(SLxodqG39(IojP0Q&(t4eLUOed(2+vHt`3{EXC3N|`sr5gCN3C>ba> z)mB%IQjrA8bkh$o(hYT){X_tu`X7i50`4>s%t{ysH)OaHHfq{;{N9qh#n881LV&&= z;FqZ&oXyp*-G{agkE&u>{{21ryYu_J`)`g$oK$+2q1Xif#)#Sz5|GkPhKvsQp@3P~ z&8O&Hx#AfYA0JOS?Yg<D6UuLs1PX|{yNlyEI4@-qXU-ia`S;zvAV@sXKgwM@q{?`8 zapIjH{^^ojyBaidTJOX;n=nU0Nsoxf(MCck$4F_cDe688P8D8=<NO|PC|bby3!=3j z)=eA12Klo<)+tg%tb4ElLe~LO<q^N?o(j}S>|`wWU((%u-lQMkQ=$ytRi3~b{*&Yp zUk3SSq385Hr6YuqJMT-&0e#UQ!GNE7lkflG-R=h=p8~!@ujuqAat{QG^A2o_f8VNq zotv)lp=Sj;?_8is<lj?(t^zx001OrLFabN;Q+v?}`v3K}|6=OIjVFG83YO15dHt|P z1(N?R2>);L(iT9?*E*h_C;4F)jojo~GGGHRIP?~bU=n$+2G-;`ui9SV`QLv4@NeWE z<*t>;|4;>te55MafhDwDR-9=4oA5n#*fcBB9Mb=Xp!tVSqno}TZM@hQ<Kg~lj5bHv z(h;6S{htJN_u$FV*tg^e&F;{&@<FtBa7B?jSqpGV3CjAo=39O7U+=*8KXT0mEd&0u zdIEiRxS^q8Tu%XqTGpGJ?_cVH(R?24d=J%qJ1rY-f?`Q}L9@i9wwS3ZC-Lo~(&;&v zpmSk@Zih}xY2?=H+aHc6gP}rQG%|n0tlJ;`X*B!kbAUx4e6vsADL@>C#f&?j8c7ed ztlcQ&09@1hJ;Eb|fscX2gGjW7SVfog;KYBiTlkpe+dtTO6&QC!Vb93nrH%w~A3j|R z>?18Z0EFJYCISPOt#R1lz%Q$uTM4Yp!13at3cR~m+kM}WB~UGR83N7f9ObwI_Ie@A zS5)0o2+SO5XxSlynGm%;T6oXBnp)GsP0O~+ke!#-@gDSqwfxp2x-ekpfQ++7xSqsD zWRd@SeYBPbCATCfxkCgG5q8JSpe;vlwr1;u&gP0r>mT6uV+eP`SDm_jTR<lk=#n>7 zwVGvr-^Hp`*oqQ?fLoDmZ&i<SfWSHYM2js{PPS<IJ0wb$g36!o`Twc8;~IKElKb2f z5LBe)rtbQNXh_J+sFoJOTt@NZEcJHy%s0j%5ja4012xnx1^BLkR=GC~Hp-bW*A;j( z)XOgd8zp}M^J*NbXF#yxbS%t;eC~|=zMPF;qQ|45$0N#LrBmwfkR47s=L7-<_I`kR z+0Y1(16dhnLpq$b9R*GR&*SeILiwntmz+~iggCx8g|-t$7)&A>U&4qmJoOXQj99@c z-*$L}XXn~C@E+E51=f`HArQ3Mmh$66wBunnrvXqHnd7P4gpL_-n#wdUU9MqPOwffr zj@=P^X0^lP=1`%b;l0)|`ijp=vtN=zao=k=`zP@;BTHA(gK7?PBqa9v0LWaJ6$lvi z<bpY{Y6W(XJL`u^=%PI3NpAD@lwh>tA#W>A9@;YoRv3<S`b&f7eqE@mp<e=D-p^Fy z&8fUYZwVCG0j%iNxnoG#irT_m<pzd^1-)=aPfi|mC<X!-weGvA{JY=Pt7rftXGPnV zRWM7@Djx$PhUL}}-6k<2i>M{U%@;TW=x-RtZ`1rW0g>2My3>FrktRa!zz*r&z|he& zC<2)1N??G)68I&H6Z+rv!;Q=X^4HbeUF?ja9c8YY{Yg$iI*^EnRvDko;_rRP#<gf> zNYGM#`G$Ev50VnJ&^mF&8`1g&Co?HinsYJDZ;WRefH!9L8Vs(wfm86^tE+;2v+!GF z2QbHa?@(n+WIF?lf+$@f?rNFq2pl)lzCg}`Bqsu3ovwLL!Fg=y)VIPuC@kOS^10`k z;eJa+zfakJl^u@k3qTQ3l&!mSL9A50e(b9~OfqSsf^9cy1#Z4STm+gv_oA#{Z)8O? zQKO(R^oUd0-yz!jsiJYn+%@WXs@w9@7q|XycqI|sbP87u0F~^yw{=^Oi^ICy^b`=L z>_Qn|MwVm2bwo>7d=4mukZ4$v!0zO5E%kk>ph0n#_nB7~?seKU!cO^PQ|{vhk^XIQ zc-@G`Nf3RyAH#$s;EGV{2h!7E`>zUP-a|3w`Lv}LxY-6E^{`wYt!;`D)2eyuE_?8_ zltl%%$dLQ7zM|Vb!ksq2KhM|oarY7yU_Q*)To48@FniHgh*_{5X!#z_f{Nj${*+94 zOwuHnd+$2wma&8EvZ!+Ey=!}(?DuBK|3t>zn%YW!dm+BrwM~7@edF>I<<ymyZgooW z6gFlrmITI2*^!6;FiT*R>#B_2zsTn1DqI_W=fLT@2cc)(mK?(MCVK{ZtaQ$I4u5Ky z;)|O3x)e236%K~7^&WOfnypLm%;!AxR(ieZMO-2z3goWp(PAQs%PM1F&>$*Blt79Q z4>HKnmNs4n(5_$|fWC<D9JK|!g~UMHc^1vK6)U5UqQq)f+9b@JUf^W>l<1O*cxPv( ze(w@9ZR!j%2eA1RvZ+0<H5z9;n6xknL?kQfY^JkCD_@hfHr3<(emypdrtI8KW54YB zNTnRRM*ms=lN+}%xo}d$<7^%UL!UdaX5uk!XYE)=0_KlYhZ&EyW_yA~bfM2tKF+5^ zKnuEfAa`1&I%agA>ngFY5I5yzw*lb45Tz|LMYgRua_fPN{G<38DbO;0w+cVxu|q8C zU=<JL#&U+F8v%g{!lDY|Pw^IeBJOfLT4mvVbx!{ZW50Yt8>D<AgS$&79KlLf>*=r^ z<C|vdP$PuCK)eBgo_RJ+;<S)ox<#`?QXtmwCG$vH!4S;_as6jcyqx7kV=?U99+H^+ z;>RmA7tCJmes0a-VYecr3Cl)gs7MPDN69j)_2w=IX~Z%omzERC><YD|mp+(JB1v%s z)q|uE*%m(LeC*By2FU=!>d>?{>qj&XLo}7-@l#3{6Wqng(mxwHeRs6|p%eN0B<Fof zcIV>9p7c*~Mh8Sr={{YbGS_k0%c0cB1#3zrI~+!=M6oMQg)3rpX-X&U52iKwmhNj9 z?pEXp%bbv%nz+nWe?v|hE3tAYQAavxq~l=GLc7M32U>+PQIX8Sih9`&b2qV6>T0Gy zG@GRKkZT0BK4a%hN8;zkhb$L+b)sIR-<)0IgGp7a27{yA;(5Wj7US5O-JleUpSq3} zTgi|dzFnUR%c#EKk=K=3St0Fb=h&0>&*=q~$+RhezRr%GyDi3iWAz1=3wz(l`D|)6 zp6AZzH*%eWt8FEULU{asWmk&h+|t7%RqU?CaHhd|A5`E+lbpm$f=>U&OEl6gXybRy zsGv&+q$8+}r3dE5o}4;!rfAEhi=Nt;6Z2j}Rse<(oZi5ZU9b>o9gWA#NBIe_=A=pN zrnlB^LO^g@mehLE-7^Y+VLfINRB!~dxw<{PPEFDKGgyNnC#Pzug<X_pmcLfQf~)k} z?YKG08%+KzsfkI1rQcn&^RGKxikKF?uH+F?s1RUr7pH+efyd(uHAd{H6FnZ9J@b7y zg{=+@aVLDf7%7qtb6S)rC__c&i^Qf1mCc@oq<>Y2)8-oRYNcNNsa^Z2m)fbo(8RQN ztSxysDVCBoQGvNVq>?=Ker!@O>I2_RQ*K|j$>J)}RaRDJ6l|WiC{3KL*@1D<F)UeK z2%$8~2D<cTQ_9<Wj`B7sVFJ$dPdkT0jWhE}d=$1}7cXMxIyJS*G^!1*hK!?f9*cFC z-JYpCNL8AD?(p2*M_rnlc;u@0;Y=N@>B@cyJ(cUmBZ+s@K`0wle%@)%U~hYfJ_%&x z#&w3Ka>=a^E~TsLR7no7u(0m>EZIyWqn=E-K&}a4ED4*cU)F(5nFFgoRS5}+XX^pW z7b`q!R2Al;9y3Qfy;Nu}aB)>@!)^$csMM@it*S&GvYxw$%Z~DE--lg@iAZbmtCQWE zkjP$VJf6-rT9Q3_*@j}1F7XBlJAv{FhW)qu;}Z8k@cr<HypGbz>JC=^CS9}_H)dv< z{@RhQbK5A7Koi7Vqzz^W9qU@){)+57o|TKW&@#Wu2QsC!UMCcmgCRp1g8E)hk~_Wq zg$+IkQC9j>X0d7JH|-VEXJI)x?`+hYlocYPGE8o>d2OlnB}=nJh_;+_;-$vC=E_U1 zz8`aJ16_9P+O_Lb(YC(Dfe+S?G3|;T%EdT{@`ePVi4EA=deIM^|8>9929HO1vN}fb zbEFPzvO9{%{EX8IYEmhb*K9FNklr+k-?uiVvuOl~4e{1`!t-`9u#Fd=nItTzwMZwe zT)!CD?hI0@Uf~WV*5+<4BmTS;i&U_*nCt=FS2w_@@&>7#b`0ZwgnU=krPY$eoV@uG z%Jlr^rL({@=_qSwVyU~_vLlJ<+Zt#I#!<9XMBVDu*z%-oV`p&<GqW^}Gpx-^N%z`z z1edy}XAAR@I7)2xC#XJ_+a-&4?eAzcfnvaRXK&O2_SEOSNxWmdMR|_U$z~}`6#(Lh zf;4-DAQA8DBfX$~%!)^#I}kttA-g?(@BVZ@4cx7Y20pnmKD`T(WR-Rvxk?uY)9c^8 z+cmL7YdHdx_Elc9p8VrVw>F?V9qI(6wx<@h(BlU;zRj(zLgV+92iaX9OVd8OnG()P z`k5<KJ<A}SgndfgVu5;}U%LU8_N=aG@aZJW`9E5rPoPsTO0};o<*b`pYB}~*0M6Hk zeOg1S=W34*OvX#pLF;x!a1)kKwin~^+=>Awel5UuyMGbxYaJARSE+O*mPM~xE@2PL zyGn~R+VoD-7a5EB0Zo=%Pi1_7l}q@}7Ft3e7{H9Zi|}VBVAEjJf?+-?Z`ckr?%zY$ zKZH>(K4iY{#Qgylwo(DQg))D<3b~Zqx4E%2sWl+DI{sRV{CR`C9KM_x6mVfga7#lD z6+N~%*ZB!z2W;hrWR3{hXE3RL;8!WKo8plUi*IU>-JyD9iNn<7!!fLGY=%UeCg%sq z7HQ@$3Rqp}bY1hby6K_(=78G)A#4`rmriH`ZlevzX#u-QE@>fN0P_(15Ze7=sV&!3 zBQJ4Ex@?C>D8Ei%Tn;c%i1ZuNJM6q%&ZB@)$c{fZ-`fWa<?nF$0Qh1gf`-2^dy<#L zBbD>}POj<ZyHZJvgoXxNV{CPZJN_<qgwt`+1QC|v_R4O3ob;fzfq#rO&l8Kg&|-ZL zBh-r2!>iDn_AWv!;i07C3Xfu+rXjwdg#+~0muh?7>ABuc5|Z{w(7o;!=)QLXfqu9` z;T+gOV7EkDQC?v(xDKAU*x&bo&uLf;(-fDuo&&xeD;ob)ay=2J#Yz4|Jx`*d5uOG! zv@90Di!2Url-^})RqMQBZ==yUc|7!!@gpj}={}0Po-p&OElu{Og3STA{5+8xiPs06 z38#nTr_|VU$OLt<PG_UJKoEFIs4uy7oMXX}z!cwUoL-`Q^1XsZLZrO3@5)D;4b%sJ zi(5a{YmSV^?<ox^j>L_gSP1=K2h&1F(R$Kk%ehUh#IoC=E(4?ryErQB7u_#$D82Qc zr<mO_Tfr?XO&uSUbdx!GbeWqjjLZY}6Iq&V2ACS_Qujk5VIP4gGFDlIoN4J=W*`hI z-&ARqF<Stv6i>(meS4y_R(b61NK}(ep>p~(-iTg_J&}SA9?Ql{!<$1F%I+A;;_eb= zdBT#DPHBxzQE#|_2Apa%DSFAz&(CiCD(17IT7t#ZB{rN78@U62+I}VlT1Zw$PBoK9 z*TWaWMx2zKna(O+Qz{PN!oPWQnffW{v#QAhJ{{|BS9Mt`>MO8lT1woasAQ{EXnkjC zp<|@LiDlH~u8W6%5+n9hNZLZ#5mVzZUXM~tWo2mDRa{%}SB>Fim#Xwzv_Bo#KlX8M z+nD6^0dEtR;GXyEqB0G!m2R0}QdJOnM)ufik?xHRlF<MUr7$BIxH)Ne&pdKTj`jnQ zRuMA;`992b35>CqpLok*BXt3C4vd0Cp&68M_MM7yiAnfri#Yp;!R3^u@0xO#ujl#r zx;##u(xRPTmn@XUtx~lLtxZ>br*1?ll<9XRR!WqamK{^UIs4m4xr!(*;G2~C9;Zke z^Xs%Ju6!i$Ur-R)u#3@$(c$sC#49I!LY>>hBBxzNdispX6IRS$gt&GrLL|U~^3C04 zSI(?rE|s-MPKj=6$+x)HR)r>=`$fBEaeG(7mNUiVg-wC(Tggu)g?kNh7jp^w<nVKo zU!lTb3g(%UsUo7&Q|9XU(<J^VArRe5T^*)qM+G<iCRThDTZI(Lx~WZXADURMo}!)q z_GGE?)~^xc8&Efy_AYFeMgYPV+8`TnDiZ-_hRC*;L&Q`!#pl_d7K=Zx7k<E9FP}l( z0f9-n4L{n)Y~_<Oa%?94HTUTfE~T*a&X8bAEc|MFYf<k2VK4%0&_P5*4XWJ*qJ zt0G9&ETUAP#kgT=?>)R__wD*~q?lleB5tDFINGO^Ttv29S$iQ0)-pZaW`Ngj;Lecx z`}^m}+<wzWqW)K}j$TOBgH?81Z0s9KQ8<SIZ!ExM1MeLc!B{CDzlx)(Zs2MWLQ)o) zppAZ^I;~_>Q2R8YvC)rjmyfKm_o&dJj>Av*&i?j*)EYo>+kd{rZ+*O^C7t^?;r~p} z&*zoAcFm#<+wGf!oZF1S=z~@V)&=@-(Y_mm{yiD}_?Ds9FOrPR4X@y`H+_8Eq^_<m zx!i(z>A5Ps&Y-XmX<6}(cr;10S2xqBsaLTa>Uit5FhloB<XkvOokN1An`k_j_X2nE z4QHo-RizezU$<yG87wR?Fd`#Y3QFe0=del_E!uZkq`j8<tyuFel0W!p*Y*&Qwq$Yr z->n=52QE|O-w6m^HvlOqFj%<xPQ5k^HT{spW@|4&7drE9>G#!Alm1WQiz3SnS;r&R zcQhn_WWU3ma`qeds!NN^*j;<)&74_Z5;rdZHOWeHa=Mt3Y)=&z7nf6e>^2J(+thB{ zh{nCTs2pk96KLKtl%5l3oL8{5UDm6w%+1m!hr081$M~FK=y;6z9H#FAadfmkMNc8p zwKu8ccZ&bsX#DjmiOP|21MH*qO?FNs2SC!z`9BD$y+w9JfHiylJ>R{1$FAv>^+ZBQ zORopoFHH{>@Zw7aB8gj%dGk0`?&pVe?f8tW<c??WlrLoB+Za=(qv*QHh_;712OKc> z{_+CoN$((L*$`8eUUb{uDN}yPvs2c!X&2?j)YVU}V@9fo9aVHpF2Xq!Jox%p7lhVm z!V;J@zb7WzZPvo)>Ky{2<vRNkIBhH)k68Z27ur!)4hXfEpn>Ky+12HXo413XKJC}O zbH~lL1W2kgmOdQ9!XK6F$hk|alk+?()3(;es+M#=&~kH9+i~&Cb&rbS^2)x;4~MQ# zUYLDn7rM_q{`2p@o)8}ixrt(#$~;wUZF2_)2djHphK7dJm6ZdL#uX%1$KHOU>F~>& z^E1cQ+L;}==4x#@y=$H~I@2)$?j5}oMeV^~uR-^3BXeVCrW`YdofC*dEsgCbx?Z2z zztKzXC><ckwO!&s)6_upL3NF=2NC$YETfu>B(z(i^Qf4>dH5RiE!2!S=^$0(#KgqF zXU{&hA2x1de!1YkNU64!tv&qZ3{3bpoc0dn9boDEZQ!48``=}Nw{tt$-eTnGg#j=D zSbC9KJ3gn)oH})?U<N1fC|CF0m5%z%3EJO2&^iB0t^VurgZJPvQ#p;cygQYM(5=xc zEl)f}ab(FC#<@yJ>5%ppi$)r%!WP@c*Z>!n650M1Gy9CYbZyP)0*`6S{sd;X(YcO% z4LV}3i&F3N)n9)Ai?`n~H11+b+v=}0+QGrW_zac=?&5vHIv5Hs5^w3wHwjR_Q~=9j z{o{`cCAsQqa(;~)3{EsUPEKoE>2+eia{8oZE2kMN<|tng5uf~hVtM0p<=FAI+JJ>U z8<rnQa%&mL;o3r`-VHuJJ~Q<yFrJpYetnl^%4)C5pT~*X#fxr<&B<U5y4rh-i_V0Y zTMvoAfdD=D)~_!)E_R*S4Vjl(scLhIV;^4!E!2;j<9Z#{p`eTPnh^`zKH9HSIgWbV znwYo{uTcU%Ap^gQyk^%bQoC|fWXwU6-nc6%XMJq+%tX;9E1MIZ-FC5&W2Y89PV7_H z!GTR9<BpWv7{BX~GI)$;G~0P`w9q5M^(Ho6DtCBeIor9+%yi_{A7YKKcYEsGsEx3Q zMpVh{h`qmV9^e?sLf@J4B-1=d=i)V3lCyTun{LuXv{Sb@${Bmd<ru4`=}Eax7}D~s z6*m<mc{Y#LaR}R`t4$Rfx|XiW6fHD}bWy2nwuddvT&3?;I};)IB_!3OG=lY8r{&Ns z;(1x=3_Mdk>sXAe>FD$7#kcpDy7bsIx~|8EeR9ui@~GxfX5DP4>9I&9uGTuzv)Xda zUL`lT>pfR<T5#o&K!sml#QN;+#$avSsL=R_Gn;x3^Kioy<cn#;GPw30A${Gj-<sr8 zd|B>YjoJO{@0sKw8acObg}eCf{K)UGjqME$3{(Mr-=<MD*15P>I=#8u|6SvQN_KMb z_z0U^q4gfg#b(;6ZmaZSJxo}4?pQxr2KKkG(L!KzKkT)rS2EM+@Gkz$>^QRkc{X+* z^LB08H>4eQ_7T|p($bI(yz8!hE7!>etsF~_LDskIro4+T?W}g1Z8zd6J@pN9ii;O) zSISGHGLl{H|7N>+Vql`TVE6dCpGcmov~%yuUfwRBs~0t=%&rzlWMr-Q41Eh}E8rP< zv&Yf!tN(5G<aw()fwV(D2c$VjbyV9q_TTmh!e?Pe;=U%T=a5bCKRwg&?fLWPJ>Qay zx`mW1)`z@)H(SG`Z7f$NvmeE{GDsWRk0!8~40;Wk-MvJ&%5}?yk?Zc-=q=NxV6jS$ z%$5f5n(DJpHtoyoC6~T>)WJXWm^^l$jOzr|1)=CkmEytSVd588!9m+wM_t`>cvB2# zu#3x1eOh*%(dnhus~qcXo1HI-wQ6CPuJ(23Ox->+Pk)=E>|3!G-)s;*kwU4S$7<3E zUM^n|)3T3c-?(bE`XbMoJc(2OcxUg|kAi`o^{T%<6nGQ1lS#*^Rwa*^i&Zq5Uf5vI zwpuB&8h@ER-!%N0R{cp`UO-(?fwZ)If=%XeZVwq@`{qI&>b1`bMGG}!<877931epY zUC%?gdWW+%DP^3$eb`~uvoXhBnE!quH;`l1PiSVTtZ*(zri0FIv*3-fC#7<5b#-;u zV34+Aet72rNAq?m0mCL)Dg((wuKHu`X*ul=^O)|aS8@oiW?QJguU~vE6Sg~fJ8jV_ zvkC15TW{h<^x38sK7mSiVWn559GdhKuPfzJ#Ep_dW$uVa^{tINcr0lQ;5$uPa>EQ4 zX?6F~OltV31P@r=A0nj?Pf$dinqqkjch)?{$R~v%LVEz~@uFr4B>lt?ZV}Hv)UBk5 zA6zy7y)vnI?lVb+dxdfS*m$>tt}yrPJ!ZCXW*29L-n(W&HHB8gzMmhSaG4aDHptst zwJ~OM{P^(qMhB}EW3#gM4gNIQzDL6krko7F?vC>7&~(K<)(a9D{Zh$vK!Cot&3SD& zc9&TRm+N@Az-C9o5w6HLxLr9ioe4VOQw?fs^~deHB(dQ+8zp{wm5PM;HqvbgyGl%^ znbybOzu=rm<|wlmPUN2)Z;{DPzM^$wfPPtItZiXu(dVpBwqx{ZuLaCYKDgM-khc$v z?8Do9@X8|`Rhe;|A!XL&PQ5d`QnG~{^d?;%M>BaAUX6gmkr~?j>UDHiO2n9YC|!ij ztPJ;=;aaA-=;dNi?P;iO);2LV^K0v{t)27!psqHoHD8xdTGDWpexgCe-llFUJyS$v z%`RDkSIYpG>Rfvw<<`_5l?rYff`Pzj>&3Ls1f3Y03cT<p$I?uSm8W>hmN|&t)xqIi z+FaG718$y3&+kqvTA8iHB>S1n4M|5yq~gJ}zwY3{6X}LjD!hXRy?1ST`CKI4@4LG3 z-t34#!!hS?TVIH)-=(0nt>Eb4)5tT)R8FO^BNi%4y9H{8G|bcxCo{f$Ii353Xg*<1 z(Pyr~W1jn3Mz|tX2#?`}8BcTL7@YOip^1ABuCbFk6B!uLnDRBtGw9M0=@OML(=NNs zJ9)R8BBQv?dQK)0bBucN7G9N-CbQ>d3%nA7&C76keKrvqMUvQcarFqvM(Y{FGE27( z0dr})mSt}9XEcRVD!WA}lqABqzw|tEejvl%BPad}k5L>`I&8nZpD@8V=(n<PU*lHt z*f|`&BPpP+x7DkPgAPZnwKfoP`_$fxSg}&xiHXX@gG5i6BNl{2p7HnC-6B&tGp^2W zCml!34TW7tKJTRc;A_0H#+??VPi*&VqAmJ$;Skkzh05W)Mx));)fE^NlqWKf<Zo<c zWyQwAQYXCp<)CqQc4G1*m}<%Ekt>|YOZ}R5TX<=zudMZsQ3-2KjNj<Z>o%?_n#>FC z8TT>SlZBglv@WBJ)bA7cuPb4-y5qXpE@+OmCo3>06)*5@Y|oP%Hr|^$y|}`H?XBf8 zB~ts2))I232deX^Y}sCJJ|m{)yde<zkIlSpN-V;}KiQLoTX~n&Ekq%#aB{qP`AF^3 z>rnH}m?G;M+H|7lf{1^cv|?@D`LqQ7F9yFp0rxZJp}q<F7dYuP59i)aO;H7|t&R>W zpeWLJ5=Iy1o2?(-6`v~r{BrQ_8~*DyEQ->xnT*8_=#ZO#-C*m?xU+>{IX>Ltm6l^$ zx^&BmM_y}{diRn0jdzN|gXb@gICd7}UX(00KQY^En&aS-etlTFWns{Cm&d>&n*!so zpHfXx`)PsPtLcxlC<K?e@^r8#*mV}Q-dJ^#vNdXxMS#EdCmL+h^RK{OOZNBT_WcuJ z$S8GQRZmtPOjk`BvC1B6`k)mucPDp3mb~fCky_$_tcdYknWmB5`f`+<{o=UDnXc(M z&j**-dZpYtGj@9xt-A0IJI}Q+yKLZmotGj`nQca%Z?v5<T$eABp_^-bs>-|9z=0T@ ze#leCXQ;4AJRtj-LcZrqGLk^XQBBnH!(6`N(Iz&iHI>NB$6Xp5dvdASc0U{F*;-f> zusH!Jmju&M*-bO*pRkA%N_%p3t-Dk^H|=ceibs)hRC|Zc2IX1Y@SP*hVigVJ!RLD% z(o5&v9jBURb_&cU$e0zSh-9CB*<Pg(y1HS4_0V+a2BZEuEA@Z~Y@W8Wv9fCQRT9c7 zxBHR^&cq&R00BKLLiK?g=f{@_(?l1rw0n_&!p(c?duMcwO<1^MqMh=tRbQi*wS>na zj=xgm<6I<;jXej>?v!gH(2D0)4DYjA)eh#bRvu2vvg>oHb3S%wS?Lfxz0Q}lW?`V= zf7#dAxbfEIn~N4MzEIzBaXgbcVl#-SY@=FI`81JP<I*MfHt#1#Z>DJ!bsuukZcR$6 zX^)nV9u+6`E&5UG>Q1k{FnMm^+rdjwtzmh+(2|?(9(UvF)rF#|<(hMRyXvi13j_Sx zPs-E`I0RRvZu3`dJrhCGcDP}E*<;el!<Iu>q~N_V2%HW&&Mm0)I#h8SIg;6&9*fD4 zrkyjH2;nyT7?XWaIaO1yAX)i}pdoazQR~8QcTX_(B)mtBNzXhfR;}nXdLBa9Gr$rM zk+6-MA}>zI^fn#~rIxwX0c7AMqpsQ7(chL{*C}wo9?qgGeX}+!X5n>O{`hg?%OI7n z+#+;6#xQfOkLqWpa!|V*OHwwH=WWxQX`kqvH2ZpqT*-B<PvifQ_vZ0X@9qD1DJ|nj zr$b6f>nTIDkdWn2DH&u;c8Zj-XWyk7N=cg~vc_N-ld^A93PmAf-<L}EeK-8Bmvhej zz3<QGnEUhp@2~TCbS!W4el6Gayq-(Tl;G`(LoZ@SM!FJ$=VlWt420jbuX3(v(6fF; zq!ns*WpDMK4>0ihbY`gK*|jf&--_l*Su*VIEu{%j+l;QZ9`&ve5>-7Kkmd69{ghR6 z>yWF!XTj0M#au12?68F5Fy_s!++nq$H`s37EaDESON4Gr>mydJ#Rg4SWBuy-?=7In zAZwi;Eb0u=4M{D{es4pUY;|)QG-DXKH=eN6wgHDZ+tm%;!6GN98I#jWi<NLc_f`}P zr%DerC3{)vylG1d5(;h(F6!OuSjZNWL<+i;02WRa3_d+2fv1_3gHQYFGEh&{ME{vA zIyi8J_jF1&CW8A4z#Du{Ju+OOZMA2aV;*_4bL~wM_X{&&N}oqbbhM~%V5rGndoJ_P zDd?)ybfMoaaU6A9+p%NwIf0mxU7kO^nll}fIcO8Iox_0*R0%^~FE=wiremK+`uxIh zicV%ncVLTS8`h!ATViO5AuuR9-EI;tVP)6zX^z~^lncjaZ+hPJ(}I>IMdGn5B-Cav zFkM&}tU<23d5U2{?z!!cDbd)bF-&p@@GUO`3i0~SRy4^>E6A=D`0y4eY2nr_w(`%P z(}9mQIPF<dFhlL{e(iHWOI6S%XRbaZl#NzR$qXZly=femz46E6qSWh4l1VkAf*ZnS zXuN~p7^;CTk!0Re2i}B8lMCCumiAfH<)8UrU*42+bu{aQN5f@av!JP8_!x3VF165- zxJHS5w>7__o^Z1=E4B4uMy0Gyhisp2`}Bl!Pbj6vW8S=z_rxok>8cy_r9!{OYrF=h zio^=L^PC$KqDB_Km~-oLzNV`!gw&=QG&@7<2h(Qyr#?=(b<ayPsZHWv7MQL|(Z|+e zmZsm6I^j&gkh<pF2buwYXI@Jh?yUcLda2z9)E(S8s{N-ahr#vn<Kj@O_ngg{$7?+P z87}d;ed#hT?Z6W@>WIdpbYQ+Q<dlE(^px(5ElD_{N|SN-dSOVzu1iYdj0!td8~J?9 zf3lBJ&wT%C(MMt--o9d~_y8$L>Adxlq?}wkyH01%9UG%*zoS#5MF$S}8n~rK@z+W^ z(4jFThFyCVOZD`7I5o7MV_;FKB+sj;v@1)TtVY+_b#$QGbMk>`!BK|DArDpWFFjE| zvaLu?!`=%yFz`tx2o-)*7te^jCFULBEo!IHxgMu=(s52@heyQ`=hR`No_3FU0jnap zNYO1$y>pap^%JueD*u<pFBH7ZsL9b9@!B)#H{Nl{%<YokxwI|mnEVw)OhuEmug)3+ z{$rXhJbB+rdw=0bSd&6X4(2fBwyOna@EPLJo1z?kQV)2kzxTXk%SgOoSA+lU>_Gl4 zX`Y?d+Do^?E7ZF$il4Q6N)8SU)gIa<ex@7TVOnO-pLe|AvDn35W@6Ij>)GN#3c)rm zGDmquK2*zKrnno1iY%0mZ=x$zb&q)hT6-+Zm65~GgfcX7icQmnFi(55{vY3GbQ6Y~ zHbUX~_H+htqeFt9?}5QR0>0i}XkJed7x^V6<>%O?1Dg&2Ff?(jdC4~QL-=V|c_&Qp zR6=dCQTv2{=BL;cWpR?eIZrSBSSioo8#`GRVDvL6JYcR7)CsZ+OE9C&1TEB9Ks2Tj z#IiwOUPv+uf)CH9b&)YPl~fkxB|vvrn9&>)CO8qxBym>SK^9ko>d%-|U%-zM`3iUI z>gF{h<zu>Be?qX=%0DO3dKpT@)W;~pnAK-FgR5e%xOgo%Q0e~!tEXi75@$<yHk$nI z={HYhNPDgcXKf8AqZjH3%dIzA`5N8572TrRFbSY{DVnI9ckFLEuun8=9p?^!tsISq zV%9s_?6Nm8X2I0oDU2TNf6ZW?;s0p{qp9EVDwsNuDkrBox+!~Q8ujY66zcMzqD13o zym<cD__)a?h;89BapN)%NMpZnBDd$N`TNlM-0iIFWOwdGkLK6KXV{+7WUS}BRXfXx z^Kfd(p0VW4qc68K=($YQ3uS7*bjuLVxT2t0Z?_yBz5@RE?C@r-DZ%e@`$R-4wrtrV zeDvtobbbpe9Ka}vW|{)@jot4p+75l4d_z3~MZxCtmzy85h0jmA@w%Ons*q*zb{k;) z^>2{&VEadGXJ6SiBeyH2Ax-&b`h~81aBw}c!DC`@-SoD_EW0D8eydyoiwB5TUU(yn zUx)_6)W`7A-O}ABbS|ZATl-_b+Kj0$PY3cGn+N4Ave+f{=O{neq@9P;o=2s=iMPmX z{58oDN9SRUD%qZ+b`o?f9z=Mk_~Rl%EUdx~kP2f`L<_Tulczb~s{X95kxK8#-(2G@ zvFU7x!K}OfW<H}gz7fH}8ViqSS7y_$Vq1-#`ag$8-);z5c;Na<n-hKfnx~5VBl$_9 z?EL29Ws>F<_kSTo7<6IQM^*2BS5ba0<Kf}N0sjTgH@quuBcID_(FN;f<Dvy72wY3s zYBTEwbzfcf39maMBh#v(VVq3)4r13=$h`<A9#(H}u7*NAD={+g=`wKawdK%4I~T-q z`Xax+g8sX*^GFO!*XeVg5tq8S6mSW7N4igYTejslT7hL!&9L1tOm#%Zo^$;h^!{(S zxa|lBFmcEq71!zdqTv(lq8k=2fTZ!}Tom?D|7-e`rtPzp<Lm>Lu3LW|5XkTc{=ytV z&ZkeGnpDI>Y6r6G(UPeGMoZ`pfi(*M8YTSGA$!*lH3kfg1N--9zZDV@5t;j{ImUy) zb&t;vX-@>ASSyci1361mnX&!Hw{O}ooFU54v@LRSa=_!&6jdxhl`m}?*~Z1<(1pdz zz7{TQf0#6i6~d0n5zn6*XvD7;5m{Ntg8rnt;s~h#vFx&0@H6lR;<l&+1IOiI3t7w( zPRP#zfvhD<8%_ge+Cg}84fp>*)47B9ZAm2|&z?abo)xQ|0Z%^3dzq8gx5PiT_Mcz& zpF8&Lp2M5Xw%5V>YK0N(K{SG`o`LhNwILn1@;QzE#>7Q*ngJh{WRRBYs|8jyf&<2! zw4Yx2vb$42Y2d(XcY@VttNw}2N0pd(WIx=H1zlYL32$DvJes45Iz^ZEtce?wZ2(r4 z6)<nU%g9uXBVIl@H)jB|r8?85eV19g!^*@XI5Y=n^3gp1>mnE!o?$DHm5`_htG1Nr z=(n1^wZOEKpAW2Q1UCXJ;7ec1Kc@WdF{R^MO|q6KYLMc}TMN@nN}H^*TCX8Z3}Urh zs=X3X0$xX&7NC&;&1wb2VBov7C09NM;fXXe&>eDXKgkgIR}L1Ygvs~M9OVMk`tSD^ zQ0lh1gCj7Ksal&AE7C@=G-M7UlJjkgmgl7f$pvlDRP~WfguPx=vV5O0!mw(-*N<pK zb0;s)7P4O@Q|d;5-f2gtA)-FgN@P)q0>HDhK}_(1g|Tvx56HesaKa6eMW|poa>nZ^ z;^FWZ^SKkWoO!ly5LmeufWU!m+`#gpz{w#vp>alos_Wy#zagR|VU=<>!-)XKm%cfI z8{ZEnJz7?fg6}TyZo)hv`Pm5~ikhIwzdyqSvjPd0(?0lQ=P@vjPxGxWeCriRc70IO zlx1UsVxtfR%L&MbO<**1J#5`5L_Tpu6e5o^h}LW6(}irPt7h~QVqZF;fJYgkc0tCJ zUC94-*`PSns@b=06Jz2YKyD&G8M#*|M;MNn7O^iTc6P5hfw{X$Zee6EGo<G|aN>}M zT&ByYF?9Cfd2!&EiVidjumDKph<F25PR_Kh%1*VhZq1;}U|(fy&3{r(l_jR>ghr^` zz#jfuPLt-54m20p3`CDCG<~0L_qKucwGmek8WPgu+m~Q0T-gIsAZ_^krsjXm$gDq{ z)nY7~KXQvB8XoOBWWs7Bmh~e&Q0IF;J=l>25WgMMCx*M{0_LB&^L{k0ANA{yo6Z1= z7-8(j-mUHdc3UGD4qv8-;K%D{EySo@$eT26Y+)1<3Y#Dwt6O!_v-kF}C?Jpldh^zF zrjt9oH<dk6Y`HTtE`uV~g^P0*K#>k<KFCGLXYJrvy|znPdfVVp9B%{UCG~@$4RRlA zDi>ldz<eKtJ5phuiE<>$KYcpNuIEOSZmI;yD8};h*c><~4A0?zB4b+h_Ivm4SxbwH zi*u_BW{+J7iM;TR@k|h}AJhQ$Tf-GQz<|{3i>O>{+#I1H-c}hesQTjMS9t75b-EM; z<i=GMlsBnQKA)@JR`QU)zr?nmn&mr}_cQjsC2+h_!;u+6K{CY>jG2DT^ZFj7)#61> zBUiByV!-}>b^r~zxCq9coHRJO{BA|RzDXI&CXb9CuI9emoMkiZ*E(@$F4|m>-4R%3 zT>SV~>0l1Ut3Yz{wK^27QQH6!gxi{u`)G^I`8?uA!aYYwui)-I?qHl20L!+CDoQ49 z@g#*%Ue8SpTA++ts&-ltIMG}!<#&F;51~bMAi0?T`7%)d`|~N11mSbiUYym3yT2aY z9_AYuV#T87yUXb#FO(0sv#wB?+Qw}=0%yAq+1cCU@B>KJgmOB;xW^vPXU?Z+r8KXz z`r;!T0cTE;Mb1{rgH3AN4~?Hg)yWBJ4^L9S_T%Jp4e|C4!v`Z>iXu`mP>{{+t&X1` zU^v3U<{}v^u5C<gQp5d`7)Cyl55X|4Q(zm|Pu6k}Seyq8$jjU<>1a@=_eB>LcaYC9 z)GS~y7?srz$X^(`I%#!cvh+f2*tN+ws~vpYh|01Bv9mir%o%i^mHki+q_=ePk@GwR zOet8&b`??J9r)E%U<aGtR7eSRU18UvY{R2$%zcsgYSjSG?venJL`IWYI~dY^z@tFw zETis7N&9P$?F~If&rHvPFOx&1=C|Ff563NNgF}KYC<tKS+lft3&hA;=Ocj3xy;6&V zdtq4LP0rto0<==~d#6CF^LYYG1()?Y?#*zRemn^ZKBSK@@S6Q@?f-scBqiOeC=jl! zQYw9GAuYu!U>2fuUcnN`9@Y=CZ<6i0yU!AisCoTVlftroh_&Cy{u0p~!9=Vrf|l{w zycXk-`Ngy3-6j@`;iL<CX0#a8uv^z~1c(X>ekxcHb5ENfm=_4OYZ5PAk_K`p&W8cq z{O`9!Nhs|vR8OcM)OOB)XzO_15eU40{|%@uPI+i0HG><RJ${cN$abvViXbJa0is9- zK;(5|P$<d3?$d#xDwG9LH(l)qJNr3VqsB(b!khIuGKMH!M64n^ul<kDM{zV>3oEFp ztodYc@mWAp59Mov#W)CF$Brf%j?ZpIjfoMc=$b&nd!+hCM%5%EO7NWb((qCvr07lc zp0yyJG4C^h`tI?j!8bOb7hTrEFm*-IDPVp0D7!TnfG4;IgB{_usQ&bBlzIZ+nQMY< z)ZC-MlF?nR`@!)PluZ{d$MV7)Lxhu{9^V&lXgA3M9$-VSh+k#sIazyA>myXV4ZtKv z_ta|?Hre_uqu$WI-<*fu9b)9A;}J5y03U1vY?8iAaT#MGuE(5T1hB%;;NTy(PIw29 zb!q_B@A#1*?$MW&U^&`VJO#tmTs(mpuY8<k&8TkZBmb2B&!ahO(=&3`{S0t<uwSPB z6C8Oip2u@jwhSS&`gZ1!^TP`~x)A;*$ZHVim@5_(M?S8}2s3|7$+6BGJOLgd^|I5U zVnhuyBhV8nG(SF3lyK+4gh6tV3Z6T-23(xPoFPf<46@;OPOT$A=%&s2kXI~?P46Cp z(x#Zt@YjG=Rd(s}5Ya3k?}pX&Ro4W<UOi6Gkbz9Cp`Gk@NX-q!*|V0f-hrRP#LGqK z3wG!}!5v5%xgbjI6$e43b8y`RhKuZxz*j!f`MxzL_Zm32PKD4Hijg^-a~a4wso<i# zIB~2!!&lqTFfxx$zP1xc&3fg@=^T3LW}UZ0B3@p<1U^Kka}w+vct=>eOsS)1j~5)^ zetY%$^}JR4>+bwD)T83#N0P9*Fbm5IsOyme(lCnVC5zL*Ch=q*B+|8t-NcYJzo*-F zDlp~@;>C?><1b(6Hzmpl6SPq>AdWo|D@gT=mtC4jkUR5BrGsVJGeNSwIL{Tt^yz%6 zkcC`IJ`>pi**1gA&0aAA>`7r_+F<aKa*X{(uAgCihSB0!$dE1YRo&%4u%|2?VZy4& zls}D_r6g%!ecgB#6(un0yWTFLBq3>Gq6zMwpkL0ce#GVNPj`mU9+C!V)TuHPRf@sD ziM^o`Mpm!KJ{a5cgzXI|2gPc#T0ED+L`G10EhIJ!F^nLv$ly#Zs3=-zL7k}cGZ#p* zO~?Wf{u&{>h+(aIb7AwQgvl%rBbHQ6E}p_ACEAX{#cp4^7nhtU%bhtn(8z#@zhUyR zg~m!Raw`iaJ%q|)efU5<0FmJ&g&_YExPUBV68<XAtL(VA(V1bw<9@Jh_(tZ|Y=~DD zBAg*ilSfn;8~O}}plk}5(MQt)f+?7{CxPYFTM}-r(1B`mfZcl0<@_+_Bt)|R*wnv> znJr_071?DOw+Y*RXCm{6(I_F(LJ}yooATv5m%Oso^N=#zV4ubaK$iaxV>bHK1kQ$g z>wD?q=3#s%^1)J8W?^6RKff8<4I7qwcl@GuD*mcgvD`8)IjbD)KfQG!h|fqv<4N+6 ze|jci#5rYQ*Kb?4sL;&9XoVM4RKyCVvXaIw(9FW?hEPnMI9x(tFZs<(w8w+RB_aQI z<65csn8o&Kuu^@4R6M{IHF@X)=kN*pA1c$jnU*@A1BTW4P_u6d!4X4`Gn}-*ylPW? zX^##I>f3I4REmJIGHFtbU`U`o<_RE`#D$O-$MM(B*vs?`Mcu6H)3_IN>+9E-N_oAa z;z5lzUgP1+{?KF=Kegl0RwPAf!U3g1M7=spB&|*Zk3S3+<RnAzwDZsCB=os(kIg3i zA~bpSfJ5rdQDip?y-?1pi+_X|LezQMzK17c?<6+_tboWZ11SK@EuT@Qw*?Z9r<0q& z7zf#!LIK6V3iuXLmu91u(xBVU>lNXW9yqc?${`WOA(WLCak6^&jxF%;O|MPwfB*I^ zo5;yvFb)IQOiqUq4KV`<(V*_ug$x;EbB`d&P!L!kHN0tC?B~MDlij}np_0`zuN6dR z6LFl|jmSw`Bk5^)ULH7i+ZgV`sYfqWXE(A6+5?xK*U;7STDS!L^5s`n%Vm{M84?5e zLt${|&RQ**_(5$86wQKamr)qRNZ0w6y0E%60lEfOG!}YW&=O_l=jUU7Nw5>WH#tfe zV*Fni;D1Aq#y0{|v<2GV&HmP%#On9?l<{nEP<{{MNujz@tsJBOl907bW!D0eLR`!f zY!cL2>HYE(CY~NXr}jtu8^-p(5dyzZ`RJr)M*A)>_#kpv4?1;~8=$7IM_x<KdCoLs z3IbbbE56(0$UpD>zklXe4k#;lxVb|WM5&!Ya4<8?u(KFK#DU*`4=dSzpT{g{Va9>w z+uZpKfja+*+igM>%`$G+S^Iy-?UG^K84Sd0HqaGh|5U<%(lYZH9UVO?U8wBkk;`K6 z2&ba*f8fu>JGKAB?i<098wrPxO31QSKJ4CHfUuvmLf?>*EQ@-PEZ=%4)MD$qFsv77 z=x+$e04*8v7?MwdL;2|RtN&l1c2R)ZEdZ2Uq9)zQ5|pLflaI#pVUL^#r3k!PkW$>i zci#sQSpWUvt{FDhkB6jn(u_%*{1C^LKc?JV=;{7UYuJ4b?45;0MQz&G46sB_v7lMT z&<^WmYOAU~{2K_@z!DpH`cM2%(9YkHyO{9wpjsxNFgnCqyp+=y@p=?Q_421=D4xd- zr5S(_;2PA1ZxB?MZ9=*Z9ja4(zjGD*7c*T<Vzr&*T~T}aZ)D{B+liEMF<EHBrzyH7 z1IQ3)<8QxbD+vouP>kq>2H?86e*XwXcph3@txNS2EIqoo(OEcV;UcK+Un`D+Tl5<U z1Pd29)FnqyQ$bv_kNuCPEV&@UnZmDYX8zzYFL0ZD4ff*|Po6&I>NuAz&H`KAsf>0p z+~Z;-LrNrtAXJsQW>!^9mR+4MDl_>tbFQAA3Ds9R)<)<1G}v#Yd4l~r!OO_{E{kiz zFB6U_ZaC)`Osd5KO~r9pi5WERkNhZV9=?6p{uA8)iWavVfzK$$-vxKvVQJ}Rl8df1 zuIF=vbbYX}P8Zo$Gou!on|)JRm7M;A4cRwdBE2^F03)i5y%LnwSD*lV1El4xlFfmN zJYKr=axLmC6SG~s5V&BCF#Q}r0G^2&)GdTI@W79+$*Ayed9cDn<Ij`vt@rY)v^<pl z6|m5c{y)NN5XOzeZ}0-A9`HR6tE##0>gt**B*$aoDm&be_8$C~e*3anSw^dy4~#}V z!M}nm$jc)pST%+tBNQ4eEOo%$ME`PJHzrmjyMqmMKoO|_I05c`&i9Ott5i~_083~_ zV49Qbq6@&CgJBk_HxlLwC*Dnmzz_m-1~I7%C%MxFZBdIQ{bSm~Bk<JNT?2^LvZfC+ zrW3B$k0Kmt?kdY+?4b+0Q&WD6l}znrBRJLotB3dFX?rWe3ov)J=Phyom-V_-gMLa9 zw`Fg985R(cl#Zl)96`lYoa!?P9eW-&fk)_41BlIk#e_HvLS}6*BA){ehop1$@lncl zP~nLTRF6Wv)%@Y!Z-Wp8u#tch+yLqE8anSc@EaAlW#nD5HYt6W0r6W6)T}nXzTw#W zBCo;0=}yITch$oY!NW|i0JSS2CD23n<Xq>6Mk>iW1HnVcLpF1k^<TIQ<;ymxAJA~= zxY+hibIO%3N<osa83Y$$lR=Ub;BD7l_fm-qPtYDE3$npl>UR=)Fdn20Uiq|ee-yb3 z1hIu<nmMTTL$dKv>z3=J^U&)&M5Z$_-IT??b~-&gcmyEhEO2a1IQL!q=Lh2*T1K83 z2%L6iY^E4x*jLKb{|&tfK7-Zz7(TTd#i_!~?j1JyovG8;1y6#<SST`;LteDVwTI#n zATGC+6$TtVhh~k05b^x<$Y4qp1VDYPdghBvnVQG(e8D~TaU+ztsGAh(gntdR^0Il* zgDd!n<P98i2fThTKE%*&Pd&isgJnWAhf-;9>GGa=FQCw~wOxJN)?H4$*<>Zn$!B$~ z)eg7Aj(t^=&|a7usmxWSb>TXnV`s&_$0~d<YvPn>Q3pzA24)YBo#4nESY@>G8Np=Z zAz812RffExHey7=B!$~eP`&!!KsY-ytV{qyEg2{-gV((c&JR-_@rjvL$@*nH)E;&3 zZJ{#<ZLIl)2^R%J@r*?+L)T)Mp}bL(^D5Q39`Rk`e!ep#XaK}N%tnLIyKH@*kYRZX zOO*2DnJ{N4E`H@qI5uamI3bfYQsj@I78Jv(xjp{!CoN^dRrMgpfV%v$j~|cVa<(Pe zCA}U>_7d=#xsnGNZe^YvIQx^XW8e1H>QXl2O$leh6pj%xl8Tb^t-!l+s>Qyt5v&FV z>rM#`JHB8UIHDPkIIfO5?=SdhrQ=5l-$S~FYhRmQp!c>l1DyKJUQ8hUS|h-xhC>%n zRvb!<mNp79Ma9>6g>)t1C8X814ncy3-E{FimN%8@G8#t71Nbb5xW;|5FQZb^GiY}A z_g;7C#>kVexLt@c$^Mrv1oarsyFVn87K%l^I&&{}#1Yy3xCE@DJjU)3rAnUY!esS> zqOOf4fMCA{^0enzw@NXjjLp%l$vET$?L0Kwo?~cGH3$Y<wMs1EBwKm*u1!B%b6oGS zQKG@zK2YDZHtzh>6gWP~lliIiMK|7)K@Ob&YHc5_0^_sIn8YwK;+D~!bbJqFzSMcb zImp{87KCZ_U`ScHv3||ko8dl1LoNbdS4bJ(QLMWh5kJ)0T;Q+9tKDdVQ&AC~KHTQL z<eAq?4sV%-s=z+TfJ<iL(fk7PMgaU-&)5h#9VEXJ^17vPyj{~%OP3>R=xFuy44jfm z8C$i9(_PzGT)Vqp(f=HYE(Za@7_1^Vn_k(QT0g^G*2}Z2Z*8^f_6V~%Ix=h1^x^4^ zC$iN-U2PMhZ+EX*w)4(!17qc)&dqSGyhff4Ru=8xHqhcUDwl4A7f1yQHQepQq+gfD zLg;tc(vi6=oOAb$E_L<5flxj+Hl}X`mr%xNHxLvqzEnOHwT9)QA)sb~7?uaHOgVTn z>^V=6Q_-0&|MDdxB}F(ZxOVJ&dAXF#qi%L~_S7ga2W&vWbXuzuGTs*%p>YEkLVP7D z*BdxTBu8qP*22A@_%4Rboe$}UEj7NnLTK(lcFggYh>$QX<F){Ixp05vExC;Ng<)HE zfs@Al`$9|$xNcv<Me*6-<xw$&O5tgSGQ4klcXi@-`UdWi1380<Sza77=C_7_A_@HK z->`?&-Nt@3O~5$AN%ZJm@lC~U6ff#N>rXi(aI}xXvt{;XV%#*eB{^Oh*Xm&u`n|#% z>?BfPu774Iq2oOMH%b(OF`!lV->GHViV~wBbYkcQn864;4F82g6{<yfsdN%tn-Xrc zxO4}^^fO%nohlSO=>gNFmb96fnY|`e*CX_x8MhmpJ~+GhzO*xNl$F+Z!?WL)Z3^7q ztEuy-p9v>dBC;IvDJWJ9^q<;M^S4hySWzl)+VlX!yWKZ;bLyqCDB&Kl=>u|eC=>DI z4ZBs9_3hhL`u5tqqH+`fX8}f37MKyFp}e`wWn^!`4D#qE&pKOGMo4Sfm}ZVxIE=Lw z$SqcCfW+NjKY3|aQZK!`lL`diPJzaMHpcQ%lt+n4XCjYPkuqUMfO%%@$|)K^qtuUJ zV-4>Kc$gZ1NVzwIj^ok#Z<`i1*osX0F!BN-H>0e=&obk{9<xM-SjcVW|4I@G!s|l+ z+)I?MgDmwBvi=1AT5;31?f-?`;jqj=n2e~duGWu^6E`rX#*@jq;F!x%0JJ(Di}%SR zF5Ddm5^CAVyZ7%d`=54IE#ep72g&GXntXpe=k{YCpcuXm6|2mV+a0O@^c{cy+uPOu z1nqoZC3ERp^IuBhWck0SwP$40!Uo|WONZ1n!kdf7^;xyEySE{b7Dr8}x?tf_+{Nww zFHC3aXDwyXzkmNfRs3&bV3LWDcE7qnzXTSy|LV2K@d0sj5C=_v@>!+{6%D6!0Uj^W z0<N(3j$Pd>8@|nnH<!_m_d?Jtz!`=;@}jI@Kf+to)P`9;<GW?l$}uhdY;fI(f3f&$ z@B&!hqxK+yW&euRLOe<nn9w470<YQ$mOFFji+?pz%9OZ28>z2>lcVfok65Rk?=)UE zL<kVZS%gCJnV_KH(c)P!oNs=x{kSDexlud-Xz2Bj5d=$c=r0z~zc~R+yiEEgr0EDW zS2Mor!k3~6W8DlHR=1L^Iw}uf&i)p;_mjm`ptY8K1$LaebT8(gT7DC257uGi^1Iy- zqX}3d+Mtf$$nWaviWR^eFp3#1E-ft`n8D7D_Oi^LJ$Z<o?LPkK%->!BxOg}^{?s_} z+F$-3w5*nyZLD~dKyCsl`z4p+IX*+ab|@8E_zXeCanJC+5Gy<n7ON_%Re_Nf46`z} zc(@9RTi%0d9NO~X)vrKu@_&PteEx*_LMRE#FyGH8;Ub`=0m8l`Dsu%NmcI{=TBDod z`IIH+kH4{e?SAS1p>5aJ-*=(Ayt2~SgmGeJ+bTpgjGjZ+`s{yb+2LIBnj0-c0tC6i zlWQ}v<Ig=q-4dVgVw2mk>(`YCio4IUvqe;^FTIWW+dhGRLsSW`fWUAaZ*tk_?5enQ zzeAOh@did;O_tkM+js0!fSD80@0&Zff@j}Q<Seu%7>@y9JEgZTP63a9#ufs*i5*PF z9u^CBKnPIY3}DE^$S&<qLy_ib>-8>b|A_(;j)j4-YcrVb4-Dy4b0W|Gyzjw!XwonR z{;?qry72=>*|sqdUTu#ecQuul(i(bU7S<8z3Z=Xcmm2<BA#<vEs?vLr0YM^uZ|4&f zSsbVh%O?j1&<$cjDEbpzONegp7Z{|{SqjEpf8nHb&vV@Q$e$Y8ZVRAxX8pSF?0~(h z=};no2BuB|PdyJFI6!F1{-y(l3EosT{(fK}Swgz(--?`QPo?HYU<_D+^a*vf$z}fK zW~HBIS3C~Wmeti@^0#!8|4-5v5|k%fa?+}cf?!ZZDiR@aLCj1cj2c9yyu}~9YQjLj zSo%<I(FJeX?qiM203#f#&u7BLvPOn`Xhn=z{R=zW;WHN<?}PW0TCs7^{biPybX5?J za)%)|h3vG`GaC>O3wTN?Kjaenj(QMg_$fFZKXU;4C8O7Zds!wh?sTDwF&U%ttmpO% zU(vJTG#aJ=-d~;W)7#q{{N%}&$(z`5Hag@F2ma-xW7?Mbq0o7t;mY+0$6!yeEslBB zA8PXOp35SlG|uT_uwuA4OIV-hc!Nn=fl0>KfsFv8$bpASeJY+rPjMM<;A#1L$jK&p z^h7uhK(tmSpdL@_fr?{>9NN1d)Fe!yglp<Wl%j>~6IzKN(#-^oTgXX5L`f`hXNFfJ z_@ecY-)W9GgE7`~%838^Ctlb>lnO|AmxTQZh=|?qxl58gFHEF<gwJW+o%yOHpaUnV zJ)X{|1&9}u_}!~L*D?7E0A*mRCxmbB!%s`2L@+4ie)Z(W_U2vs9(fCw0izut1#}Nw zmz&r5V6kx1VG*W&FQ}=HlgS@W0r_LE;X$S6KZheqram2v%DxW1m#KL@$fDSJ0_D!@ zeFl*oJ3Y)xld*AY)Ft)GL|K$&*$j0h;{Dado&Qb3T5g>|vVD!e(Xi9j#Zj2d=Cwcl z%(T%D27A&6^Gpl+&{wc>nC4HazDSp7pV;wr6yT$513R<!!U6!~iqYk-*3G}txze$j z7h1JyxhF!8{zBvC88h5`Nx7$&Hq-wn6eslA4BnTRqOAyhagt^b8gsKJK%&hSFMPJ| zboWC064M9<T`#0l#%m{bVm3e<{X^lvU>@x1K{OG*a#P{?pA<FjtKfT5KIq;_;vIk< zo|E7E+hZmD;xAzGyc478Adms?y=`%(R1S9P*tbtk@O8Q4MWqS+m=Mik{Hf3?XIn5v zZIoLa4ZK?qp)+M-lZJ4Ax87jJWJHSbw6pW-ca*$5g2PSMoSbZ2Z-{y8&<0n%LXVkZ zkHL*%9+5-#>&s?K;kQ^{k8~wVH_N@0brER2uv&H0F%c0acyk5QM}d9^mWt+JEj+Kk zjYswu&mIJ+fz#!ikIV%}i5A=2^SGJIUyYL6?-hFI^g4Ia>Ti(p+<Xy?7G*uhId@dh z0b;U~I4(HeDsk_P4?)qEt+R`#<kqo!&sjSL6iG9;PKJXi`He(x`Y2Fvnh^J48;abV zc2;{A!nI1mrp*$lCAo5~Bm>OXt4ZxGkjCQw;17X?le^ppj)GmF=1<)dD_*mk419F| zkj=$D)QpJ1>?N3gSZ>4T{oF_fb4s2BPBd7#0)*`BX){^ig){-b^@*JfnTvA~5;8#m zCpTEMj&uekoqXt@44lIp_#N_tDhTWhVnW0<%!XyBxY1<FHDHdU_VoZ2#oov7)}7h$ zp1j?$E~T{mG5_Xx`ST1xUkQQ&@j<R1+fGvO(zN%|brcZR3g=R4^|{rzy*C+1Un#ny z-Vr?v1j%8ipevX!k#2p0^T2pShE7uuoy42;JL3)5BVSLY0V3L10b|rGa#-rq0E(*@ zppCp6AA1yse4eO2srkhLzN+~aJ4Z{63*S?Pb27KRBZ14%bobYN`Wa0)iPo#S64)@Z zW1UAse0$*Bqo|@tFi-qM5J+;PxHQDOAJVKjSqZM^(@n3g+-|iiKP+O#1Vh0t%c3<q zat@uEs7HhbFJ#Uv%YBYg4RM8YPxZX}i+PQNkMTs8kjdB+;;_AceoYO-G5fNr0b|NT zP52FVU0E^BRlUjVlg=;IqGV%|PN>ODYHG=3*?m`@pKo6pN}c4<UX;EeePKqimS|4d zRud{#o1~Bja9cx3puq6MR=0j?>Ma$zBq{jy=dv;kyhQ1}ya5;KN&$-A-pn_-sxvF% zwtvmr<!;U=jiLsTP<k432s<7U?VVCDHzIUO1Md>IJ1&ll<s%uGgPo!s;n<L3rvQe| zt(>TUTYYy<YO28mxBA|#U4$J;W54GMZm9MWXP1A>_DODOwle1CnI6Fh7f0fh_mlL% zINi!DSCZr@n{sh?ocUpDX&iZTAK=f&NCz;#Pkcs+mf-NH=}9)<M_>@$q}nxakdqdz z3umu|OWKpeV?{M;A60lm39yWy?(wG^4u}0vUuW(XiQHVR`nlL$DI*$*m)gjJyKBW% zNwJ-bJ=m-Ig&sMxuLL!sC><PJ;@^*1HXMPe_9~4aYuS?;A78$@faB4{C^3g8kOw{T zXeLF_3g;+9{|oHykHfItHCoL@Nn78e>>QPtSaP-IBl3~gF34F`u~w_t+ZjU^v$_`7 zt~%=F?_HOE*L-gH)~yzl>NYfdyGW5);?ePgh8GVF^GcrcbYDNnI4Q<?4O*^=$14x} zZx*u?JAfO0t|MXXFRz!FgUI7lkdgj7(6+d9f5s1*$ssd=7DbI$Hy~owuL7_c6Eo>* zUrK0AdR>UZlM%A_&w6fObBx?o>gMySA2k7NW<gQG*kB|lG&rKls-nPMLhMT<#nyw7 zNq#mS^GxAT`$8sLG&;UxUX=@IeGg_kC{A!s$`#B{k}99xQAkhUTosidxRsXMN7-vq zdz5fYFzzB_Jh4bHUr=+Dq3Am-YNh8%>CNKrm7v<5x43r3obNj98+);JBx`d3Zeute zrBml;ZoWa`nQJjzt`i1_^2h0t&y%0Lc415(O|~7RWfm8SL?mFa?P89`qvVVXk8O!* z7TBT@^5xXHRmT?c$1LaPEmU+lQe4LIv1J7_Hv$yt5hLy9qx~z3guq%6O6^{Oj!CYX zFef!eT(K@=W`b*Au5<!m7_H|o1?wj?f*u-v^?2yS6k)C@SW<Fhm&SDL6=&x{g9quj z$;aI3iLqsLvB4KcH0*+#(dbJGR^Z%hcNiORW7Q$2V_~Q&Pa*VNzn7rA<miXrT3soT zV|(tC>+$$izY&F{P5^njAO}l><g2{F5jpO$pU$sube~0}T>auOa)l6;cnb3a{Jk&2 z+ce5mbc;Mk@C~a|W9$shBF@QrUOyHTj%B2u4dp6Q?oWuDhhY&hs$6Ue0m;m;Lec65 zo}0`*ExKLL9Y52~2tn@q-1~i_@YR`=T9j+NNeOf2LT>7@DT{z3ITi-5GfABhbtW8K z1K94!i4|=W)IHHOPAnpZ5|?iHh(b1|68ZN~=U-y@aPgOda7!+7R!w3IZf9Bfi!Q$k zZqsDH&vi;H=rWuUEqv$r=!VctlO12yaDOn95zGMg$Q??4`j4l>dW<TWrKQF^t|NlU z?t$IjTeX7?wSt|9Y<pJ+8?xQH%W1jMUtT!z!xpxSZ`rV`IrpAPD^5K98)sVdx{Ya< zU!L<5O1`ysFLtl+?pNGN94*X<{^y@7Dnz8qg+C8@RgV8MUN;^&eLQsj)WXox3o!Vt zH=8@zo+UjpF3?C2B&K*#6TqBqJ)5)~XH?M<I)6)4CeNMO$w-CDq%zfaK?*0B1{aGX z+Hk9NRdI~pu@jj3TdlA4+RqO^HIU~`RU;k7a5zR4wLt3eJLWD*9fR9XlHI5==Z?GT zNJD{hc0W{AzYf`UgkmeknigDmUIU@*2(9(>cUe+=SZ>u)R;;ol>1$Y#J=E0~UDvJ5 zIN{#qleo@sZoNIp5VOCCgiQ#8Fq&s}b2Hv8ayll}6JC_J)p9NK#7Q*2atCIr{mxr; z7oZynK|yEbO7HGcs&B1{25;NC$!Vx!8(~7(nu+xTAbU8KBf?m;)Njc{<Bw-yMt;3L z?}si}+%~P}j-92i$CP`ZT8-nZ_~9rvPU?Y4Ke>f>IEG99==aPrrT+9Y$wb^SLS%q| zTw8#a$y7g?XmyzV%2!LTT)M4iA6-=3)4jQ)Um;<MLpG$@ifN4rQ8j%!3e^cxQ~C4? zIjZ!BCB4>Il9?rPseM1`x}x|<-g3if@sVmxUyK&4o^NE&`vF=D!-tl6esc^5?}K^D z`?GJE1AJWv0iF^^tV9j-XXv*-H$WRwD0Kn<Q*axD+bKqX8bl^;f`W)Un-0hUG<(un zOC>vOvTf+Qv;pG5;pa#elI%M#1PgC$=@JTCsPXNr%NXOGPui9-{QelTH5&pxS`O&e zFDH!$X`mijPgI4+>Z@5Jj`w+eA<tYZWXzFosxkVL*pyd4!1i$0MVQTOSqSgBiWL<n zSuPHrGi(>kn_u95+87b|%_Uo1<jFi?&kTyH5fq(lzxBCxqWufN*?W8aEmmZgVbbI^ z*U%IOxNEiW8=^OtEp-=Q??Okq)y20W<gi}dAYjE3wx=X^gzX)1rq4&@O+a-dL5&c< zUa>Qa)+b6`!;?z%|3ly!dz99rm(e&}kocmPoMWUy#sKz7A#~*u-(!aegoq}v3g|Bs zkB_4`c*qT1E)f7&U?TkB1V7*2xrzx{AbUP<517$=_Z@XfAbUweS7z%{)Y3vJRdMT$ z>wicbvaQj)WlpImPn~Vwn}?wd43&SmvDA#szGO<+e>iUhr~1_l1#O|I;Er+{=X8?= zEyA{HTR_^^6}h=@lXy2od40Q~j}g~={1qnV3{4Mc?3qTT5BXbRB_uo*zb3N;BR@y5 zVC}4SyHsed+^Mv*$ZS>DY>hpFeL_z9tyV0)6E5)<2VYERx|5C*u2VakB0<G}SIpWa z<F-~oiX?09=394w!^$lL=HuD#!Q^+NX3VUzgr}dXbm9?n2=R<D`0i%JB+e;iBt*Jl zH)patM^jEN$-XPKZ`#DW7W=Hm0WRGrZn4O7cyEkst(X(;kL^v|{@DGRAo5frCkZRk zII{%w&yd^2(*>(0yp_ZTe}Ey4g6PIP8l4UVRbsF`kX1J<@NbamT}tgYBpCk46r8D+ zGB?L;@HBhTJfE{^rH(Dy76Tgww0$2JpG*ui9)A^C4}Ha;jrY7>^li|gvo9W%1LGbC z!ypL?x%!zs<;8Pg7>8?!+A=D4oIihF<Y)CzvkiUlp&{5@ORn4Br`LbS6Uv;_>I-`+ zVa)VJi*ZPJpsgUU|AMy}^N4^O5(P}bFgrV~w-C5M+2$`$PEkL+lJEnYHKJeka!ktR zD#er{McxuLZETev%S*tFm2FQKAWr7(9^(Q1Mm*=htKA2P{(EArc^<YpFmTpQXSNel z=FD(3Xawpf<EswvSricm?CR`+9`ud8ezFo@9JIi*xz`m&aQ;7K9MbA8jx&tPykJ&1 zWB{2+2kS!=Byc>5WTG&z3GB4?B(|TcPc$Azrt;0XXKP&{m8*(O9KaMTxIjvS6-<^m zcS!Zknb%U-u}u@<$==MfUVRrx@w&%x-f9ji%)b0vxzNrl8e~uJ8L{JD@cAb+9{!En z6&>2TTIZH_Q?X$$>h?$x`gH42Z2SqEwo}L|U9Ieh$AJq@TpWg#{aJJ-l{vh$NXyf- zI7_4+UE-Rf{H{^^0{as3^RB{B!qGyRlw78<9+4aR696C@%7fZzNP2=xPF6;V=QQRu z_EL%&<_q`D*_+?NH2w&oeumsTobLOCjjuKNrmBfWb0#%UtH(jV-w<`Tizj%W5Sc>a zgs9$Klkxsppj<pPQs}c|Z;QHPC&(%d<S<q+`|p_3Vh?6J8*o0V<pjGP@Jqz00l#}U zn&neM#~B)`p-0}4L<=hi$kXFJZ{}51R2<&LlpJ&>*)L{QxqB|o_E--fr3En8PvRvO zoj*GqxvJEC>2Ca@>C3murJ6B6k~i>d*(4y_V({|S1f+aA(;ufwf*`{ZS|cY|2K8^S zed%7$1#HTL53lKF!U+5d>I$WKkNuLR2LXkQFgx?Hae^Hn1@;VGa}U5v?JVMx>@;I& zUW&|3n0FJOp{>iEXTeojzFL)>fpw++sb6lcr$;Szv{#^i^6P}_!I!-PW0Qg7AUo!o zKS`)Pbn@bcxPIt93*XlGwjRg2ahvrDOgV~7yd3FDc~gODrm@|EX=#rCVH`ez$o^hD zK<%9$<#nX%kL}aHFnuxfiBoWcD?(gWzHpWhH$L$w<k-D!xCAmHC_D;4I4}j>Y_587 zdrH*+qSr&{TD_0^f;)3G(A%N*l$#N*e_P9fxZN`y)#V6dICAB;^$gdBa+g$qb*+rF zgL1L0C)T05>0%*Q<BS!KKL;|mBnmE%6kx771Yjve;@;lb&b@WiaE{D{<F~yzWYh?n zUfAM}LT3AM_N$T^?F&C7pot4)Z+jP5-2T#&-52r>=x=6vUo6TVikrX%-PXNOz8<KD znDvA+KNO_`M6;7<AlCdqpv)fq*}OC)(eCjE5Tyf0RH=E;>!{~K-hh0Dt}WeiMaYmF z=VJ_v&C**&21~XP^-d!le`r0Ay?mZ|b((9@b#UqQaC3osR(O}{l@P4=L*7j<evZew z(iKiqlj0toy<!ZA>zfoGo`rmX{&LNQ2=5c6%C$V$jefJ%qeqZcYQ&r{+tO7vtiu#e z6DEm$lC25m2RwUf(o3FtKlI`daQfz;w!ddW1T!Yq8vPlJaa~)En%2|X)EGm(ddxC8 zAanejt{YD6>2;=Q#49_!zdw`Rc831uGq^*>DIaIoce5erlGbT0zT-poC9T6Wd5sgL z9KSOQ=JF_uJlxnr9EED@)^FNr3&%&n+!vgB@B9yGZ}wx0!+!HN%7lbPy7LnCAQUVo zwbpDXRFe4VtyCkHaov{T&1D`&5z9_G7PLZlc;<rq(xO0%ok-Be!ehM6pzCH=ez#;6 zabHiZ>;PZX;#b4&`z2u)4w_cU$(^p1ZzS9!?eHVN#5csh?L&x~^Z5o7yH6Kh#j5Ym z>J0U^HH_>Y{_-WO?aUr6v9LDL?AL;Pp1WvVOoQ5ka$yQ0o)7Eo=EKXRvg&<hkGoJl zSJ}@JH_r)Atz4$0%4;Tw)htaj!GYQm@E>wtgti4p+wA&{iB>5Cb%p*JM|(_9g*_ZW zvac-jK@ptHITrH4)oU@y@|qwtkc?0IB$g2aqf4U7oY|bXoav>MfTOhTS)lK=PIzMY zGfEzlV;N#sbh%jb=((>gpVI9I;WA`b)@2;1(*^IK6!6*-nLvIVDV(B}-4|UXK=R}c zdQ&zFGr<8j$eu=OdDo$k9V`Cr0Jr(v+P%5<?S=lCLlYW2JQgky`B6rlbx8jUK)VC} zJVf1qACWdd$!cx8UAC|ouk5z<UmMHkGT53|uc4vQlI{!ap3Dy)KHw*GI|YD3bS+%Y zyD(XPS(^)u*aC@t#0-_Q0xZcs>NV(x60L+uhG66_BO~)eSX`ERlsv4hZzBBTE$exn z`YQCzX}(&kXNtG)W%capAJJEW)2WV!M}Bf-wNpw4bX|IA^k$@>ppe2D_+Rn`zWuSA z0%ZI57RCNNFa-?u>-;u+I8C;2!PDK1B`F<~0A;c$^?tngYj9*2PJPVN-!1gQyV!+g zfbVW^_E@R-D=D;2`111hs4!MMz*Rm)g7A`)T}Hde>gR(r4=A6`=uiAvIyVzL_JsAk znfs_uA{g+ad2<8A-Gi#<fnWvHDAlkRWT5T~o&5RrJt%Uv|926=V-6_xr0l-k6`ZK% zGlaRz<G|mehQa&;5+_x<9~5KKJ-j?w6ZkRlsHMR0V70;A2@K>R`179RE1*>9fQbQ2 zoFT%|_`gq_?a*$5*YpM;d|vd<&&Y;(6e@NL>Ab%B`Jrf((SPy(P=F6pvy9f6VO)#> z@$!AiS1^oghV)b`2mzjgE3x#y&zZlmUHser188et|M75_3}4PxXO_d;4If^hzaOGQ zbwG>E@eHaiZhKL^muERqz&8w<;a>kg44QM$59untAC6{iL5F^=P2K1H=7_VIhiTcf z8{PkP5ZuA>%2(^%5~nN6obc##9H%pW=?9q4IzX8El;=Kpse8anx3+8|uk1^YrrF#c z=>7c5|D!(D0CxpsKs*cd{QT9d_V8|>L{*}8iuO??8;HuzPITfAGJ<?Eo!4=CMgy7; z)qM1R9>j{eutfm->iyJkyEmJRtq`l9XluSUHca`i6V39^o$X}acE~Tm8mw<X3uuER zYA^tm^%ENJsev&O(n!{U0|Dq{<#-KUVxTDg0vB$G9G9#r4NXc3RNYz#9khgTrEEp* zi+`p<{naoTU)W9YsRw?TN(|DOv;YZql5!2%mP<EUJRtg)!pNrtdH_?vX5JvlD&@<< zb)Z-}0ecr6T_7FYZPb859~lSrr9Ea|NelCCXH9p!wf~VQhzG>(fp|dEAbwTfRcdE^ z632S3U6z3HKbv=td4#4sPEa-LkuW?e_>ExF&=1B3`+2#+u?hl?zs^k$3uMrh;9Z}v z?U0A$k5@o`(;n?AK0bN)KHxn-LK|!mf3Eua_6kkO@*en*jgCcjL71q657@me7YC)V z5BQ9pA2V&4QBaIZJhfZpAf&(ia>oEDe(7AYGjD;E7T#M1A2!gvm@4=k){U==*Zs2X zGGySr0&)1&ToIZyRB)N#j4=Jc)*?jQrme++lO^ln&|S8R%Y>3JJ{oj0K#kdk{~cB) zAsX^NV5~VSC5z*kdAo)y`#RXPl#)~dCD=6o8IoxlL2kLmMB_{Y&==R#n|spW|L6j{ zjS6io7?-Tm13e_i$4xs=b`+(-tJQ_IwPxB347I7LZYs^tNZ6ZHWzy{Mjv>Q&4!zan z8;O|1=}B8~7Ey4kim0=rJSYnWIY95e@Pr$?S?<*5<CS6s;|MbwXEs@5m>{SMHq9>- z2yjQnB7ogGpQ|NeR)vdO{2+Tx)Q_?h8zLBM!ZX1*Af;vT0bdk(8ozlGh!?r9KB^V` zyd8ROibsre$$~x56v`!^o97wZuJJm}x}#AR8j%{vBlbTMD6E-2)X`TRe_!xwE)do& zXGS`GE-MemUxI`#cgQns6>nOC7~&KNivCeaGos7ds`kJh@ydhYnSl$r5LqMWflpD# z^W3w8fHQAWN&ET!NP9xbag&k<!h4=!8&h-puvyohQ<&Usq_*V39#H2NDOn{a8R?*z zoOOG9cV(|T(7zF$?HtKkI}e9Wn20)$3?;gHPBX18T{VaeMo5(18m4$SZFgK#R`#EN zc-4rYg2qCbv>b?FbXNVN8s@>_gO2YGraOhyjaSbg&l1$dN)IMn)+B_;Vs2^5z<Lnp zwVV}y3vj?ylt&n(j%h%7;K*VH*<grNA)6e%_ZO~2)E&o<d*($vl8b~Hp?r2+`^3BT z0_pI-L&@fvhZ54#EgP$4j%UZxG?O$^6A*pYv%d{ogkTQ%LdHE)X7<}tk(OMr-Z@UP z#Ju%ra740*Xq-0<a#*a?<e2I9qurafWAj$ze1P!sG&|Hnf+qzxKs<<BzO9AMnfc+H zWEV|*Z76N0bldT7J$g<iH4}F+zObEpL>>FRQ58Ts2U^w}1a%CYMmw&dS+9XxZ#;P% z?l(?NU3Tk=Yl=RRw76X4g#s!VAHfZxpft#;YXI0!AoRph7feZq2;A%aCEbcu;7``z zHa%no;v~Ci3Pt6Qh^7~k_AL<LWi&jr@x(S6w{%ZfLDtGj&cAxIyfnA7-T10GV&Q@u zO%}L)z78y%o(FwYQq%b>k0?1F+u{e$O~YXvIrvCSyd4c&U2#I%udjZxq;bl|V8sZZ zk{~8k?Og&}GfGh<zq)WxY%9Si3HEY1xJ3<RPWq9bYvR3i^MtYn!9T$v#GG=PaFvwG zMW$r<?Q;8Q@Y0+HP2aU%-DyhMXFr2QHmU@2(#x6$Lz(&aKBK+E)xf!4Q<@PYPw01H zSF;c8Wpi3_5DrYNa|ks<Ff$g;`tG_ifANa}YMp@!QBV(r79GG9Bm`#eYpo<QMM%fI zbmefkpY{1tk>{bXC4LbSr;2ZF5|c3oa*6_1o+m*ii755KhR&?B@>~4%yf$(JaLy}A z2Ys8b)AuP@pbFEll7A^Ul;_T~3YhwbC+sA?$CaG)oO9sqgIq>;pSL3A#XJASmj0&) zKek-LOUV+>6I+v7R6CuId9zbx;wPiLX3LEb@nxL(6&f15%BoyKjun9U>9A0140h@A zIOfZ8HwbRNe`(ypJpwjFW9oSP?$26rBzJ32XzinX)VN7b;^1);Jk5|Y#B4gK5_%bA zG8?8hJY-R0$p6ZF*L<1&Bj!}7EEwz|UU<y3EIW|Pe$3uORuh<HNy%>IU*1$R7;8e3 z_8xxn`*d7f+&Sw{wHeSMf1Jwg@E0TL#aIDY8{=o!qE&^oKLGRuaqc?Rz-}bv1l;xK z*gi3m@qWg!A2UZ(SulL%V>ZLHKx!!<;@3dK{u;Wj4?C-%l2GZ_=(RsaA#tZBC20`h z8q67U0ewWPBc%o-5fIHr9w^GKsi~27)K1;y^y0opM=-<9QYxW`a)!_P`-BT2KnCV| z)`wriFhE58zzO3I8=$AvRn4+n5sn4(HUCgl8}7a4+)_UX=QiSY8cc&^$IsxYQ1)-6 zI~dm*@S3>-L=}weV5a!@7}?GyxM|q@JR7#2e3bTUDx1)Z$4@7y!&_n`+FbTEr+LGG zP^5}M>WtjpbUkkV-(YlJh=HbE{LUk|zkWs3Ww-j><+Er+-BcAyt;5xm397znb=iGD z?VrEH@ibOu-S%HV66!dQI48i!GkJ&Kx=zjpyxov!6FCR8cIw#_)OK|hEu8`yhw=#3 zdLFnbCjjirqCP^`v5&<jeyMMn1lJJ8#2ud<UTr6PUf8$P!Bsj4j#nFHtSGC(kD2;Q zw*iM~+#=XC=Llv!w+AwPNj*rQ6T=i)_OH8rM(!!^vI6T-p_b@BZX+t+&<7|AsL;Jz zH<f}VM-C+kdidw$qng@r>MDO!z%M0&cXMS^W2F*OWud@B!TqS$3YXRBH$Y4-gQIre zKC0B}BSf*3upQA7^ZF8Rujjg^m+@VsV&)~3oj(+57esPCfC^BXaU8sBy0A2q8!I9J z{J9`uo$B_m9vgNuHwkv{u)P;6HO_@Td14HjGrxYVAoI0`uD|~{yE11H6M>cqkkxW8 z8>6b2k*k)Vd;?z42?&o3hloB;kUt(Y-3EWGW90zo-#CbnSY-{B*b)AEH~k<i;We^v zB(CP^GV4=hmz89fl9B*@W3qNyEb=IVEH!h0aUG}i9loA%swHTd!gE?fq32Mld4_!X z7&!aQP4qtPuDJ=8YHm7|2aMzMll?s<Dc64or(Aof)SE;8La84oK6mhwE_H?(?fV?X zaD;i;jbZXA#rOz<QHbEpV7DhUvM2e+f~UvI3-G4=*R5!Wu2NjC!Cyz@4r|(3c!ag7 zMZHuCj7*O)Gk=e&UK~fFV*z*59k0~9At~@Ms#L*m@6(51NFFbkb=GCs7&*6=1qrS3 zl$q(cjTHF2*Vx->wmAG2l%sA-jl7tuFX{YT-~#B-si*I4d6$)YxgWW7LWc6%p~*_k z&18z0jD*A7naP)4p4!1lj40;`4}+II6e3#tnV0uHpBY8^fOJ(IFV%>d@v0dXe03kT z{p!MCa)zG`VDryEfqR+-*}GYpPv^eY*r(Nqv3CGM+6`h&CCVcy9xIrSSm(-;6v9%~ zx<@+kPTjMpY6D6qc``Yjx*7K_mTOd#6VB?IEH43qMpBVb^|Y3HVwp@UZ8H}9V?D1+ z{P;~WRZt+KEtIUT$<P+R27BhiL-~>=rtQ*>Xk`M^=2qBJ-4ryXla4K0Jpx6h2r+Po zlsV8ACDd?B(z{y3nAjCcb^qX-!G;*?=jE=qD!*N62I5IyQk8PdDF@z3J&-0Vf;3r; zkgO43wo#@@js2(4%e}oSK01cs<jbcX&+l_h^*ZRuDh=%B+tIZEwZtsahyOaGj}eX* z>w?toDN;8Ny#X7-|E@;(cpJ4d1XW^_G|tN9SpCPcL3az4xkQCBwdX<2?kms8mW@nz zpFn6&Ox+`8RaGaSCv^_@GA{kq^>Y+J%rn2m`|=y7y!hVl6z$s2s-ab1i;hzO#1@&H z8lf)bhqJWdW}!ldF+086jb$^6S-u)z&+9@V9A5Y8?|x_}?DtGWl*6P0V_p|nl_usM zlAMqMswO*oRW-zx)qS)1&=a<cz}Xm#Ty~a-jND}(y(}kj28)ob_Lo_U2M(=5-wbI; zs}{O`S&?s!KEXp*(N}`FKo~{zsUbN}T_IBSbwhu8H>30Du9Xiv1d^VD$$k)2ji`tO zQP0?s7YhXk>PkcCHmt=Y@}1o1@c2(L32B_R&4$FP`Ta&inDk#cl(X}A)-ELKC(%pg z5jAXC&Y?Vg4}cFICdg1U4WFp~Q$6<gzxnL_eHqDm98cr~cA^znAA*_$nSep}+8Ubc zJZuebIUs5D=r-0L&qwqC{E~JbmYrTECMG^AJ*{-!zkk0rpb+l<|4qBVZUi`o7QhK9 za2;AJzlS>Z!wc1T<scN>5^$lJrO^@~*rEvB)J`*oC=L+yf-T4`+WQ?Wn}Q7=^5r#= z6?MHokC5=;!-szu8k#7dKYt@id#BN7pQF23{k_qvHk{5V5~>4T+A8{b)(NPa@2aD} zEywPA3!e_A5G-PZK~ywivp$5ym9vVCT^@ZGU?#YjdJxCMg^=iEu<8(N4EyHWq|IQ> zi;t-|&I<8gy*3tJ`&$Ifq3PxH#US1lPS$^|lZCB!`|@uuLvksdLG5y_NyA2~ucsLo zt1{({E!Sp$Xy7Wc{rju`*R&r~fW{%*ULQ(J^VIb9HS<I!<WB$L{w~M9rzuFwkcd3~ z1Um#R(LIyty|j4OsGsJ|Oa>Rl$~I6!-W~qFj>YTv7><7W)KIGh@V8*`fcQzz*x0!3 zY>=8WVg-*T%>!!=iF0ISdg-k|94QAI&?Xh=!PgO1gXQs6J8;?XB9AW>NIPYDEsQEH zi{HUa;)Kh{Wg)|Smw`<uiXIm%EzTobS=6prLEUvJMuDV1{p#wcE#b1Bxe<<aIyr@Y z94tQfjt{5{`g4=;pK_^!?n2G-D(Raw=^*GpQ{2NldY5h`$FAG7(+v9Pd!LBA?Z=O= zrH7<K`gdik6+nI0tgQocEMO2lP!c!!bHZ8b$tAMN^K&9Sx-34PySLEA1Ih*kwz`qI zC8N^yyOFHa08A5qynhD2`7`8m?~&l|XkS`%2CuxRf|;)S?1dW2e<ZNwgP&6P@$0HS z9s&fXq&XUtsY5ccBkkJ_SZpqNS<Gq2n8P@WgsNnZ*|AHpr#0WCd+a|cX<!6ilXZ|E zpZ6ooqUAbpQ^-Kh1X{YpD%|ZXfH9vQ5B2a+HaDjnHY#jEuqL}Be-^m6hPRp2rRZD& zZ_T^ud#M}lC)$g!xT$<zA<Pcy?UXd>MB*;R@H*dI;JptBEY0{ye@~|0qA_axj65fU zh~}r^CI~A4hg-eMNSQBMf$T=KL4enqibxz*h??<?LIrjK5~bSr`_A?w*EL9tJjp$F z$HK^)nE`NrBT~YG{$!)``Hs-Y<lSmWS|c)3Jq4S#)lHl7LSuY5-Jw^5cdj?IqzW1c zhS=T5DbFYWK4Z6C2*R2I&CK2+Hc72rYzlCmY;5jdSYfL;3Pk|{NPW%_0M=fU$woQ$ zluYmt&V!Lhkg2D5z|zY=S-WARo$`8G5h1MyJIJ7+KdM}UMG^2~C&Je;Y}_AzzI?Rr zQZulc^w|STdJ+sZGYE0>eM(o#?uii;GR(df$ucMKSyKd%gRf~7T(#r)wFk>ih@nP8 z7b+4WoWcqw>-6fNSA9DvB?}Ez9>4*|4QTuk_;4vl3iu6tv=SP~0r!Ixa3X6|l{*O~ zK7Ml94;!Gsp+Z~lL(lM+zem0CV!H9Jnzi^F`$N{;P7ItxBd90_RN3iI=_d{xD26Fh zuk(Aaeo61e@hGd0kM=Z9z5K1OUCtfwCPb)%c&DgVuld2%(grUVuO=P&Z1n#%_vZ0X z?*HF-krXW|QiMtyLPA8A2%)i!v5%$5zGTZ1qNK$VSt9!~7;E-@EwYr|*mv2NGzj5- zUFUqx_x|0VN1WgN-+lf#kE5fRx#oIb@AvEVd_9-TqhM8o6gZ?06t3Ym1_2Vh+JrC| zuuo4Gyx%R>ho1$h7nC2xQ!t=rPD%%TlXh(L_PWxC)L(jpzX)f!8MwC+>;Wz)=R~_g zx%gyO8NHCO*(c~dHlsd#VV$c=XXB>hC^-r$0Hk@qEa`29(W0nDlv@bWk^ePHM1;y7 zT0KV#3W?22;1rk#h*?j6oXmwm<zorB>B~&F)@-&kP1Tc=Wv(XT6z;}!QF4~(B901_ zW7NUMVX|b;whG+<K+)<-m_WKwT<%wxX;?y=!xe$Pi0GhfoB{>;z{gays{{Ivwrn0B z97(AZlS?}`u3{SaZ-&t#J`yOs55jcf06foSHE`I_U_o<ZJF#hJae4A+sh2A$syoSf zgE;j7;;BnhINE+jIZY==r*z->t1kWHzuezlgyRJvfKR8ZX;sVa^*d@strF4ry*gpY zuzm_C#P(j)(Z4Dr$ibdxwu-}??T*sLU`vW}1RX{4H4yWow^FN3ASA=aQb|_IFVbm1 zuayT+F-L=~ThVRzwpTY$7x{sxDhSxzT&pZ+F7V;Hnq$Pd$&B%8&fsy@A4ffAEW|yS z6C8>YZ|8ZVLC%qgyQbhC0$O*ZT_ZE?`Aez8f0@?jc9bqTcC;4&Zj17b{)Ov4Em4%K zX|MS~KY-Xc^xOBEyEiB=Cs1&T2pJ6Rqu&KOeY=3H8}Mo7%$Q;;%~?p~AqHXnXH!Nl z=c7zblF!SUIwHL{N(abgTP-}xQB|xMsWln)<*CHq#jx=rSq!0!Xwa+ELz_;i2C}8` z&PpZEpeRYD@@J88yh%^cr;?|We_MooQ<{SnV?BB>Js5<#YfNsxTTskNk5^G0Munm0 zl}ycyeXiw#-82W4{hBM-7!DSk1t3R+C#{X<*2S1|Ni^LNfU6c5S2fRl@Q~t7i}{|Y zMC3D>4RZ>pXn3=@^L(J9?!@1al}lGZWTflT!1=1nWU5YUnl9t2+N+x`-7YDy(oxO0 ziivK+s9e}x_RFzcT?fukUm0$^ZT-IR-PYTfCgZf^W@Ly#8)^JC4XFfxPKrompoU{| znv(85dL)}DT9`5-gHh5riqJCbn}k*icpI})swnsrJdMgcu62FZaV|NV1&7QEh)xD{ zB2z3q%@F2Qu}YBE)><W>sn89S&16cKN7KihFJ}+Q+GQ%*uj#xr5v&Qybz^J^vE6RB z=VgceaD&B&gS74QEo@F+Fh0<uI%Y^zN>2^;>wW=E4O7`D5X}{j1;}dAYLL!;uq=Dj zi;Vn?r^S{NMm1_>&%MK~_JZ`rZH#5JQ$rOozJH*6tsT_ft8#82yV2rRvDlxu{0Wez z2@b@#NR!Ywm}q>03G`6;y+8@eG_5n9zU!&&pEET0DMRX{Q+Z!CnSTu7<Bl>)n4h-L zAa_SWG$y3#xfRW|76zxv={XP`W+F~FC`<uxtq_mpe#)dO>9!360;_V8E@A-&gEPZ5 zxCu3B(%-A;$v9xd@)79Ag;VP}8BK^CGmfIY2wmAm@o=^A_pS8RH85U5_+O9rL&G-L zTJ(TI+OR1yBBj<8#ob>Fby2=W7YLk;n?$xtA|BP8PR~M3<kSRj$-T(4!sx{i#&R+$ ze0Jar{q=->WQJ|T6i#Lf^NT1<J}B0@92-uZde!-K3DveL1R6#Q)gZMKm*t3wefhW- zM6{SNqR2&nK%j19KS6RGVBQznxuryoXyaIP!8ERT%GFcE1lf-D-u50`XLd--h^}5M zf^@9hnoc-s4K*4X{eE~*a%2JoO)O}d2llAY(ii4=0kVf-u?j)fc>6YDAnd6JpTDl1 zyIMsFJjpY|3|hOX{nrrk1)B)DM%OxwjSCU-^?dFnRG2;#tnRAHc3My~^p|yx)SISg z6=of7RHMIF8G;j3h7ygCrR+F2SU%`MdUN|0<{2UzbLER&=zC!VMaLs|0?c1fGeOD8 zB(n~4AjVt)ys)T2`Qj=J%X$E9G6&iYPE^J;WL#CV#Nkm_y8I_LGp{qdZQfc3VYtAG z#(Af3D7}wMo-w*fc?hVF80INf%#}4fM_O?QlyHx;S#!b3^<B82z&CX=9YjG`EE5xu zfm_OFQSJph(ZRz{IH8I=f4J|rtvh~65GKLVoaM(j)Y=N6UMO1rnv=%c;7d@hOQ_F> z^^Xh-u|b+J_e_IAU43A|!Dak=36871J-`H+J8Lqt6NNE-64Nw2<Qu!}zf^^$q3uTh zcmW`lFLYb8<afc^0tDL4{m6I&Dep-ch%*FEs=f=CFZTlF7=@N(6n@eLZGi!>6(6C` z?H}X@Zy5x6O|f3WXi~H&3)zD=O+gvPaU7=7cTA>N5f@hw2~}d8rXt}OuNAPLo%|-X z<VA8h7u>CSK#@6*uT%C(c$6}TXd1vmnDr_HdJj%_7Aoz0p{-w|^8*1FWs4TVw-!xp zrfyPDB4lc3$W!Pugo$Ok2+Ho%SH#Z2Fwyu5@KcreTw-f7R*{VqaXM;wa>ix183zZ_ zk|WFoPd2=*w5)8yI2FaJfrcMjB2Kq~T%IB#=TZp5BI~156%H?geGc291rs7*)YM__ z7|VPDu(e=@rsOIJuR-2#06+3zdReZZ9gzKt)+0Fsp{&j<*8)Y^0-Tl#DIZaXCu`IX z#<5V@mAbhO;jYnFVl<s-g>(>iIxaFa-gg>OgDCT;XR+W%t^#A-w&EPbkG_gUv^Co{ z1F|T8CRLpC=>USeJpfZ(hyY(0h6r&p@*QSCIm#-ZeO`_!1QRWNJ~?$h7)|6be((l= zhEUUt6O0EKcI!zl{Z;aUflu=NyBJQMY@pB-o{fi-L+>W_{>`-}H+w?TdFeLdT4$;A zV_GAY_@!a=Vty4K4E!6g>7x`+p!qmnpfY2*Hsf{Z^nIw7Y|z_lTXq(3Y^5tT>P##E z8^A|X7FLgX`cWV50^<m-esrmm-RfME@f;V%3kuPzi)Pr%<epYxuFZpSqZ*GJL^L}r z!X$q<%(%J0V29&M8#k}rcVwp>&>Q*mYJLOv!GgkD8ZGV$3)aG6>*hK;&(^Gl90Be{ zqyF*VM~bvJD4bx=or`3c4(iY5-)#@N%%N~KE_PDQif`R(0{~xa;?w~3ljNvTGFnF$ zImHtBb0fg&*UAm7x<e-0?a5js*S623UNjfrk%!J{`R$eyDND+Z33lajIa3QB_;MaO zpK}Fs1Esy5v2<}H2>*NRlo;7y${vL_Cg{a`x8OT{IHgH2@!>?(C2?K3gTAQF^I^-^ zw4WQ3Ikl?rIc(tB3sJ@63KICOft2ZXm=_FMtHB<X&hN3%a=6SS2k`&UdBXM){8ahE z5bkN@4o3w-FO_8K%i^>-SjHLx^wJC{6~7CVd@&$MY+c7(G*G>G@^zdHtIK&~0F<oH z8C+OBv!H=ud5=XKsAz|Ifbrw^LQNQeu4L+k$eGkvLy9e}!}$2k+F~g;0*&=<beW-c z$~$)8GvqeNshQUZnjd|b((o@^)*hh9t$<yPH0W$4Cw}@Z60`-i+Vqi>`@5cao~mc@ zG}`!C0o%#9#!k1)+o)dVJ;h1Qf<}rm8*IrXH(=0{28!GCFxd_rq-TJ7qmoS9DGyqE zpq(F^(`#nhrStpr78%?8hdu^u1Jj~rsxL>~fnZcrF@xBSzB+Na2mB^T{C=43opOd2 z%N{Z+)B&=gJWbkke@96!v;p_U0k8s=*5?{OjV`H}<#I&jMeBr^mxCKN7|yw*<1=M~ zSfN{_hh{JWDvPvC^rGu7d->aQ$oUTpQSfIN!SR~)7v+NAu!py3*})v>O^GqPZGV3a zZS2Or9D|H2-V(rC-sD}i+^uXnaMnr*0caowNP6w7!+~ACMzD$b>x(QX;76EdrYy!E zc37PMT%D*Za3BA___6aWarY1N^r-}pC7p;#Ff;oC6s&&<<$@xXovMT7uzEFHxf{p& zu7p#n14xC4foBcL|4Ki8F}BBUvY>nSzXPW1a0TnoyqQ5%X8I_YRA_=DuHG&{41xom z)j^ISNS;7|VEW8|1A-5X<s&N;)(Jvzq|g5U^ZQz^B2Tw=!QGG^^@}{R|AX-*vXq4X zjevOe?I6;{EjefY+f5Qp+GFbA`8sp=d#Mn;FKLlgL4@|%u8voK-xn~)iYb}h6&yys zr8{WE)4O+zlzbNIKKozI=LCWMjr%dzSJ(z9z=AK>dwjKZv3dip=m9@|sNj`Z*dpHQ z0`r&nYbd?zUv3-R>_C2&SvcI@u{8Ds1wSOezVfUWSVko02*3<U1+2X?k^LO=7+x(o z03OP}m~BrAtwX<M?@H=}Cnuid7#VDFN?i#}EkJDCt7=4<-a{dj@pM+9rql$s1s|s& zn)O>kmw9a4c8ws1*BU<d^2%Z>&kN+`I->Q&p?tQ!b3AOxYLlQ-EZnY|6Ndk$?Kn<@ zAhhgI$bi&U4<ZdS0S^|ONzG1$mO=#%1tTF}*B!y@zy8PlyJur7WKHdpWn_btDT)D` zr1_CDsl9xxXiN1I!{(D}(7>o}fN*VQMfqz&lVOz0cVQ$75ReQt;IEp)BZK4p^h6U3 ztigy`9U$b*b7i})S&HZiw-eDM{J#JpWkq)_H;W(b21%Pa*!iqfQF3;5sOrp-WNKOz zUPO200=XX9R8uI}o@RV~yZZ}!>^qNNq$uLNbYuHx)ONw6aQhx(jxm$=Bt=~<;3?%H z4v~!DTFM4c%uvA%MEA48rjq)8ieK=b?d;E^D>C`$3ZT%@Jpy!Gu0+a@(H>lLygD*~ z{e~Nja@#8OIdij>VFTP^?nP~GtQN~;LMNaBQ=jWtAZ$AEF^u>!2&Mw94cy&zVQ=B~ zGz}Bx%0VoW^T1xn6!w4c1S{Uc*x{N{tJ|O+r|5eOG8}YJm@pueHrT1P^55f}NK$DG zws^DJ>u51+9%4CxVox@l?C1SF786B~XyZ!LIeE)7t|X_d8*#xbuua4FL3I}}Rg`&j z{OoSqK2<e|BSi^y<QXCBPxcG_mLl_gmK!UH6Te;?$b@8?1j!aV+h+6t42#U~Rg#r1 z=0|}YSlP4H+)h=vp8g-rBGfn5uFW8@jj0FB>uwRV?rk8_v(4{(<&a)2cMB*xD-$By zH?4edV#)^Z!#omz3fZ(pOcW_}VX|2JF$lfm4PYD5J}snl-4d_G$w$q5B;*e`v00VN znX-Qb^X+z?Z-u8#Un6WOcTMpPLf8JIjA!^W4trVx?)8x+=O<yN0P@5)e;|kvUO72d zoZ}v16HQs4lVSQ>2>3@iP_Gm$H`@B{da6<LxZfhvhTClC-i&MK*_d>5%RKyHW$f3$ zHafe+&K%t^@`k~_GO#KbW{BNj!#c$3Z)*dy;~DWFX;%@*^i3~a(a2|-KguMBkm(p* zh>9E4Oj|=$@m7TCuG5C$dM7U3%S5cWV5EcfY(o;`I0hjH=B!rRFCZEJ6*5TarF_s1 zG%rQwWcrk}9JZTR9KeKpYurO{yAhh>VwA`YPgzJ4`UuZX@!L9br84|ITDDuJ-B}5g zdugm;$!u>fV3&h@Q&@hZ?cPTwvt}ZTh$DOhNPlyny3Rp#qBBHSr@Y9-Jm*!58L)pk zd*LsdtHk@?mr-G3_%db1Jd+MqHc0C(_S&6e3iRs43br`h73Kng`%_Y_b9dK|2?qR# zK)3M%Us@&hm%n$zR(Ta$;*5>6+-*4sr~}JWSjqX&Vs*oyVgk4CDolrhEnom(u>J(9 zX2c7;INAu}B-PUqfemG`tr(5=<9<6;-JWtJ(lU(_;eMf;S3u0!3wA<p6OJ-8=RBWA zCSvN}Of^2it!ehj)vpV1|B1j?NP-oaHJ<;cdk9WQxgY_z0mr~-UdLl#r=<d2%3{0Z z=Qql}I8p?{B01L$pt>Q@l^zqO{D8<DmaaP91r}gnY~|{1W423A218DXv-5ZM<Bchb zbCQiimTw8w`lYwzmO=VfnqYzn2TCu=FHd}x#%R1<d5Q>n#DZp7u;XNt-Rs-gpp?)C zEK}>E{+t&oMrgYZWP0^j4Mu)_kEG7dw%!(+$m_MR!JvEGfL_Z@B0}aE`hhi-$2^84 z*$U+zKETO8+iF*&9iw3c1Y;k;_JT*F_uPYznDo>lBJZCRbx+!q{Qz+c@9j{2Q>hnn zgmn>VUj?^E-f+HfIr=zY_xpV6<QMc%kpIEL<bx+hMpNyVvpNebKA#aOk|db0-sw+i zPJ${NH?<9w&bV;Tk^Ux&&2-%+Xc>y9sB$e-0K3Ny3S{7~_KN@vvD!D}Y~3>evpHCc zjo4V@!!+MK^Pu|t>%=+22?4w)`cqCmVjqF#{+#h!R>o6QWjo+`C^Y}{D1n=@Oij)N zAJ`@ogEEcv%mZ#18NMnYAmF-CwMZhgKl3+GhLee!hvvLob{Qm!o((3;!rd%9l|~Xm z^fsnA%Jj{VwYoXoR=yzf60zv+Dvb;hCO7{RF$AGt$2d%>!(~uDnZOMKt%qEUL&RLS zV1vg;7i=m{e{ZL@F8xtMZ^6!ycJTWLu|z9LL_Qp1w0;|vkhEO#JGV#&eH?GV_kAzv z{(_&~n=vLiFnugMd%f6n*FN{ar&!TQAljHtosizxrpQR`koG4&Dlr8|`TL`_e))(E zMq1i3(1?qt4(F<b;6%OS8HAtk_ck;Hu}yrN64atmE0{X&Vn~su?1RHK%S1t2T=e=H zM#G0us7HtHS0^17j`zH;Fq}Y%C$Ss?N834k3!r&p>3`J}P<OdId+_C)R0D$9EC`kl z37>giqtIao86~0LKJHo`QSU>xRI=gEIg(uvMu6C3=OOb*$m?9_To)MV%4H0}9ag5~ z%Z)DI27#~52YC0xS_@6%#I)und9S2Ba;An6U@{LUC{+QfLkF)wX+hDU+&%s*4~D)2 zL`AeNF1KbLXuFxiAJW%gqYO%6Icdkf>-_)9U8H2wD3+=8CW(PSyF0%li=@!|@kf_~ z22nH5*Hp6frOQJ{^E>MW=5pF*e>REagYDlJj<R1PnFP~04zOz|sTv4;WCeU#iwKSg zw;^|Otss@f+^}y}0QgmUk@Q03+T&h)jT7Wyrozr<u`ZtW01nWE3OiTkUlAf(zaEfq z9<APOs7cN0{*ojk;52#w(|AAyCL8()EeU`)$>%YdDf)HW3*s&jMri){Y20iN;?*d} zQnA!_dO8vzV2)Cryqbwb&xNilT<kCi!9KL%?#zKfS0a)o`0Y3~QcNRba)MNpuuCey zM%{<cHT)RjtpcKA*!XWiTKnnr)#dchyoUf<L1bHoNk)GaHejl2`*+i}8q72Mi~Hd0 z{>ya{1iCoW9GhFUSNW{|I6?b|LGkh&Toflp1S;&J;RPAlY*O+gcZjS|?&{)%+X=6D z()>FhmH~-Kjd0sq!||p+$;H6@d~=j(`#`E^0xP?xwh6_TFh0xqJcybV&)=^C{Q5bV zleu#t;Xi4lIGGeEmkN{jfur@rygI}!U>(PUEW++AC*)S1H+QZ71pW&BfJf*eR8x!% zT@!MGm_J68ViUlIV1%Z?3rbpp=YHh<T-_id54E6>(h*9u#0r9e0A$|6W1ag~iUPof z6Pa*;KGwR8c$baMH?0hZ?@AlLuMAapimhal5|UMI&^qk>^zMwJL@RYgQkJY<$hv?( zuGt7K=!X5Q+Uh|<2nh=r7PR&CJf5+gjjcD+<~pEbsX%gH?e+$f+(eyr0QkJvlv*bF zbqX-vEOhuLw-CcLkYk-G(4p5Lg*mIP2{M_!iGPa(G~*gNGQ#lbVjpULAg3&s_nDj5 ztpt8)lr{mS*uYgls&od)b_PQi^#Q)-+clD~!k<0f!QT2mH<iL$^bVY?8*Do1;Tz%8 ze9F1+a8rnBngtAQ>#m<6!y?-hoU?_|tiL>Tevi<uz|l9RhDu-|&GjV!Ix`D;iF|~6 z>qo+Z2?WcJx^{UZbWmt|GPGrr$rW361nflT^|r@WNXg7%i)Mn~d1M-~_EY}WkLL(Q zblC+VvcP1eKkr+L5@Psf+o6$#Xexw2R`32386Bg~;$!cjd0*rqI4?zE^XTq9DcS94 zwHl&ZsLU&fInt)8i7@uocqiM&hQR6!s@G^OTvG4x8O$2dRU-m;-Mf3kJaAU1&4upl zT8w3~7+ar!+VH&K0N3^t>;%ra@zMo&fFh9idAn7_s0E}T40$u;j1Cp^Wg8Z4)V|yg z8?9nACOyL_6lwH;6OrF}<K160rkBd1ZMCdJ8G&4wv<$iB!D&-qQ58;K|Harpl%m3$ zU}n{}eI&)@=U2W;uQXVkp)1{g_K|k4;*2&(_Rx&ED?qKXww&gnGw;y*<8&L__e(<! zrrRw}TX;;0mMXL;iM(Z1m~c<ua~gVBqw?Lqr$m{v^U6Z+CnPzdWwPN!^DI>i(sWyI zi|Q)``T2f4dzE(M?cGk{XsUzMuPHLbh|bSlg1}9uXpbpSRgfIrHYe@6x;kVx?ghh7 zB>pBxE+h=MzZizVeSw~Of}^{3H=uw%P(o30RHNA5d;?AfgK}_IgN@JJ9(LvZodqq6 zP%hi_7$<fklUiVQlMSVv+Er6c#juwoW0L>7GiM0aJ`@R^KopZ2ZL)3j^Dxr_V{fFM z?2Hj7M<Nv{%a&ZO-TIgP5MJ=qI+rhBAZ)q4V97EqTw5IcbGN=!RPoqLHdfAh=Uqe? z(9crK!An=I6)&mm`eOda&MvZE7vbf6{pTL|@4x*2@{742_xzb#Ro;QjIzfV9cNw%# z2+Q-Z+c~M-fdkmN{3%M{u3d%H-cA00L(xFSd!EJtnI}Q8RDTBUUl2^uN?PD9dTi4# z?ce<loV=psuBxFCmJlCb;P-C;A(>9}U8tzGCq@qMj_`<)0b@-0`K|@<9(R(9qMoYm z>xHMT?uHXQ6-`3EDR@ERgyF8ivsZqRNU$!l{t}_J{Kv=p&lgX{S^>D=`Q7)H1Jqac zvX;nIHrdT~aZzrDd+6yqjRB@&2FFsU@4uFwaJM3+c}u{qOdkoQMCfE%T3SOkU|9<t zV4E3W_=#f+jo_YT2{2tQbfdk10?XH(a=5bFxA9gLSqI}ZQ+E~sqD&I{*~qPuqQVX` zt@rHExxj$w<gZ5Xg+UBzWo2ZtAax>qa<pn-8;-dTATNT%`Tk)Tcy_~>q6%BZwcF-+ z_95A8<sl3}FS0<?Vlt2N26Y&sUFPezediqRkq(-LZg@vCK;ZI#qJY?$YW>PJY+^)Q zDN2d0vWg5E5LSEm41Y7Ycz(}xSApM51AF^U$eTl`;?vnvhyE$g{#3ktv2;Jaw)r%6 zU>nIzN=}TlJ_O^s|IsJElDG}zo_|v(A3`OZ>Vc}wqUgo$5X>Fqs|8PXqIhzvEC#jK z&4U>tJ$h@1Q87`DfmQ$ml9E|wP^KBclb(yr-J!7s<J(g($#hPG+!rvCF$S7#K77Q2 z>1$;Ahyl#78WaX;AnS2=&iM$c5a^r&1oO<guk-DnGYXTy*iVgaZ~)X{d<HK@X$}Lg zOlTpy5fK<h7Xgo8{S@SW5zA10iZewNlWl@2VW=j8Wi+lCOrtH-Yi2fD3TQdBj6mmS z>!s|7+mi|Q<rdRYZVZEeUi^PQ8ptE{yD9DI7ge6M<ijphC+f=952kf4H8rmSjz_Zh z9geG!V|HmZ9JnU-Fi$OhI*k-cuxj?tD^_#>K@k1L_A`xY7pT8TD+6&TWj39%l2X9e z=IQ3#V8n`eRR5eHWau#QC;o(%tGpi+rX07>g9y_xO+EY4;yrBK3MA=h!t>OhceMIR z6kQW|F=stj!0RI!Pkmtq7i9vihOv{S(^g2dH=Pv0v4&|{RRu{46C7J;@pbzSI&pI- zE$46Tu3Cj{0ptcOv+EEWhMi21;mi#Tq+Vr!Yc2%YT))fkR#%?+2f@^{Q-6Ep1V5k% zR`ySzNX#hT>gj=)vUC>hl7fxSFrD=)2b7l8K(VKlnc$qWUk&nO5M#si<1%}Dp?aMI z8?H=HYJ4KofZF-`azbW0ESAvqZ`a>@lL9^1?5q}EA;tqyEg_PVHf0}*ah_lZc_=cx zbm`LmqAM7DU@ziw-=9AZw?EZbqqaNSuonq?BS{7R<}LIW+#Zm<f(LpeWe>O`Joty} zSorG^Ib+TKUG@%YV`P1^Jpa*lYMmnE_wQxsqh^X!o4>Qw`mUA$f<ne|Fn=Ie&cx{s znK(2klv*jv<)BX-7K;Zvy!ZHMYQTtYG|Gu=+7`pJ-M<F4?0(j25<bK1bIdx@b}bUL zNHIf#rqYH;c8j!+(7TFUGrzw`?Olll{Dj~m6%*0}<*^y!%MN&1p)&@9i<UG07JhRc znZ-U{-AC^YxIo#)ydYmfT=C1@QK3Wb1+hs(Y^BOy$E&ZHOBD^m%bKn6Y!3Xl>{wK8 zM*H7n$F*=VeR=C`J=j8X#H_Yh8GR9dp3T<f8s@K9?0GtjGfacHWeG*9n1{l%OSDF% ze`VtKBbYeT5pQ|D;s5B4>v_^fX>NVh!%=qqxfcFw$8$f=qHuwfQ)eo{O1jtaKl<Wn zRTTQf`f{T0YCa;Z$@w0HY}naa=~KrbFYfJl!I7l<GN`t5t{=Dz9u%DXTVPD^{99l= z^G#VD_x-=r#rZYw|8LdBul0xQvRv1Ir&1_o+>h@=`u-kd;LdS0?X`e56U8F+ONo>< zyXtSSo>j3l={jV3W#`%Z)_^A_1y9W$6q=TmsPqzNS3-RTv5Nx_RI2%7XLd1pazD=@ zIuzvRwinb_b51%S8J_FTzN{)QBQJkc>+#qZ{|bAH8$2$$;Dlts;WHTqox8rXi<LxJ zRa!HmacCC5InOpp2aIZfiRuBOpY`BmKq~cnG<IQPTmi<XZJwOEyh}kAt#E+KVSKbn z4R`M}p_nxY<}{%xmrKEZVO{`Z;`u>RVeh+)5{kKNpz>2-IO)W}xgl%?ZZ!=n_7QD1 z9p?|{XU*}9KF8NYI*c65KiLflgtSS=A$0yZG)3%*nm2dLpp&@ww1SPvZ4u4^HLx`7 zI{^cu;Y?F&G6>o8W#AZV`3QVm1OW4pFE&RxCdn7%fx}vb9#bCK5q-1gDHRmLOhs5Y zqaII!>;4z}S&#-Kd~i~rec}AjD9V3cHC?M4gb<S+oaNeGz@Cx}QjLGBweyr!^xVm_ zi}kfks-{**K&;R(aEEf7=L>5+60aU|B|@2kkdQvYQCD0I!;+NGpFOu7VKNvrq}jg$ z>lGr$9$9Ff(*(L4Dd7xE+|4;Pa=uuHMP9S2ZlVV{ux~H4MQNoFpBIyeqR~Z+4r&od z(e-QARa(j6rydyyu(%vQ&4;qt-5cxzm9S#vB@+@Pj1AdEx8OWR@*wh{qv}Q|I34XE zqr2C3iuJ0}72MegX#R5$YNp@|WD*4K>6R3AP}4ocA8K<_MGE*;1eHMZsse|z?-Axj zDcG^33rxdMxLd`%@D2AC<Q({{HO~ada&VEEQ*;s=k%2~i3SxZO05{9@qHHiR|NENe z-mn2wWfbmidp7lPTzotd+c~_BNuYCAjeJ$Ov$)P(>@qwEO(MoXVl;<C4-t6Kwq6D9 zAA%YQq%Ri$H%K2ooOK%s>!+4>FN!DD6t=b&FmF`(cwYjs%0Mh}aB>mT^MzmyF^f-0 zuP3Td^wHfgoAgb7eb4kMLLUI!%{rV;f##tGX9|>K=?e%#!Zi~LE}-+_HL<(seNA3} zf_X1(JQA+psp}M(5%zO+SN9VM&8HPJ7k+Pr^(-RDNE?X>mecb_OcXqvuz$>Qw<*66 z2*I}5dNR2X{g>gCz=H36y{Ha&&_sWI&sFWIUb)Jq)fV_1rdn_!83wYce#3sRRRYr! zHpSRGi)kEP>o7$?@?_kdH@Rt^C$plO4oA2uZYJq41shBgCm4iu2$O{-Jy3yuVDGwn z$@K|Lu(;CD!BObTTeo=1c4=jz_Z*~_MWMbbyT(2B2refH^H6A8W}$Aib-}j-r_Ek| z>;I7Mnj`dD2KKa;1e2uE<(M)+EvIn@l|4fu>80CjK<U`GNfC4W#0l&v8fm7&QWdnY zNhud9CJFb^q!CnkFB#muw>O5j_(X&7>x27vx6{lqW)D?|lYf?x4aPkvk_t+SK^ITE z{cMLzp<kWbZYHMeAm+QGL89TrQeeO_aZtG0zU&~(fybY(ub}s?*C*W-K<fq*a4e_f z$F}Z9rtFbNEaRxP_IkEctp03;8A?z{ZvpwA%ktMrd(d<zTbLpV2<Kr*Q#44&(cE7p z`up<Dz8$tWPw}S}DOSIIOUR%$p|T;tA2=M5evR*0yU^v7Fdn|qVY)x}ATM12L+IM} z={vB=^MXvj;Lr*9NLFnD-wm*L`>O+Szsdfr$acTG4|>JpX=n#?&<V~4Yg&8+ctaBm zF64*rI`F`Uc<byAi@wmV1Q@D8DIa)(V&->bKl#JCAQ5Xvk&%Wi{>u&~(Q4l<I`||n zwM5%aKy}^@;Y6Cq8u>_yv1ggBZ{T@()4oyq&)0N?NU~4cbL;YVGB}Ie(QMIsQsBwM ziJAfh5?t;cA{|4e3Ixs|jec79cp}#=``NB!hHLVF<`cP-z;=Nda=pIa8$n&}?IqK| z4^fya+wRPw@u&DC;Y7NNN5o(K0hKI#(2qpZYbXDFA^&OC++UI%C^>&=bT>sIT&UXd zE5Tu5PFEd7rF_pE95A5&^WysFL3DqA{0ayKaX$jT<b-^*nN`F6W+U?KMpQ;V^QS=3 z;EEZTQ@%;wdwq9>?cRMJWQ=aVe+*$C9L~6RW_H)P>H%sVSco1gZ@9E~|1R#qR~E{@ zTg?ZTeZ`36Gf?>a$c{Pz&{$b)wmUcJEESpr(xATaFtV0hf0ViFyz8t&GlDtxaMn2N zQt7~Bd;K7Mv9(8bY8Ajl<x5U5D#n3XTa4uM(wpH^ZV#5;1iLa*T?t+-A3jE|4Tozk zz_l9iOtFJ`giPSef;R^SuC8#R<mL0BHtX8j+%Shx!U`nCeBO#ay+e!`wT!!6@6qlN z%hhgNzZbXg)JoeqG4Cp(c*q;SY&sg5f+o(HppP#wqw<r>BW3EAj~YTWKem5884_ml zd1X#8W~<<|`-x-x!Tur)DUte8+Zm;Tet!6(ZIP|e(0ePMSE<CRj*E&~vAs;XLeb-; z!7`%4YJ$~RD_S_Y(P6pS<F$^SdEts>?ZhT)sIs!2OwA+HqN1jao;~<>&%x)jbyv%6 z=EnvaFK~y3ULZZOBp@76*Z}ra8{r4t8hdTzT+19T-J@!HJCYQZ9TXHq_WKRsXmmMy zi?N&MXsGX&75S%89@K2EIr{dQcF@z1kdOwzm+x4j|5@e#^$fVXoNFFisV^Q>ZK%rS zoi46(c_cOev7F3oBnT~K@P)_~I`Y!~M=b7=^shxy>0kOE7u~xD7cQ(Gy)=Zm8R%Ru zJ+j_Cb^eG{CaaRNGPTvM*a|jYUd-z^Z+wnn_o`-}P>z;M7=kI@$xWG^x{~`WLrQxI z+nPD(8w(aUEFOHvMns*u8eEz%H&4~P@NsSH$XDsWZuHV8J;nnzq#t_OzezD3cb0yo z*hUCe%}r$Hp&;3i7j=7HS_2ULBwJ*qc>G$?%;%K-2D$9!q!}x`J=!rV+1c3#i#-aS z3&fL(nM>~YQP>yfA3JMSap-8plwY|~e${um)YxtNfZ9TaQv;v!jk@0ptCD@kYRQ?@ z^g?`TpO_!BmpF9y^ZSGEw>{Q`-#In0t$h9PDP59TQmJY`;*Qx`?zVlmC)PLW>5aBZ zTC)H8^8fkqWl)7AFMg()mzVvkCfD6m3#sBqmxjz88wPc-%n6wE%+hSj?yCpi2(P5n z8rB?r_O;-+LR^W4@X$9u+Se|<otdSS^bX@=W6#Z>Q&f^cPNqlH&`xk(^I?*x^ps`x z$}xJnmc#6=cjS*>8)YrE=#AZeUuigb+3KqLh-UU1&jB&!N0%)2HHxZkGaGKtW@m0v z&^vI+u%zmJp@0d+xu!=X|9t%ag3u=M6)V%hcEycjaVdwbUHoXSn66#5CGN>vx;~oY z(<Cc(FZ|7A_uy-TWe=pfv^@`(95An<dy)DSdzVh`&s(A>Eg5mO;-d4Dwyxy5@}e%f zkX7ZqHZ<v3CXZ|Vq9yCP^78Ic8Xk_A`gQ!<`OHBwv$9VOd2zSQRN*EZ@nSY(RzAQn zWGnD&*KY+iA3S{Yewn>^98XK!J~Q?O7gXG3vvPA3N|IqIJyTivCH-EV_m(LKMGOqP zD%dO{U-|y|)Bev;f$9!4SO+M)c6jvu^YuCT?r~Rba?F@y*=c9|>jg!r;5ayY<;<U} zkAH5(<V`pYgeFR36L&-5_K@6$E!!j7>cBsL@4s&0-#<oAKoznazWO?H_p!^qV|Nc& zdyDV<j%p+~OjDfsO8R@xq@8;z$_ahm^k++9zn!!W&rcM54^+H9+I3&rs_XOUl+zu9 z{9bSSdi?bGa>9qP+>7)HGifiJDZVj3t#F4H-Y&Yl`qoaI`DSVNaN?a%$36vVdjWxN zvB`$l8@Ps9W3MkCnb+&>n%r(r(uBR{h9c1&c)$`*@6haU-bV9Lc+-bnmgCK03m*Ta zxVAL;`NRd4wo5fx3pt=n{J~stAmf)K=j6d1?jw~d$zc>niikGv!VqK;`J)6)$6D*i zr8Sf$GeTt9X7sm~jz7?U-!SSQ8_sicc~R_RZoG!3eMfyoACKvFf#Rlj^Gwf#h+%xl z#cu$(-C?HcH4+YsRG{7ICZ4q*BMNBhm?vH9?6WQu)V4Dn|1RU`)S}@?tY#X2<!Rck zfu;W(cY+&3yso?2v@Q2NWwEjReGDyg>2J)Dx8^~%muP5Zd;CW~%iLsk;juGcSCo1s z#LM2wmPC*x6O&pjrG8$!BMI4vGx}N51w;J@SC04Id-mRcB!{kjj(R-4p20Ge2gmh$ zt-!tWCO7eZe27HrPd;T`-m&4E0XHnde_VyE6oa<I1lds>N-v7trE1^lU*&F8&Q3)y zDek45WDjT+TsYv&K;x7ss=qDpImSoTrJ#4~lOEsHj>gua^m}b`2n(3WghXK?=fla* zcRAgH7>m-X(no3;^Q$;EsSi53B>ehu`Qjs8)8^B&Q?^~alabCYdLil2J@o=>`llTx zm^?5OU1i4=7M^j*$d}isPd#!EX&4Ux(;Vb@W&^=Wu($W2(*m|h;lSElf|!-NXf!(f zSR2C*>uHa>0!fTmhO^<i<UY?Lj@Hq2Q^(QT1!t#G!HwY2mb??vE;Et-%EAgWSM(X| z6Bu0`iZ9#hKdf&~j68DMDO4|no$F(NZYWyrHEMF4X>4Dw1>xPm<BG@tR_3jxBJZt@ z`={5wIiDLW-@MoshvVr35o<Wmin3rTuqUIZN25Fbg$NRHx&#`~dhlf&3q;EuOsd|w zKzl+l*(^)DJ$3l9AIn=s(k%VuJiOdv0rt9c+d`YyPK%Ue=;MuP80<e3bezAxo*Prg zKGTpg?ql#lzw))xlo2M2UY?2lgfe~6RW)^1&L>5}Mp3rSb}jLG);;pCy*DOhj&lCG zU8YseX0%DV5>4T~fBT1fv|h+s<HO0^;U)D}<yL|EjJV8(5*06P(&=gaUYFG{FM)0R zde{y7@Uci2-wQ{XIDCcG@$8#&_!0Xz#YGx)va<2(QBl(4f(xh6Z0m9>-v;e@4@i^y z`{wX`ym{u4XY&J+4A2d!0BiS7H^|1ko`U+zA0kNWL1KRaAfl;Ej-3&_A{|jL8Fqhn ze}?uOMeSFOI{l;h+D)A<CgqmP3C1?_FW7dC(bgXF7b#goHLo);wC5Mu^~79v`F&RU z-huGRtG7L|Me&y}e;Iz3?Gt6=$9P_K(=oXnPnBxkl55w+8+*2mAEOZ(r`=1gT{Mux zOkUrS$Y{3Dq{!L;^)67gW9F+ihIltR@R^jC%lEt()eCwd-9|mbQtv-RxT5IY0;#ng zmtHu`cqZ#`sq6dfXwg<o|E#g$mvvc=BkK98;R+3?(9bC(l@6>z=NIuR2l0_r*R;9} zs-}&P+HFD-MFYgvG**}FxcSeLy4O8eZ;(}G;<OLCHMPhl$gXJq_{oD!-t~S<7v@^O zdcLYFSV4A{^^8oruI0wmSJ(5@$kAz^$5&)9*mni(v@1o}%?I|<<T?vqh1ET^8$5ik znA$t1zR+^*?Yy1K^+;KyaI>*GEi(n5uFl~&t&?S-n&y_PojqsnYqoZdndmek&9c#k zzCN^0@6#ggf7X$no;mqsmRwX+1czsN1bgelzyJ%vjD7Nq*?oDrlOOZ<<9ud%$Ro~K zR=jfIpxP`yxl!`wJXqengKlSkpZfOT9+;m5{1~lm0G{<Z7;+rp*HKqzL4=Eah$}_y z4m=asf+xeCMjp?M3z)V2@;+AhT#7AEk1V-<1iQej)9lE>y?P<v5{1_vru1#D@F`93 zd6@PTxL=<cJErtL!laKw%G26!d)?@!<+sGF2bSW>*ems@ppA!&$&yKHTGMp>)@$6d z&gNa?$tgj2zio~}?uSWzNuy1#U)U4tf~&gA-}GtuT<s|x+Waz;pB&np5p}5G2kvQR zLus*+ee%`&gc4O!lhtA(A;7Wf;K-M0W<l*I!b4{Se_U*)L)EC3lQ`MbT@3l+!-v<; zA3s_hbDRK|uLy83xg!jY$AADC2thQ=Lv*FtU_WnP%m4Q@?|&+t|NUdL<6Z{3xl~^c zs-^M|jK<3t@6Mbs{;a4oE^jT<*j?lw1a`dJ4(Qe15CDSj#DJ#ud69BU|Euc7=mk0n zFKxa^;hH|5N#4ssirR%v0r8jCJGo7aR=!y3Y_d+?{rHmZmMCkG(AIn9k`;~B49A43 z^tq!V7icU?25zzhaUUvMb^Qp^3<7~eb%Br*l@B~>Pll!~^-e62O`Y3CqeA0B=VvEz zL)uDL64u;qu9*#{8-8o$>ro3vz1v}Vy)D`V#Z7);0<)yU%?LTi#Y%Dm5OH1y*=ONg zUhfzv$`9y9!~~2$tP1xKSn1D@>_j~JdqFU|*;PJ>sv|9@<5XvPrO1m*B>g=z@xh?l zH!LarO?(!kl<n3d@iZ2)<uB><+P}qAf@Y667P<zfL}4%eOc%N>d1NuI#V(cN>$<@u zDV};Z*lIJhZ9MdG{65Z;&Re%p4Zjw61;qxk`68NQLOA?=i4>-7$L%p?8**Lv7*^uV zO<QTk8;t_k)w%qvsr8xE&7>R3nSmlR<rmER{701IYGz+eFWhEmGu7l>=sH(CQO*{$ zkW{vw=A6(=VD8!9Z{yd6R*E-iIp4ip-*8<NmGNHKK75je@vHGktjVQfyeCtg??j|I z;f0&XJ1O75tq`4ab<9$)*kdlPD9VZyuFMC$Sf247`Z(Wv!*n>=^`w^DGyOA<!!IPY zm}>j2FXCet3MZ<M>Q7KMJ$8_fvku>!KIR@`Y~QJFSO<#kj=)fN(zfa8=`qITVI$2W z0+Z2sUR{62q>wK>_9^4I-8gqcQJ2iBc4V5Q27|!0UK87n;Qp-p=!9G*6LBx?pTTBt z2cuk`fBdE<Y3-q9TV=I2`g=hPd;bjKnUS`lo~moG#)LGSVnR7X&TG07$se0IqeSyP zwfm{;r>^0fq%UjESUZ0BV6YMHCAh4zyxAcUn<&Urot)>xpOqCqRP*8D=Hvr|hFMJ# zxkNwu%gGOpaINcQcVArX)43}qHxy>G?(wNgY|6PVA%M#`z^r71;zv7yEGO<Ug++m) z^|$woIZUrkpO&P*k;~Y9vb>_fKZ3b>i<rYtNs+o@tDE|!%&=T%Tk<-FDsL-mkeJlW zcJ1bpki6Em1-(760hDTB8jwop$QuP;bu;IeJ91&%NfmVans2q3dQHWK>~(fCkp3jU zHlTVj%jL1@`)0m4yP{%UpUKRbgcRS9N=M@wW0!J6ku|@P^^C)n_|^3X*vNrQ!77er z4p<-;lMA|>M5a5er4O4DG&WkycvNRiuu=DXhL$=BvOibmT1(77tnXQul$~0+?t4?x z8W(lCIY;yG2$z)0#pITU54*<A%>r>>KO{KLbUwWi;B`1;FW=yq<`)AjC3Ek+BQEaQ zbMlAuo!iRxbvI{bVOzsuE~dYROtyycl#F$ipX0QhxlXp-w@vD<Y-h^qv?(i{kL=M% ziDYEIVKyI?wi%h(5+~`9O9m5~bS*GsXl-tGE$ia`#xIWWoAW|;mi}4oq2S@ke^Qwd znHJN{u9J#(ze8;xk9|k|J)TaL_*Lehqd_TM|4P^A6Z-cQnc{pS)8>&5<&~eRSILVL z=LLvMJiIc4lpHydY7%3yRq5tOg{~A2I`hR&GhkY0?7QD-4rngdV751O7%&TqeUW68 z7glF&+M9**XO(7NVc4~dI-0_7sZ+SE4oX(wq=FLsL}XCrzw+#ayI#yU1Zx^<CI(1( zzpY%|Ry=O~)BC~cTDidIWiFp{+w#9_)lYH-*e%JYtw)B@vA8`<S1wyqoq5m55PU0M zZRH8k-!65rQ`3iq#)q^%TC9Wf!_Sv?u3wmKyjkd$_x6)Bbb8Jd+x>7In0&-saxViW zZVhTpDdt@XgpDxpC@%rxzsZFd&aZrsUb0gM679T?NNv==*4CkoI^%DdHkcr#d$G%I z;XJ3a$%oW>$Eg@82NYwQjxR$?6TUbhOJ&~KGAOr6(#U=KqHJnztQdjf)~K=B+i3$? z(xdj)oO1_w%?+|FDP;PeOZnwYn<?tGtjlt8;WmFBEw;6B7FoNqvNg)2(y$d*pZd&| z-f3U3TUUbol)vG)O;nzwQ@8TU@ZFz2SK23*d0u{Z!aC`9)y$+HJWy;K5n(cy5g@o# z3sh9Uc^Scx%j<!P_T}68Pcvni+Gj#f$F&oE*Tw5q8tyFzwmy(@=m&o8ocBhu#PG=^ zWxMdO?EsHIoQ8jc+Vt+Hp$24g6_5!y!C<m-qm)8r;`I@n*)&0Q=5bv|lgmJ%q=(kH zb&7ExorcsCvgG4dcSS1KmrO$WTWR&@%#DulFO<Iv9U%?|-M(pT-5q%B`r}6vxEe~M z**yc&QP*z6KAl0+dS^XprJd*WRv%>+RLeCv&i>l8sgY7-;wp+!f;OzTXVg^rh~z~H z?Jhrkh&PvWI*pHhJz=iXLG%i8GiL}IcXL`8k&oXFQhmeB-NrwQiL0}1L32+pe!H5> zR_1GDQgeovJ5s2F?{y0n%WmK&bTY>c6SXD2^zDN&kEIPU{8aJ;vHi(}hPG;&N!0tM z4}5-^DLyBPcYp;%A5+99zcuZYX1>72d+pa$y%6yw3q$Otx#QT3MQ&+STMOL{{`N@@ zh8hX<di+I=j<x_XH@o!2Ys3a#?>X5^M?>7wIYK&m@u@eujA$~e(m$z;c4iOf+YWIP zlM{>2ICXafzEDxLj5lp!G|flTvok#}37wE_jlMndrT#kZUd}~<&y2&_(^Tmn^<~@h z32oeT5<*hTtzRT7ZgxbU`&peL_2zKV#=L!-?6d-Vp+iy!lcBbDh4SmpSNt#=Ql<Bb zSYBua8j=A_2s>kdqz<$gbgIkF>F4*E-wsU<bXeP3T+8Dp94Pr+9dG1RZqi_JbM!8a zz@3{xF=bx9^)JQ^)$-ezKZ((VP@H1aT#Vzv+f`WzjVdsU+<hc4HV`^G)<}L*c9Kmz z*Fl$Q!KBMz+E!{3Q*52!Ku7m!;5u(~V%dP1@U*JXl38=<s?2nZmxPeX*X@VeAq|u7 zwm-hivs*Gb$t!a;Aa=okrWo7md&Y9^MbEWFB_6^NN(?8X?`l`Y3`7#VBo|r#-*w&p z`CmkVz1s^t+vq%1VXZ>Ub@X|r(oxJug?A0i6HI){0(2;v!?WpOom11{tZy5xucPTv zCsg{E$DPyW^5~<U<YTqhC!Cls2&$mm9jYqVB!l39S*q|H9mj=~nK?^m^e?1mHtd@< znM@!QErkugl~F+-6}-3dB(uUyc!Uth<#qQ*xYTDlgM<uaH)`1FbG21UCv{oQ32K_T z&Ukv7^kEdwVJY6VyL@0{6XP8mel(|NV|(kklE^#FP2%&`2c#LmnUR&2o>}Y!p;&z| zd&|*{nS++cU3T)+8Nukzt&}d!igZf!3kmU#ct3a@SH{s!*0KDxbCOl4bePkR;e3jA zF9Y7G;zw1V@@d5(&CBp)a{E7(F}ElF3ZvKlB{r}zC#@7Xs!40SG`UsN?w!Hj-;T3i z=>4k9oki2XB69zYl}Y(s&&FocQH<){QQTxiDN5kfvd?!}CMMVC=wjF8=+w!)UX5yw zWxZtWCCl!$R#~O(>Q$BH-)tFKot0Tf_IDqk<tHn=u=sY`kNYy;qS`)ZR6@d1)X#@^ z6tX9jrv@G+ZY&mVR&%)Y=51_bvh`8yuyIf3k~r~TZUtKMEd+lRG)+xElh#Ql>!ZuS zDHJj6hB|%jyA4lq$<lN=pW2*lPK<a4TckScVG}2DEYa4R5P3u6#fmK7it`*Nng8}o z!}+7d?JtwU3``jCcLO9n@!}bK^BaA`2xwKdTs9RA!p)6w*>CEGnj8LRP)vMox!jA_ zSo_wSHU2n%|8wkmJj(6Vef7qb4%7RJitUfB;}c)G29qX#sx7}m9&n{;$9*@miOlvF z&-P5GdZl&iaUYibg0C5fg;9(uXA>D)=uV|}YhO%}IZuBY$CQ<mB^RkyAlYPONX?Md z@3!S%7NNbaNiKG<@R+ZFb+N$)^U;Rynij#Y2|9eZ{oc>N4%GQS7;m~|e($DHpE$Wq z$k%|eW6b9Z6BI9l#{08>&vEMHGQ!nu*2!FBshWB2q2!Er-?OgIl!eyHFD0aP`VY}} zGz7m&5}t`2j4PwnK2>u6sF2K1hxj0W(T*l(R96;95@!rH=ACASxX71-RMSH*tcBLq zglT?1$Y49Q_c~vMu;l#OIKQ+4`t0<`%F9M<NoSYucS3^+Dx*myL^I@2L(|*hhrd7d zESS^J3l%3A_vS77rB$bUF$L5=9^{%1{!eFhCnm(y67y^2S-X+SCVrVRd3I{*`s|e9 zh3zG_CrlLO{^%O7I}0gM@p{$XozsMLn#b6P41?S)4A|Fq<SqPsa7Ni~c`|!!n0#&e z)8y(vlW?wv{gG2=Nf(NG32r})WXpXFjc%%B+rDzr$qVDX@VJKa;)eH>J7LPuxKPE< zbw)a_!ih+yy=7{T_)j{$>-r-;4KqcmNf#2Qw;i*pAr0?B7?_=Wu3?XGGzOISJ7qo5 z$&ymBObK{#DgTgysRaX<nva#@?f2?LGpC>J$}gfeyXdq+C#p)PH>Q_M2Fe^?ANnTC zjh|6`AWN7JTvZKxQT)3?FylqBdC`>Q>8)9tfVUyEzt?)6V;^2*aGDAb6i?$!couRt z0aAHb3O85I8lLBmUsqY$7^HWxIeBuOL!lBguts}#rAaQN2$S-ut?TScy#6D7gIC!) zBGQw+swF5?))rsL>y%ifJE%&dVB~Zfskp6F{xG-bl601wKwTGKQ|+|f#Lp(_mG<P3 z#s$m1^ERyqua9tM$SzMbc)Ly-GrjXVa>DSoyP4bM?G`lWbk@(Hkc7qj{MTJ`HG%I) zEy^UUaq=NWmgO{>9_TZtPY3WDMPHyfoP&!`eKLa@?Qz)dfXxsUq2|poFnDNv2P(yZ zPbp82*sZkRkj6GRVIGPsuVX479L$znBosXiy0%8s?`zQ;PS?Dkto*@Apvri46RTaa z?!eNxf)WbR&956~9cmS+lzBGYu+9EkQG0FTg>E9V0L~@d)jqW3QS~c8OkOhb*f->e zdruw9pT+wm`H&_DI6qEEEhYvG#i+i_Y<RNeE5^xSpSICK_OL^)bUL@BGm=mI_4dLe zX`xxGl*3Z?dHVOl^ykRUl8)j~WDnMRUh{3UZo1lpF60OVJC3}n@pE%o9Vi{SiylrC z7)&^Rp4es{+~@k?P}%n0md#EHKVtpOpI0CBt|x3qD;F393oVp$N_$EKJRZ2`zfb2* zyi^<+ga64{zmLzh-miA)WC-0@?9tKf+X;G~^dVv84w#XnXQ!2;yA;YI_eK}?e5EHH zj{=5P6N>DvH%b=Ur{9uOdRKIcD#=*|uWK>w^2VEmGSQd*ihA<5=oqc+UN#-e)VG7> zWn%WT<_EfaC23xU4sP-lk~|aGenWK9_T$uICqxKnoT0eN-OZAX^M2cl*(m*(^Fq4` z@2~CRvQMvyqpgmj)b$4?TjrE+W`mhdc?^9<krFY-Md0_N?-S%qin!^i79@J>uFcw! z(WMB^TbACg^+FqGKF%mKlqanpHtDJMA!xBz>o_QeZ*IKF|JYLg;w7V8l88c)xvI@j zVV?8X>5}xszMkOqjueCCoaF1j+`TSfGfsEj&_WX&@hJ($rZYS*ihPz5w=eMOxUrL| z>M%=-d*!)VxQJ{v&Jbkh2o0o`y|>*+*ycBcG}YBZk3^;^X=s?3&-eh%pKLb!L`22X zxViA57Ob544nX?Zq^Dc=SF`xet6gT9?C@s@2fV4VaPkUs$*bAd^J%%08`lfh5;%+d zCZ)Zoznml8NU}G}k|on5wMHl0@hMtw2=KvL2x`+c$IX6^6g+GDSox*@lWMz|rrJes zZF2mA1Z}cJYoAhF8Mh^EtgY2TW8J%p52{*5@c4kG%Tbfj4+(NpyhT}Z{EEadZJ!S} zWJaEf@w(`F@>q1A=QRndP`EhJ$bIpgpcLv^k{CPhdh*g&zR&2vtQys%H}`F|<Qt6S zrH|!jwW8@dT~@JPE`<JTQN1ZRV;(VH8ZAD{K@N=DHos))?33)nez)kX9w{m+RtPhf zknBSGxJIUeZ;^MN4!gi7RCg<<NgE@~Y?`NH*RXlgB_B&XYOsA^a!=Cl<jaC~KTD&Y zoL|4(nV{(NuqVbfmOaRFqqFAqN|9RoU_$4_>pa_)!no3=vLyMTT+YD4owCxKNy$t; z^qFAsP2;%a2kpwwHWp{}Y3yBc^+Mnr$|J|O80@3!Vj|gC)JfX>;n0WBs{XjEN3)Tn z<YVd#<T<BgPH4S>uIiIk1>;Xat6h@{;Vig+MRbTpTq|tHiPT?j_p%hmt+PIbq&rOM z{w{Py4*|pI{!7`m9lDqQ^m-p@&n~_$<$C<b3qg*jzuz(j-ty2RV}!r8^KYJALAXzR z-;eD6mR!{EmghK7yAyamX~XDwrKWH1?r-^m<RF*X2i)$w9jceFo_>9J!mIk6c82Py zVVV>7>2|k3dYSO_NHK7xKTX*lcldlfEN}PMzt0>k<pBE-M+n=Kp^m=3Gas~x9x5Ma z$Skk>z5G*CUExao<=*|{8Jl02X!BQIf1Q-N5JhGw`68ofpkPuULi8-j-a)U9_1V0_ zsyTaE7nf3HRaLK}CAJbW6Z<k}!s%82>^Uatu$RH+(Cj;1<qPEp7VM%s6-G6^rRc-w zW`7;)xO+-oFGjKU;pmAru9JqNk`*(Qwn7r5&+O|)f1HXdwq2yTv6YdMLfLbGyqZ#% zcHkx5pKoKcqx<ddSM0PWbZxbNR1{b%6jaCx;qo)TIH)zb|M+rCf|JUquK1JY*v9OB zXMLfx80}g%vmuP4qF$rhsnlb>o+q1=M}S)_raE+JhZWo`;eNs^;T6`U!4$oH%+c;x zwv_ff{pN^rl>6wLwklzF!;wd^BG=Y`R-Mhr)KcymB$;O7-8{H@Dak*zR{pwJT6?>) zbn^y&@{FVx)=7kmiwkZ`bMskHk#ci<R~;kiN&WbdYl$-H)t_z-{Mj9rw;!h8a@Xq9 zsUCBbc=dRX@@n3va6`thi-pF%net<Gb;k%(XdkCCf9_B5dM!zrQTvFAy{l`sDNU)| zB09idxxmM#3f>mV7N)d9J~7q9*F3Hzww)GUY?W8i*5<g^M7!pUPXmhLu{E;xoq9F_ z7OVO%wx`Wf$H(dC;>yoos+qj-uutdv8{V(0s^z2A*2l-ko>lqHUuXI%<oLQEZTYRn z1Es;l+SJc%BpcclXY3|7o}?(gbm}jx6#wK>^-3}`LCSjSX~Vd+G#dTxn8TESb_Rj} zAsZVT_x26%fso+f{Vo&{!8FuB!jfsRB@J95p~HAR12=xY7p=J&mB)5?_@g(-!uqux zCpJp6tjyEam-07y6F>htk(r|QGtmFEb<Mfc0lI!mf*ao-O8?SzzwjhWEg|lS?#M!a zf|PcUcwu7rh4ePpOD5mM9#E^Qs08z*G|hw6jzp6jzy24hy2eJH>nUMjbg%dquRFH2 zwtAm?;ItR<&N5BE^Ye+NbBA>7i?oak+R_1ab8~Y`<{`&FKdfiv_I0ZAG_;~}v(hwN zShU6iiXK*Z^E;XrCD5Oiwx5a`e!DkRE|mWQ=5@zpdOCG24t0NHiIRrejJBBWiynH= z22ItaLoz_L{Xv|$Jg`MJa&!911KW^pS|NiN?Q&Va*`7k1M6TGBf&w+$hY94&Q)W2q zkb!pNuF<ZrS^qd6O_(z=Gvg8CC=CvY{H{Rj(w9%eDU`tU=Lhf~Afr@ClruSjFx48D zM>OK_t9>v#^WeMRi<a7DC9Q`pF5d>&K06rgaLfMQ+1(3{H&+H}E6K|1CBe!Vk0(y1 z-Sy?JVoM*85!jV7NtD|wbYIqQ-nvk$rbug@m#ZaTC4#X7_C6%esm9TzuY7BpT)RHd Vn2yhodJp^~Eg^R&T};>Ge*s}b_I>~W diff --git a/docs/en_US/preferences.rst b/docs/en_US/preferences.rst index e47866f0..e547f299 100644 --- a/docs/en_US/preferences.rst +++ b/docs/en_US/preferences.rst @@ -146,6 +146,7 @@ Use the fields on the *CSV Output* panel to control the CSV output. * Use the *CSV field separator* drop-down listbox to specify the separator character that will be used in CSV output. * Use the *CSV quote character* drop-down listbox to specify the quote character that will be used in CSV output. * Use the *CSV quoting* drop-down listbox to select the fields that will be quoted in the CSV output; select *Strings*, *All*, or *None*. +* Use the *Replace null values with* option to replace null values with specified string in the output file. Default is set to 'NULL'. .. image:: images/preferences_sql_display.png :alt: Preferences dialog sqleditor display options diff --git a/pkg/mac/build.sh b/pkg/mac/build.sh index 11d17e80..3cb97417 100755 --- a/pkg/mac/build.sh +++ b/pkg/mac/build.sh @@ -144,11 +144,6 @@ _create_python_virtualenv() { if test -d $DIR_PYMODULES_PATH; then ln -s $(basename $DIR_PYMODULES_PATH) $DIR_PYMODULES_PATH/../python fi - - # Fix the backports module which will have no __init__.py file - if [ "$PYTHON_VERSION" -lt "30" ]; then - touch $BUILDROOT/$VIRTUALENV/lib/python/site-packages/backports/__init__.py - fi } _build_runtime() { diff --git a/pkg/pip/setup_pip.py b/pkg/pip/setup_pip.py index 693fcadf..2ab1c1d3 100644 --- a/pkg/pip/setup_pip.py +++ b/pkg/pip/setup_pip.py @@ -96,7 +96,6 @@ setup( "Flask-BabelEx==0.9.3" ], ":python_version<='2.7'": [ - "backports.csv==1.0.5", "importlib==1.0.3" ], ":python_version>='2.7'": [ diff --git a/requirements.txt b/requirements.txt index 74c46035..92eae7dd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,7 +44,6 @@ sshtunnel>=0.1.3; python_version >= '2.7' ############################################################### # Modules specifically required for Python2.7 or lesser version ############################################################### -backports.csv==1.0.5; python_version <= '2.7' importlib==1.0.3; python_version <= '2.7' ############################################################### diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index 43e1a094..1245c861 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -1434,7 +1434,8 @@ def start_query_download_tool(trans_id): gen( quote=blueprint.csv_quoting.get(), quote_char=blueprint.csv_quote_char.get(), - field_separator=blueprint.csv_field_separator.get() + field_separator=blueprint.csv_field_separator.get(), + replace_nulls_with=blueprint.replace_nulls_with.get() ), mimetype='text/csv' ) diff --git a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py index 5e2a8ef1..fe112f42 100644 --- a/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py +++ b/web/pgadmin/tools/sqleditor/utils/query_tool_preferences.py @@ -198,6 +198,16 @@ def RegisterQueryToolPreferences(self): } ) + self.replace_nulls_with = self.preference.register( + 'CSV_output', 'csv_replace_nulls_with', + gettext("Replace null values with"), 'text', 'NULL', + category_label=gettext('CSV output'), + help_str=gettext('Specifies the string that represents a null value ' + 'while downloading query results as CSV. You can ' + 'specify any arbitrary string to represent a ' + 'null value, with quotes if desired.') + ) + self.results_grid_quoting = self.preference.register( 'Results_grid', 'results_grid_quoting', gettext("Result copy quoting"), 'options', 'strings', diff --git a/web/pgadmin/utils/csv.py b/web/pgadmin/utils/csv.py new file mode 100644 index 00000000..991e0665 --- /dev/null +++ b/web/pgadmin/utils/csv.py @@ -0,0 +1,761 @@ +""" +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,2010 +2011, 2012, 2013, 2014, 2015, 2016, 2017 Python Software Foundation; All Rights +Reserved" are retained in Python alone or in any derivative version prepared by +Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. +""" + +############################################################################ +# Changes: +# Added new parameter in dialect 'replace_nulls_with' to compare it against +# the value to be quoted or not. +# Handle the null value if value is None or equal to +# 'replace_nulls_with' then it represents the null value, so no need to +# quote it. +############################################################################ + +from __future__ import unicode_literals, absolute_import + +__all__ = ["QUOTE_MINIMAL", "QUOTE_ALL", "QUOTE_NONNUMERIC", "QUOTE_NONE", + "Error", "Dialect", "__doc__", "excel", "excel_tab", + "field_size_limit", "reader", "writer", "register_dialect", + "get_dialect", "list_dialects", "unregister_dialect", + "__version__", "DictReader", "DictWriter"] + +import re +import numbers +from io import StringIO +from csv import ( + QUOTE_MINIMAL, QUOTE_ALL, QUOTE_NONNUMERIC, QUOTE_NONE, + __version__, __doc__, Error, field_size_limit, +) + +# Stuff needed from six +import sys +PY3 = sys.version_info[0] == 3 +if PY3: + string_types = str + text_type = str + binary_type = bytes + unichr = chr +else: + string_types = basestring + text_type = unicode + binary_type = str + + +class QuoteStrategy(object): + quoting = None + + def __init__(self, dialect): + if self.quoting is not None: + assert dialect.quoting == self.quoting + self.dialect = dialect + self.setup() + + escape_pattern_quoted = r'({quotechar})'.format( + quotechar=re.escape(self.dialect.quotechar or '"')) + escape_pattern_unquoted = r'([{specialchars}])'.format( + specialchars=re.escape(self.specialchars)) + + self.escape_re_quoted = re.compile(escape_pattern_quoted) + self.escape_re_unquoted = re.compile(escape_pattern_unquoted) + + def setup(self): + """Optional method for strategy-wide optimizations.""" + + def quoted(self, field=None, raw_field=None, only=None): + """Determine whether this field should be quoted.""" + raise NotImplementedError( + 'quoted must be implemented by a subclass') + + @property + def specialchars(self): + """The special characters that need to be escaped.""" + raise NotImplementedError( + 'specialchars must be implemented by a subclass') + + def escape_re(self, quoted=None): + if quoted: + return self.escape_re_quoted + return self.escape_re_unquoted + + def escapechar(self, quoted=None): + if quoted and self.dialect.doublequote: + return self.dialect.quotechar + return self.dialect.escapechar + + def prepare(self, raw_field, only=None): + field = text_type(raw_field if raw_field is not None else '') + quoted = self.quoted(field=field, raw_field=raw_field, only=only) + + escape_re = self.escape_re(quoted=quoted) + escapechar = self.escapechar(quoted=quoted) + + if escape_re.search(field): + escapechar = '\\\\' if escapechar == '\\' else escapechar + if escapechar: + escape_replace = \ + r'{escapechar}\1'.format(escapechar=escapechar) + field = escape_re.sub(escape_replace, field) + + if quoted: + field = '{quotechar}{field}{quotechar}'.format( + quotechar=self.dialect.quotechar, field=field) + + return field + + +class QuoteMinimalStrategy(QuoteStrategy): + quoting = QUOTE_MINIMAL + + def setup(self): + self.quoted_re = re.compile(r'[{specialchars}]'.format( + specialchars=re.escape(self.specialchars))) + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == self.dialect.quotechar and not self.dialect.doublequote: + # If the only character in the field is the quotechar, and + # doublequote is false, then just escape without outer quotes. + return False + return field == '' and only or bool(self.quoted_re.search(field)) + + +class QuoteAllStrategy(QuoteStrategy): + quoting = QUOTE_ALL + + @property + def specialchars(self): + return self.dialect.quotechar + + def quoted(self, raw_field, **kwargs): + # Handle the null value if raw_field is None or equal to + # replace_nulls_with then it represents the null value, so no need to + # quote it. + if raw_field is None or raw_field == self.dialect.replace_nulls_with: + return False + return True + + +class QuoteNonnumericStrategy(QuoteStrategy): + quoting = QUOTE_NONNUMERIC + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + self.dialect.quotechar + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, raw_field, **kwargs): + # Handle the null value if raw_field is None or equal to + # replace_nulls_with then it represents the null value, so no need to + # quote it. + if raw_field is None or raw_field == self.dialect.replace_nulls_with: + return False + return not isinstance(raw_field, numbers.Number) + + +class QuoteNoneStrategy(QuoteStrategy): + quoting = QUOTE_NONE + + @property + def specialchars(self): + return ( + self.dialect.lineterminator + + (self.dialect.quotechar or '') + + self.dialect.delimiter + + (self.dialect.escapechar or '') + ) + + def quoted(self, field, only, **kwargs): + if field == '' and only: + raise Error('single empty field record must be quoted') + return False + + +class writer(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + if fileobj is None: + raise TypeError('fileobj must be file-like, not None') + + self.fileobj = fileobj + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + strategies = { + QUOTE_MINIMAL: QuoteMinimalStrategy, + QUOTE_ALL: QuoteAllStrategy, + QUOTE_NONNUMERIC: QuoteNonnumericStrategy, + QUOTE_NONE: QuoteNoneStrategy, + } + self.strategy = strategies[self.dialect.quoting](self.dialect) + + def writerow(self, row): + if row is None: + raise Error('row must be an iterable') + + row = list(row) + only = len(row) == 1 + row = [self.strategy.prepare(field, only=only) for field in row] + + line = self.dialect.delimiter.join(row) + self.dialect.lineterminator + return self.fileobj.write(line) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + +START_RECORD = 0 +START_FIELD = 1 +ESCAPED_CHAR = 2 +IN_FIELD = 3 +IN_QUOTED_FIELD = 4 +ESCAPE_IN_QUOTED_FIELD = 5 +QUOTE_IN_QUOTED_FIELD = 6 +EAT_CRNL = 7 +AFTER_ESCAPED_CRNL = 8 + + +class reader(object): + def __init__(self, fileobj, dialect='excel', **fmtparams): + self.input_iter = iter(fileobj) + + if isinstance(dialect, text_type): + dialect = get_dialect(dialect) + + try: + self.dialect = Dialect.combine(dialect, fmtparams) + except Error as e: + raise TypeError(*e.args) + + self.fields = None + self.field = None + self.line_num = 0 + + def parse_reset(self): + self.fields = [] + self.field = [] + self.state = START_RECORD + self.numeric_field = False + + def parse_save_field(self): + field = ''.join(self.field) + self.field = [] + if self.numeric_field: + field = float(field) + self.numeric_field = False + self.fields.append(field) + + def parse_add_char(self, c): + if len(self.field) >= field_size_limit(): + raise Error('field size limit exceeded') + self.field.append(c) + + def parse_process_char(self, c): + switch = { + START_RECORD: self._parse_start_record, + START_FIELD: self._parse_start_field, + ESCAPED_CHAR: self._parse_escaped_char, + AFTER_ESCAPED_CRNL: self._parse_after_escaped_crnl, + IN_FIELD: self._parse_in_field, + IN_QUOTED_FIELD: self._parse_in_quoted_field, + ESCAPE_IN_QUOTED_FIELD: self._parse_escape_in_quoted_field, + QUOTE_IN_QUOTED_FIELD: self._parse_quote_in_quoted_field, + EAT_CRNL: self._parse_eat_crnl, + } + return switch[self.state](c) + + def _parse_start_record(self, c): + if c == '\0': + return + elif c == '\n' or c == '\r': + self.state = EAT_CRNL + return + + self.state = START_FIELD + return self._parse_start_field(c) + + def _parse_start_field(self, c): + if c == '\n' or c == '\r' or c == '\0': + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + self.state = IN_QUOTED_FIELD + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == ' ' and self.dialect.skipinitialspace: + pass # Ignore space at start of field + elif c == self.dialect.delimiter: + # Save empty field + self.parse_save_field() + else: + # Begin new unquoted field + if self.dialect.quoting == QUOTE_NONNUMERIC: + self.numeric_field = True + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_escaped_char(self, c): + if c == '\n' or c == '\r': + self.parse_add_char(c) + self.state = AFTER_ESCAPED_CRNL + return + if c == '\0': + c = '\n' + self.parse_add_char(c) + self.state = IN_FIELD + + def _parse_after_escaped_crnl(self, c): + if c == '\0': + return + return self._parse_in_field(c) + + def _parse_in_field(self, c): + # In unquoted field + if c == '\n' or c == '\r' or c == '\0': + # End of line - return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif c == self.dialect.escapechar: + self.state = ESCAPED_CHAR + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + else: + # Normal character - save in field + self.parse_add_char(c) + + def _parse_in_quoted_field(self, c): + if c == '\0': + pass + elif c == self.dialect.escapechar: + self.state = ESCAPE_IN_QUOTED_FIELD + elif (c == self.dialect.quotechar and + self.dialect.quoting != QUOTE_NONE): + if self.dialect.doublequote: + self.state = QUOTE_IN_QUOTED_FIELD + else: + self.state = IN_FIELD + else: + self.parse_add_char(c) + + def _parse_escape_in_quoted_field(self, c): + if c == '\0': + c = '\n' + + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + + def _parse_quote_in_quoted_field(self, c): + if (self.dialect.quoting != QUOTE_NONE and + c == self.dialect.quotechar): + # save "" as " + self.parse_add_char(c) + self.state = IN_QUOTED_FIELD + elif c == self.dialect.delimiter: + self.parse_save_field() + self.state = START_FIELD + elif c == '\n' or c == '\r' or c == '\0': + # End of line = return [fields] + self.parse_save_field() + self.state = START_RECORD if c == '\0' else EAT_CRNL + elif not self.dialect.strict: + self.parse_add_char(c) + self.state = IN_FIELD + else: + # illegal + raise Error("{delimiter}' expected after '{quotechar}".format( + delimiter=self.dialect.delimiter, + quotechar=self.dialect.quotechar, + )) + + def _parse_eat_crnl(self, c): + if c == '\n' or c == '\r': + pass + elif c == '\0': + self.state = START_RECORD + else: + raise Error('new-line character seen in unquoted field - do you ' + 'need to open the file in universal-newline mode?') + + def __iter__(self): + return self + + def __next__(self): + self.parse_reset() + + while True: + try: + lineobj = next(self.input_iter) + except StopIteration: + if len(self.field) != 0 or self.state == IN_QUOTED_FIELD: + if self.dialect.strict: + raise Error('unexpected end of data') + self.parse_save_field() + if self.fields: + break + raise + + if not isinstance(lineobj, text_type): + typ = type(lineobj) + typ_name = 'bytes' if typ == bytes else typ.__name__ + err_str = ('iterator should return strings, not {0}' + ' (did you open the file in text mode?)') + raise Error(err_str.format(typ_name)) + + self.line_num += 1 + for c in lineobj: + if c == '\0': + raise Error('line contains NULL byte') + self.parse_process_char(c) + + self.parse_process_char('\0') + + if self.state == START_RECORD: + break + + fields = self.fields + self.fields = None + return fields + + next = __next__ + + +_dialect_registry = {} + + +def register_dialect(name, dialect='excel', **fmtparams): + if not isinstance(name, text_type): + raise TypeError('"name" must be a string') + + dialect = Dialect.extend(dialect, fmtparams) + + try: + Dialect.validate(dialect) + except Exception as e: + raise TypeError('dialect is invalid') + + assert name not in _dialect_registry + _dialect_registry[name] = dialect + + +def unregister_dialect(name): + try: + _dialect_registry.pop(name) + except KeyError: + raise Error('"{name}" not a registered dialect'.format(name=name)) + + +def get_dialect(name): + try: + return _dialect_registry[name] + except KeyError: + raise Error('Could not find dialect {0}'.format(name)) + + +def list_dialects(): + return list(_dialect_registry) + + +class Dialect(object): + """Describe a CSV dialect. + This must be subclassed (see csv.excel). Valid attributes are: + delimiter, quotechar, escapechar, doublequote, skipinitialspace, + lineterminator, quoting, strict. + """ + _name = "" + _valid = False + # placeholders + delimiter = None + quotechar = None + escapechar = None + doublequote = None + skipinitialspace = None + lineterminator = None + quoting = None + strict = None + + def __init__(self): + self.validate(self) + if self.__class__ != Dialect: + self._valid = True + + @classmethod + def validate(cls, dialect): + dialect = cls.extend(dialect) + + if not isinstance(dialect.quoting, int): + raise Error('"quoting" must be an integer') + + if dialect.delimiter is None: + raise Error('delimiter must be set') + cls.validate_text(dialect, 'delimiter') + + if dialect.lineterminator is None: + raise Error('lineterminator must be set') + if not isinstance(dialect.lineterminator, text_type): + raise Error('"lineterminator" must be a string') + + if dialect.quoting not in [ + QUOTE_NONE, QUOTE_MINIMAL, QUOTE_NONNUMERIC, QUOTE_ALL]: + raise Error('Invalid quoting specified') + + if dialect.quoting != QUOTE_NONE: + if dialect.quotechar is None and dialect.escapechar is None: + raise Error('quotechar must be set if quoting enabled') + if dialect.quotechar is not None: + cls.validate_text(dialect, 'quotechar') + + @staticmethod + def validate_text(dialect, attr): + val = getattr(dialect, attr) + if not isinstance(val, text_type): + if type(val) == bytes: + raise Error('"{0}" must be string, not bytes'.format(attr)) + raise Error('"{0}" must be string, not {1}'.format( + attr, type(val).__name__)) + + if len(val) != 1: + raise Error('"{0}" must be a 1-character string'.format(attr)) + + @staticmethod + def defaults(): + return { + 'delimiter': ',', + 'doublequote': True, + 'escapechar': None, + 'lineterminator': '\r\n', + 'quotechar': '"', + 'quoting': QUOTE_MINIMAL, + 'skipinitialspace': False, + 'strict': False, + 'replace_nulls_with': None + } + + @classmethod + def extend(cls, dialect, fmtparams=None): + if isinstance(dialect, string_types): + dialect = get_dialect(dialect) + + if fmtparams is None: + return dialect + + defaults = cls.defaults() + + if any(param not in defaults for param in fmtparams): + raise TypeError('Invalid fmtparam') + + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in cls.defaults() + ) + + specified.update(fmtparams) + return type(str('ExtendedDialect'), (cls,), specified) + + @classmethod + def combine(cls, dialect, fmtparams): + """Create a new dialect with defaults and added parameters.""" + dialect = cls.extend(dialect, fmtparams) + defaults = cls.defaults() + specified = dict( + (attr, getattr(dialect, attr, None)) + for attr in defaults + if getattr(dialect, attr, None) is not None or + attr in ['quotechar', 'delimiter', 'lineterminator', 'quoting'] + ) + + defaults.update(specified) + dialect = type(str('CombinedDialect'), (cls,), defaults) + cls.validate(dialect) + return dialect() + + def __delattr__(self, attr): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__delattr__(attr) + + def __setattr__(self, attr, value): + if self._valid: + raise AttributeError('dialect is immutable.') + super(Dialect, self).__setattr__(attr, value) + + +class excel(Dialect): + """Describe the usual properties of Excel-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\r\n' + quoting = QUOTE_MINIMAL + + +register_dialect("excel", excel) + + +class excel_tab(excel): + """Describe the usual properties of Excel-generated TAB-delimited files.""" + delimiter = '\t' + + +register_dialect("excel-tab", excel_tab) + + +class unix_dialect(Dialect): + """Describe the usual properties of Unix-generated CSV files.""" + delimiter = ',' + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\n' + quoting = QUOTE_ALL + + +register_dialect("unix", unix_dialect) + + +class DictReader(object): + def __init__(self, f, fieldnames=None, restkey=None, restval=None, + dialect="excel", *args, **kwds): + self._fieldnames = fieldnames # list of keys for the dict + self.restkey = restkey # key to catch long rows + self.restval = restval # default value for short rows + self.reader = reader(f, dialect, *args, **kwds) + self.dialect = dialect + self.line_num = 0 + + def __iter__(self): + return self + + @property + def fieldnames(self): + if self._fieldnames is None: + try: + self._fieldnames = next(self.reader) + except StopIteration: + pass + self.line_num = self.reader.line_num + return self._fieldnames + + @fieldnames.setter + def fieldnames(self, value): + self._fieldnames = value + + def __next__(self): + if self.line_num == 0: + # Used only for its side effect. + self.fieldnames + row = next(self.reader) + self.line_num = self.reader.line_num + + # unlike the basic reader, we prefer not to return blanks, + # because we will typically wind up with a dict full of None + # values + while row == []: + row = next(self.reader) + d = dict(zip(self.fieldnames, row)) + lf = len(self.fieldnames) + lr = len(row) + if lf < lr: + d[self.restkey] = row[lf:] + elif lf > lr: + for key in self.fieldnames[lr:]: + d[key] = self.restval + return d + + next = __next__ + + +class DictWriter(object): + def __init__(self, f, fieldnames, restval="", extrasaction="raise", + dialect="excel", *args, **kwds): + self.fieldnames = fieldnames # list of keys for the dict + self.restval = restval # for writing short dicts + if extrasaction.lower() not in ("raise", "ignore"): + raise ValueError("extrasaction (%s) must be 'raise' or 'ignore'" + % extrasaction) + self.extrasaction = extrasaction + self.writer = writer(f, dialect, *args, **kwds) + + def writeheader(self): + header = dict(zip(self.fieldnames, self.fieldnames)) + self.writerow(header) + + def _dict_to_list(self, rowdict): + if self.extrasaction == "raise": + wrong_fields = [k for k in rowdict if k not in self.fieldnames] + if wrong_fields: + raise ValueError("dict contains fields not in fieldnames: " + + ", ".join([repr(x) for x in wrong_fields])) + return (rowdict.get(key, self.restval) for key in self.fieldnames) + + def writerow(self, rowdict): + return self.writer.writerow(self._dict_to_list(rowdict)) + + def writerows(self, rowdicts): + return self.writer.writerows(map(self._dict_to_list, rowdicts)) diff --git a/web/pgadmin/utils/driver/psycopg2/connection.py b/web/pgadmin/utils/driver/psycopg2/connection.py index 2c9fcb5a..1e0253d3 100644 --- a/web/pgadmin/utils/driver/psycopg2/connection.py +++ b/web/pgadmin/utils/driver/psycopg2/connection.py @@ -37,16 +37,13 @@ from .typecast import register_global_typecasters, \ register_string_typecasters, register_binary_typecasters, \ register_array_to_string_typecasters, ALL_JSON_TYPES from .encoding import getEncoding +from pgadmin.utils import csv if sys.version_info < (3,): - # Python2 in-built csv module do not handle unicode - # backports.csv module ported from PY3 csv module for unicode handling - from backports import csv from StringIO import StringIO IS_PY2 = True else: from io import StringIO - import csv IS_PY2 = False _ = gettext @@ -765,7 +762,31 @@ WHERE ) return new_results - def gen(quote='strings', quote_char="'", field_separator=','): + def handle_null_values(results, replace_nulls_with): + """ + This function is used to replace null values with the given string + + :param results: + :param replace_nulls_with: null values will be replaced by this + string. + :return: modified result + """ + + temp_results = [] + for row in results: + res = dict() + for k, v in row.items(): + if v is None: + res[k] = replace_nulls_with + else: + res[k] = v + temp_results.append(res) + results = temp_results + + return results + + def gen(quote='strings', quote_char="'", field_separator=',', + replace_nulls_with=None): results = cur.fetchmany(records) if not results: @@ -815,11 +836,15 @@ WHERE csv_writer = csv.DictWriter( res_io, fieldnames=header, delimiter=field_separator, quoting=quote, - quotechar=quote_char + quotechar=quote_char, + replace_nulls_with=replace_nulls_with ) csv_writer.writeheader() results = handle_json_data(json_columns, results) + # Replace the null values with given string if configured. + if replace_nulls_with is not None: + results = handle_null_values(results, replace_nulls_with) csv_writer.writerows(results) yield res_io.getvalue() @@ -836,13 +861,17 @@ WHERE csv_writer = csv.DictWriter( res_io, fieldnames=header, delimiter=field_separator, quoting=quote, - quotechar=quote_char + quotechar=quote_char, + replace_nulls_with=replace_nulls_with ) if IS_PY2: results = convert_keys_to_unicode(results, conn_encoding) results = handle_json_data(json_columns, results) + # Replace the null values with given string if configured. + if replace_nulls_with is not None: + results = handle_null_values(results, replace_nulls_with) csv_writer.writerows(results) yield res_io.getvalue() ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-21 13:22 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Dave Page @ 2018-12-21 13:22 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers Hi Looks good - I just found one issue; please go ahead and commit (with a release notes update) when fixed. - If I set the NULL replacement value to an empty string, it defaults back to NULL. It's therefore not possible to replace null values with an empty value. Thanks! On Fri, Dec 21, 2018 at 12:57 PM Akshay Joshi <[email protected]> wrote: > Hi Dave > > I have modified the condition, it won't through any exception. Attached is > the updated patch, please review it. > > On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: > >> Sorry! Here is is. >> >> On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < >> [email protected]> wrote: >> >>> Hi Dave >>> >>> Can you please attached the updated patch with your changes. I'll try to >>> fix the exception. >>> >>> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: >>> >>>> Hi >>>> >>>> Here's an updated patch as I've tweaked some of the wording. The >>>> screenshot probably isn't the right resolution, but as we're replacing them >>>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>>> >>>> With quoting set to either All or Strings, everything looks good. With >>>> it set to None, I still get an exception (below). The query I'm using is >>>> this: >>>> >>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>> >>>> Field separator: , >>>> Quote character: " >>>> Replace null's with: NULL >>>> >>>> Steps: >>>> >>>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, >>>> using the venv detailed below. >>>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on >>>> MacOS 10.14.1 >>>> 3) Run the above query, wit quoting set to All and check the result in >>>> the grid. >>>> 4) Download the CSV file and check. >>>> 5) Open Preferences and set quoting to Strings. >>>> 6) Download the CSV file and check. >>>> 7) Open Preferences and set quoting to None. >>>> 8) Download the CSV file *exception occurs*. >>>> >>>> >>>> System info: >>>> >>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>>> >>>> Python 3.6.7 >>>> >>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>>> >>>> alabaster==0.7.11 >>>> >>>> alembic==1.0.0 >>>> >>>> asn1crypto==0.24.0 >>>> >>>> Babel==2.6.0 >>>> >>>> bcrypt==3.1.4 >>>> >>>> blinker==1.4 >>>> >>>> certifi==2018.8.24 >>>> >>>> cffi==1.11.5 >>>> >>>> chardet==3.0.4 >>>> >>>> chromedriver-installer==0.0.6 >>>> >>>> click==6.7 >>>> >>>> cryptography==2.3 >>>> >>>> docutils==0.14 >>>> >>>> extras==1.0.0 >>>> >>>> fixtures==3.0.0 >>>> >>>> Flask==0.12.4 >>>> >>>> Flask-BabelEx==0.9.3 >>>> >>>> Flask-Gravatar==0.5.0 >>>> >>>> Flask-HTMLmin==1.3.2 >>>> >>>> Flask-Login==0.3.2 >>>> >>>> Flask-Mail==0.9.1 >>>> >>>> Flask-Migrate==2.1.1 >>>> >>>> Flask-Paranoid==0.2.0 >>>> >>>> Flask-Principal==0.4.0 >>>> >>>> Flask-Security==3.0.0 >>>> >>>> Flask-SQLAlchemy==2.3.2 >>>> >>>> Flask-WTF==0.14.2 >>>> >>>> html5lib==1.0.1 >>>> >>>> htmlmin==0.1.12 >>>> >>>> idna==2.7 >>>> >>>> imagesize==1.1.0 >>>> >>>> itsdangerous==0.24 >>>> >>>> Jinja2==2.10 >>>> >>>> linecache2==1.0.0 >>>> >>>> Mako==1.0.7 >>>> >>>> MarkupSafe==1.0 >>>> >>>> packaging==18.0 >>>> >>>> paramiko==2.4.1 >>>> >>>> passlib==1.7.1 >>>> >>>> pbr==3.1.1 >>>> >>>> psutil==5.4.8 >>>> >>>> psycopg2==2.7.5 >>>> >>>> pyasn1==0.4.4 >>>> >>>> pycodestyle==2.3.1 >>>> >>>> pycparser==2.18 >>>> >>>> pycrypto==2.6.1 >>>> >>>> Pygments==2.2.0 >>>> >>>> PyNaCl==1.2.1 >>>> >>>> pyparsing==2.2.2 >>>> >>>> pyperclip==1.6.4 >>>> >>>> pyrsistent==0.14.2 >>>> >>>> python-dateutil==2.7.3 >>>> >>>> python-editor==1.0.3 >>>> >>>> python-mimeparse==1.6.0 >>>> >>>> pytz==2018.3 >>>> >>>> requests==2.19.1 >>>> >>>> selenium==3.14.1 >>>> >>>> simplejson==3.13.2 >>>> >>>> six==1.11.0 >>>> >>>> snowballstemmer==1.2.1 >>>> >>>> speaklater==1.3 >>>> >>>> Sphinx==1.8.2 >>>> >>>> sphinxcontrib-websupport==1.1.0 >>>> >>>> SQLAlchemy==1.2.10 >>>> >>>> sqlparse==0.2.4 >>>> >>>> sshtunnel==0.1.4 >>>> >>>> testscenarios==0.5.0 >>>> >>>> testtools==2.3.0 >>>> >>>> traceback2==1.4.0 >>>> >>>> unittest2==1.1.0 >>>> >>>> urllib3==1.23 >>>> >>>> webencodings==0.5.1 >>>> >>>> Werkzeug==0.14.1 >>>> >>>> WTForms==2.1 >>>> >>>> Exception: >>>> >>>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) for >>>> server #2 - CONN:8760231 (Query-id: 8649354): >>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >>>> 11:47:29] "GET >>>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>>> HTTP/1.1" 500 - >>>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>>> Traceback (most recent call last): >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>> line 270, in run_wsgi >>>> execute(self.server.app) >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>> line 260, in execute >>>> for data in application_iter: >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>> line 870, in __next__ >>>> return self._next() >>>> File >>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>> line 82, in _iter_encoded >>>> for item in iterable: >>>> File >>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>> line 848, in gen >>>> csv_writer.writerows(results) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 761, >>>> in writerows >>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 268, >>>> in writerows >>>> self.writerow(row) >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, >>>> in writerow >>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, >>>> in <listcomp> >>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 142, >>>> in prepare >>>> raise Error('No escapechar is set') >>>> _csv.Error: No escapechar is set >>>> >>>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> Hi Dave >>>>> >>>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi Dave >>>>>>>> >>>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> When testing with quoting set to None, quote = " and delimiter = , >>>>>>>>> I get the following exception when I try to download: >>>>>>>>> >>>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server >>>>>>>>> cursor) for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - >>>>>>>>> [20/Dec/2018 09:34:02] "GET >>>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>>> HTTP/1.1" 500 - >>>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>>> Traceback (most recent call last): >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>> line 270, in run_wsgi >>>>>>>>> execute(self.server.app) >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>> line 260, in execute >>>>>>>>> for data in application_iter: >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>> line 870, in __next__ >>>>>>>>> return self._next() >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>> line 82, in _iter_encoded >>>>>>>>> for item in iterable: >>>>>>>>> File >>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>> line 820, in gen >>>>>>>>> csv_writer.writerows(results) >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 748, in writerows >>>>>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 256, in writerows >>>>>>>>> self.writerow(row) >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 249, in writerow >>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>> row] >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 249, in <listcomp> >>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>> row] >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 136, in prepare >>>>>>>>> raise Error('No escapechar is set') >>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>> >>>>>>>> >>>>>>>> Not able to reproduce the above issue. I have tested it with >>>>>>>> the same setting as you mentioned. Please refer all the attached >>>>>>>> screenshots. Please specify the steps if they are different. >>>>>>>> >>>>>>>>> >>>>>>>>> When I have quoting set to All, the first column is returned as "" >>>>>>>>> >>>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>>> >>>>>>>>> "text","int4","text-2","text-3" >>>>>>>>> >>>>>>>>> "","1234","Foo bar","Foo >>>>>>>>> >>>>>>>>> Bar" >>>>>>>>> >>>>>>>>> Isn't the point for it to be NULL? >>>>>>>>> >>>>>>>> >>>>>>>> while quoting is set to ALL, all the data types has been >>>>>>>> quoted, so I thought null values should be replaced by "" instead of blank. >>>>>>>> But if you think null values shouldn't be quoted even if user select quote >>>>>>>> ALL, I'll fix it and resend the patch. >>>>>>>> >>>>>>> >>>>>>> So how would you distinguish NULL from an empty string? Isn't that >>>>>>> exactly what the bug is about? >>>>>>> >>>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>>> that is set to - for which the user could then choose options like: >>>>>>> >>>>>>> NULL >>>>>>> "NULL" >>>>>>> "" >>>>>>> '' >>>>>>> <empty string> >>>>>>> >>>>>>> We would never quote the NULL replacement value - if the user wanted >>>>>>> it to be quoted, they would include the quotes in the configured string. >>>>>>> >>>>>> >>>>>> >>>>>> OK, Will work on it and send the modified patch again. >>>>>> >>>>> >>>>> Attached is the modified patch as per your suggestion. >>>>> >>>>>> >>>>>>> >>>>>>>> >>>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Dave >>>>>>>>>> >>>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>>> >>>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>>> >>>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability >>>>>>>>>>>>> to specify NULL values in CSV export. >>>>>>>>>>>>> >>>>>>>>>>>>> Please review it. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> A few points; >>>>>>>>>>>> >>>>>>>>>>>> - You've included code from backports.csv, but per the licence >>>>>>>>>>>> you need to include a description of the changes made. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Sure. In that case I'll copy the complete file and will do >>>>>>>>>>> my changes which is of two lines only. With my patch I have remove all the >>>>>>>>>>> unwanted code from backport.csv. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, or >>>>>>>>>>>> is it used elsewhere? >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Yes. Will do that. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> - If the previous point is true, then I'm fairly sure there is >>>>>>>>>>>> code in one or more of the many package build scripts that adds an >>>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> I'll remove that code as well. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Dave Page >>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>> >>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>> >>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Akshay Joshi* >>>>>>>>>> >>>>>>>>>> *Sr. Software Architect * >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Dave Page >>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>> Twitter: @pgsnake >>>>>>>>> >>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Akshay Joshi* >>>>>>>> >>>>>>>> *Sr. Software Architect * >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-21 14:07 Akshay Joshi <[email protected]> parent: Dave Page <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2018-12-21 14:07 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers On Fri, 21 Dec 2018, 18:52 Dave Page <[email protected] wrote: > Hi > > Looks good - I just found one issue; please go ahead and commit (with a > release notes update) when fixed. > > - If I set the NULL replacement value to an empty string, it defaults back > to NULL. It's therefore not possible to replace null values with an empty > value. > If you remember this is the default behaviour of the Preferences dialog. It sets the default value again if you set the blank value. Fahar has raised the same issue before and we have rejected that. If you think we can create the new RM for that behaviour and will commit the current patch. > > Thanks! > > On Fri, Dec 21, 2018 at 12:57 PM Akshay Joshi < > [email protected]> wrote: > >> Hi Dave >> >> I have modified the condition, it won't through any exception. Attached >> is the updated patch, please review it. >> >> On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: >> >>> Sorry! Here is is. >>> >>> On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> Hi Dave >>>> >>>> Can you please attached the updated patch with your changes. I'll try >>>> to fix the exception. >>>> >>>> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: >>>> >>>>> Hi >>>>> >>>>> Here's an updated patch as I've tweaked some of the wording. The >>>>> screenshot probably isn't the right resolution, but as we're replacing them >>>>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>>>> >>>>> With quoting set to either All or Strings, everything looks good. With >>>>> it set to None, I still get an exception (below). The query I'm using is >>>>> this: >>>>> >>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>> >>>>> Field separator: , >>>>> Quote character: " >>>>> Replace null's with: NULL >>>>> >>>>> Steps: >>>>> >>>>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, >>>>> using the venv detailed below. >>>>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on >>>>> MacOS 10.14.1 >>>>> 3) Run the above query, wit quoting set to All and check the result in >>>>> the grid. >>>>> 4) Download the CSV file and check. >>>>> 5) Open Preferences and set quoting to Strings. >>>>> 6) Download the CSV file and check. >>>>> 7) Open Preferences and set quoting to None. >>>>> 8) Download the CSV file *exception occurs*. >>>>> >>>>> >>>>> System info: >>>>> >>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>>>> >>>>> Python 3.6.7 >>>>> >>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>>>> >>>>> alabaster==0.7.11 >>>>> >>>>> alembic==1.0.0 >>>>> >>>>> asn1crypto==0.24.0 >>>>> >>>>> Babel==2.6.0 >>>>> >>>>> bcrypt==3.1.4 >>>>> >>>>> blinker==1.4 >>>>> >>>>> certifi==2018.8.24 >>>>> >>>>> cffi==1.11.5 >>>>> >>>>> chardet==3.0.4 >>>>> >>>>> chromedriver-installer==0.0.6 >>>>> >>>>> click==6.7 >>>>> >>>>> cryptography==2.3 >>>>> >>>>> docutils==0.14 >>>>> >>>>> extras==1.0.0 >>>>> >>>>> fixtures==3.0.0 >>>>> >>>>> Flask==0.12.4 >>>>> >>>>> Flask-BabelEx==0.9.3 >>>>> >>>>> Flask-Gravatar==0.5.0 >>>>> >>>>> Flask-HTMLmin==1.3.2 >>>>> >>>>> Flask-Login==0.3.2 >>>>> >>>>> Flask-Mail==0.9.1 >>>>> >>>>> Flask-Migrate==2.1.1 >>>>> >>>>> Flask-Paranoid==0.2.0 >>>>> >>>>> Flask-Principal==0.4.0 >>>>> >>>>> Flask-Security==3.0.0 >>>>> >>>>> Flask-SQLAlchemy==2.3.2 >>>>> >>>>> Flask-WTF==0.14.2 >>>>> >>>>> html5lib==1.0.1 >>>>> >>>>> htmlmin==0.1.12 >>>>> >>>>> idna==2.7 >>>>> >>>>> imagesize==1.1.0 >>>>> >>>>> itsdangerous==0.24 >>>>> >>>>> Jinja2==2.10 >>>>> >>>>> linecache2==1.0.0 >>>>> >>>>> Mako==1.0.7 >>>>> >>>>> MarkupSafe==1.0 >>>>> >>>>> packaging==18.0 >>>>> >>>>> paramiko==2.4.1 >>>>> >>>>> passlib==1.7.1 >>>>> >>>>> pbr==3.1.1 >>>>> >>>>> psutil==5.4.8 >>>>> >>>>> psycopg2==2.7.5 >>>>> >>>>> pyasn1==0.4.4 >>>>> >>>>> pycodestyle==2.3.1 >>>>> >>>>> pycparser==2.18 >>>>> >>>>> pycrypto==2.6.1 >>>>> >>>>> Pygments==2.2.0 >>>>> >>>>> PyNaCl==1.2.1 >>>>> >>>>> pyparsing==2.2.2 >>>>> >>>>> pyperclip==1.6.4 >>>>> >>>>> pyrsistent==0.14.2 >>>>> >>>>> python-dateutil==2.7.3 >>>>> >>>>> python-editor==1.0.3 >>>>> >>>>> python-mimeparse==1.6.0 >>>>> >>>>> pytz==2018.3 >>>>> >>>>> requests==2.19.1 >>>>> >>>>> selenium==3.14.1 >>>>> >>>>> simplejson==3.13.2 >>>>> >>>>> six==1.11.0 >>>>> >>>>> snowballstemmer==1.2.1 >>>>> >>>>> speaklater==1.3 >>>>> >>>>> Sphinx==1.8.2 >>>>> >>>>> sphinxcontrib-websupport==1.1.0 >>>>> >>>>> SQLAlchemy==1.2.10 >>>>> >>>>> sqlparse==0.2.4 >>>>> >>>>> sshtunnel==0.1.4 >>>>> >>>>> testscenarios==0.5.0 >>>>> >>>>> testtools==2.3.0 >>>>> >>>>> traceback2==1.4.0 >>>>> >>>>> unittest2==1.1.0 >>>>> >>>>> urllib3==1.23 >>>>> >>>>> webencodings==0.5.1 >>>>> >>>>> Werkzeug==0.14.1 >>>>> >>>>> WTForms==2.1 >>>>> >>>>> Exception: >>>>> >>>>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) >>>>> for server #2 - CONN:8760231 (Query-id: 8649354): >>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >>>>> 11:47:29] "GET >>>>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>>>> HTTP/1.1" 500 - >>>>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>>>> Traceback (most recent call last): >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>> line 270, in run_wsgi >>>>> execute(self.server.app) >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>> line 260, in execute >>>>> for data in application_iter: >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>> line 870, in __next__ >>>>> return self._next() >>>>> File >>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>> line 82, in _iter_encoded >>>>> for item in iterable: >>>>> File >>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>> line 848, in gen >>>>> csv_writer.writerows(results) >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 761, >>>>> in writerows >>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 268, >>>>> in writerows >>>>> self.writerow(row) >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, >>>>> in writerow >>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 261, >>>>> in <listcomp> >>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line 142, >>>>> in prepare >>>>> raise Error('No escapechar is set') >>>>> _csv.Error: No escapechar is set >>>>> >>>>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi Dave >>>>>> >>>>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Dave >>>>>>>>> >>>>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> When testing with quoting set to None, quote = " and delimiter = >>>>>>>>>> , I get the following exception when I try to download: >>>>>>>>>> >>>>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server >>>>>>>>>> cursor) for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - >>>>>>>>>> [20/Dec/2018 09:34:02] "GET >>>>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>>>> HTTP/1.1" 500 - >>>>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>>>> Traceback (most recent call last): >>>>>>>>>> File >>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>> line 270, in run_wsgi >>>>>>>>>> execute(self.server.app) >>>>>>>>>> File >>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>> line 260, in execute >>>>>>>>>> for data in application_iter: >>>>>>>>>> File >>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>>> line 870, in __next__ >>>>>>>>>> return self._next() >>>>>>>>>> File >>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>>> line 82, in _iter_encoded >>>>>>>>>> for item in iterable: >>>>>>>>>> File >>>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>>> line 820, in gen >>>>>>>>>> csv_writer.writerows(results) >>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>>> 748, in writerows >>>>>>>>>> return self.writer.writerows(map(self._dict_to_list, >>>>>>>>>> rowdicts)) >>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>>> 256, in writerows >>>>>>>>>> self.writerow(row) >>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>>> 249, in writerow >>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>>> row] >>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>>> 249, in <listcomp> >>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>>> row] >>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>>> 136, in prepare >>>>>>>>>> raise Error('No escapechar is set') >>>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>>> >>>>>>>>> >>>>>>>>> Not able to reproduce the above issue. I have tested it with >>>>>>>>> the same setting as you mentioned. Please refer all the attached >>>>>>>>> screenshots. Please specify the steps if they are different. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> When I have quoting set to All, the first column is returned as "" >>>>>>>>>> >>>>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>>>> >>>>>>>>>> "text","int4","text-2","text-3" >>>>>>>>>> >>>>>>>>>> "","1234","Foo bar","Foo >>>>>>>>>> >>>>>>>>>> Bar" >>>>>>>>>> >>>>>>>>>> Isn't the point for it to be NULL? >>>>>>>>>> >>>>>>>>> >>>>>>>>> while quoting is set to ALL, all the data types has been >>>>>>>>> quoted, so I thought null values should be replaced by "" instead of blank. >>>>>>>>> But if you think null values shouldn't be quoted even if user select quote >>>>>>>>> ALL, I'll fix it and resend the patch. >>>>>>>>> >>>>>>>> >>>>>>>> So how would you distinguish NULL from an empty string? Isn't that >>>>>>>> exactly what the bug is about? >>>>>>>> >>>>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>>>> that is set to - for which the user could then choose options like: >>>>>>>> >>>>>>>> NULL >>>>>>>> "NULL" >>>>>>>> "" >>>>>>>> '' >>>>>>>> <empty string> >>>>>>>> >>>>>>>> We would never quote the NULL replacement value - if the user >>>>>>>> wanted it to be quoted, they would include the quotes in the configured >>>>>>>> string. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> OK, Will work on it and send the modified patch again. >>>>>>> >>>>>> >>>>>> Attached is the modified patch as per your suggestion. >>>>>> >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Dave >>>>>>>>>>> >>>>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>>>> >>>>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability >>>>>>>>>>>>>> to specify NULL values in CSV export. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Please review it. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> A few points; >>>>>>>>>>>>> >>>>>>>>>>>>> - You've included code from backports.csv, but per the licence >>>>>>>>>>>>> you need to include a description of the changes made. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Sure. In that case I'll copy the complete file and will >>>>>>>>>>>> do my changes which is of two lines only. With my patch I have remove all >>>>>>>>>>>> the unwanted code from backport.csv. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, or >>>>>>>>>>>>> is it used elsewhere? >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Yes. Will do that. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> - If the previous point is true, then I'm fairly sure there is >>>>>>>>>>>>> code in one or more of the many package build scripts that adds an >>>>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> I'll remove that code as well. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Dave Page >>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>> >>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>> >>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>> >>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Dave Page >>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>> Twitter: @pgsnake >>>>>>>>>> >>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Akshay Joshi* >>>>>>>>> >>>>>>>>> *Sr. Software Architect * >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-21 14:14 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 1 reply; 20+ messages in thread From: Dave Page @ 2018-12-21 14:14 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers On Fri, Dec 21, 2018 at 2:08 PM Akshay Joshi <[email protected]> wrote: > > > On Fri, 21 Dec 2018, 18:52 Dave Page <[email protected] wrote: > >> Hi >> >> Looks good - I just found one issue; please go ahead and commit (with a >> release notes update) when fixed. >> >> - If I set the NULL replacement value to an empty string, it defaults >> back to NULL. It's therefore not possible to replace null values with an >> empty value. >> > > If you remember this is the default behaviour of the Preferences > dialog. It sets the default value again if you set the blank value. Fahar > has raised the same issue before and we have rejected that. If you think we > can create the new RM for that behaviour and will commit the current patch. > Well, we rejected it for a specific case. In this specific case, it makes sense to be able to enter a blank value. Maybe we just need an "allow blank" flag on the preference object, that does nothing except allow you to remove the default (or any other) value without it being replaced again? Obviously the default still needs to work until a value is written to the config DB. > >> Thanks! >> >> On Fri, Dec 21, 2018 at 12:57 PM Akshay Joshi < >> [email protected]> wrote: >> >>> Hi Dave >>> >>> I have modified the condition, it won't through any exception. Attached >>> is the updated patch, please review it. >>> >>> On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: >>> >>>> Sorry! Here is is. >>>> >>>> On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> Hi Dave >>>>> >>>>> Can you please attached the updated patch with your changes. I'll try >>>>> to fix the exception. >>>>> >>>>> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> Here's an updated patch as I've tweaked some of the wording. The >>>>>> screenshot probably isn't the right resolution, but as we're replacing them >>>>>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>>>>> >>>>>> With quoting set to either All or Strings, everything looks good. >>>>>> With it set to None, I still get an exception (below). The query I'm using >>>>>> is this: >>>>>> >>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>> >>>>>> Field separator: , >>>>>> Quote character: " >>>>>> Replace null's with: NULL >>>>>> >>>>>> Steps: >>>>>> >>>>>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, >>>>>> using the venv detailed below. >>>>>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on >>>>>> MacOS 10.14.1 >>>>>> 3) Run the above query, wit quoting set to All and check the result >>>>>> in the grid. >>>>>> 4) Download the CSV file and check. >>>>>> 5) Open Preferences and set quoting to Strings. >>>>>> 6) Download the CSV file and check. >>>>>> 7) Open Preferences and set quoting to None. >>>>>> 8) Download the CSV file *exception occurs*. >>>>>> >>>>>> >>>>>> System info: >>>>>> >>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>>>>> >>>>>> Python 3.6.7 >>>>>> >>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>>>>> >>>>>> alabaster==0.7.11 >>>>>> >>>>>> alembic==1.0.0 >>>>>> >>>>>> asn1crypto==0.24.0 >>>>>> >>>>>> Babel==2.6.0 >>>>>> >>>>>> bcrypt==3.1.4 >>>>>> >>>>>> blinker==1.4 >>>>>> >>>>>> certifi==2018.8.24 >>>>>> >>>>>> cffi==1.11.5 >>>>>> >>>>>> chardet==3.0.4 >>>>>> >>>>>> chromedriver-installer==0.0.6 >>>>>> >>>>>> click==6.7 >>>>>> >>>>>> cryptography==2.3 >>>>>> >>>>>> docutils==0.14 >>>>>> >>>>>> extras==1.0.0 >>>>>> >>>>>> fixtures==3.0.0 >>>>>> >>>>>> Flask==0.12.4 >>>>>> >>>>>> Flask-BabelEx==0.9.3 >>>>>> >>>>>> Flask-Gravatar==0.5.0 >>>>>> >>>>>> Flask-HTMLmin==1.3.2 >>>>>> >>>>>> Flask-Login==0.3.2 >>>>>> >>>>>> Flask-Mail==0.9.1 >>>>>> >>>>>> Flask-Migrate==2.1.1 >>>>>> >>>>>> Flask-Paranoid==0.2.0 >>>>>> >>>>>> Flask-Principal==0.4.0 >>>>>> >>>>>> Flask-Security==3.0.0 >>>>>> >>>>>> Flask-SQLAlchemy==2.3.2 >>>>>> >>>>>> Flask-WTF==0.14.2 >>>>>> >>>>>> html5lib==1.0.1 >>>>>> >>>>>> htmlmin==0.1.12 >>>>>> >>>>>> idna==2.7 >>>>>> >>>>>> imagesize==1.1.0 >>>>>> >>>>>> itsdangerous==0.24 >>>>>> >>>>>> Jinja2==2.10 >>>>>> >>>>>> linecache2==1.0.0 >>>>>> >>>>>> Mako==1.0.7 >>>>>> >>>>>> MarkupSafe==1.0 >>>>>> >>>>>> packaging==18.0 >>>>>> >>>>>> paramiko==2.4.1 >>>>>> >>>>>> passlib==1.7.1 >>>>>> >>>>>> pbr==3.1.1 >>>>>> >>>>>> psutil==5.4.8 >>>>>> >>>>>> psycopg2==2.7.5 >>>>>> >>>>>> pyasn1==0.4.4 >>>>>> >>>>>> pycodestyle==2.3.1 >>>>>> >>>>>> pycparser==2.18 >>>>>> >>>>>> pycrypto==2.6.1 >>>>>> >>>>>> Pygments==2.2.0 >>>>>> >>>>>> PyNaCl==1.2.1 >>>>>> >>>>>> pyparsing==2.2.2 >>>>>> >>>>>> pyperclip==1.6.4 >>>>>> >>>>>> pyrsistent==0.14.2 >>>>>> >>>>>> python-dateutil==2.7.3 >>>>>> >>>>>> python-editor==1.0.3 >>>>>> >>>>>> python-mimeparse==1.6.0 >>>>>> >>>>>> pytz==2018.3 >>>>>> >>>>>> requests==2.19.1 >>>>>> >>>>>> selenium==3.14.1 >>>>>> >>>>>> simplejson==3.13.2 >>>>>> >>>>>> six==1.11.0 >>>>>> >>>>>> snowballstemmer==1.2.1 >>>>>> >>>>>> speaklater==1.3 >>>>>> >>>>>> Sphinx==1.8.2 >>>>>> >>>>>> sphinxcontrib-websupport==1.1.0 >>>>>> >>>>>> SQLAlchemy==1.2.10 >>>>>> >>>>>> sqlparse==0.2.4 >>>>>> >>>>>> sshtunnel==0.1.4 >>>>>> >>>>>> testscenarios==0.5.0 >>>>>> >>>>>> testtools==2.3.0 >>>>>> >>>>>> traceback2==1.4.0 >>>>>> >>>>>> unittest2==1.1.0 >>>>>> >>>>>> urllib3==1.23 >>>>>> >>>>>> webencodings==0.5.1 >>>>>> >>>>>> Werkzeug==0.14.1 >>>>>> >>>>>> WTForms==2.1 >>>>>> >>>>>> Exception: >>>>>> >>>>>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) >>>>>> for server #2 - CONN:8760231 (Query-id: 8649354): >>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >>>>>> 11:47:29] "GET >>>>>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>>>>> HTTP/1.1" 500 - >>>>>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>>>>> Traceback (most recent call last): >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>> line 270, in run_wsgi >>>>>> execute(self.server.app) >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>> line 260, in execute >>>>>> for data in application_iter: >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>> line 870, in __next__ >>>>>> return self._next() >>>>>> File >>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>> line 82, in _iter_encoded >>>>>> for item in iterable: >>>>>> File >>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>> line 848, in gen >>>>>> csv_writer.writerows(results) >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 761, in writerows >>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 268, in writerows >>>>>> self.writerow(row) >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 261, in writerow >>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 261, in <listcomp> >>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>> 142, in prepare >>>>>> raise Error('No escapechar is set') >>>>>> _csv.Error: No escapechar is set >>>>>> >>>>>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Dave >>>>>>> >>>>>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Dave >>>>>>>>>> >>>>>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi >>>>>>>>>>> >>>>>>>>>>> When testing with quoting set to None, quote = " and delimiter = >>>>>>>>>>> , I get the following exception when I try to download: >>>>>>>>>>> >>>>>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server >>>>>>>>>>> cursor) for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - >>>>>>>>>>> [20/Dec/2018 09:34:02] "GET >>>>>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>>>>> HTTP/1.1" 500 - >>>>>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>> File >>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>> line 270, in run_wsgi >>>>>>>>>>> execute(self.server.app) >>>>>>>>>>> File >>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>> line 260, in execute >>>>>>>>>>> for data in application_iter: >>>>>>>>>>> File >>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>>>> line 870, in __next__ >>>>>>>>>>> return self._next() >>>>>>>>>>> File >>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>>>> line 82, in _iter_encoded >>>>>>>>>>> for item in iterable: >>>>>>>>>>> File >>>>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>>>> line 820, in gen >>>>>>>>>>> csv_writer.writerows(results) >>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>> line 748, in writerows >>>>>>>>>>> return self.writer.writerows(map(self._dict_to_list, >>>>>>>>>>> rowdicts)) >>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>> line 256, in writerows >>>>>>>>>>> self.writerow(row) >>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>> line 249, in writerow >>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>>>> row] >>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>> line 249, in <listcomp> >>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>>>> row] >>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>> line 136, in prepare >>>>>>>>>>> raise Error('No escapechar is set') >>>>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Not able to reproduce the above issue. I have tested it with >>>>>>>>>> the same setting as you mentioned. Please refer all the attached >>>>>>>>>> screenshots. Please specify the steps if they are different. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> When I have quoting set to All, the first column is returned as >>>>>>>>>>> "" >>>>>>>>>>> >>>>>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>>>>> >>>>>>>>>>> "text","int4","text-2","text-3" >>>>>>>>>>> >>>>>>>>>>> "","1234","Foo bar","Foo >>>>>>>>>>> >>>>>>>>>>> Bar" >>>>>>>>>>> >>>>>>>>>>> Isn't the point for it to be NULL? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> while quoting is set to ALL, all the data types has been >>>>>>>>>> quoted, so I thought null values should be replaced by "" instead of blank. >>>>>>>>>> But if you think null values shouldn't be quoted even if user select quote >>>>>>>>>> ALL, I'll fix it and resend the patch. >>>>>>>>>> >>>>>>>>> >>>>>>>>> So how would you distinguish NULL from an empty string? Isn't that >>>>>>>>> exactly what the bug is about? >>>>>>>>> >>>>>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>>>>> that is set to - for which the user could then choose options like: >>>>>>>>> >>>>>>>>> NULL >>>>>>>>> "NULL" >>>>>>>>> "" >>>>>>>>> '' >>>>>>>>> <empty string> >>>>>>>>> >>>>>>>>> We would never quote the NULL replacement value - if the user >>>>>>>>> wanted it to be quoted, they would include the quotes in the configured >>>>>>>>> string. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> OK, Will work on it and send the modified patch again. >>>>>>>> >>>>>>> >>>>>>> Attached is the modified patch as per your suggestion. >>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Dave >>>>>>>>>>>> >>>>>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks ability >>>>>>>>>>>>>>> to specify NULL values in CSV export. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Please review it. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> A few points; >>>>>>>>>>>>>> >>>>>>>>>>>>>> - You've included code from backports.csv, but per the >>>>>>>>>>>>>> licence you need to include a description of the changes made. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Sure. In that case I'll copy the complete file and will >>>>>>>>>>>>> do my changes which is of two lines only. With my patch I have remove all >>>>>>>>>>>>> the unwanted code from backport.csv. >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, >>>>>>>>>>>>>> or is it used elsewhere? >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Yes. Will do that. >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> - If the previous point is true, then I'm fairly sure there >>>>>>>>>>>>>> is code in one or more of the many package build scripts that adds an >>>>>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I'll remove that code as well. >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Dave Page >>>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>>> >>>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>> >>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>> >>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dave Page >>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>> >>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Akshay Joshi* >>>>>>>>>> >>>>>>>>>> *Sr. Software Architect * >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Dave Page >>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>> Twitter: @pgsnake >>>>>>>>> >>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Akshay Joshi* >>>>>>>> >>>>>>>> *Sr. Software Architect * >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> -- >> 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 ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2018-12-24 02:17 Akshay Joshi <[email protected]> parent: Dave Page <[email protected]> 0 siblings, 2 replies; 20+ messages in thread From: Akshay Joshi @ 2018-12-24 02:17 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers On Fri, 21 Dec 2018, 19:45 Dave Page <[email protected] wrote: > > > On Fri, Dec 21, 2018 at 2:08 PM Akshay Joshi < > [email protected]> wrote: > >> >> >> On Fri, 21 Dec 2018, 18:52 Dave Page <[email protected] wrote: >> >>> Hi >>> >>> Looks good - I just found one issue; please go ahead and commit (with a >>> release notes update) when fixed. >>> >>> - If I set the NULL replacement value to an empty string, it defaults >>> back to NULL. It's therefore not possible to replace null values with an >>> empty value. >>> >> >> If you remember this is the default behaviour of the Preferences >> dialog. It sets the default value again if you set the blank value. Fahar >> has raised the same issue before and we have rejected that. If you think we >> can create the new RM for that behaviour and will commit the current patch. >> > > Well, we rejected it for a specific case. In this specific case, it makes > sense to be able to enter a blank value. > > Maybe we just need an "allow blank" flag on the preference object, that > does nothing except allow you to remove the default (or any other) value > without it being replaced again? Obviously the default still needs to work > until a value is written to the config DB. > Ok. If i understand correctly this new parameter works for all the preference parameter if set to true. By default it's value is False and if user wants to enter blank value they will ser the flag. > > >> >>> Thanks! >>> >>> On Fri, Dec 21, 2018 at 12:57 PM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> Hi Dave >>>> >>>> I have modified the condition, it won't through any exception. Attached >>>> is the updated patch, please review it. >>>> >>>> On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: >>>> >>>>> Sorry! Here is is. >>>>> >>>>> On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi Dave >>>>>> >>>>>> Can you please attached the updated patch with your changes. I'll try >>>>>> to fix the exception. >>>>>> >>>>>> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> Here's an updated patch as I've tweaked some of the wording. The >>>>>>> screenshot probably isn't the right resolution, but as we're replacing them >>>>>>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>>>>>> >>>>>>> With quoting set to either All or Strings, everything looks good. >>>>>>> With it set to None, I still get an exception (below). The query I'm using >>>>>>> is this: >>>>>>> >>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>> >>>>>>> Field separator: , >>>>>>> Quote character: " >>>>>>> Replace null's with: NULL >>>>>>> >>>>>>> Steps: >>>>>>> >>>>>>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, >>>>>>> using the venv detailed below. >>>>>>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on >>>>>>> MacOS 10.14.1 >>>>>>> 3) Run the above query, wit quoting set to All and check the result >>>>>>> in the grid. >>>>>>> 4) Download the CSV file and check. >>>>>>> 5) Open Preferences and set quoting to Strings. >>>>>>> 6) Download the CSV file and check. >>>>>>> 7) Open Preferences and set quoting to None. >>>>>>> 8) Download the CSV file *exception occurs*. >>>>>>> >>>>>>> >>>>>>> System info: >>>>>>> >>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>>>>>> >>>>>>> Python 3.6.7 >>>>>>> >>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>>>>>> >>>>>>> alabaster==0.7.11 >>>>>>> >>>>>>> alembic==1.0.0 >>>>>>> >>>>>>> asn1crypto==0.24.0 >>>>>>> >>>>>>> Babel==2.6.0 >>>>>>> >>>>>>> bcrypt==3.1.4 >>>>>>> >>>>>>> blinker==1.4 >>>>>>> >>>>>>> certifi==2018.8.24 >>>>>>> >>>>>>> cffi==1.11.5 >>>>>>> >>>>>>> chardet==3.0.4 >>>>>>> >>>>>>> chromedriver-installer==0.0.6 >>>>>>> >>>>>>> click==6.7 >>>>>>> >>>>>>> cryptography==2.3 >>>>>>> >>>>>>> docutils==0.14 >>>>>>> >>>>>>> extras==1.0.0 >>>>>>> >>>>>>> fixtures==3.0.0 >>>>>>> >>>>>>> Flask==0.12.4 >>>>>>> >>>>>>> Flask-BabelEx==0.9.3 >>>>>>> >>>>>>> Flask-Gravatar==0.5.0 >>>>>>> >>>>>>> Flask-HTMLmin==1.3.2 >>>>>>> >>>>>>> Flask-Login==0.3.2 >>>>>>> >>>>>>> Flask-Mail==0.9.1 >>>>>>> >>>>>>> Flask-Migrate==2.1.1 >>>>>>> >>>>>>> Flask-Paranoid==0.2.0 >>>>>>> >>>>>>> Flask-Principal==0.4.0 >>>>>>> >>>>>>> Flask-Security==3.0.0 >>>>>>> >>>>>>> Flask-SQLAlchemy==2.3.2 >>>>>>> >>>>>>> Flask-WTF==0.14.2 >>>>>>> >>>>>>> html5lib==1.0.1 >>>>>>> >>>>>>> htmlmin==0.1.12 >>>>>>> >>>>>>> idna==2.7 >>>>>>> >>>>>>> imagesize==1.1.0 >>>>>>> >>>>>>> itsdangerous==0.24 >>>>>>> >>>>>>> Jinja2==2.10 >>>>>>> >>>>>>> linecache2==1.0.0 >>>>>>> >>>>>>> Mako==1.0.7 >>>>>>> >>>>>>> MarkupSafe==1.0 >>>>>>> >>>>>>> packaging==18.0 >>>>>>> >>>>>>> paramiko==2.4.1 >>>>>>> >>>>>>> passlib==1.7.1 >>>>>>> >>>>>>> pbr==3.1.1 >>>>>>> >>>>>>> psutil==5.4.8 >>>>>>> >>>>>>> psycopg2==2.7.5 >>>>>>> >>>>>>> pyasn1==0.4.4 >>>>>>> >>>>>>> pycodestyle==2.3.1 >>>>>>> >>>>>>> pycparser==2.18 >>>>>>> >>>>>>> pycrypto==2.6.1 >>>>>>> >>>>>>> Pygments==2.2.0 >>>>>>> >>>>>>> PyNaCl==1.2.1 >>>>>>> >>>>>>> pyparsing==2.2.2 >>>>>>> >>>>>>> pyperclip==1.6.4 >>>>>>> >>>>>>> pyrsistent==0.14.2 >>>>>>> >>>>>>> python-dateutil==2.7.3 >>>>>>> >>>>>>> python-editor==1.0.3 >>>>>>> >>>>>>> python-mimeparse==1.6.0 >>>>>>> >>>>>>> pytz==2018.3 >>>>>>> >>>>>>> requests==2.19.1 >>>>>>> >>>>>>> selenium==3.14.1 >>>>>>> >>>>>>> simplejson==3.13.2 >>>>>>> >>>>>>> six==1.11.0 >>>>>>> >>>>>>> snowballstemmer==1.2.1 >>>>>>> >>>>>>> speaklater==1.3 >>>>>>> >>>>>>> Sphinx==1.8.2 >>>>>>> >>>>>>> sphinxcontrib-websupport==1.1.0 >>>>>>> >>>>>>> SQLAlchemy==1.2.10 >>>>>>> >>>>>>> sqlparse==0.2.4 >>>>>>> >>>>>>> sshtunnel==0.1.4 >>>>>>> >>>>>>> testscenarios==0.5.0 >>>>>>> >>>>>>> testtools==2.3.0 >>>>>>> >>>>>>> traceback2==1.4.0 >>>>>>> >>>>>>> unittest2==1.1.0 >>>>>>> >>>>>>> urllib3==1.23 >>>>>>> >>>>>>> webencodings==0.5.1 >>>>>>> >>>>>>> Werkzeug==0.14.1 >>>>>>> >>>>>>> WTForms==2.1 >>>>>>> >>>>>>> Exception: >>>>>>> >>>>>>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) >>>>>>> for server #2 - CONN:8760231 (Query-id: 8649354): >>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >>>>>>> 11:47:29] "GET >>>>>>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>>>>>> HTTP/1.1" 500 - >>>>>>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>>>>>> Traceback (most recent call last): >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>> line 270, in run_wsgi >>>>>>> execute(self.server.app) >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>> line 260, in execute >>>>>>> for data in application_iter: >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>> line 870, in __next__ >>>>>>> return self._next() >>>>>>> File >>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>> line 82, in _iter_encoded >>>>>>> for item in iterable: >>>>>>> File >>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>> line 848, in gen >>>>>>> csv_writer.writerows(results) >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 761, in writerows >>>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 268, in writerows >>>>>>> self.writerow(row) >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 261, in writerow >>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 261, in <listcomp> >>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>> 142, in prepare >>>>>>> raise Error('No escapechar is set') >>>>>>> _csv.Error: No escapechar is set >>>>>>> >>>>>>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi Dave >>>>>>>> >>>>>>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi >>>>>>>>>> >>>>>>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Dave >>>>>>>>>>> >>>>>>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi >>>>>>>>>>>> >>>>>>>>>>>> When testing with quoting set to None, quote = " and delimiter >>>>>>>>>>>> = , I get the following exception when I try to download: >>>>>>>>>>>> >>>>>>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server >>>>>>>>>>>> cursor) for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - >>>>>>>>>>>> [20/Dec/2018 09:34:02] "GET >>>>>>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>>>>>> HTTP/1.1" 500 - >>>>>>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>>> File >>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>> line 270, in run_wsgi >>>>>>>>>>>> execute(self.server.app) >>>>>>>>>>>> File >>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>> line 260, in execute >>>>>>>>>>>> for data in application_iter: >>>>>>>>>>>> File >>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>>>>> line 870, in __next__ >>>>>>>>>>>> return self._next() >>>>>>>>>>>> File >>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>>>>> line 82, in _iter_encoded >>>>>>>>>>>> for item in iterable: >>>>>>>>>>>> File >>>>>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>>>>> line 820, in gen >>>>>>>>>>>> csv_writer.writerows(results) >>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>> line 748, in writerows >>>>>>>>>>>> return self.writer.writerows(map(self._dict_to_list, >>>>>>>>>>>> rowdicts)) >>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>> line 256, in writerows >>>>>>>>>>>> self.writerow(row) >>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>> line 249, in writerow >>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>>>>> row] >>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>> line 249, in <listcomp> >>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>>>>> row] >>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>> line 136, in prepare >>>>>>>>>>>> raise Error('No escapechar is set') >>>>>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Not able to reproduce the above issue. I have tested it with >>>>>>>>>>> the same setting as you mentioned. Please refer all the attached >>>>>>>>>>> screenshots. Please specify the steps if they are different. >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> When I have quoting set to All, the first column is returned as >>>>>>>>>>>> "" >>>>>>>>>>>> >>>>>>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>>>>>> >>>>>>>>>>>> "text","int4","text-2","text-3" >>>>>>>>>>>> >>>>>>>>>>>> "","1234","Foo bar","Foo >>>>>>>>>>>> >>>>>>>>>>>> Bar" >>>>>>>>>>>> >>>>>>>>>>>> Isn't the point for it to be NULL? >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> while quoting is set to ALL, all the data types has been >>>>>>>>>>> quoted, so I thought null values should be replaced by "" instead of blank. >>>>>>>>>>> But if you think null values shouldn't be quoted even if user select quote >>>>>>>>>>> ALL, I'll fix it and resend the patch. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> So how would you distinguish NULL from an empty string? Isn't >>>>>>>>>> that exactly what the bug is about? >>>>>>>>>> >>>>>>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>>>>>> that is set to - for which the user could then choose options like: >>>>>>>>>> >>>>>>>>>> NULL >>>>>>>>>> "NULL" >>>>>>>>>> "" >>>>>>>>>> '' >>>>>>>>>> <empty string> >>>>>>>>>> >>>>>>>>>> We would never quote the NULL replacement value - if the user >>>>>>>>>> wanted it to be quoted, they would include the quotes in the configured >>>>>>>>>> string. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> OK, Will work on it and send the modified patch again. >>>>>>>>> >>>>>>>> >>>>>>>> Attached is the modified patch as per your suggestion. >>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Dave >>>>>>>>>>>>> >>>>>>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks >>>>>>>>>>>>>>>> ability to specify NULL values in CSV export. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Please review it. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> A few points; >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - You've included code from backports.csv, but per the >>>>>>>>>>>>>>> licence you need to include a description of the changes made. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Sure. In that case I'll copy the complete file and will >>>>>>>>>>>>>> do my changes which is of two lines only. With my patch I have remove all >>>>>>>>>>>>>> the unwanted code from backport.csv. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, >>>>>>>>>>>>>>> or is it used elsewhere? >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Yes. Will do that. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - If the previous point is true, then I'm fairly sure there >>>>>>>>>>>>>>> is code in one or more of the many package build scripts that adds an >>>>>>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> I'll remove that code as well. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Dave Page >>>>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>> >>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Dave Page >>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>> >>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>> >>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Dave Page >>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>> Twitter: @pgsnake >>>>>>>>>> >>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Akshay Joshi* >>>>>>>>> >>>>>>>>> *Sr. Software Architect * >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Akshay Joshi* >>>>>>>> >>>>>>>> *Sr. Software Architect * >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> >>>> *Sr. Software Architect * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> -- >>> 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 > ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2019-01-01 09:48 Akshay Joshi <[email protected]> parent: Akshay Joshi <[email protected]> 1 sibling, 1 reply; 20+ messages in thread From: Akshay Joshi @ 2019-01-01 09:48 UTC (permalink / raw) To: Dave Page <[email protected]>; +Cc: pgadmin-hackers Hi Dave/Hackers On Mon, Dec 24, 2018 at 7:47 AM Akshay Joshi <[email protected]> wrote: > > > On Fri, 21 Dec 2018, 19:45 Dave Page <[email protected] wrote: > >> >> >> On Fri, Dec 21, 2018 at 2:08 PM Akshay Joshi < >> [email protected]> wrote: >> >>> >>> >>> On Fri, 21 Dec 2018, 18:52 Dave Page <[email protected] wrote: >>> >>>> Hi >>>> >>>> Looks good - I just found one issue; please go ahead and commit (with a >>>> release notes update) when fixed. >>>> >>>> - If I set the NULL replacement value to an empty string, it defaults >>>> back to NULL. It's therefore not possible to replace null values with an >>>> empty value. >>>> >>> >>> If you remember this is the default behaviour of the Preferences >>> dialog. It sets the default value again if you set the blank value. Fahar >>> has raised the same issue before and we have rejected that. If you think we >>> can create the new RM for that behaviour and will commit the current patch. >>> >> >> Well, we rejected it for a specific case. In this specific case, it makes >> sense to be able to enter a blank value. >> >> Maybe we just need an "allow blank" flag on the preference object, that >> does nothing except allow you to remove the default (or any other) value >> without it being replaced again? Obviously the default still needs to work >> until a value is written to the config DB. >> > > Ok. If i understand correctly this new parameter works for all the > preference parameter if set to true. By default it's value is False and if > user wants to enter blank value they will ser the flag. > I think we should not add new preferences flag "allow blank". Meanwhile I have added new parameter "allow_blank" to the register function for preferences, so at the time of registering the preference we can set the value of "allow_blank" parameter, if blank value is acceptable. I have committed my patch with this changes. If you think we need that flag as a Preferences object then I'll create a new RM for it. > >> >>> >>>> Thanks! >>>> >>>> On Fri, Dec 21, 2018 at 12:57 PM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> Hi Dave >>>>> >>>>> I have modified the condition, it won't through any exception. >>>>> Attached is the updated patch, please review it. >>>>> >>>>> On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: >>>>> >>>>>> Sorry! Here is is. >>>>>> >>>>>> On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Dave >>>>>>> >>>>>>> Can you please attached the updated patch with your changes. I'll >>>>>>> try to fix the exception. >>>>>>> >>>>>>> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> Here's an updated patch as I've tweaked some of the wording. The >>>>>>>> screenshot probably isn't the right resolution, but as we're replacing them >>>>>>>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>>>>>>> >>>>>>>> With quoting set to either All or Strings, everything looks good. >>>>>>>> With it set to None, I still get an exception (below). The query I'm using >>>>>>>> is this: >>>>>>>> >>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>> >>>>>>>> Field separator: , >>>>>>>> Quote character: " >>>>>>>> Replace null's with: NULL >>>>>>>> >>>>>>>> Steps: >>>>>>>> >>>>>>>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, >>>>>>>> using the venv detailed below. >>>>>>>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on >>>>>>>> MacOS 10.14.1 >>>>>>>> 3) Run the above query, wit quoting set to All and check the result >>>>>>>> in the grid. >>>>>>>> 4) Download the CSV file and check. >>>>>>>> 5) Open Preferences and set quoting to Strings. >>>>>>>> 6) Download the CSV file and check. >>>>>>>> 7) Open Preferences and set quoting to None. >>>>>>>> 8) Download the CSV file *exception occurs*. >>>>>>>> >>>>>>>> >>>>>>>> System info: >>>>>>>> >>>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>>>>>>> >>>>>>>> Python 3.6.7 >>>>>>>> >>>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>>>>>>> >>>>>>>> alabaster==0.7.11 >>>>>>>> >>>>>>>> alembic==1.0.0 >>>>>>>> >>>>>>>> asn1crypto==0.24.0 >>>>>>>> >>>>>>>> Babel==2.6.0 >>>>>>>> >>>>>>>> bcrypt==3.1.4 >>>>>>>> >>>>>>>> blinker==1.4 >>>>>>>> >>>>>>>> certifi==2018.8.24 >>>>>>>> >>>>>>>> cffi==1.11.5 >>>>>>>> >>>>>>>> chardet==3.0.4 >>>>>>>> >>>>>>>> chromedriver-installer==0.0.6 >>>>>>>> >>>>>>>> click==6.7 >>>>>>>> >>>>>>>> cryptography==2.3 >>>>>>>> >>>>>>>> docutils==0.14 >>>>>>>> >>>>>>>> extras==1.0.0 >>>>>>>> >>>>>>>> fixtures==3.0.0 >>>>>>>> >>>>>>>> Flask==0.12.4 >>>>>>>> >>>>>>>> Flask-BabelEx==0.9.3 >>>>>>>> >>>>>>>> Flask-Gravatar==0.5.0 >>>>>>>> >>>>>>>> Flask-HTMLmin==1.3.2 >>>>>>>> >>>>>>>> Flask-Login==0.3.2 >>>>>>>> >>>>>>>> Flask-Mail==0.9.1 >>>>>>>> >>>>>>>> Flask-Migrate==2.1.1 >>>>>>>> >>>>>>>> Flask-Paranoid==0.2.0 >>>>>>>> >>>>>>>> Flask-Principal==0.4.0 >>>>>>>> >>>>>>>> Flask-Security==3.0.0 >>>>>>>> >>>>>>>> Flask-SQLAlchemy==2.3.2 >>>>>>>> >>>>>>>> Flask-WTF==0.14.2 >>>>>>>> >>>>>>>> html5lib==1.0.1 >>>>>>>> >>>>>>>> htmlmin==0.1.12 >>>>>>>> >>>>>>>> idna==2.7 >>>>>>>> >>>>>>>> imagesize==1.1.0 >>>>>>>> >>>>>>>> itsdangerous==0.24 >>>>>>>> >>>>>>>> Jinja2==2.10 >>>>>>>> >>>>>>>> linecache2==1.0.0 >>>>>>>> >>>>>>>> Mako==1.0.7 >>>>>>>> >>>>>>>> MarkupSafe==1.0 >>>>>>>> >>>>>>>> packaging==18.0 >>>>>>>> >>>>>>>> paramiko==2.4.1 >>>>>>>> >>>>>>>> passlib==1.7.1 >>>>>>>> >>>>>>>> pbr==3.1.1 >>>>>>>> >>>>>>>> psutil==5.4.8 >>>>>>>> >>>>>>>> psycopg2==2.7.5 >>>>>>>> >>>>>>>> pyasn1==0.4.4 >>>>>>>> >>>>>>>> pycodestyle==2.3.1 >>>>>>>> >>>>>>>> pycparser==2.18 >>>>>>>> >>>>>>>> pycrypto==2.6.1 >>>>>>>> >>>>>>>> Pygments==2.2.0 >>>>>>>> >>>>>>>> PyNaCl==1.2.1 >>>>>>>> >>>>>>>> pyparsing==2.2.2 >>>>>>>> >>>>>>>> pyperclip==1.6.4 >>>>>>>> >>>>>>>> pyrsistent==0.14.2 >>>>>>>> >>>>>>>> python-dateutil==2.7.3 >>>>>>>> >>>>>>>> python-editor==1.0.3 >>>>>>>> >>>>>>>> python-mimeparse==1.6.0 >>>>>>>> >>>>>>>> pytz==2018.3 >>>>>>>> >>>>>>>> requests==2.19.1 >>>>>>>> >>>>>>>> selenium==3.14.1 >>>>>>>> >>>>>>>> simplejson==3.13.2 >>>>>>>> >>>>>>>> six==1.11.0 >>>>>>>> >>>>>>>> snowballstemmer==1.2.1 >>>>>>>> >>>>>>>> speaklater==1.3 >>>>>>>> >>>>>>>> Sphinx==1.8.2 >>>>>>>> >>>>>>>> sphinxcontrib-websupport==1.1.0 >>>>>>>> >>>>>>>> SQLAlchemy==1.2.10 >>>>>>>> >>>>>>>> sqlparse==0.2.4 >>>>>>>> >>>>>>>> sshtunnel==0.1.4 >>>>>>>> >>>>>>>> testscenarios==0.5.0 >>>>>>>> >>>>>>>> testtools==2.3.0 >>>>>>>> >>>>>>>> traceback2==1.4.0 >>>>>>>> >>>>>>>> unittest2==1.1.0 >>>>>>>> >>>>>>>> urllib3==1.23 >>>>>>>> >>>>>>>> webencodings==0.5.1 >>>>>>>> >>>>>>>> Werkzeug==0.14.1 >>>>>>>> >>>>>>>> WTForms==2.1 >>>>>>>> >>>>>>>> Exception: >>>>>>>> >>>>>>>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) >>>>>>>> for server #2 - CONN:8760231 (Query-id: 8649354): >>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >>>>>>>> 11:47:29] "GET >>>>>>>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>>>>>>> HTTP/1.1" 500 - >>>>>>>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>>>>>>> Traceback (most recent call last): >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>> line 270, in run_wsgi >>>>>>>> execute(self.server.app) >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>> line 260, in execute >>>>>>>> for data in application_iter: >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>> line 870, in __next__ >>>>>>>> return self._next() >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>> line 82, in _iter_encoded >>>>>>>> for item in iterable: >>>>>>>> File >>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>> line 848, in gen >>>>>>>> csv_writer.writerows(results) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 761, in writerows >>>>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 268, in writerows >>>>>>>> self.writerow(row) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 261, in writerow >>>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 261, in <listcomp> >>>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 142, in prepare >>>>>>>> raise Error('No escapechar is set') >>>>>>>> _csv.Error: No escapechar is set >>>>>>>> >>>>>>>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Dave >>>>>>>>> >>>>>>>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi >>>>>>>>>>> >>>>>>>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Dave >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi >>>>>>>>>>>>> >>>>>>>>>>>>> When testing with quoting set to None, quote = " and delimiter >>>>>>>>>>>>> = , I get the following exception when I try to download: >>>>>>>>>>>>> >>>>>>>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server >>>>>>>>>>>>> cursor) for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, >>>>>>>>>>>>> E'Foo\nBar'::text >>>>>>>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - >>>>>>>>>>>>> [20/Dec/2018 09:34:02] "GET >>>>>>>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>>>>>>> HTTP/1.1" 500 - >>>>>>>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>>> line 270, in run_wsgi >>>>>>>>>>>>> execute(self.server.app) >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>>> line 260, in execute >>>>>>>>>>>>> for data in application_iter: >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>>>>>> line 870, in __next__ >>>>>>>>>>>>> return self._next() >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>>>>>> line 82, in _iter_encoded >>>>>>>>>>>>> for item in iterable: >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>>>>>> line 820, in gen >>>>>>>>>>>>> csv_writer.writerows(results) >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 748, in writerows >>>>>>>>>>>>> return self.writer.writerows(map(self._dict_to_list, >>>>>>>>>>>>> rowdicts)) >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 256, in writerows >>>>>>>>>>>>> self.writerow(row) >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 249, in writerow >>>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field >>>>>>>>>>>>> in row] >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 249, in <listcomp> >>>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field >>>>>>>>>>>>> in row] >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 136, in prepare >>>>>>>>>>>>> raise Error('No escapechar is set') >>>>>>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Not able to reproduce the above issue. I have tested it >>>>>>>>>>>> with the same setting as you mentioned. Please refer all the attached >>>>>>>>>>>> screenshots. Please specify the steps if they are different. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> When I have quoting set to All, the first column is returned >>>>>>>>>>>>> as "" >>>>>>>>>>>>> >>>>>>>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>>>>>>> >>>>>>>>>>>>> "text","int4","text-2","text-3" >>>>>>>>>>>>> >>>>>>>>>>>>> "","1234","Foo bar","Foo >>>>>>>>>>>>> >>>>>>>>>>>>> Bar" >>>>>>>>>>>>> >>>>>>>>>>>>> Isn't the point for it to be NULL? >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> while quoting is set to ALL, all the data types has been >>>>>>>>>>>> quoted, so I thought null values should be replaced by "" instead of blank. >>>>>>>>>>>> But if you think null values shouldn't be quoted even if user select quote >>>>>>>>>>>> ALL, I'll fix it and resend the patch. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> So how would you distinguish NULL from an empty string? Isn't >>>>>>>>>>> that exactly what the bug is about? >>>>>>>>>>> >>>>>>>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>>>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>>>>>>> that is set to - for which the user could then choose options like: >>>>>>>>>>> >>>>>>>>>>> NULL >>>>>>>>>>> "NULL" >>>>>>>>>>> "" >>>>>>>>>>> '' >>>>>>>>>>> <empty string> >>>>>>>>>>> >>>>>>>>>>> We would never quote the NULL replacement value - if the user >>>>>>>>>>> wanted it to be quoted, they would include the quotes in the configured >>>>>>>>>>> string. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> OK, Will work on it and send the modified patch again. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Attached is the modified patch as per your suggestion. >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Dave >>>>>>>>>>>>>> >>>>>>>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks >>>>>>>>>>>>>>>>> ability to specify NULL values in CSV export. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Please review it. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> A few points; >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - You've included code from backports.csv, but per the >>>>>>>>>>>>>>>> licence you need to include a description of the changes made. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Sure. In that case I'll copy the complete file and >>>>>>>>>>>>>>> will do my changes which is of two lines only. With my patch I have remove >>>>>>>>>>>>>>> all the unwanted code from backport.csv. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, >>>>>>>>>>>>>>>> or is it used elsewhere? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Yes. Will do that. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - If the previous point is true, then I'm fairly sure there >>>>>>>>>>>>>>>> is code in one or more of the many package build scripts that adds an >>>>>>>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I'll remove that code as well. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> Dave Page >>>>>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Dave Page >>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>> >>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>> >>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dave Page >>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>> >>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Akshay Joshi* >>>>>>>>>> >>>>>>>>>> *Sr. Software Architect * >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Akshay Joshi* >>>>>>>>> >>>>>>>>> *Sr. Software Architect * >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> 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 >> > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2019-01-02 10:58 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 1 sibling, 0 replies; 20+ messages in thread From: Dave Page @ 2019-01-02 10:58 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers On Mon, Dec 24, 2018 at 2:17 AM Akshay Joshi <[email protected]> wrote: > > > On Fri, 21 Dec 2018, 19:45 Dave Page <[email protected] wrote: > >> >> >> On Fri, Dec 21, 2018 at 2:08 PM Akshay Joshi < >> [email protected]> wrote: >> >>> >>> >>> On Fri, 21 Dec 2018, 18:52 Dave Page <[email protected] wrote: >>> >>>> Hi >>>> >>>> Looks good - I just found one issue; please go ahead and commit (with a >>>> release notes update) when fixed. >>>> >>>> - If I set the NULL replacement value to an empty string, it defaults >>>> back to NULL. It's therefore not possible to replace null values with an >>>> empty value. >>>> >>> >>> If you remember this is the default behaviour of the Preferences >>> dialog. It sets the default value again if you set the blank value. Fahar >>> has raised the same issue before and we have rejected that. If you think we >>> can create the new RM for that behaviour and will commit the current patch. >>> >> >> Well, we rejected it for a specific case. In this specific case, it makes >> sense to be able to enter a blank value. >> >> Maybe we just need an "allow blank" flag on the preference object, that >> does nothing except allow you to remove the default (or any other) value >> without it being replaced again? Obviously the default still needs to work >> until a value is written to the config DB. >> > > Ok. If i understand correctly this new parameter works for all the > preference parameter if set to true. By default it's value is False and if > user wants to enter blank value they will ser the flag. > No - it would be an internal flag that the user won't see. If set to false, then attempts to change a field to <blank> would actually set it to it's default (e.g. for binary paths, it would set it back to the default from config.py). If set to true, then attempts to change a field to <blank> would be accepted. The default value would only be used until such time as its overridden by the user. > >> >>> >>>> Thanks! >>>> >>>> On Fri, Dec 21, 2018 at 12:57 PM Akshay Joshi < >>>> [email protected]> wrote: >>>> >>>>> Hi Dave >>>>> >>>>> I have modified the condition, it won't through any exception. >>>>> Attached is the updated patch, please review it. >>>>> >>>>> On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: >>>>> >>>>>> Sorry! Here is is. >>>>>> >>>>>> On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Dave >>>>>>> >>>>>>> Can you please attached the updated patch with your changes. I'll >>>>>>> try to fix the exception. >>>>>>> >>>>>>> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> wrote: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> Here's an updated patch as I've tweaked some of the wording. The >>>>>>>> screenshot probably isn't the right resolution, but as we're replacing them >>>>>>>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>>>>>>> >>>>>>>> With quoting set to either All or Strings, everything looks good. >>>>>>>> With it set to None, I still get an exception (below). The query I'm using >>>>>>>> is this: >>>>>>>> >>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>> >>>>>>>> Field separator: , >>>>>>>> Quote character: " >>>>>>>> Replace null's with: NULL >>>>>>>> >>>>>>>> Steps: >>>>>>>> >>>>>>>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, >>>>>>>> using the venv detailed below. >>>>>>>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on >>>>>>>> MacOS 10.14.1 >>>>>>>> 3) Run the above query, wit quoting set to All and check the result >>>>>>>> in the grid. >>>>>>>> 4) Download the CSV file and check. >>>>>>>> 5) Open Preferences and set quoting to Strings. >>>>>>>> 6) Download the CSV file and check. >>>>>>>> 7) Open Preferences and set quoting to None. >>>>>>>> 8) Download the CSV file *exception occurs*. >>>>>>>> >>>>>>>> >>>>>>>> System info: >>>>>>>> >>>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>>>>>>> >>>>>>>> Python 3.6.7 >>>>>>>> >>>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>>>>>>> >>>>>>>> alabaster==0.7.11 >>>>>>>> >>>>>>>> alembic==1.0.0 >>>>>>>> >>>>>>>> asn1crypto==0.24.0 >>>>>>>> >>>>>>>> Babel==2.6.0 >>>>>>>> >>>>>>>> bcrypt==3.1.4 >>>>>>>> >>>>>>>> blinker==1.4 >>>>>>>> >>>>>>>> certifi==2018.8.24 >>>>>>>> >>>>>>>> cffi==1.11.5 >>>>>>>> >>>>>>>> chardet==3.0.4 >>>>>>>> >>>>>>>> chromedriver-installer==0.0.6 >>>>>>>> >>>>>>>> click==6.7 >>>>>>>> >>>>>>>> cryptography==2.3 >>>>>>>> >>>>>>>> docutils==0.14 >>>>>>>> >>>>>>>> extras==1.0.0 >>>>>>>> >>>>>>>> fixtures==3.0.0 >>>>>>>> >>>>>>>> Flask==0.12.4 >>>>>>>> >>>>>>>> Flask-BabelEx==0.9.3 >>>>>>>> >>>>>>>> Flask-Gravatar==0.5.0 >>>>>>>> >>>>>>>> Flask-HTMLmin==1.3.2 >>>>>>>> >>>>>>>> Flask-Login==0.3.2 >>>>>>>> >>>>>>>> Flask-Mail==0.9.1 >>>>>>>> >>>>>>>> Flask-Migrate==2.1.1 >>>>>>>> >>>>>>>> Flask-Paranoid==0.2.0 >>>>>>>> >>>>>>>> Flask-Principal==0.4.0 >>>>>>>> >>>>>>>> Flask-Security==3.0.0 >>>>>>>> >>>>>>>> Flask-SQLAlchemy==2.3.2 >>>>>>>> >>>>>>>> Flask-WTF==0.14.2 >>>>>>>> >>>>>>>> html5lib==1.0.1 >>>>>>>> >>>>>>>> htmlmin==0.1.12 >>>>>>>> >>>>>>>> idna==2.7 >>>>>>>> >>>>>>>> imagesize==1.1.0 >>>>>>>> >>>>>>>> itsdangerous==0.24 >>>>>>>> >>>>>>>> Jinja2==2.10 >>>>>>>> >>>>>>>> linecache2==1.0.0 >>>>>>>> >>>>>>>> Mako==1.0.7 >>>>>>>> >>>>>>>> MarkupSafe==1.0 >>>>>>>> >>>>>>>> packaging==18.0 >>>>>>>> >>>>>>>> paramiko==2.4.1 >>>>>>>> >>>>>>>> passlib==1.7.1 >>>>>>>> >>>>>>>> pbr==3.1.1 >>>>>>>> >>>>>>>> psutil==5.4.8 >>>>>>>> >>>>>>>> psycopg2==2.7.5 >>>>>>>> >>>>>>>> pyasn1==0.4.4 >>>>>>>> >>>>>>>> pycodestyle==2.3.1 >>>>>>>> >>>>>>>> pycparser==2.18 >>>>>>>> >>>>>>>> pycrypto==2.6.1 >>>>>>>> >>>>>>>> Pygments==2.2.0 >>>>>>>> >>>>>>>> PyNaCl==1.2.1 >>>>>>>> >>>>>>>> pyparsing==2.2.2 >>>>>>>> >>>>>>>> pyperclip==1.6.4 >>>>>>>> >>>>>>>> pyrsistent==0.14.2 >>>>>>>> >>>>>>>> python-dateutil==2.7.3 >>>>>>>> >>>>>>>> python-editor==1.0.3 >>>>>>>> >>>>>>>> python-mimeparse==1.6.0 >>>>>>>> >>>>>>>> pytz==2018.3 >>>>>>>> >>>>>>>> requests==2.19.1 >>>>>>>> >>>>>>>> selenium==3.14.1 >>>>>>>> >>>>>>>> simplejson==3.13.2 >>>>>>>> >>>>>>>> six==1.11.0 >>>>>>>> >>>>>>>> snowballstemmer==1.2.1 >>>>>>>> >>>>>>>> speaklater==1.3 >>>>>>>> >>>>>>>> Sphinx==1.8.2 >>>>>>>> >>>>>>>> sphinxcontrib-websupport==1.1.0 >>>>>>>> >>>>>>>> SQLAlchemy==1.2.10 >>>>>>>> >>>>>>>> sqlparse==0.2.4 >>>>>>>> >>>>>>>> sshtunnel==0.1.4 >>>>>>>> >>>>>>>> testscenarios==0.5.0 >>>>>>>> >>>>>>>> testtools==2.3.0 >>>>>>>> >>>>>>>> traceback2==1.4.0 >>>>>>>> >>>>>>>> unittest2==1.1.0 >>>>>>>> >>>>>>>> urllib3==1.23 >>>>>>>> >>>>>>>> webencodings==0.5.1 >>>>>>>> >>>>>>>> Werkzeug==0.14.1 >>>>>>>> >>>>>>>> WTForms==2.1 >>>>>>>> >>>>>>>> Exception: >>>>>>>> >>>>>>>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server cursor) >>>>>>>> for server #2 - CONN:8760231 (Query-id: 8649354): >>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - [21/Dec/2018 >>>>>>>> 11:47:29] "GET >>>>>>>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>>>>>>> HTTP/1.1" 500 - >>>>>>>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>>>>>>> Traceback (most recent call last): >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>> line 270, in run_wsgi >>>>>>>> execute(self.server.app) >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>> line 260, in execute >>>>>>>> for data in application_iter: >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>> line 870, in __next__ >>>>>>>> return self._next() >>>>>>>> File >>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>> line 82, in _iter_encoded >>>>>>>> for item in iterable: >>>>>>>> File >>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>> line 848, in gen >>>>>>>> csv_writer.writerows(results) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 761, in writerows >>>>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 268, in writerows >>>>>>>> self.writerow(row) >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 261, in writerow >>>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 261, in <listcomp> >>>>>>>> row = [self.strategy.prepare(field, only=only) for field in row] >>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>> 142, in prepare >>>>>>>> raise Error('No escapechar is set') >>>>>>>> _csv.Error: No escapechar is set >>>>>>>> >>>>>>>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Dave >>>>>>>>> >>>>>>>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi >>>>>>>>>>> >>>>>>>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Dave >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi >>>>>>>>>>>>> >>>>>>>>>>>>> When testing with quoting set to None, quote = " and delimiter >>>>>>>>>>>>> = , I get the following exception when I try to download: >>>>>>>>>>>>> >>>>>>>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server >>>>>>>>>>>>> cursor) for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, >>>>>>>>>>>>> E'Foo\nBar'::text >>>>>>>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - >>>>>>>>>>>>> [20/Dec/2018 09:34:02] "GET >>>>>>>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>>>>>>> HTTP/1.1" 500 - >>>>>>>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>>> line 270, in run_wsgi >>>>>>>>>>>>> execute(self.server.app) >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>>> line 260, in execute >>>>>>>>>>>>> for data in application_iter: >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>>>>>> line 870, in __next__ >>>>>>>>>>>>> return self._next() >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>>>>>> line 82, in _iter_encoded >>>>>>>>>>>>> for item in iterable: >>>>>>>>>>>>> File >>>>>>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>>>>>> line 820, in gen >>>>>>>>>>>>> csv_writer.writerows(results) >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 748, in writerows >>>>>>>>>>>>> return self.writer.writerows(map(self._dict_to_list, >>>>>>>>>>>>> rowdicts)) >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 256, in writerows >>>>>>>>>>>>> self.writerow(row) >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 249, in writerow >>>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field >>>>>>>>>>>>> in row] >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 249, in <listcomp> >>>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field >>>>>>>>>>>>> in row] >>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>> line 136, in prepare >>>>>>>>>>>>> raise Error('No escapechar is set') >>>>>>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Not able to reproduce the above issue. I have tested it >>>>>>>>>>>> with the same setting as you mentioned. Please refer all the attached >>>>>>>>>>>> screenshots. Please specify the steps if they are different. >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> When I have quoting set to All, the first column is returned >>>>>>>>>>>>> as "" >>>>>>>>>>>>> >>>>>>>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>>>>>>> >>>>>>>>>>>>> "text","int4","text-2","text-3" >>>>>>>>>>>>> >>>>>>>>>>>>> "","1234","Foo bar","Foo >>>>>>>>>>>>> >>>>>>>>>>>>> Bar" >>>>>>>>>>>>> >>>>>>>>>>>>> Isn't the point for it to be NULL? >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> while quoting is set to ALL, all the data types has been >>>>>>>>>>>> quoted, so I thought null values should be replaced by "" instead of blank. >>>>>>>>>>>> But if you think null values shouldn't be quoted even if user select quote >>>>>>>>>>>> ALL, I'll fix it and resend the patch. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> So how would you distinguish NULL from an empty string? Isn't >>>>>>>>>>> that exactly what the bug is about? >>>>>>>>>>> >>>>>>>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>>>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>>>>>>> that is set to - for which the user could then choose options like: >>>>>>>>>>> >>>>>>>>>>> NULL >>>>>>>>>>> "NULL" >>>>>>>>>>> "" >>>>>>>>>>> '' >>>>>>>>>>> <empty string> >>>>>>>>>>> >>>>>>>>>>> We would never quote the NULL replacement value - if the user >>>>>>>>>>> wanted it to be quoted, they would include the quotes in the configured >>>>>>>>>>> string. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> OK, Will work on it and send the modified patch again. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Attached is the modified patch as per your suggestion. >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Dave >>>>>>>>>>>>>> >>>>>>>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page <[email protected]> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks >>>>>>>>>>>>>>>>> ability to specify NULL values in CSV export. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Please review it. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> A few points; >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - You've included code from backports.csv, but per the >>>>>>>>>>>>>>>> licence you need to include a description of the changes made. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Sure. In that case I'll copy the complete file and >>>>>>>>>>>>>>> will do my changes which is of two lines only. With my patch I have remove >>>>>>>>>>>>>>> all the unwanted code from backport.csv. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - Shouldn't backports.csv be removed from requirements.txt, >>>>>>>>>>>>>>>> or is it used elsewhere? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Yes. Will do that. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> - If the previous point is true, then I'm fairly sure there >>>>>>>>>>>>>>>> is code in one or more of the many package build scripts that adds an >>>>>>>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I'll remove that code as well. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> Dave Page >>>>>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Dave Page >>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>> >>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>> >>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dave Page >>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>> >>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Akshay Joshi* >>>>>>>>>> >>>>>>>>>> *Sr. Software Architect * >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Akshay Joshi* >>>>>>>>> >>>>>>>>> *Sr. Software Architect * >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> -- >>>> 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 ^ permalink raw reply [nested|flat] 20+ messages in thread
* Re: [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export @ 2019-01-02 10:59 Dave Page <[email protected]> parent: Akshay Joshi <[email protected]> 0 siblings, 0 replies; 20+ messages in thread From: Dave Page @ 2019-01-02 10:59 UTC (permalink / raw) To: Akshay Joshi <[email protected]>; +Cc: pgadmin-hackers On Tue, Jan 1, 2019 at 9:48 AM Akshay Joshi <[email protected]> wrote: > Hi Dave/Hackers > > On Mon, Dec 24, 2018 at 7:47 AM Akshay Joshi <akshay.joshi@enterprisedb > .com> wrote: > >> >> >> On Fri, 21 Dec 2018, 19:45 Dave Page <[email protected] wrote: >> >>> >>> >>> On Fri, Dec 21, 2018 at 2:08 PM Akshay Joshi < >>> [email protected]> wrote: >>> >>>> >>>> >>>> On Fri, 21 Dec 2018, 18:52 Dave Page <[email protected] wrote: >>>> >>>>> Hi >>>>> >>>>> Looks good - I just found one issue; please go ahead and commit (with >>>>> a release notes update) when fixed. >>>>> >>>>> - If I set the NULL replacement value to an empty string, it defaults >>>>> back to NULL. It's therefore not possible to replace null values with an >>>>> empty value. >>>>> >>>> >>>> If you remember this is the default behaviour of the Preferences >>>> dialog. It sets the default value again if you set the blank value. Fahar >>>> has raised the same issue before and we have rejected that. If you think we >>>> can create the new RM for that behaviour and will commit the current patch. >>>> >>> >>> Well, we rejected it for a specific case. In this specific case, it >>> makes sense to be able to enter a blank value. >>> >>> Maybe we just need an "allow blank" flag on the preference object, that >>> does nothing except allow you to remove the default (or any other) value >>> without it being replaced again? Obviously the default still needs to work >>> until a value is written to the config DB. >>> >> >> Ok. If i understand correctly this new parameter works for all the >> preference parameter if set to true. By default it's value is False and if >> user wants to enter blank value they will ser the flag. >> > > I think we should not add new preferences flag "allow blank". > Meanwhile I have added new parameter "allow_blank" to the register function > for preferences, so at the time of registering the preference we can set > the value of "allow_blank" parameter, if blank value is acceptable. I have > committed my patch with this changes. > > If you think we need that flag as a Preferences object then I'll > create a new RM for it. > It sounds like you've committed what I just described in my previous message :-) > >>> >>>> >>>>> Thanks! >>>>> >>>>> On Fri, Dec 21, 2018 at 12:57 PM Akshay Joshi < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi Dave >>>>>> >>>>>> I have modified the condition, it won't through any exception. >>>>>> Attached is the updated patch, please review it. >>>>>> >>>>>> On Fri, Dec 21, 2018 at 4:22 AM Dave Page <[email protected]> wrote: >>>>>> >>>>>>> Sorry! Here is is. >>>>>>> >>>>>>> On Fri, Dec 21, 2018 at 12:12 PM Akshay Joshi < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi Dave >>>>>>>> >>>>>>>> Can you please attached the updated patch with your changes. I'll >>>>>>>> try to fix the exception. >>>>>>>> >>>>>>>> On Fri, Dec 21, 2018 at 3:57 AM Dave Page <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> Here's an updated patch as I've tweaked some of the wording. The >>>>>>>>> screenshot probably isn't the right resolution, but as we're replacing them >>>>>>>>> anyway it doesn't seem overly important. Feel free to fix if you like :-) >>>>>>>>> >>>>>>>>> With quoting set to either All or Strings, everything looks good. >>>>>>>>> With it set to None, I still get an exception (below). The query I'm using >>>>>>>>> is this: >>>>>>>>> >>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>>> >>>>>>>>> Field separator: , >>>>>>>>> Quote character: " >>>>>>>>> Replace null's with: NULL >>>>>>>>> >>>>>>>>> Steps: >>>>>>>>> >>>>>>>>> 1) Run pgAdmin in Desktop mode. I'm running from within PyuCharms, >>>>>>>>> using the venv detailed below. >>>>>>>>> 2) Open the Query Tool on a PostgreSQL 9.6.10 database, running on >>>>>>>>> MacOS 10.14.1 >>>>>>>>> 3) Run the above query, wit quoting set to All and check the >>>>>>>>> result in the grid. >>>>>>>>> 4) Download the CSV file and check. >>>>>>>>> 5) Open Preferences and set quoting to Strings. >>>>>>>>> 6) Download the CSV file and check. >>>>>>>>> 7) Open Preferences and set quoting to None. >>>>>>>>> 8) Download the CSV file *exception occurs*. >>>>>>>>> >>>>>>>>> >>>>>>>>> System info: >>>>>>>>> >>>>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ python --version >>>>>>>>> >>>>>>>>> Python 3.6.7 >>>>>>>>> >>>>>>>>> (pgadmin4) dpage@hal:*~/git/pgadmin4*$ pip freeze >>>>>>>>> >>>>>>>>> alabaster==0.7.11 >>>>>>>>> >>>>>>>>> alembic==1.0.0 >>>>>>>>> >>>>>>>>> asn1crypto==0.24.0 >>>>>>>>> >>>>>>>>> Babel==2.6.0 >>>>>>>>> >>>>>>>>> bcrypt==3.1.4 >>>>>>>>> >>>>>>>>> blinker==1.4 >>>>>>>>> >>>>>>>>> certifi==2018.8.24 >>>>>>>>> >>>>>>>>> cffi==1.11.5 >>>>>>>>> >>>>>>>>> chardet==3.0.4 >>>>>>>>> >>>>>>>>> chromedriver-installer==0.0.6 >>>>>>>>> >>>>>>>>> click==6.7 >>>>>>>>> >>>>>>>>> cryptography==2.3 >>>>>>>>> >>>>>>>>> docutils==0.14 >>>>>>>>> >>>>>>>>> extras==1.0.0 >>>>>>>>> >>>>>>>>> fixtures==3.0.0 >>>>>>>>> >>>>>>>>> Flask==0.12.4 >>>>>>>>> >>>>>>>>> Flask-BabelEx==0.9.3 >>>>>>>>> >>>>>>>>> Flask-Gravatar==0.5.0 >>>>>>>>> >>>>>>>>> Flask-HTMLmin==1.3.2 >>>>>>>>> >>>>>>>>> Flask-Login==0.3.2 >>>>>>>>> >>>>>>>>> Flask-Mail==0.9.1 >>>>>>>>> >>>>>>>>> Flask-Migrate==2.1.1 >>>>>>>>> >>>>>>>>> Flask-Paranoid==0.2.0 >>>>>>>>> >>>>>>>>> Flask-Principal==0.4.0 >>>>>>>>> >>>>>>>>> Flask-Security==3.0.0 >>>>>>>>> >>>>>>>>> Flask-SQLAlchemy==2.3.2 >>>>>>>>> >>>>>>>>> Flask-WTF==0.14.2 >>>>>>>>> >>>>>>>>> html5lib==1.0.1 >>>>>>>>> >>>>>>>>> htmlmin==0.1.12 >>>>>>>>> >>>>>>>>> idna==2.7 >>>>>>>>> >>>>>>>>> imagesize==1.1.0 >>>>>>>>> >>>>>>>>> itsdangerous==0.24 >>>>>>>>> >>>>>>>>> Jinja2==2.10 >>>>>>>>> >>>>>>>>> linecache2==1.0.0 >>>>>>>>> >>>>>>>>> Mako==1.0.7 >>>>>>>>> >>>>>>>>> MarkupSafe==1.0 >>>>>>>>> >>>>>>>>> packaging==18.0 >>>>>>>>> >>>>>>>>> paramiko==2.4.1 >>>>>>>>> >>>>>>>>> passlib==1.7.1 >>>>>>>>> >>>>>>>>> pbr==3.1.1 >>>>>>>>> >>>>>>>>> psutil==5.4.8 >>>>>>>>> >>>>>>>>> psycopg2==2.7.5 >>>>>>>>> >>>>>>>>> pyasn1==0.4.4 >>>>>>>>> >>>>>>>>> pycodestyle==2.3.1 >>>>>>>>> >>>>>>>>> pycparser==2.18 >>>>>>>>> >>>>>>>>> pycrypto==2.6.1 >>>>>>>>> >>>>>>>>> Pygments==2.2.0 >>>>>>>>> >>>>>>>>> PyNaCl==1.2.1 >>>>>>>>> >>>>>>>>> pyparsing==2.2.2 >>>>>>>>> >>>>>>>>> pyperclip==1.6.4 >>>>>>>>> >>>>>>>>> pyrsistent==0.14.2 >>>>>>>>> >>>>>>>>> python-dateutil==2.7.3 >>>>>>>>> >>>>>>>>> python-editor==1.0.3 >>>>>>>>> >>>>>>>>> python-mimeparse==1.6.0 >>>>>>>>> >>>>>>>>> pytz==2018.3 >>>>>>>>> >>>>>>>>> requests==2.19.1 >>>>>>>>> >>>>>>>>> selenium==3.14.1 >>>>>>>>> >>>>>>>>> simplejson==3.13.2 >>>>>>>>> >>>>>>>>> six==1.11.0 >>>>>>>>> >>>>>>>>> snowballstemmer==1.2.1 >>>>>>>>> >>>>>>>>> speaklater==1.3 >>>>>>>>> >>>>>>>>> Sphinx==1.8.2 >>>>>>>>> >>>>>>>>> sphinxcontrib-websupport==1.1.0 >>>>>>>>> >>>>>>>>> SQLAlchemy==1.2.10 >>>>>>>>> >>>>>>>>> sqlparse==0.2.4 >>>>>>>>> >>>>>>>>> sshtunnel==0.1.4 >>>>>>>>> >>>>>>>>> testscenarios==0.5.0 >>>>>>>>> >>>>>>>>> testtools==2.3.0 >>>>>>>>> >>>>>>>>> traceback2==1.4.0 >>>>>>>>> >>>>>>>>> unittest2==1.1.0 >>>>>>>>> >>>>>>>>> urllib3==1.23 >>>>>>>>> >>>>>>>>> webencodings==0.5.1 >>>>>>>>> >>>>>>>>> Werkzeug==0.14.1 >>>>>>>>> >>>>>>>>> WTForms==2.1 >>>>>>>>> >>>>>>>>> Exception: >>>>>>>>> >>>>>>>>> 2018-12-21 11:47:28,995: SQL pgadmin: Execute (with server >>>>>>>>> cursor) for server #2 - CONN:8760231 (Query-id: 8649354): >>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, E'Foo\nBar'::text >>>>>>>>> 2018-12-21 11:47:29,001: INFO werkzeug: 127.0.0.1 - - >>>>>>>>> [21/Dec/2018 11:47:29] "GET >>>>>>>>> /sqleditor/query_tool/download/2133388?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545392848979.csv >>>>>>>>> HTTP/1.1" 500 - >>>>>>>>> 2018-12-21 11:47:29,003: ERROR werkzeug: Error on request: >>>>>>>>> Traceback (most recent call last): >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>> line 270, in run_wsgi >>>>>>>>> execute(self.server.app) >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>> line 260, in execute >>>>>>>>> for data in application_iter: >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>> line 870, in __next__ >>>>>>>>> return self._next() >>>>>>>>> File >>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>> line 82, in _iter_encoded >>>>>>>>> for item in iterable: >>>>>>>>> File >>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>> line 848, in gen >>>>>>>>> csv_writer.writerows(results) >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 761, in writerows >>>>>>>>> return self.writer.writerows(map(self._dict_to_list, rowdicts)) >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 268, in writerows >>>>>>>>> self.writerow(row) >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 261, in writerow >>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>> row] >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 261, in <listcomp> >>>>>>>>> row = [self.strategy.prepare(field, only=only) for field in >>>>>>>>> row] >>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", line >>>>>>>>> 142, in prepare >>>>>>>>> raise Error('No escapechar is set') >>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>> >>>>>>>>> On Thu, Dec 20, 2018 at 1:05 PM Akshay Joshi < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Dave >>>>>>>>>> >>>>>>>>>> On Thu, Dec 20, 2018 at 5:12 PM Akshay Joshi < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Thu, Dec 20, 2018 at 4:48 PM Dave Page <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi >>>>>>>>>>>> >>>>>>>>>>>> On Thu, Dec 20, 2018 at 10:09 AM Akshay Joshi < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Dave >>>>>>>>>>>>> >>>>>>>>>>>>> On Thu, Dec 20, 2018 at 3:08 PM Dave Page <[email protected]> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi >>>>>>>>>>>>>> >>>>>>>>>>>>>> When testing with quoting set to None, quote = " and >>>>>>>>>>>>>> delimiter = , I get the following exception when I try to download: >>>>>>>>>>>>>> >>>>>>>>>>>>>> 2018-12-20 09:34:02,547: SQL pgadmin: Execute (with server >>>>>>>>>>>>>> cursor) for server #2 - CONN:354106 (Query-id: 4121147): >>>>>>>>>>>>>> SELECT NULL::text, 1234::int, 'Foo bar'::text, >>>>>>>>>>>>>> E'Foo\nBar'::text >>>>>>>>>>>>>> 2018-12-20 09:34:02,570: INFO werkzeug: 127.0.0.1 - - >>>>>>>>>>>>>> [20/Dec/2018 09:34:02] "GET >>>>>>>>>>>>>> /sqleditor/query_tool/download/5610522?query=SELECT%20NULL%3A%3Atext%2C%201234%3A%3Aint%2C%20%27Foo%20bar%27%3A%3Atext%2C%20E%27Foo%5CnBar%27%3A%3Atext&filename=data-1545298442530.csv >>>>>>>>>>>>>> HTTP/1.1" 500 - >>>>>>>>>>>>>> 2018-12-20 09:34:02,572: ERROR werkzeug: Error on request: >>>>>>>>>>>>>> Traceback (most recent call last): >>>>>>>>>>>>>> File >>>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>>>> line 270, in run_wsgi >>>>>>>>>>>>>> execute(self.server.app) >>>>>>>>>>>>>> File >>>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>>>>>>>>>>>>> line 260, in execute >>>>>>>>>>>>>> for data in application_iter: >>>>>>>>>>>>>> File >>>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wsgi.py", >>>>>>>>>>>>>> line 870, in __next__ >>>>>>>>>>>>>> return self._next() >>>>>>>>>>>>>> File >>>>>>>>>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/wrappers.py", >>>>>>>>>>>>>> line 82, in _iter_encoded >>>>>>>>>>>>>> for item in iterable: >>>>>>>>>>>>>> File >>>>>>>>>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>>>>>>>>>>>>> line 820, in gen >>>>>>>>>>>>>> csv_writer.writerows(results) >>>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>>> line 748, in writerows >>>>>>>>>>>>>> return self.writer.writerows(map(self._dict_to_list, >>>>>>>>>>>>>> rowdicts)) >>>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>>> line 256, in writerows >>>>>>>>>>>>>> self.writerow(row) >>>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>>> line 249, in writerow >>>>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field >>>>>>>>>>>>>> in row] >>>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>>> line 249, in <listcomp> >>>>>>>>>>>>>> row = [self.strategy.prepare(field, only=only) for field >>>>>>>>>>>>>> in row] >>>>>>>>>>>>>> File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/csv.py", >>>>>>>>>>>>>> line 136, in prepare >>>>>>>>>>>>>> raise Error('No escapechar is set') >>>>>>>>>>>>>> _csv.Error: No escapechar is set >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Not able to reproduce the above issue. I have tested it >>>>>>>>>>>>> with the same setting as you mentioned. Please refer all the attached >>>>>>>>>>>>> screenshots. Please specify the steps if they are different. >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> When I have quoting set to All, the first column is returned >>>>>>>>>>>>>> as "" >>>>>>>>>>>>>> >>>>>>>>>>>>>> dpage@hal:*~/Downloads*$ more data-1545298598112.csv >>>>>>>>>>>>>> >>>>>>>>>>>>>> "text","int4","text-2","text-3" >>>>>>>>>>>>>> >>>>>>>>>>>>>> "","1234","Foo bar","Foo >>>>>>>>>>>>>> >>>>>>>>>>>>>> Bar" >>>>>>>>>>>>>> >>>>>>>>>>>>>> Isn't the point for it to be NULL? >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> while quoting is set to ALL, all the data types has been >>>>>>>>>>>>> quoted, so I thought null values should be replaced by "" instead of blank. >>>>>>>>>>>>> But if you think null values shouldn't be quoted even if user select quote >>>>>>>>>>>>> ALL, I'll fix it and resend the patch. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> So how would you distinguish NULL from an empty string? Isn't >>>>>>>>>>>> that exactly what the bug is about? >>>>>>>>>>>> >>>>>>>>>>>> I still think we need a "Replace NULLs with" config option, and >>>>>>>>>>>> regardless of quoting settings we always replace NULL values with whatever >>>>>>>>>>>> that is set to - for which the user could then choose options like: >>>>>>>>>>>> >>>>>>>>>>>> NULL >>>>>>>>>>>> "NULL" >>>>>>>>>>>> "" >>>>>>>>>>>> '' >>>>>>>>>>>> <empty string> >>>>>>>>>>>> >>>>>>>>>>>> We would never quote the NULL replacement value - if the user >>>>>>>>>>>> wanted it to be quoted, they would include the quotes in the configured >>>>>>>>>>>> string. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> OK, Will work on it and send the modified patch again. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Attached is the modified patch as per your suggestion. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 11:13 AM Akshay Joshi < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi Dave >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Attached is the modified patch to fix review comments. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:00 PM Akshay Joshi < >>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 2:49 PM Dave Page < >>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Tue, Dec 18, 2018 at 3:45 AM Akshay Joshi < >>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Attached is the patch to fix RM #3780 pgAdmin4 lacks >>>>>>>>>>>>>>>>>> ability to specify NULL values in CSV export. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Please review it. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> A few points; >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> - You've included code from backports.csv, but per the >>>>>>>>>>>>>>>>> licence you need to include a description of the changes made. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Sure. In that case I'll copy the complete file and >>>>>>>>>>>>>>>> will do my changes which is of two lines only. With my patch I have remove >>>>>>>>>>>>>>>> all the unwanted code from backport.csv. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> - Shouldn't backports.csv be removed from >>>>>>>>>>>>>>>>> requirements.txt, or is it used elsewhere? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Yes. Will do that. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> - If the previous point is true, then I'm fairly sure >>>>>>>>>>>>>>>>> there is code in one or more of the many package build scripts that adds an >>>>>>>>>>>>>>>>> __init__.py file to backports.csv in the venv that's created. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I'll remove that code as well. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> Dave Page >>>>>>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Dave Page >>>>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>>>> >>>>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>>>> >>>>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Dave Page >>>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>>> >>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Akshay Joshi* >>>>>>>>>>> >>>>>>>>>>> *Sr. Software Architect * >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Akshay Joshi* >>>>>>>>>> >>>>>>>>>> *Sr. Software Architect * >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Dave Page >>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>> Twitter: @pgsnake >>>>>>>>> >>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Akshay Joshi* >>>>>>>> >>>>>>>> *Sr. Software Architect * >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dave Page >>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>> Twitter: @pgsnake >>>>>>> >>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>> The Enterprise PostgreSQL Company >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Akshay Joshi* >>>>>> >>>>>> *Sr. Software Architect * >>>>>> >>>>>> >>>>>> >>>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>>> >>>>> >>>>> >>>>> -- >>>>> 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 >>> >> > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > -- Dave Page VP, Chief Architect, Tools & Installers EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company Blog: http://pgsnake.blogspot.com Twitter: @pgsnake ^ permalink raw reply [nested|flat] 20+ messages in thread
end of thread, other threads:[~2019-01-02 10:59 UTC | newest] Thread overview: 20+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2018-12-18 03:45 [pgAdmin4][Patch] - RM 3780 pgAdmin4 lacks ability to specify NULL values in CSV export Akshay Joshi <[email protected]> 2018-12-18 09:19 ` Dave Page <[email protected]> 2018-12-18 09:30 ` Akshay Joshi <[email protected]> 2018-12-18 11:13 ` Akshay Joshi <[email protected]> 2018-12-20 09:38 ` Dave Page <[email protected]> 2018-12-20 10:08 ` Akshay Joshi <[email protected]> 2018-12-20 11:18 ` Dave Page <[email protected]> 2018-12-20 11:42 ` Akshay Joshi <[email protected]> 2018-12-20 13:05 ` Akshay Joshi <[email protected]> 2018-12-21 11:57 ` Dave Page <[email protected]> 2018-12-21 12:12 ` Akshay Joshi <[email protected]> 2018-12-21 12:22 ` Dave Page <[email protected]> 2018-12-21 12:56 ` Akshay Joshi <[email protected]> 2018-12-21 13:22 ` Dave Page <[email protected]> 2018-12-21 14:07 ` Akshay Joshi <[email protected]> 2018-12-21 14:14 ` Dave Page <[email protected]> 2018-12-24 02:17 ` Akshay Joshi <[email protected]> 2019-01-01 09:48 ` Akshay Joshi <[email protected]> 2019-01-02 10:59 ` Dave Page <[email protected]> 2019-01-02 10:58 ` Dave Page <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox