Merge branch 'goodbye-initd'

This commit is contained in:
Daniele Varrazzo 2020-01-25 19:54:30 +00:00
commit e14e3385b4
138 changed files with 438 additions and 109 deletions

View File

@ -20,5 +20,11 @@ install:
script: script:
- scripts/travis_test.sh - scripts/travis_test.sh
deploy:
- provider: script
script: bash scripts/travis_update_docs.sh
on:
branch: master
notifications: notifications:
email: false email: false

View File

@ -1,4 +1,4 @@
Installation instructions are included in the docs. Installation instructions are included in the docs.
Please check the 'doc/src/install.rst' file or online at Please check the 'doc/src/install.rst' file or online at
<http://initd.org/psycopg/docs/install.html>. <https://www.psycopg.org/docs/install.html>.

View File

@ -42,7 +42,7 @@ endif
VERSION := $(shell grep PSYCOPG_VERSION setup.py | head -1 | sed -e "s/.*'\(.*\)'/\1/") VERSION := $(shell grep PSYCOPG_VERSION setup.py | head -1 | sed -e "s/.*'\(.*\)'/\1/")
SDIST := dist/psycopg2-$(VERSION).tar.gz SDIST := dist/psycopg2-$(VERSION).tar.gz
.PHONY: env check clean .PHONY: check clean
default: package default: package

View File

@ -23,11 +23,13 @@ Documentation
Documentation is included in the ``doc`` directory and is `available online`__. Documentation is included in the ``doc`` directory and is `available online`__.
.. __: http://initd.org/psycopg/docs/ .. __: https://www.psycopg.org/docs/
For any other resource (source code repository, bug tracker, mailing list) For any other resource (source code repository, bug tracker, mailing list)
please check the `project homepage`__. please check the `project homepage`__.
.. __: https://psycopg.org/
Installation Installation
------------ ------------
@ -56,11 +58,8 @@ production it is advised to use the package built from sources.
.. _PyPI: https://pypi.org/project/psycopg2/ .. _PyPI: https://pypi.org/project/psycopg2/
.. _psycopg2-binary: https://pypi.org/project/psycopg2-binary/ .. _psycopg2-binary: https://pypi.org/project/psycopg2-binary/
.. _install: http://initd.org/psycopg/docs/install.html#install-from-source .. _install: https://www.psycopg.org/docs/install.html#install-from-source
.. _faq: http://initd.org/psycopg/docs/faq.html#faq-compile .. _faq: https://www.psycopg.org/docs/faq.html#faq-compile
.. __: http://initd.org/psycopg/
:Linux/OSX: |travis| :Linux/OSX: |travis|
:Windows: |appveyor| :Windows: |appveyor|

View File

@ -1,4 +1,4 @@
.PHONY: env help clean html doctest .PHONY: env help clean html package doctest
docs: html docs: html
@ -9,26 +9,25 @@ check: doctest
PYTHON := python$(PYTHON_VERSION) PYTHON := python$(PYTHON_VERSION)
PYTHON_VERSION ?= $(shell $(PYTHON) -c 'import sys; print ("%d.%d" % sys.version_info[:2])') PYTHON_VERSION ?= $(shell $(PYTHON) -c 'import sys; print ("%d.%d" % sys.version_info[:2])')
BUILD_DIR = $(shell pwd)/../build/lib.$(PYTHON_VERSION)
SPHINXBUILD ?= $$(pwd)/env/bin/sphinx-build SPHINXBUILD ?= $$(pwd)/env/bin/sphinx-build
SPHOPTS = SPHINXBUILD=$(SPHINXBUILD) SPHOPTS = SPHINXBUILD=$(SPHINXBUILD)
html: src/sqlstate_errors.rst html: package src/sqlstate_errors.rst
$(MAKE) PYTHON=$(PYTHON) -C .. package
$(MAKE) $(SPHOPTS) -C src $@ $(MAKE) $(SPHOPTS) -C src $@
cp -r src/_build/html . cp -r src/_build/html .
src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h $(BUILD_DIR)
env/bin/python src/tools/make_sqlstate_docs.py $< > $@ env/bin/python src/tools/make_sqlstate_docs.py $< > $@
$(BUILD_DIR):
$(MAKE) PYTHON=$(PYTHON) -C .. package
doctest: doctest:
$(MAKE) PYTHON=$(PYTHON) -C .. package $(MAKE) PYTHON=$(PYTHON) -C .. package
$(MAKE) $(SPHOPTS) -C src $@ $(MAKE) $(SPHOPTS) -C src $@
upload:
# this command requires ssh configured to the proper target
tar czf - -C html . | ssh psycoweb tar xzvf - -C docs/current
clean: clean:
$(MAKE) $(SPHOPTS) -C src $@ $(MAKE) $(SPHOPTS) -C src $@
rm -rf html src/sqlstate_errors.rst rm -rf html src/sqlstate_errors.rst

