Source code for postgresql

##
# py-postgresql root package
# http://python.projects.postgresql.org
##
"""
py-postgresql is a Python package for using PostgreSQL. This includes low-level
protocol tools, a driver(PG-API and DB-API), and cluster management tools.

If it's not documented in the narratives, `postgresql.documentation.index`, then
the stability of the APIs should *not* be trusted.

See <http://postgresql.org> for more information about PostgreSQL.
"""
__all__ = [
	'__author__',
	'__date__',
	'__version__',
	'__docformat__',
	'version',
	'version_info',
	'open',
]

#: The version string of py-postgresql.
version = '' # overridden by subsequent import from .project.

#: The version triple of py-postgresql: (major, minor, patch).
version_info = () # overridden by subsequent import from .project.

# Optional.
try:
	from .project import version_info, version, \
		author as __author__, date as __date__
	__version__ = version
except ImportError:
	pass

# Avoid importing these until requested.
_pg_iri = _pg_driver = _pg_param = None
[docs]def open(iri = None, prompt_title = None, **kw): """ Create a `postgresql.api.Connection` to the server referenced by the given `iri`:: >>> import postgresql # General Format: >>> db = postgresql.open('pq://user:password@host:port/database') # Connect to 'postgres' at localhost. >>> db = postgresql.open('localhost/postgres') Connection keywords can also be used with `open`. See the narratives for more information. The `prompt_title` keyword is ignored. `open` will never prompt for the password unless it is explicitly instructed to do so. (Note: "pq" is the name of the protocol used to communicate with PostgreSQL) """ global _pg_iri, _pg_driver, _pg_param if _pg_iri is None: from . import iri as _pg_iri from . import driver as _pg_driver from . import clientparameters as _pg_param return_connector = False if iri is not None: if iri.startswith('&'): return_connector = True iri = iri[1:] iri_params = _pg_iri.parse(iri) iri_params.pop('path', None) else: iri_params = {} std_params = _pg_param.collect(prompt_title = None) # If unix is specified, it's going to conflict with any standard # settings, so remove them right here. if 'unix' in kw or 'unix' in iri_params: std_params.pop('host', None) std_params.pop('port', None) params = _pg_param.normalize( list(_pg_param.denormalize_parameters(std_params)) + \ list(_pg_param.denormalize_parameters(iri_params)) + \ list(_pg_param.denormalize_parameters(kw)) ) _pg_param.resolve_password(params) C = _pg_driver.default.fit(**params) if return_connector is True: return C else: c = C() c.connect() return c
__docformat__ = 'reStructuredText'