Skip to content

Commit 8558a46

Browse files
author
CommanderKeynes
committed
Move con service file parse below query
1 parent 1c337cd commit 8558a46

File tree

1 file changed

+90
-90
lines changed

1 file changed

+90
-90
lines changed

asyncpg/connect_utils.py

+90-90
Original file line numberDiff line numberDiff line change
@@ -307,96 +307,6 @@ def _parse_connect_dsn_and_args(*, dsn, host, port, user,
307307
else:
308308
connection_service_file = pathlib.Path(connection_service_file)
309309

310-
if connection_service_file is not None and service is not None:
311-
pg_service = configparser.ConfigParser()
312-
pg_service.read(connection_service_file)
313-
if service in pg_service.sections():
314-
service_params = pg_service[service]
315-
if 'port' in service_params:
316-
val = service_params.pop('port')
317-
if not port and val:
318-
port = [int(p) for p in val.split(',')]
319-
320-
if 'host' in service_params:
321-
val = service_params.pop('host')
322-
if not host and val:
323-
host, port = _parse_hostlist(val, port)
324-
325-
if 'dbname' in service_params:
326-
val = service_params.pop('dbname')
327-
if database is None:
328-
database = val
329-
330-
if 'database' in service_params:
331-
val = service_params.pop('database')
332-
if database is None:
333-
database = val
334-
335-
if 'user' in service_params:
336-
val = service_params.pop('user')
337-
if user is None:
338-
user = val
339-
340-
if 'password' in service_params:
341-
val = service_params.pop('password')
342-
if password is None:
343-
password = val
344-
345-
if 'passfile' in service_params:
346-
val = service_params.pop('passfile')
347-
if passfile is None:
348-
passfile = val
349-
350-
if 'sslmode' in service_params:
351-
val = service_params.pop('sslmode')
352-
if ssl is None:
353-
ssl = val
354-
355-
if 'sslcert' in service_params:
356-
sslcert = service_params.pop('sslcert')
357-
358-
if 'sslkey' in service_params:
359-
sslkey = service_params.pop('sslkey')
360-
361-
if 'sslrootcert' in service_params:
362-
sslrootcert = service_params.pop('sslrootcert')
363-
364-
if 'sslnegotiation' in service_params:
365-
sslnegotiation = service_params.pop('sslnegotiation')
366-
367-
if 'sslcrl' in service_params:
368-
sslcrl = service_params.pop('sslcrl')
369-
370-
if 'sslpassword' in service_params:
371-
sslpassword = service_params.pop('sslpassword')
372-
373-
if 'ssl_min_protocol_version' in service_params:
374-
ssl_min_protocol_version = service_params.pop(
375-
'ssl_min_protocol_version'
376-
)
377-
378-
if 'ssl_max_protocol_version' in service_params:
379-
ssl_max_protocol_version = service_params.pop(
380-
'ssl_max_protocol_version'
381-
)
382-
383-
if 'target_session_attrs' in service_params:
384-
dsn_target_session_attrs = service_params.pop(
385-
'target_session_attrs'
386-
)
387-
if target_session_attrs is None:
388-
target_session_attrs = dsn_target_session_attrs
389-
390-
if 'krbsrvname' in service_params:
391-
val = service_params.pop('krbsrvname')
392-
if krbsrvname is None:
393-
krbsrvname = val
394-
395-
if 'gsslib' in service_params:
396-
val = service_params.pop('gsslib')
397-
if gsslib is None:
398-
gsslib = val
399-
400310
if parsed.scheme not in {'postgresql', 'postgres'}:
401311
raise exceptions.ClientConfigurationError(
402312
'invalid DSN: scheme is expected to be either '
@@ -529,6 +439,96 @@ def _parse_connect_dsn_and_args(*, dsn, host, port, user,
529439
else:
530440
server_settings = {**query, **server_settings}
531441

442+
if connection_service_file is not None and service is not None:
443+
pg_service = configparser.ConfigParser()
444+
pg_service.read(connection_service_file)
445+
if service in pg_service.sections():
446+
service_params = pg_service[service]
447+
if 'port' in service_params:
448+
val = service_params.pop('port')
449+
if not port and val:
450+
port = [int(p) for p in val.split(',')]
451+
452+
if 'host' in service_params:
453+
val = service_params.pop('host')
454+
if not host and val:
455+
host, port = _parse_hostlist(val, port)
456+
457+
if 'dbname' in service_params:
458+
val = service_params.pop('dbname')
459+
if database is None:
460+
database = val
461+
462+
if 'database' in service_params:
463+
val = service_params.pop('database')
464+
if database is None:
465+
database = val
466+
467+
if 'user' in service_params:
468+
val = service_params.pop('user')
469+
if user is None:
470+
user = val
471+
472+
if 'password' in service_params:
473+
val = service_params.pop('password')
474+
if password is None:
475+
password = val
476+
477+
if 'passfile' in service_params:
478+
val = service_params.pop('passfile')
479+
if passfile is None:
480+
passfile = val
481+
482+
if 'sslmode' in service_params:
483+
val = service_params.pop('sslmode')
484+
if ssl is None:
485+
ssl = val
486+
487+
if 'sslcert' in service_params:
488+
sslcert = service_params.pop('sslcert')
489+
490+
if 'sslkey' in service_params:
491+
sslkey = service_params.pop('sslkey')
492+
493+
if 'sslrootcert' in service_params:
494+
sslrootcert = service_params.pop('sslrootcert')
495+
496+
if 'sslnegotiation' in service_params:
497+
sslnegotiation = service_params.pop('sslnegotiation')
498+
499+
if 'sslcrl' in service_params:
500+
sslcrl = service_params.pop('sslcrl')
501+
502+
if 'sslpassword' in service_params:
503+
sslpassword = service_params.pop('sslpassword')
504+
505+
if 'ssl_min_protocol_version' in service_params:
506+
ssl_min_protocol_version = service_params.pop(
507+
'ssl_min_protocol_version'
508+
)
509+
510+
if 'ssl_max_protocol_version' in service_params:
511+
ssl_max_protocol_version = service_params.pop(
512+
'ssl_max_protocol_version'
513+
)
514+
515+
if 'target_session_attrs' in service_params:
516+
dsn_target_session_attrs = service_params.pop(
517+
'target_session_attrs'
518+
)
519+
if target_session_attrs is None:
520+
target_session_attrs = dsn_target_session_attrs
521+
522+
if 'krbsrvname' in service_params:
523+
val = service_params.pop('krbsrvname')
524+
if krbsrvname is None:
525+
krbsrvname = val
526+
527+
if 'gsslib' in service_params:
528+
val = service_params.pop('gsslib')
529+
if gsslib is None:
530+
gsslib = val
531+
532532
if not host:
533533
hostspec = os.environ.get('PGHOST')
534534
if hostspec:

0 commit comments

Comments
 (0)