View File

@ -6,7 +6,7 @@ introspection, so you will need the same prerequisites_. The only extra
prerequisite is virtualenv_: the packages needed to build the docs will be prerequisite is virtualenv_: the packages needed to build the docs will be
installed when building the env. installed when building the env.
.. _prerequisites: http://initd.org/psycopg/docs/install.html#install-from-source .. _prerequisites: https://www.psycopg.org/docs/install.html#install-from-source
.. _virtualenv: https://virtualenv.pypa.io/en/latest/ .. _virtualenv: https://virtualenv.pypa.io/en/latest/
Build the env once with:: Build the env once with::

View File

@ -13,7 +13,7 @@ How to make a psycopg2 release
In the rest of this document we assume you have exported the version number In the rest of this document we assume you have exported the version number
into an environment variable, e.g.:: into an environment variable, e.g.::
$ export VERSION=2.7 $ export VERSION=2.8.4
- In the `Travis settings`__ you may want to be sure that the variables - In the `Travis settings`__ you may want to be sure that the variables
``TEST_PAST`` and ``TEST_FUTURE`` are set to 1 to check all ``TEST_PAST`` and ``TEST_FUTURE`` are set to 1 to check all
@ -36,30 +36,29 @@ How to make a psycopg2 release
- Create a signed tag with the content of the relevant NEWS bit and push it. - Create a signed tag with the content of the relevant NEWS bit and push it.
E.g.:: E.g.::
$ git tag -a -s 2_7 $ git tag -a -s 2_8_4
Psycopg 2.7 released Psycopg 2.8.4 released
What's new in psycopg 2.7 What's new in psycopg 2.8.4
------------------------- ---------------------------
New features: New features:
- Added `~psycopg2.sql` module to generate SQL dynamically (:ticket:`#308`). - Fixed bug blah (:ticket:`#42`).
... ...
- Update the `psycopg2-wheels`_ submodule to the tag version and push. This - Update the `psycopg2-wheels`_ submodule to the tag version and push. This
will build the packages on `Travis CI`__ and `AppVeyor`__ and upload them to will build the packages on `Travis CI`__ and `AppVeyor`__ and upload them to
the `initd.org upload`__ dir. http://upload.psycopg.org/.
.. _psycopg2-wheels: https://github.com/psycopg/psycopg2-wheels .. _psycopg2-wheels: https://github.com/psycopg/psycopg2-wheels
.. __: https://travis-ci.org/psycopg/psycopg2-wheels .. __: https://travis-ci.org/psycopg/psycopg2-wheels
.. __: https://ci.appveyor.com/project/psycopg/psycopg2-wheels .. __: https://ci.appveyor.com/project/psycopg/psycopg2-wheels
.. __: http://initd.org/psycopg/upload/
- Download the packages generated (this assumes ssh configured properly):: - Download the packages generated (this assumes ssh configured properly)::
$ rsync -arv initd-upload:psycopg2-${VERSION} . $ rsync -arv psycopg-upload:psycopg2-${VERSION} .
- Sign the packages and upload the signatures back:: - Sign the packages and upload the signatures back::
@ -67,14 +66,7 @@ How to make a psycopg2 release
gpg --armor --detach-sign $f; gpg --armor --detach-sign $f;
done done
$ rsync -arv psycopg2-${VERSION} initd-upload: $ rsync -arv psycopg2-${VERSION} psycopg-upload:
- Run the ``copy-tarball.sh`` script on the server to copy the uploaded files
in the `tarballs`__ dir::
$ ssh psycoweb@initd.org copy-tarball.sh ${VERSION}
.. __: http://initd.org/psycopg/tarballs/
- Remove the ``.exe`` from the dir, because we don't want to upload them on - Remove the ``.exe`` from the dir, because we don't want to upload them on
PyPI:: PyPI::
@ -88,7 +80,7 @@ How to make a psycopg2 release
- Create a release and release notes in the psycopg website, announce to - Create a release and release notes in the psycopg website, announce to
psycopg and pgsql-announce mailing lists. psycopg and pgsql-announce mailing lists.
- Edit ``setup.py`` changing the version again (e.g. go to ``2.7.1.dev0``). - Edit ``setup.py`` changing the version again (e.g. go to ``2.8.5.dev0``).
Releasing test packages Releasing test packages

View File

@ -1,6 +1,7 @@
# Packages only needed to build the docs # Packages only needed to build the docs
Pygments>=2.2,<2.3 Pygments>=2.2,<2.3
Sphinx>=1.6,<=1.7 Sphinx>=1.6,<=1.7
sphinx-better-theme>=0.1.5,<0.2
# 0.15.2 affected by https://sourceforge.net/p/docutils/bugs/353/ # 0.15.2 affected by https://sourceforge.net/p/docutils/bugs/353/
# Can update to 0.16 after release (currently in rc) but must update Sphinx too # Can update to 0.16 after release (currently in rc) but must update Sphinx too

