@@ -359,31 +359,30 @@ def resolve_password(
359359 Finally, remove the pgpassfile key as the password has been resolved for the
360360 given parameters.
361361 """
362- if 'prompt_password' in parameters :
363- if parameters ['prompt_password' ] is True :
364- if sys .stdin .isatty ():
365- prompt = prompt_title or parameters .pop ('prompt_title' , '' )
366- prompt += '[' + pg_iri .serialize (parameters , obscure_password = True ) + ']'
367- parameters ['password' ] = getpass ("Password for " + prompt + ": " )
368- else :
369- # getpass will throw an exception if it's not a tty,
370- # so just take the next line.
371- pw = sys .stdin .readline ()
372- # try to clean it up..
373- if pw .endswith (os .linesep ):
374- pw = pw [:len (pw )- len (os .linesep )]
375- parameters ['password' ] = pw
376- del parameters ['prompt_password' ]
362+ prompt_for_password = parameters .pop ('prompt_password' , False )
363+ pgpassfile = parameters .pop ('pgpassfile' , None )
364+ prompt_title = parameters .pop ('prompt_title' , None )
365+ if prompt_for_password is True :
366+ # it's a prompt
367+ if sys .stdin .isatty ():
368+ prompt = prompt_title or parameters .pop ('prompt_title' , '' )
369+ prompt += '[' + pg_iri .serialize (parameters , obscure_password = True ) + ']'
370+ parameters ['password' ] = getpass ("Password for " + prompt + ": " )
371+ else :
372+ # getpass will throw an exception if it's not a tty,
373+ # so just take the next line.
374+ pw = sys .stdin .readline ()
375+ # try to clean it up..
376+ if pw .endswith (os .linesep ):
377+ pw = pw [:len (pw )- len (os .linesep )]
378+ parameters ['password' ] = pw
377379 else :
378380 if parameters .get ('password' ) is None :
379381 # No password? Look in the pgpassfile.
380- passfile = parameters .get ('pgpassfile' )
381- if passfile is not None :
382- parameters ['password' ] = pg_pass .lookup_pgpass (parameters , passfile )
382+ if pgpassfile is not None :
383+ parameters ['password' ] = pg_pass .lookup_pgpass (parameters , pgpassfile )
383384 # Don't need the pgpassfile parameter anymore as the password
384385 # has been resolved.
385- parameters .pop ('pgpassfile' , None )
386- parameters .pop ('prompt_title' , None )
387386
388387def x_settings (sdict , config ):
389388 d = dict (sdict )
0 commit comments