pglift.util.template(bases: str | tuple[tuple[str, ...] | str, ...], *args: str) str

Return the content of a configuration file template, either found in site configuration or in distribution data.

  • bases – The base component(s) of the path where the template file will be looked for; may be a single string or a tuple of string-tuples describing alternative “bases” to look into.

  • args – Final path components of the template file to look for.


The content of found template file.


Look for ‘postgresql/pg_hba.conf’ in site configuration and then distribution data:

>>> print(template("postgresql", "pg_hba.conf"))
local   all             {surole}                                {auth.local}
local   all             all                                     {auth.local}
host    all             all               {auth.host}
host    all             all             ::1/128                 {auth.host}

Look for ‘postgresql.conf’ template first in ‘postgresql/16’ directory in site configuration and fall back to ‘postgresql/postgresql.conf’ in distribution data:

>>> print(template((("postgresql", "16"), "postgresql"), "postgresql.conf"))
cluster_name = {name}
shared_buffers = 25%
effective_cache_size = 66%
unix_socket_directories = {settings.socket_directory}
log_directory = {settings.logpath}
log_filename = '{version}-{name}-%Y-%m-%d_%H%M%S.log'
log_destination = 'stderr'
logging_collector = on