View File

@ -1,5 +1,3 @@
@import url("classic.css");
blockquote { blockquote {
font-style: italic; font-style: italic;
} }
@ -37,3 +35,102 @@ dl.faq dt {
table.data-types div.line-block { table.data-types div.line-block {
margin-bottom: 0; margin-bottom: 0;
} }
/* better theme customisation */
body {
background-color: #216464;
}
header, .related, .document, footer {
background-color: white;
}
header h1 {
font-size: 150%;
margin-bottom: 0;
padding: 0.5rem 10px 0.5rem 10px;
}
h1, h2, h3 {
font-weight: normal;
}
.body h1, .body h2, .body h3 {
color: #074848;
}
h1 {
font-size: 200%;
}
h2 {
font-size: 160%;
}
h3 {
font-size: 140%;
}
footer#pagefooter {
margin-bottom: 1rem;
font-size: 85%;
color: #444;
}
#rellinks, #breadcrumbs {
padding-right: 10px;
padding-left: 10px;
}
.sphinxsidebar {
padding-left: 10px;
}
.bodywrapper {
padding-right: 10px;
}
div.body h1, div.body h2, div.body h3 {
background-color: #f2f2f2;
border-bottom: 1px solid #d0d0d0;
}
div.body p.rubric {
border-bottom: 1px solid #d0d0d0;
}
body .sphinxsidebar .search {
margin-top: 0;
}
html pre {
background-color: #efc;
border: 1px solid #ac9;
border-left: none;
border-right: none;
}
a, a:visited {
color: #0b6868;
}
th {
background-color: #ede;
}
code.xref, a code {
font-weight: bold;
}
code.descname {
font-weight: bold;
font-size: 120%;
}
@media (max-width: 820px) {
body {
background-color: white;
}
}

View File

