Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
show_default=False, type=str)
# Prompt for a password after 1st attempt to connect without a password
# fails. Don't prompt if the -w flag is supplied
auto_passwd_prompt = not passwd and not self.never_passwd_prompt
# Attempt to connect to the database.
# Note that passwd may be empty on the first attempt. If connection
# fails because of a missing password, but we're allowed to prompt for
# a password (no -w flag), prompt for a passwd and try again.
try:
try:
pgexecute = PGExecute(database, user, passwd, host, port, dsn,
**kwargs)
except (OperationalError, InterfaceError) as e:
if ('no password supplied' in utf8tounicode(e.args[0]) and
auto_passwd_prompt):
passwd = click.prompt('Password for %s' % user,
hide_input=True, show_default=False,
type=str)
pgexecute = PGExecute(database, user, passwd, host, port,
dsn, **kwargs)
else:
raise e
except Exception as e: # Connecting to a database could fail.
self.logger.debug('Database connection failed: %r.', e)
self.logger.error("traceback: %r", traceback.format_exc())
click.secho(str(e), err=True, fg='red')
exit(1)
self.pgexecute = pgexecute
"missing_value": settings.missingval,
"integer_format": settings.dcmlfmt,
"float_format": settings.floatfmt,
"preprocessors": (format_numbers, format_arrays),
"disable_numparse": True,
"preserve_whitespace": True,
"style": settings.style_output,
}
if not settings.floatfmt:
output_kwargs["preprocessors"] = (align_decimals,)
if title: # Only print the title if it's not None.
output.append(title)
if cur:
headers = [case_function(utf8tounicode(x)) for x in headers]
if max_width is not None:
cur = list(cur)
column_types = None
if hasattr(cur, "description"):
column_types = []
for d in cur.description:
if (
d[1] in psycopg2.extensions.DECIMAL.values
or d[1] in psycopg2.extensions.FLOAT.values
):
column_types.append(float)
if (
d[1] == psycopg2.extensions.INTEGER.values
or d[1] in psycopg2.extensions.LONGINTEGER.values
):
column_types.append(int)
'sep_length': (1, 25),
'missing_value': settings.missingval,
'integer_format': settings.dcmlfmt,
'float_format': settings.floatfmt,
'preprocessors': (format_numbers, format_arrays),
'disable_numparse': True,
'preserve_whitespace': True
}
if not settings.floatfmt:
output_kwargs['preprocessors'] = (align_decimals, )
if title: # Only print the title if it's not None.
output.append(title)
if cur:
headers = [case_function(utf8tounicode(x)) for x in headers]
if max_width is not None:
cur = list(cur)
column_types = None
if hasattr(cur, 'description'):
column_types = []
for d in cur.description:
if d[1] in psycopg2.extensions.DECIMAL.values or \
d[1] in psycopg2.extensions.FLOAT.values:
column_types.append(float)
if d[1] == psycopg2.extensions.INTEGER.values or \
d[1] in psycopg2.extensions.LONGINTEGER.values:
column_types.append(int)
else:
column_types.append(text_type)
formatted = formatter.format_output(cur, headers, **output_kwargs)
if isinstance(formatted, (text_type)):
_text_type_encode = lambda x: _text_type(utf8tounicode(x))
plain_text = '\n'.join(['\t'.join(map(_text_type_encode, headers))] + \
def should_ask_for_password(exc):
# Prompt for a password after 1st attempt to connect
# fails. Don't prompt if the -w flag is supplied
if self.never_passwd_prompt:
return False
error_msg = utf8tounicode(exc.args[0])
if "no password supplied" in error_msg:
return True
if "password authentication failed" in error_msg:
return True
return False
def exception_formatter(e):
return click.style(utf8tounicode(str(e)), fg="red")