From: Mike Bayer Date: Wed, 1 Jan 2020 15:51:15 +0000 (-0500) Subject: Source base cleanups X-Git-Tag: rel_1_3_13~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2e4fcb5444b26180f3cd196393e21cc4d0ce462;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Source base cleanups in trying to apply 2020 copyright to files, the pre-commit hooks complain about random file issues. - remove old corrections.py utility, this had something to do with repairing refs in the sphinx docs - run pre commit hooks on all files - formatting adjustments to work around code formatting collisions (long import lines that zimports can't rewrite correctly) - for 1.3, update conf.py with formatted version Change-Id: I260744866f69e902eb93665c7c728ee94d3371a2 (cherry picked from commit 748bf710fdeeed327933a5e7c277c7f79f6053a6) --- diff --git a/doc/build/conf.py b/doc/build/conf.py index 2ab9f4d3e7..91a7f6545b 100644 --- a/doc/build/conf.py +++ b/doc/build/conf.py @@ -3,7 +3,8 @@ # SQLAlchemy documentation build configuration file, created by # sphinx-quickstart on Wed Nov 26 19:50:10 2008. # -# This file is execfile()d with the current directory set to its containing dir. +# This file is execfile()d with the current directory set to its containing +# dir. # # Note that not all possible configuration values are present in this # autogenerated file. @@ -11,53 +12,69 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys import os +import sys # 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 # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('../../lib')) -sys.path.insert(0, os.path.abspath('../..')) # examples -sys.path.insert(0, os.path.abspath('.')) - -import sqlalchemy +sys.path.insert(0, os.path.abspath("../../lib")) +sys.path.insert(0, os.path.abspath("../..")) # examples +sys.path.insert(0, os.path.abspath(".")) -# -- General configuration ----------------------------------------------------- +# -- General configuration -------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = '1.6.0' +needs_sphinx = "1.6.0" -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ - 'sphinx.ext.autodoc', - 'zzzeeksphinx', - 'changelog', - 'sphinx_paramlinks', - ] + "sphinx.ext.autodoc", + "zzzeeksphinx", + "changelog", + "sphinx_paramlinks", +] # Add any paths that contain templates here, relative to this directory. # not sure why abspath() is needed here, some users # have reported this. -templates_path = [os.path.abspath('templates')] +templates_path = [os.path.abspath("templates")] nitpicky = True # The suffix of source filenames. -source_suffix = '.rst' +source_suffix = ".rst" # section names used by the changelog extension. -changelog_sections = ["general", "orm", "orm declarative", "orm querying", \ - "orm configuration", "engine", "sql", \ - "schema", \ - "postgresql", "mysql", "sqlite", "mssql", \ - "oracle", "firebird"] +changelog_sections = [ + "general", + "orm", + "orm declarative", + "orm querying", + "orm configuration", + "engine", + "sql", + "schema", + "postgresql", + "mysql", + "sqlite", + "mssql", + "oracle", + "firebird", +] # tags to sort on inside of sections -changelog_inner_tag_sort = ["feature", "changed", "removed", "bug", "moved"] +changelog_inner_tag_sort = [ + "feature", + "changed", + "usecase", + "removed", + "bug", + "moved", +] # how to render changelog links changelog_render_ticket = "http://www.sqlalchemy.org/trac/ticket/%s" @@ -69,10 +86,7 @@ changelog_render_pullreq = { changelog_render_changeset = "http://www.sqlalchemy.org/trac/changeset/%s" -exclude_patterns = [ - 'build', - '**/unreleased*/*', -] +exclude_patterns = ["build", "**/unreleased*/*"] autodocmods_convert_modname = { "sqlalchemy.sql.sqltypes": "sqlalchemy.types", @@ -93,14 +107,14 @@ autodocmods_convert_modname_w_class = { } # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'contents' +master_doc = "contents" # General information about the project. -project = u'SQLAlchemy' -copyright = u'2007-2019, the SQLAlchemy authors and contributors' +project = u"SQLAlchemy" +copyright = u"2007-2019, the SQLAlchemy authors and contributors" # noqa # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -123,72 +137,73 @@ build_number = "3" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None +# The reST default role (used for this markup: `text`) to use for all +# documents. +# default_role = None # 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 # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # have the "gettext" build generate .pot for each individual # .rst gettext_compact = False -# -- Options for HTML output --------------------------------------------------- +# -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'zzzeeksphinx' +html_theme = "zzzeeksphinx" # 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 # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths # given in html_static_path. -html_style = 'default.css' +html_style = "default.css" # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = "%s %s Documentation" % (project, version) # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # 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 # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # 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, @@ -197,148 +212,154 @@ html_static_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -html_last_updated_fmt = '%m/%d/%Y %H:%M:%S' +html_last_updated_fmt = "%m/%d/%Y %H:%M:%S" # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -html_additional_pages = { - "notfound": "notfound.html" -} +html_additional_pages = {"notfound": "notfound.html"} # If false, no module index is generated. html_domain_indices = False # 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. -#html_split_index = False +# html_split_index = False # If true, the reST sources are included in the HTML build as _sources/. -#html_copy_source = True +# html_copy_source = True html_copy_source = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True html_show_sourcelink = False # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'SQLAlchemydoc' +htmlhelp_basename = "SQLAlchemydoc" -#autoclass_content = 'both' +# autoclass_content = 'both' -# -- Options for LaTeX output -------------------------------------------------- +# -- Options for LaTeX output ------------------------------------------------ # The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' +# latex_paper_size = 'letter' # 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 -# (source start file, target name, title, author, documentclass [howto/manual]). +# Grouping the document tree into LaTeX files. List of tuples (source start +# file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('contents', 'sqlalchemy_%s.tex' % release.replace('.', '_'), 'SQLAlchemy Documentation', - 'Mike Bayer', 'manual'), + ( + "contents", + "sqlalchemy_%s.tex" % release.replace(".", "_"), + "SQLAlchemy Documentation", + "Mike Bayer", + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Additional stuff for the LaTeX preamble. # sets TOC depth to 2. -latex_preamble = '\setcounter{tocdepth}{3}' +latex_preamble = r"\setcounter{tocdepth}{3}" # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True -#latex_elements = { +# latex_elements = { # 'papersize': 'letterpaper', # 'pointsize': '10pt', -#} +# } -# -- Options for manual page output -------------------------------------------- +# -- Options for manual page output ------------------------------------------ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'sqlalchemy', u'SQLAlchemy Documentation', - [u'SQLAlchemy authors'], 1) + ( + "index", + "sqlalchemy", + u"SQLAlchemy Documentation", + [u"SQLAlchemy authors"], + 1, + ) ] -# -- Options for Epub output --------------------------------------------------- +# -- Options for Epub output ------------------------------------------------- # Bibliographic Dublin Core info. -epub_title = u'SQLAlchemy' -epub_author = u'SQLAlchemy authors' -epub_publisher = u'SQLAlchemy authors' -epub_copyright = u'2007-2015, SQLAlchemy authors' +epub_title = u"SQLAlchemy" +epub_author = u"SQLAlchemy authors" +epub_publisher = u"SQLAlchemy authors" +epub_copyright = u"2007-2015, SQLAlchemy authors" # The language of the text. It defaults to the language option # or en if the language is not set. -#epub_language = '' +# epub_language = '' # The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' +# epub_scheme = '' # The unique identifier of the text. This can be a ISBN number # or the project homepage. -#epub_identifier = '' +# epub_identifier = '' # A unique identification for the text. -#epub_uid = '' +# epub_uid = '' # HTML files that should be inserted before the pages created by sphinx. # The format is a list of tuples containing the path and title. -#epub_pre_files = [] +# epub_pre_files = [] # HTML files that should be inserted after the pages created by sphinx. # The format is a list of tuples containing the path and title. -#epub_post_files = [] +# epub_post_files = [] # A list of files that should not be packed into the epub file. -#epub_exclude_files = [] +# epub_exclude_files = [] # The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 +# epub_tocdepth = 3 # Allow duplicate toc entries. -#epub_tocdup = True - - +# epub_tocdup = True diff --git a/doc/build/corrections.py b/doc/build/corrections.py deleted file mode 100644 index fa2e13a384..0000000000 --- a/doc/build/corrections.py +++ /dev/null @@ -1,39 +0,0 @@ -targets = {} -quit = False -def missing_reference(app, env, node, contnode): - global quit - if quit: - return - reftarget = node.attributes['reftarget'] - reftype = node.attributes['reftype'] - refdoc = node.attributes['refdoc'] - rawsource = node.rawsource - if reftype == 'paramref': - return - - target = rawsource - if target in targets: - return - print "\n%s" % refdoc - print "Reftarget: %s" % rawsource - correction = raw_input("? ") - correction = correction.strip() - if correction == ".": - correction = ":%s:`.%s`" % (reftype, reftarget) - elif correction == 'q': - quit = True - else: - targets[target] = correction - -def write_corrections(app, exception): - print "#!/bin/sh\n\n" - for targ, corr in targets.items(): - if not corr: - continue - - print """find lib/ -print -type f -name "*.py" -exec sed -i '' 's/%s/%s/g' {} \;""" % (targ, corr) - print """find doc/build/ -print -type f -name "*.rst" -exec sed -i '' 's/%s/%s/g' {} \;""" % (targ, corr) - -def setup(app): - app.connect('missing-reference', missing_reference) - app.connect('build-finished', write_corrections) diff --git a/lib/sqlalchemy/__init__.py b/lib/sqlalchemy/__init__.py index 34d1fc3b6e..d23b4dcef1 100644 --- a/lib/sqlalchemy/__init__.py +++ b/lib/sqlalchemy/__init__.py @@ -123,7 +123,7 @@ from .engine import create_engine # noqa nosort from .engine import engine_from_config # noqa nosort -__version__ = '1.3.13' +__version__ = "1.3.13" def __go(lcls): diff --git a/lib/sqlalchemy/sql/ddl.py b/lib/sqlalchemy/sql/ddl.py index d87a6a1b04..6ce813bd1f 100644 --- a/lib/sqlalchemy/sql/ddl.py +++ b/lib/sqlalchemy/sql/ddl.py @@ -823,7 +823,7 @@ class SchemaGenerator(DDLBase): CreateTable( table, include_foreign_key_constraints= # noqa - include_foreign_key_constraints, + include_foreign_key_constraints, # noqa ) # fmt: on ) diff --git a/reap_dbs.py b/reap_dbs.py index 1e4033be4b..81f9b8f26e 100644 --- a/reap_dbs.py +++ b/reap_dbs.py @@ -20,5 +20,3 @@ logging.basicConfig() logging.getLogger(provision.__name__).setLevel(logging.INFO) provision.reap_dbs(sys.argv[1]) - - diff --git a/test/ext/test_deprecations.py b/test/ext/test_deprecations.py index 099393cf77..841b84cd8d 100644 --- a/test/ext/test_deprecations.py +++ b/test/ext/test_deprecations.py @@ -1,15 +1,10 @@ from sqlalchemy import testing from sqlalchemy.orm import mapper +from . import test_mutable from .test_mutable import Foo -from .test_mutable import ( - MutableAssociationScalarPickleTest as _MutableAssociationScalarPickleTest, -) -from .test_mutable import ( - MutableWithScalarJSONTest as _MutableWithScalarJSONTest, -) -class MutableIncludeNonPrimaryTest(_MutableWithScalarJSONTest): +class MutableIncludeNonPrimaryTest(test_mutable.MutableWithScalarJSONTest): @classmethod def setup_mappers(cls): foo = cls.tables.foo @@ -23,7 +18,9 @@ class MutableIncludeNonPrimaryTest(_MutableWithScalarJSONTest): ) -class MutableAssocIncludeNonPrimaryTest(_MutableAssociationScalarPickleTest): +class MutableAssocIncludeNonPrimaryTest( + test_mutable.MutableAssociationScalarPickleTest +): @classmethod def setup_mappers(cls): foo = cls.tables.foo diff --git a/test/sql/test_functions.py b/test/sql/test_functions.py index 784c82150b..43dc51258b 100644 --- a/test/sql/test_functions.py +++ b/test/sql/test_functions.py @@ -58,7 +58,8 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): def setup(self): self._registry = deepcopy(functions._registry) self._case_sensitive_registry = deepcopy( - functions._case_sensitive_registry) + functions._case_sensitive_registry + ) def teardown(self): functions._registry = self._registry @@ -95,8 +96,8 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): dialect=dialect, ) - functions._registry['_default'].pop('fake_func') - functions._case_sensitive_registry['_default'].pop('fake_func') + functions._registry["_default"].pop("fake_func") + functions._case_sensitive_registry["_default"].pop("fake_func") def test_use_labels(self): self.assert_compile( @@ -242,7 +243,7 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): def test_replace_function(self): class replaceable_func(GenericFunction): type = Integer - identifier = 'replaceable_func' + identifier = "replaceable_func" assert isinstance(func.Replaceable_Func().type, Integer) assert isinstance(func.RePlAcEaBlE_fUnC().type, Integer) @@ -251,11 +252,12 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): with expect_warnings( "The GenericFunction 'replaceable_func' is already registered and " "is going to be overriden.", - regex=False + regex=False, ): + class replaceable_func_override(GenericFunction): type = DateTime - identifier = 'replaceable_func' + identifier = "replaceable_func" assert isinstance(func.Replaceable_Func().type, DateTime) assert isinstance(func.RePlAcEaBlE_fUnC().type, DateTime) @@ -1078,7 +1080,7 @@ class RegisterTest(fixtures.TestBase, AssertsCompiledSQL): functions._registry = self._registry def test_GenericFunction_is_registered(self): - assert 'GenericFunction' not in functions._registry['_default'] + assert "GenericFunction" not in functions._registry["_default"] def test_register_function(self): @@ -1092,7 +1094,7 @@ class RegisterTest(fixtures.TestBase, AssertsCompiledSQL): class registered_func_child(registered_func): type = sqltypes.Integer - assert 'registered_func' in functions._registry['_default'] + assert "registered_func" in functions._registry["_default"] assert isinstance(func.registered_func_child().type, Integer) class not_registered_func(GenericFunction): @@ -1104,5 +1106,5 @@ class RegisterTest(fixtures.TestBase, AssertsCompiledSQL): class not_registered_func_child(not_registered_func): type = sqltypes.Integer - assert 'not_registered_func' not in functions._registry['_default'] + assert "not_registered_func" not in functions._registry["_default"] assert isinstance(func.not_registered_func_child().type, Integer)