@ -0,0 +1,14 @@
{# Override the sphinx theme for the docs to add analytics #}
{%- extends "!layout.html" %}
{%- block scripts %}
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-19287248-2"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-19287248-2');
</script>
{{- super() }}
{%- endblock %}

View File

@ -0,0 +1,6 @@
{# Add a title over the search box #}
{%- if pagename != "search" %}
<h3>Quick search</h3>
{%- include "!searchbox.html" %}
{%- endif %}

View File

@ -11,7 +11,9 @@
# All configuration values have a default; values that are commented out # All configuration values have a default; values that are commented out
# serve to show the default. # serve to show the default.
import sys, os import os
import sys
from better import better_theme_path
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
@ -22,11 +24,16 @@ sys.path.append(os.path.abspath('tools/lib'))
# Add any Sphinx extension module names here, as strings. They can be extensions # Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.ifconfig', extensions = [
'sphinx.ext.doctest', 'sphinx.ext.intersphinx' ] 'sphinx.ext.autodoc',
'sphinx.ext.todo',
'sphinx.ext.ifconfig',
'sphinx.ext.doctest',
'sphinx.ext.intersphinx',
]
# Specific extensions for Psycopg documentation. # Specific extensions for Psycopg documentation.
extensions += [ 'dbapi_extension', 'sql_role', 'ticket_role' ] extensions += ['dbapi_extension', 'sql_role', 'ticket_role']
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']
@ -35,14 +42,16 @@ templates_path = ['_templates']
source_suffix = '.rst' source_suffix = '.rst'
# The encoding of source files. # The encoding of source files.
#source_encoding = 'utf-8' # source_encoding = 'utf-8'
# The master toctree document. # The master toctree document.
master_doc = 'index' master_doc = 'index'
# General information about the project. # General information about the project.
project = u'Psycopg' project = u'Psycopg'
copyright = u'2001-2019, Federico Di Gregorio, Daniele Varrazzo' copyright = (
u'2001-2020, Federico Di Gregorio, Daniele Varrazzo, The Psycopg Team'
)
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
@ -54,15 +63,14 @@ version = '2.0'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
try: try:
import psycopg2 import psycopg2
release = psycopg2.__version__.split()[0]
version = '.'.join(release.split('.')[:2])
except ImportError: except ImportError:
print("WARNING: couldn't import psycopg to read version.") print("WARNING: couldn't import psycopg to read version.")
release = version release = version
else:
release = psycopg2.__version__.split()[0]
version = '.'.join(release.split('.')[:2])
intersphinx_mapping = { intersphinx_mapping = {'py': ('https://docs.python.org/3', None)}
'py': ('https://docs.python.org/3', None),
}
# Pattern to generate links to the bug tracker # Pattern to generate links to the bug tracker
ticket_url = 'https://github.com/psycopg/psycopg2/issues/%s' ticket_url = 'https://github.com/psycopg/psycopg2/issues/%s'
@ -71,16 +79,16 @@ ticket_remap_offset = 230
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
#language = None # language = None
# There are two options for replacing |today|: either, you set today to some # There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used: # non-false value, then it is used:
#today = '' # today = ''
# Else, today_fmt is used as the format for a strftime call. # Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y' # today_fmt = '%B %d, %Y'
# List of documents that shouldn't be included in the build. # List of documents that shouldn't be included in the build.
#unused_docs = [] # unused_docs = []
# List of directories, relative to source directory, that shouldn't be searched # List of directories, relative to source directory, that shouldn't be searched
# for source files. # for source files.
@ -90,15 +98,15 @@ exclude_trees = ['_build', 'html']
default_role = 'obj' default_role = 'obj'
# If true, '()' will be appended to :func: etc. cross-reference text. # If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True # add_function_parentheses = True
# If true, the current module name will be prepended to all description # If true, the current module name will be prepended to all description
# unit titles (such as .. function::). # unit titles (such as .. function::).
#add_module_names = True # add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the # If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default. # output. They are ignored by default.
#show_authors = False # show_authors = False
# Using 'python' instead of the default gives warnings if parsing an example # Using 'python' instead of the default gives warnings if parsing an example
# fails, instead of defaulting to none # fails, instead of defaulting to none
@ -108,7 +116,7 @@ highlight_language = 'python'
pygments_style = 'sphinx' pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting. # A list of ignored prefixes for module index sorting.
#modindex_common_prefix = [] # modindex_common_prefix = []
# Include TODO items in the documentation # Include TODO items in the documentation
todo_include_todos = False todo_include_todos = False
@ -130,35 +138,41 @@ rst_epilog = """
# The theme to use for HTML and HTML Help pages. Major themes that come with # The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'. # Sphinx are currently 'default' and 'sphinxdoc'.
html_theme = 'classic' html_theme = 'better'
# The stylesheet to use with HTML output: this will include the original one # The stylesheet to use with HTML output: this will include the original one
# adding a few classes. # adding a few classes.
html_style = 'psycopg.css' # html_style = 'psycopg.css'
# Hide the sphinx footer
html_show_sphinx = False
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the
# documentation. # documentation.
#html_theme_options = {} html_theme_options = {
'linktotheme': False,
'cssfiles': ['_static/psycopg.css'],
}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = [] html_theme_path = [better_theme_path]
# The name for this set of Sphinx documents. If None, it defaults to # The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation". # "<project> v<release> documentation".
#html_title = None # html_title = None
# A shorter title for the navigation bar. Default is the same as html_title. # A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None html_short_title = 'Home'
# The name of an image file (relative to this directory) to place at the top # The name of an image file (relative to this directory) to place at the top
# of the sidebar. # of the sidebar.
#html_logo = None # html_logo = None
# The name of an image file (within the static path) to use as favicon of the # The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large. # pixels large.
#html_favicon = None # html_favicon = None
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
@ -167,38 +181,41 @@ html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y' # html_last_updated_fmt = '%b %d, %Y'
# If true, SmartyPants will be used to convert quotes and dashes to # If true, SmartyPants will be used to convert quotes and dashes to
# typographically correct entities. # typographically correct entities.
#html_use_smartypants = True # html_use_smartypants = True
# Custom sidebar templates, maps document names to template names. # Custom sidebar templates, maps document names to template names.
#html_sidebars = {} # no need for the prev/next topic link using better theme: they are on top
html_sidebars = {
'**': ['localtoc.html', 'searchbox.html'],
}
# Additional templates that should be rendered to pages, maps page names to # Additional templates that should be rendered to pages, maps page names to
# template names. # template names.
#html_additional_pages = {} # html_additional_pages = {}
# If false, no module index is generated. # If false, no module index is generated.
#html_use_modindex = True # html_use_modindex = True
# If false, no index is generated. # If false, no index is generated.
#html_use_index = True # html_use_index = True
# If true, the index is split into individual pages for each letter. # If true, the index is split into individual pages for each letter.
#html_split_index = False # html_split_index = False
# If true, links to the reST sources are added to the pages. # If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True # html_show_sourcelink = True
# If true, an OpenSearch description file will be output, and all pages will # If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the # contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served. # base URL from which the finished HTML is served.
#html_use_opensearch = '' # html_use_opensearch = ''
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = '' # html_file_suffix = ''
# Output file base name for HTML help builder. # Output file base name for HTML help builder.
htmlhelp_basename = 'psycopgdoc' htmlhelp_basename = 'psycopgdoc'
@ -207,34 +224,39 @@ htmlhelp_basename = 'psycopgdoc'
# -- Options for LaTeX output -------------------------------------------------- # -- Options for LaTeX output --------------------------------------------------
# The paper size ('letter' or 'a4'). # The paper size ('letter' or 'a4').
#latex_paper_size = 'letter' # latex_paper_size = 'letter'
# The font size ('10pt', '11pt' or '12pt'). # The font size ('10pt', '11pt' or '12pt').
#latex_font_size = '10pt' # latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]). # (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [ latex_documents = [
('index', 'psycopg.tex', u'Psycopg Documentation', (
u'Federico Di Gregorio', 'manual'), 'index',
'psycopg.tex',
u'Psycopg Documentation',
u'Federico Di Gregorio',
'manual',
)
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
# the title page. # the title page.
#latex_logo = None # latex_logo = None
# For "manual" documents, if this is true, then toplevel headings are parts, # For "manual" documents, if this is true, then toplevel headings are parts,
# not chapters. # not chapters.
#latex_use_parts = False # latex_use_parts = False
# Additional stuff for the LaTeX preamble. # Additional stuff for the LaTeX preamble.
#latex_preamble = '' # latex_preamble = ''
# Documents to append as an appendix to all manuals. # Documents to append as an appendix to all manuals.
#latex_appendices = [] # latex_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#latex_use_modindex = True # latex_use_modindex = True
doctest_global_setup = """ doctest_global_setup = """

View File

@ -292,7 +292,7 @@ How do I interrupt a long-running query in an interactive shell?
can handle a :kbd:`Ctrl-C` correctly. For previous versions, you can use can handle a :kbd:`Ctrl-C` correctly. For previous versions, you can use
`this implementation`__. `this implementation`__.
.. __: http://initd.org/psycopg/articles/2014/07/20/cancelling-postgresql-statements-python/ .. __: https://www.psycopg.org/articles/2014/07/20/cancelling-postgresql-statements-python/
.. code-block:: pycon .. code-block:: pycon

View File

@ -23,7 +23,7 @@ extended and customized thanks to a flexible :ref:`objects adaptation system
Psycopg 2 is both Unicode and Python 3 friendly. Psycopg 2 is both Unicode and Python 3 friendly.
.. _Psycopg: http://initd.org/psycopg/ .. _Psycopg: https://psycopg.org/
.. _PostgreSQL: https://www.postgresql.org/ .. _PostgreSQL: https://www.postgresql.org/
.. _Python: https://www.python.org/ .. _Python: https://www.python.org/
.. _libpq: https://www.postgresql.org/docs/current/static/libpq.html .. _libpq: https://www.postgresql.org/docs/current/static/libpq.html
@ -57,6 +57,7 @@ Psycopg 2 is both Unicode and Python 3 friendly.
.. rubric:: Indices and tables .. rubric:: Indices and tables
* :ref:`genindex` * :ref:`genindex`
* :ref:`modindex`
* :ref:`search` * :ref:`search`

View File

@ -257,7 +257,8 @@ In case of problems, Psycopg can be configured to emit detailed debug
messages, which can be very useful for diagnostics and to report a bug. In messages, which can be very useful for diagnostics and to report a bug. In
order to create a debug package: order to create a debug package:
- `Download`__ and unpack the Psycopg source package. - `Download`__ and unpack the Psycopg *source package* (the ``.tar.gz``
package).
- Edit the ``setup.cfg`` file adding the ``PSYCOPG_DEBUG`` flag to the - Edit the ``setup.cfg`` file adding the ``PSYCOPG_DEBUG`` flag to the
``define`` option. ``define`` option.
@ -274,7 +275,7 @@ order to create a debug package:
one you just compiled and not e.g. the system one): you will have a copious one you just compiled and not e.g. the system one): you will have a copious
stream of informations printed on stderr. stream of informations printed on stderr.
.. __: http://initd.org/psycopg/download/ .. __: https://pypi.org/project/psycopg2/#files

View File

@ -55,10 +55,53 @@ from the query parameters::
.format(sql.Identifier('my_table')), .format(sql.Identifier('my_table')),
[10, 20]) [10, 20])
The objects exposed by the `!sql` module can be used to compose a query as a
Python string (using the `~Composable.as_string()` method) or passed directly Module usage
to cursor methods such as `~cursor.execute()`, `~cursor.executemany()`, ------------
`~cursor.copy_expert()`.
Usually you should express the template of your query as an `SQL` instance
with `{}`\-style placeholders and use `~SQL.format()` to merge the variable
parts into them, all of which must be `Composable` subclasses. You can still
have `%s`\ -style placeholders in your query and pass values to
`~cursor.execute()`: such value placeholders will be untouched by
`!format()`::
query = sql.SQL("select {field} from {table} where {pkey} = %s").format(
field=sql.Identifier('my_name'),
table=sql.Identifier('some_table'),
pkey=sql.Identifier('id'))
The resulting object is meant to be passed directly to cursor methods such as
`~cursor.execute()`, `~cursor.executemany()`, `~cursor.copy_expert()`, but can
also be used to compose a query as a Python string, using the
`~Composable.as_string()` method::
cur.execute(query, (42,))
If part of your query is a variable sequence of arguments, such as a
comma-separated list of field names, you can use the `SQL.join()` method to
pass them to the query::
query = sql.SQL("select {fields} from {table}").format(
fields=sql.SQL(',').join([
sql.Identifier('field1'),
sql.Identifier('field2'),
sql.Identifier('field3'),
]),
table=sql.Identifier('some_table'))
`!sql` objects
--------------
The `!sql` objects are in the following inheritance hierarchy:
| `Composable`: the base class exposing the common interface
| ``|__`` `SQL`: a literal snippet of an SQL query
| ``|__`` `Identifier`: a PostgreSQL identifier or dot-separated sequence of identifiers
| ``|__`` `Literal`: a value hardcoded into a query
| ``|__`` `Placeholder`: a `%s`\ -style placeholder whose value will be added later e.g. by `~cursor.execute()`
| ``|__`` `Composed`: a sequence of `!Composable` instances.
.. autoclass:: Composable .. autoclass:: Composable

View File

@ -6,7 +6,7 @@ provide new-style classes for connection and cursor objects and other sweet
candies. Like the original, psycopg 2 was written with the aim of being very candies. Like the original, psycopg 2 was written with the aim of being very
small and fast, and stable as a rock. small and fast, and stable as a rock.
Homepage: http://initd.org/projects/psycopg2 Homepage: https://psycopg.org/
.. _PostgreSQL: https://www.postgresql.org/ .. _PostgreSQL: https://www.postgresql.org/
.. _Python: https://www.python.org/ .. _Python: https://www.python.org/
@ -19,6 +19,7 @@ Homepage: http://initd.org/projects/psycopg2
# psycopg/__init__.py - initialization of the psycopg module # psycopg/__init__.py - initialization of the psycopg module
# #
# Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> # Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -4,6 +4,7 @@
# psycopg/_ipaddress.py - Ipaddres-based network types adaptation # psycopg/_ipaddress.py - Ipaddres-based network types adaptation
# #
# Copyright (C) 2016-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> # Copyright (C) 2016-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -8,6 +8,7 @@ extensions importing register_json from extras.
# psycopg/_json.py - Implementation of the JSON adaptation objects # psycopg/_json.py - Implementation of the JSON adaptation objects
# #
# Copyright (C) 2012-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> # Copyright (C) 2012-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -5,6 +5,7 @@
# psycopg/_range.py - Implementation of the Range type and adaptation # psycopg/_range.py - Implementation of the Range type and adaptation
# #
# Copyright (C) 2012-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> # Copyright (C) 2012-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -5,6 +5,7 @@ This module contains symbolic names for all PostgreSQL error codes.
# psycopg2/errorcodes.py - PostgreSQL error codes # psycopg2/errorcodes.py - PostgreSQL error codes
# #
# Copyright (C) 2006-2019 Johan Dahlin <jdahlin@async.com.br> # Copyright (C) 2006-2019 Johan Dahlin <jdahlin@async.com.br>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -4,6 +4,7 @@
# psycopg/errors.py - SQLSTATE and DB-API exceptions # psycopg/errors.py - SQLSTATE and DB-API exceptions
# #
# Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> # Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -13,6 +13,7 @@ This module holds all the extensions to the DBAPI-2.0 provided by psycopg.
# psycopg/extensions.py - DBAPI-2.0 extensions specific to psycopg # psycopg/extensions.py - DBAPI-2.0 extensions specific to psycopg
# #
# Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> # Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -6,6 +6,7 @@ and classes until a better place in the distribution is found.
# psycopg/extras.py - miscellaneous extra goodies for psycopg # psycopg/extras.py - miscellaneous extra goodies for psycopg
# #
# Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> # Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -5,6 +5,7 @@ This module implements thread-safe (and not) connection pools.
# psycopg/pool.py - pooling code for psycopg # psycopg/pool.py - pooling code for psycopg
# #
# Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> # Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -4,6 +4,7 @@
# psycopg/sql.py - SQL composition utility module # psycopg/sql.py - SQL composition utility module
# #
# Copyright (C) 2016-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> # Copyright (C) 2016-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -7,6 +7,7 @@ functions or used to set the .tzinfo_factory attribute in cursors.
# psycopg/tz.py - tzinfo implementation # psycopg/tz.py - tzinfo implementation
# #
# Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> # Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
# Copyright (C) 2020 The Psycopg Team
# #
# psycopg2 is free software: you can redistribute it and/or modify it # psycopg2 is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published # under the terms of the GNU Lesser General Public License as published

View File

@ -1,6 +1,7 @@
/* adapter_asis.c - adapt types as they are /* adapter_asis.c - adapt types as they are
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_asis.h - definition for the psycopg AsIs type wrapper /* adapter_asis.h - definition for the psycopg AsIs type wrapper
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_binary.c - Binary objects /* adapter_binary.c - Binary objects
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_binary.h - definition for the Binary type /* adapter_binary.h - definition for the Binary type
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_datetime.c - python date/time objects /* adapter_datetime.c - python date/time objects
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_datetime.h - definition for the python date/time types /* adapter_datetime.h - definition for the python date/time types
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_list.c - python list objects /* adapter_list.c - python list objects
* *
* Copyright (C) 2004-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2004-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_list.h - definition for the python list types /* adapter_list.h - definition for the python list types
* *
* Copyright (C) 2004-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2004-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_mxdatetime.c - mx date/time objects /* adapter_mxdatetime.c - mx date/time objects
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_mxdatetime.h - definition for the mx date/time types /* adapter_mxdatetime.h - definition for the mx date/time types
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_pboolean.c - psycopg boolean type wrapper implementation /* adapter_pboolean.c - psycopg boolean type wrapper implementation
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_pboolean.h - definition for the psycopg boolean type wrapper /* adapter_pboolean.h - definition for the psycopg boolean type wrapper
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_pdecimal.c - psycopg Decimal type wrapper implementation /* adapter_pdecimal.c - psycopg Decimal type wrapper implementation
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_pdecimal.h - definition for the psycopg Decimal type wrapper /* adapter_pdecimal.h - definition for the psycopg Decimal type wrapper
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_float.c - psycopg pfloat type wrapper implementation /* adapter_float.c - psycopg pfloat type wrapper implementation
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_pfloat.h - definition for the psycopg float type wrapper /* adapter_pfloat.h - definition for the psycopg float type wrapper
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_int.c - psycopg pint type wrapper implementation /* adapter_int.c - psycopg pint type wrapper implementation
* *
* Copyright (C) 2011-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2011-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_pint.h - definition for the psycopg int type wrapper /* adapter_pint.h - definition for the psycopg int type wrapper
* *
* Copyright (C) 2011-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2011-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_qstring.c - QuotedString objects /* adapter_qstring.c - QuotedString objects
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* adapter_qstring.h - definition for the QuotedString type /* adapter_qstring.h - definition for the QuotedString type
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* bytes_format.c - bytes-oriented version of PyString_Format /* bytes_format.c - bytes-oriented version of PyString_Format
* *
* Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* column.h - definition for a column in cursor.description type /* column.h - definition for a column in cursor.description type
* *
* Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* column_type.c - python interface to cursor.description objects /* column_type.c - python interface to cursor.description objects
* *
* Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* config.h - general config and Dprintf macro /* config.h - general config and Dprintf macro
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* connection.h - definition for the psycopg connection type /* connection.h - definition for the psycopg connection type
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* connection_int.c - code used by the connection object /* connection_int.c - code used by the connection object
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* connection_type.c - python interface to connection objects /* connection_type.c - python interface to connection objects
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* connection.h - definition for the psycopg ConnectionInfo type /* connection.h - definition for the psycopg ConnectionInfo type
* *
* Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* conninfo_type.c - present information about the libpq connection /* conninfo_type.c - present information about the libpq connection
* *
* Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* cursor.h - definition for the psycopg cursor type /* cursor.h - definition for the psycopg cursor type
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* cursor_int.c - code used by the cursor object /* cursor_int.c - code used by the cursor object
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* cursor_type.c - python interface to cursor objects /* cursor_type.c - python interface to cursor objects
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* diagnostics.c - definition for the psycopg Diagnostics type /* diagnostics.c - definition for the psycopg Diagnostics type
* *
* Copyright (C) 2013-2019 Matthew Woodcraft <matthew@woodcraft.me.uk> * Copyright (C) 2013-2019 Matthew Woodcraft <matthew@woodcraft.me.uk>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* diagnostics.c - present information from libpq error responses /* diagnostics.c - present information from libpq error responses
* *
* Copyright (C) 2013-2019 Matthew Woodcraft <matthew@woodcraft.me.uk> * Copyright (C) 2013-2019 Matthew Woodcraft <matthew@woodcraft.me.uk>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* error.h - definition for the psycopg base Error type /* error.h - definition for the psycopg base Error type
* *
* Copyright (C) 2013-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2013-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* error_type.c - python interface to the Error objects /* error_type.c - python interface to the Error objects
* *
* Copyright (C) 2013-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2013-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* green.c - cooperation with coroutine libraries. /* green.c - cooperation with coroutine libraries.
* *
* Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* green.c - cooperation with coroutine libraries. /* green.c - cooperation with coroutine libraries.
* *
* Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -3,6 +3,7 @@
* streaming replication * streaming replication
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* libpq_support.h - definitions for libpq_support.c /* libpq_support.h - definitions for libpq_support.c
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* lobject.h - definition for the psycopg lobject type /* lobject.h - definition for the psycopg lobject type
* *
* Copyright (C) 2006-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2006-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* lobject_int.c - code used by the lobject object /* lobject_int.c - code used by the lobject object
* *
* Copyright (C) 2006-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2006-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* lobject_type.c - python interface to lobject objects /* lobject_type.c - python interface to lobject objects
* *
* Copyright (C) 2006-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2006-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* microprotocols.c - minimalist and non-validating protocols implementation /* microprotocols.c - minimalist and non-validating protocols implementation
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* microprotocols.c - definitions for minimalist and non-validating protocols /* microprotocols.c - definitions for minimalist and non-validating protocols
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* microprotocol_proto.c - psycopg protocols /* microprotocol_proto.c - psycopg protocols
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* microporotocols_proto.h - definition for psycopg's protocols /* microporotocols_proto.h - definition for psycopg's protocols
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* notify.h - definition for the psycopg Notify type /* notify.h - definition for the psycopg Notify type
* *
* Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* notify_type.c - python interface to Notify objects /* notify_type.c - python interface to Notify objects
* *
* Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2010-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* pqpath.c - single path into libpq /* pqpath.c - single path into libpq
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* pqpath.h - definitions for pqpath.c /* pqpath.h - definitions for pqpath.c
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* psycopg.h - definitions for the psycopg python module /* psycopg.h - definitions for the psycopg python module
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* psycopgmodule.c - psycopg module (will import other C classes) /* psycopgmodule.c - psycopg module (will import other C classes)
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* python.h - python version compatibility stuff /* python.h - python version compatibility stuff
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* replication_connection.h - definition for the psycopg replication connection type /* replication_connection.h - definition for the psycopg replication connection type
* *
* Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* replication_connection_type.c - python interface to replication connection objects /* replication_connection_type.c - python interface to replication connection objects
* *
* Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* replication_cursor.h - definition for the psycopg replication cursor type /* replication_cursor.h - definition for the psycopg replication cursor type
* *
* Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* replication_cursor_type.c - python interface to replication cursor objects /* replication_cursor_type.c - python interface to replication cursor objects
* *
* Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2015-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* replication_message.h - definition for the psycopg ReplicationMessage type /* replication_message.h - definition for the psycopg ReplicationMessage type
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* replication_message_type.c - python interface to ReplcationMessage objects /* replication_message_type.c - python interface to ReplcationMessage objects
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -2,6 +2,7 @@
* *
* Copyright (C) 2017 My Karlsson <mk@acc.umu.se> * Copyright (C) 2017 My Karlsson <mk@acc.umu.se>
* Copyright (c) 2018, Joyent, Inc. * Copyright (c) 2018, Joyent, Inc.
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -2,6 +2,7 @@
* *
* Copyright (C) 2017 My Karlsson <mk@acc.umu.se> * Copyright (C) 2017 My Karlsson <mk@acc.umu.se>
* Copyright (c) 2018-2019, Joyent, Inc. * Copyright (c) 2018-2019, Joyent, Inc.
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* typecast.c - basic utility functions related to typecasting /* typecast.c - basic utility functions related to typecasting
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* typecast.h - definitions for typecasters /* typecast.h - definitions for typecasters
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* typecast_array.c - array typecasters /* typecast_array.c - array typecasters
* *
* Copyright (C) 2005-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2005-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* pgcasts_basic.c - basic typecasting functions to python types /* pgcasts_basic.c - basic typecasting functions to python types
* *
* Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* typecast_binary.c - binary typecasting functions to python types /* typecast_binary.c - binary typecasting functions to python types
* *
* Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* typecast_binary.h - definitions for binary typecaster /* typecast_binary.h - definitions for binary typecaster
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* typecast_datetime.c - date and time typecasting functions to python types /* typecast_datetime.c - date and time typecasting functions to python types
* *
* Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* typecast_mxdatetime.c - date and time typecasting functions to mx types /* typecast_mxdatetime.c - date and time typecasting functions to mx types
* *
* Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2001-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* utils.c - miscellaneous utility functions /* utils.c - miscellaneous utility functions
* *
* Copyright (C) 2008-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2008-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* utils.h - function definitions for utility file /* utils.h - function definitions for utility file
* *
* Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com> * Copyright (C) 2018-2019 Daniele Varrazzo <daniele.varrazzo@gmail.com>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

View File

@ -1,6 +1,7 @@
/* win32_support.c - emulate some functions missing on Win32 /* win32_support.c - emulate some functions missing on Win32
* *
* Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org> * Copyright (C) 2003-2019 Federico Di Gregorio <fog@debian.org>
* Copyright (C) 2020 The Psycopg Team
* *
* This file is part of psycopg. * This file is part of psycopg.
* *

Some files were not shown because too many files have changed in this diff Show More