Skip to content
This repository was archived by the owner on Jun 28, 2023. It is now read-only.

Conversation

@pyup-bot
Copy link
Collaborator

Update sphinx from 1.8.3 to 3.0.1.

Changelog

3.0.1

=====================================

Incompatible changes
--------------------

* 7418: std domain: :rst:dir:`term` role becomes case sensitive

Bugs fixed
----------

* 7428: py domain: a reference to class ``None`` emits a nitpicky warning
* 7445: py domain: a return annotation ``None`` in the function signature is
not converted to a hyperlink when using intersphinx
* 7418: std domain: duplication warning for glossary terms is case insensitive
* 7438: C++, fix merging overloaded functions in parallel builds.
* 7422: autodoc: fails with ValueError when using autodoc_mock_imports
* 7435: autodoc: ``autodoc_typehints='description'`` doesn't suppress typehints
in signature for classes/methods
* 7451: autodoc: fails with AttributeError when an object returns non-string
object as a ``__doc__`` member
* 7423: crashed when giving a non-string object to logger
* 7479: html theme: Do not include xmlns attribute with HTML 5 doctype
* 7426: html theme: Escape some links in HTML templates

3.0.0

* 7364: autosummary: crashed when :confval:`autosummary_generate` is False
* 7370: autosummary: raises UnboundLocalError when unknown module given
* 7367: C++, alternate operator spellings are now supported.
* C, alternate operator spellings are now supported.
* 7368: C++, comma operator in expressions, pack expansion in template
argument lists, and more comprehensive error messages in some cases.
* C, C++, fix crash and wrong duplicate warnings related to anon symbols.
* 6477: Escape first "!" in a cross reference linking no longer possible
* 7219: py domain: The index entry generated by ``py:function`` directive is
different with one from ``index`` directive with "builtin" type
* 7301: capital characters are not allowed for node_id
* 7301: epub: duplicated node_ids are generated
* 6564: html: a width of table was ignored on HTML builder
* 7401: Incorrect argument is passed for :event:`env-get-outdated` handlers
* 7355: autodoc: a signature of cython-function is not recognized well
* 7222: autodoc: ``__wrapped__`` functions are not documented correctly
* 7409: intersphinx: ValueError is raised when an extension sets up
:confval:`intersphinx_mapping` on :event:`config-inited` event
* 7343: Sphinx builds has been slower since 2.4.0 on debug mode

3.0.0b1

* C++, fix cross reference lookup in certain cases involving
function overloads.
* 5078: C++, fix cross reference lookup when a directive contains multiple
declarations.
* C++, suppress warnings for directly dependent typenames in cross references
generated automatically in signatures.
* 5637: autodoc: Incorrect handling of nested class names on show-inheritance
* 7267: autodoc: error message for invalid directive options has wrong location
* 7329: autodoc: info-field-list is wrongly generated from type hints into the
class description even if ``autoclass_content='class'`` set
* 7331: autodoc: a cython-function is not recognized as a function
* 5637: inheritance_diagram: Incorrect handling of nested class names
* 7139: ``code-block:: guess`` does not work
* 7325: html: source_suffix containing dot leads to wrong source link
* 7357: html: Resizing SVG image fails with ValueError
* 7278: html search: Fix use of ``html_file_suffix`` instead of
``html_link_suffix`` in search results
* 7297: html theme: ``bizstyle`` does not support ``sidebarwidth``
* 3842: singlehtml: Path to images broken when master doc is not in source root
* 7179: std domain: Fix whitespaces are suppressed on referring GenericObject
* 7289: console: use bright colors instead of bold
* 1539: C, parse array types.
* 2377: C, parse function pointers even in complex types.
* 7345: sphinx-build: Sphinx crashes if output directory exists as a file
* 7290: sphinx-build: Ignore bdb.BdbQuit when handling exceptions
* 6240: napoleon: Attributes and Methods sections ignore :noindex: option

2.4.4

=====================================

Bugs fixed
----------

* 7197: LaTeX: platex cause error to build image directive with target url
* 7223: Sphinx builds has been slower since 2.4.0

2.4.3

=====================================

Bugs fixed
----------

* 7184: autodoc: ``*args`` and ``**kwarg`` in type comments are not handled
properly
* 7189: autodoc: classmethod coroutines are not detected
* 7183: intersphinx: ``:attr:`` reference to property is broken
* 6244, 6387: html search: Search breaks/hangs when built with dirhtml builder
* 7195: todo: emit doctree-resolved event with non-document node incorrectly

2.4.2

=====================================

Bugs fixed
----------

* 7138: autodoc: ``autodoc.typehints`` crashed when variable has unbound object
as a value
* 7156: autodoc: separator for keyword only arguments is not shown
* 7146: autodoc: IndexError is raised on suppressed type_comment found
* 7161: autodoc: typehints extension does not support parallel build
* 7178: autodoc: TypeError is raised on fetching type annotations
* 7151: crashed when extension assigns a value to ``env.indexentries``
* 7170: text: Remove debug print
* 7137: viewcode: Avoid to crash when non-python code given

2.4.1

=====================================

Bugs fixed
----------

* 7120: html: crashed when on scaling SVG images which have float dimentions
* 7126: autodoc: TypeError: 'getset_descriptor' object is not iterable

2.4.0

=====================================

Deprecated
----------

* The ``decode`` argument of ``sphinx.pycode.ModuleAnalyzer()``
* ``sphinx.directives.other.Index``
* ``sphinx.environment.temp_data['gloss_entries']``
* ``sphinx.environment.BuildEnvironment.indexentries``
* ``sphinx.environment.collectors.indexentries.IndexEntriesCollector``
* ``sphinx.ext.apidoc.INITPY``
* ``sphinx.ext.apidoc.shall_skip()``
* ``sphinx.io.FiletypeNotFoundError``
* ``sphinx.io.get_filetype()``
* ``sphinx.pycode.ModuleAnalyzer.encoding``
* ``sphinx.roles.Index``
* ``sphinx.util.detect_encoding()``
* ``sphinx.util.get_module_source()``
* ``sphinx.util.inspect.Signature``
* ``sphinx.util.inspect.safe_getmembers()``
* ``sphinx.writers.latex.LaTeXTranslator.settings.author``
* ``sphinx.writers.latex.LaTeXTranslator.settings.contentsname``
* ``sphinx.writers.latex.LaTeXTranslator.settings.docclass``
* ``sphinx.writers.latex.LaTeXTranslator.settings.docname``
* ``sphinx.writers.latex.LaTeXTranslator.settings.title``
* ``sphinx.writers.latex.ADDITIONAL_SETTINGS``
* ``sphinx.writers.latex.DEFAULT_SETTINGS``
* ``sphinx.writers.latex.LUALATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.PDFLATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.XELATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.XELATEX_GREEK_DEFAULT_FONTPKG``

Features added
--------------

* 6910: inheritance_diagram: Make the background of diagrams transparent
* 6446: duration: Add ``sphinx.ext.durations`` to inspect which documents slow
down the build
* 6837: LaTeX: Support a nested table
* 7115: LaTeX: Allow to override LATEXOPTS and LATEXMKOPTS via environment
variable
* 6966: graphviz: Support ``:class:`` option
* 6696: html: ``:scale:`` option of image/figure directive not working for SVG
images (imagesize-1.2.0 or above is required)
* 6994: imgconverter: Support illustrator file (.ai) to .png conversion
* autodoc: Support Positional-Only Argument separator (PEP-570 compliant)
* autodoc: Support type annotations for variables
* 2755: autodoc: Add new event: :event:`autodoc-before-process-signature`
* 2755: autodoc: Support type_comment style (ex. `` type: (str) -> str``)
annotation (python3.8+ or `typed_ast <https://github.com/python/typed_ast>`_
is required)
* 7051: autodoc: Support instance variables without defaults (PEP-526)
* 6418: autodoc: Add a new extension ``sphinx.ext.autodoc.typehints``. It shows
typehints as object description if ``autodoc_typehints = "description"`` set.
This is an experimental extension and it will be integrated into autodoc core
in Sphinx-3.0
* SphinxTranslator now calls visitor/departure method for super node class if
visitor/departure method for original node class not found
* 6418: Add new event: :event:`object-description-transform`
* py domain: :rst:dir:`py:data` and :rst:dir:`py:attribute` take new options
named ``:type:`` and ``:value:`` to describe its type and initial value
* 6785: py domain: ``:py:attr:`` is able to refer properties again
* 6772: apidoc: Add ``-q`` option for quiet mode

Bugs fixed
----------

* 6925: html: Remove redundant type="text/javascript" from <script> elements
* 7112: html: SVG image is not layouted as float even if aligned
* 6906, 6907: autodoc: failed to read the source codes encoeded in cp1251
* 6961: latex: warning for babel shown twice
* 7059: latex: LaTeX compilation falls into infinite loop (wrapfig issue)
* 6581: latex: ``:reversed:`` option for toctree does not effect to LaTeX build
* 6559: Wrong node-ids are generated in glossary directive
* 6986: apidoc: misdetects module name for .so file inside module
* 6899: apidoc: private members are not shown even if ``--private`` given
* 6327: apidoc: Support a python package consisted of __init__.so file
* 6999: napoleon: fails to parse tilde in :exc: role
* 7019: gettext: Absolute path used in message catalogs
* 7023: autodoc: nested partial functions are not listed
* 7023: autodoc: partial functions imported from other modules are listed as
module members without :impoprted-members: option
* 6889: autodoc: Trailing comma in ``:members::`` option causes cryptic warning
* 6568: autosummary: ``autosummary_imported_members`` is ignored on generating
a stub file for submodule
* 7055: linkcheck: redirect is treated as an error
* 7088: HTML template: If ``navigation_with_keys`` option is activated,
modifier keys are ignored, which means the feature can interfere with browser
features
* 7090: std domain: Can't assign numfig-numbers for custom container nodes
* 7106: std domain: enumerated nodes are marked as duplicated when extensions
call ``note_explicit_target()``
* 7095: dirhtml: Cross references are broken via intersphinx and ``:doc:`` role
* C++:

- Don't crash when using the ``struct`` role in some cases.
- Don't warn when using the ``var``/``member`` role for function
 parameters.
- Render call and braced-init expressions correctly.
* 7097: Filenames of images generated by
``sphinx.transforms.post_transforms.images.ImageConverter``
or its subclasses (used for latex build) are now sanitized,
to prevent broken paths

2.3.1

=====================================

Bugs fixed
----------

* 6936: sphinx-autogen: raises AttributeError

2.3.0

=====================================

Incompatible changes
--------------------

* 6742: ``end-before`` option of :rst:dir:`literalinclude` directive does not
match the first line of the code block.
* 1331: Change default User-Agent header to ``"Sphinx/X.Y.Z requests/X.Y.Z
python/X.Y.Z"``.  It can be changed via :confval:`user_agent`.
* 6867: text: content of admonitions starts after a blank line

Deprecated
----------

* ``sphinx.builders.gettext.POHEADER``
* ``sphinx.io.SphinxStandaloneReader.app``
* ``sphinx.io.SphinxStandaloneReader.env``
* ``sphinx.util.texescape.tex_escape_map``
* ``sphinx.util.texescape.tex_hl_escape_map_new``
* ``sphinx.writers.latex.LaTeXTranslator.no_contractions``

Features added
--------------

* 6707: C++, support bit-fields.
* 267: html: Eliminate prompt characters of doctest block from copyable text
* 6548: html: Use favicon for OpenSearch if available
* 6729: html theme: agogo theme now supports ``rightsidebar`` option
* 6780: Add PEP-561 Support
* 6762: latex: Allow to load additonal LaTeX packages via ``extrapackages`` key
of :confval:`latex_elements`
* 1331: Add new config variable: :confval:`user_agent`
* 6000: LaTeX: have backslash also be an inline literal word wrap break
character
* 4186: LaTeX: Support upLaTeX as a new :confval:`latex_engine` (experimental)
* 6812: Improve a warning message when extensions are not parallel safe
* 6818: Improve Intersphinx performance for multiple remote inventories.
* 2546: apidoc: .so file support
* 6798: autosummary: emit ``autodoc-skip-member`` event on generating stub file
* 6483: i18n: make explicit titles in toctree translatable
* 6816: linkcheck: Add :confval:`linkcheck_auth` option to provide
authentication information when doing ``linkcheck`` builds
* 6872: linkcheck: Handles HTTP 308 Permanent Redirect
* 6613: html: Wrap section number in span tag
* 6781: gettext: Add :confval:`gettext_last_translator' and
:confval:`gettext_language_team` to customize headers of POT file

Bugs fixed
----------

* 6668: LaTeX: Longtable before header has incorrect distance
(refs: `latex3/latex2e173`_)

.. _latex3/latex2e173: https://github.com/latex3/latex2e/issues/173
* 6618: LaTeX: Avoid section names at the end of a page
* 6738: LaTeX: Do not replace unicode characters by LaTeX macros on unicode
supported LaTeX engines: ¶, §, €, ∞, ±, →, ‣, –, superscript and subscript
digits go through "as is" (as default OpenType font supports them)
* 6704: linkcheck: Be defensive and handle newly defined HTTP error code
* 6806: linkcheck: Failure on parsing content
* 6655: image URLs containing ``data:`` causes gettext builder crashed
* 6584: i18n: Error when compiling message catalogs on Hindi
* 6718: i18n: KeyError is raised if section title and table title are same
* 6743: i18n: :confval:`rst_prolog` breaks the translation
* 6708: mathbase: Some deprecated functions have removed
* 6709: autodoc: mock object does not work as a class decorator
* 5070: epub: Wrong internal href fragment links
* 6712: Allow not to install sphinx.testing as runtime (mainly for ALT Linux)
* 6741: html: search result was broken with empty :confval:`html_file_suffix`
* 6001: LaTeX does not wrap long code lines at backslash character
* 6804: LaTeX: PDF build breaks if admonition of danger type contains
code-block long enough not to fit on one page
* 6809: LaTeX: code-block in a danger type admonition can easily spill over
bottom of page
* 6793: texinfo: Code examples broken following "sidebar"
* 6813: An orphan warning is emitted for included document on Windows.  Thanks
to drillan
* 6850: Fix smartypants module calls re.sub() with wrong options
* 6824: HTML search: If a search term is partially matched in the title and
fully matched in a text paragraph on the same page, the search does not
include this match.
* 6848: config.py shouldn't pop extensions from overrides
* 6867: text: extra spaces are inserted to hyphenated words on folding lines
* 6886: LaTeX: xelatex converts straight double quotes into right curly ones
(shows when :confval:`smartquotes` is ``False``)
* 6890: LaTeX: even with smartquotes off, PDF output transforms straight
quotes and consecutive hyphens into curly quotes and dashes
* 6876: LaTeX: multi-line display of authors on title page has ragged edges
* 6887: Sphinx crashes with docutils-0.16b0
* 6920: sphinx-build: A console message is wrongly highlighted
* 6900: sphinx-build: ``-D`` option does not considers ``0`` and ``1`` as a
boolean value

2.2.2

=====================================

Incompatible changes
--------------------

* 6803: For security reason of python, parallel mode is disabled on macOS and
Python3.8+

Bugs fixed
----------

* 6776: LaTeX: 2019-10-01 LaTeX release breaks :file:`sphinxcyrillic.sty`
* 6815: i18n: French, Hindi, Chinese, Japanese and Korean translation messages
has been broken
* 6803: parallel build causes AttributeError on macOS and Python3.8

2.2.1

=====================================

Bugs fixed
----------

* 6641: LaTeX: Undefined control sequence ``\sphinxmaketitle``
* 6710: LaTeX not well configured for Greek language as main language
* 6759: validation of html static paths and extra paths no longer throws
an error if the paths are in different directories

2.2.0

=====================================

Incompatible changes
--------------------

* apidoc: template files are renamed to ``.rst_t``
* html: Field lists will be styled by grid layout

Deprecated
----------

* ``sphinx.domains.math.MathDomain.add_equation()``
* ``sphinx.domains.math.MathDomain.get_next_equation_number()``
* The ``info`` and ``warn`` arguments of
``sphinx.ext.autosummary.generate.generate_autosummary_docs()``
* ``sphinx.ext.autosummary.generate._simple_info()``
* ``sphinx.ext.autosummary.generate._simple_warn()``
* ``sphinx.ext.todo.merge_info()``
* ``sphinx.ext.todo.process_todo_nodes()``
* ``sphinx.ext.todo.process_todos()``
* ``sphinx.ext.todo.purge_todos()``

Features added
--------------

* 5124: graphviz: ``:graphviz_dot:`` option is renamed to ``:layout:``
* 1464: html: emit a warning if :confval:`html_static_path` and
:confval:`html_extra_path` directories are inside output directory
* 6514: html: Add a label to search input for accessability purposes
* 5602: apidoc: Add ``--templatedir`` option
* 6475: Add ``override`` argument to ``app.add_autodocumenter()``
* 6310: imgmath: let :confval:`imgmath_use_preview` work also with the SVG
format for images rendering inline math
* 6533: LaTeX: refactor visit_enumerated_list() to use ``\sphinxsetlistlabels``
* 6628: quickstart: Use ``https://docs.python.org/3/`` for default setting of
:confval:`intersphinx_mapping`
* 6419: sphinx-build: give reasons why rebuilded

Bugs fixed
----------

* py domain: duplicated warning does not point the location of source code
* 6499: html: Sphinx never updates a copy of :confval:`html_logo` even if
original file has changed
* 1125: html theme: scrollbar is hard to see on classic theme and macOS
* 5502: linkcheck: Consider HTTP 503 response as not an error
* 6439: Make generated download links reproducible
* 6486: UnboundLocalError is raised if broken extension installed
* 6567: autodoc: :confval:`autodoc_inherit_docstrings` does not effect to
``__init__()`` and ``__new__()``
* 6574: autodoc: :confval:`autodoc_member_order` does not refer order of
imports when ``'bysource'`` order
* 6574: autodoc: missing type annotation for variadic and keyword parameters
* 6589: autodoc: Formatting issues with autodoc_typehints='none'
* 6605: autodoc: crashed when target code contains custom method-like objects
* 6498: autosummary: crashed with wrong autosummary_generate setting
* 6507: autosummary: crashes without no autosummary_generate setting
* 6511: LaTeX: autonumbered list can not be customized in LaTeX
since Sphinx 1.8.0 (refs: 6533)
* 6531: Failed to load last environment object when extension added
* 736: Invalid sort in pair index
* 6527: :confval:`last_updated` wrongly assumes timezone as UTC
* 5592: std domain: :rst:dir:`option` directive registers an index entry for
each comma separated option
* 6549: sphinx-build: Escaped characters in error messages
* 6545: doctest comments not getting trimmed since Sphinx 1.8.0
* 6561: glossary: Wrong hyperlinks are generated for non alphanumeric terms
* 6620: i18n: classifiers of definition list are not translated with
docutils-0.15
* 6474: ``DocFieldTransformer`` raises AttributeError when given directive is
not a subclass of ObjectDescription

2.1.2

=====================================

Bugs fixed
----------

* 6497: custom lexers fails highlighting when syntax error
* 6478, 6488: info field lists are incorrectly recognized

2.1.1

=====================================

Incompatible changes
--------------------

* 6447: autodoc: Stop to generate document for undocumented module variables

Bugs fixed
----------

* 6442: LaTeX: admonitions of :rst:dir:`note` type can get separated from
immediately preceding section title by pagebreak
* 6448: autodoc: crashed when autodocumenting classes with ``__slots__ = None``
* 6451: autodoc: generates docs for "optional import"ed modules as variables
* 6452: autosummary: crashed when generating document of properties
* 6455: napoleon: docstrings for properties are not processed
* 6436: napoleon: "Unknown target name" error if variable name ends with
underscore
* 6440: apidoc: missing blank lines between modules

2.1.0

=====================================

Incompatible changes
--------------------

* Ignore filenames without file extension given to ``Builder.build_specific()``
API directly
* 6230: The anchor of term in glossary directive is changed if it is consisted
by non-ASCII characters
* 4550: html: Centering tables by default using CSS
* 6239: latex: xelatex and xeCJK are used for Chinese documents by default
* ``Sphinx.add_lexer()`` now takes a Lexer class instead of instance.  An
instance of lexers are still supported until Sphinx-3.x.

Deprecated
----------

* ``sphinx.builders.latex.LaTeXBuilder.apply_transforms()``
* ``sphinx.builders._epub_base.EpubBuilder.esc()``
* ``sphinx.directives.Acks``
* ``sphinx.directives.Author``
* ``sphinx.directives.Centered``
* ``sphinx.directives.Class``
* ``sphinx.directives.CodeBlock``
* ``sphinx.directives.Figure``
* ``sphinx.directives.HList``
* ``sphinx.directives.Highlight``
* ``sphinx.directives.Include``
* ``sphinx.directives.Index``
* ``sphinx.directives.LiteralInclude``
* ``sphinx.directives.Meta``
* ``sphinx.directives.Only``
* ``sphinx.directives.SeeAlso``
* ``sphinx.directives.TabularColumns``
* ``sphinx.directives.TocTree``
* ``sphinx.directives.VersionChange``
* ``sphinx.domains.python.PyClassmember``
* ``sphinx.domains.python.PyModulelevel``
* ``sphinx.domains.std.StandardDomain._resolve_citation_xref()``
* ``sphinx.domains.std.StandardDomain.note_citations()``
* ``sphinx.domains.std.StandardDomain.note_citation_refs()``
* ``sphinx.domains.std.StandardDomain.note_labels()``
* ``sphinx.environment.NoUri``
* ``sphinx.ext.apidoc.format_directive()``
* ``sphinx.ext.apidoc.format_heading()``
* ``sphinx.ext.apidoc.makename()``
* ``sphinx.ext.autodoc.importer.MockFinder``
* ``sphinx.ext.autodoc.importer.MockLoader``
* ``sphinx.ext.autodoc.importer.mock()``
* ``sphinx.ext.autosummary.autolink_role()``
* ``sphinx.ext.imgmath.DOC_BODY``
* ``sphinx.ext.imgmath.DOC_BODY_PREVIEW``
* ``sphinx.ext.imgmath.DOC_HEAD``
* ``sphinx.transforms.CitationReferences``
* ``sphinx.transforms.SmartQuotesSkipper``
* ``sphinx.util.docfields.DocFieldTransformer.preprocess_fieldtypes()``
* ``sphinx.util.node.find_source_node()``
* ``sphinx.util.i18n.find_catalog()``
* ``sphinx.util.i18n.find_catalog_files()``
* ``sphinx.util.i18n.find_catalog_source_files()``

For more details, see :ref:`deprecation APIs list <dev-deprecated-apis>`.

Features added
--------------

* Add a helper class ``sphinx.transforms.post_transforms.SphinxPostTransform``
* Add helper methods

- ``PythonDomain.note_module()``
- ``PythonDomain.note_object()``
- ``SphinxDirective.set_source_info()``

* 6180: Support ``--keep-going`` with BuildDoc setup command
* ``math`` directive now supports ``:class:`` option
* todo: ``todo`` directive now supports ``:name:`` option
* Enable override via environment of ``SPHINXOPTS`` and ``SPHINXBUILD`` Makefile
variables (refs: 6232, 6303)
* 6287: autodoc: Unable to document bound instance methods exported as module
functions
* 6289: autodoc: :confval:`autodoc_default_options` now supports
``imported-members`` option
* 4777: autodoc: Support coroutine
* 744: autodoc: Support abstractmethod
* 6325: autodoc: Support attributes in __slots__.  For dict-style __slots__,
autodoc considers values as a docstring of the attribute
* 6361: autodoc: Add :confval:`autodoc_typehints` to suppress typehints from
signature
* 1063: autodoc: ``automodule`` directive now handles undocumented module level
variables
* 6212 autosummary: Add :confval:`autosummary_imported_members` to display
imported members on autosummary
* 6271: ``make clean`` is catastrophically broken if building into '.'
* 6363: Support ``%O%`` environment variable in make.bat
* 4777: py domain: Add ``:async:`` option to :rst:dir:`py:function` directive
* py domain: Add new options to :rst:dir:`py:method` directive

- ``:abstractmethod:``
- ``:async:``
- ``:classmethod:``
- ``:property:``
- ``:staticmethod:``

* rst domain: Add :rst:dir:`directive:option` directive to describe the option
for directive
* 6306: html: Add a label to search form for accessability purposes
* 4390: html: Consistent and semantic CSS for signatures
* 6358: The ``rawsource`` property of ``production`` nodes now contains the
full production rule
* 6373: autosectionlabel: Allow suppression of warnings
* coverage: Support a new ``coverage_ignore_pyobjects`` option
* 6239: latex: Support to build Chinese documents

Bugs fixed
----------

* 6230: Inappropriate node_id has been generated by glossary directive if term
is consisted by non-ASCII characters
* 6213: ifconfig: contents after headings are not shown
* commented term in glossary directive is wrongly recognized
* 6299: rst domain: rst:directive directive generates waste space
* 6379: py domain: Module index (py-modindex.html) has duplicate titles
* 6331: man: invalid output when doctest follows rubric
* 6351: "Hyperlink target is not referenced" message is shown even if
referenced
* 6165: autodoc: ``tab_width`` setting of docutils has been ignored
* 6347: autodoc: crashes with a plain Tuple on Python 3.6 and 3.5
* 6311: autosummary: autosummary table gets confused by complex type hints
* 6350: autosummary: confused by an argument having some kind of default value
* Generated Makefiles lack a final EOL (refs: 6232)
* 6375: extlinks: Cannot escape angle brackets in link caption
* 6378: linkcheck: Send commonly used User-Agent
* 6387: html search: failed to search document with haiku and scrolls themes
* 6408: html search: Fix the ranking of search results
* 6406: Wrong year is returned for ``SOURCE_DATE_EPOCH``
* 6402: image directive crashes by unknown image format
* 6286: C++, allow 8 and 9 in hexadecimal integer literals.
* 6305: Fix the string in quickstart for 'path' argument of parser
* LaTeX: Figures in admonitions produced errors (refs: 6364)

2.0.1

=====================================

Bugs fixed
----------

* LaTeX: some system labels are not translated
* RemovedInSphinx30Warning is marked as pending
* deprecation warnings are not emitted

- sphinx.application.CONFIG_FILENAME
- sphinx.builders.htmlhelp
- :confval:`viewcode_import`

* 6208: C++, properly parse full xrefs that happen to have a short xref as
prefix
* 6220, 6225: napoleon: AttributeError is raised for raised section having
references
* 6245: circular import error on importing SerializingHTMLBuilder
* 6243: LaTeX: 'releasename' setting for latex_elements is ignored
* 6244: html: Search function is broken with 3rd party themes
* 6263: html: HTML5Translator crashed with invalid field node
* 6262: html theme: The style of field lists has changed in bizstyle theme

2.0.0

* 6196: py domain: unexpected prefix is generated

Testing
--------

2.0.0b2

* Add a helper function: ``sphinx.testing.restructuredtext.parse()``

2.0.0b1

* Stop to use ``SPHINX_TEST_TEMPDIR`` envvar

1.8.5

=====================================

Bugs fixed
----------

* LaTeX: Remove extraneous space after author names on PDF title page (refs:
6004)
* 6026: LaTeX: A cross reference to definition list does not work
* 6046: LaTeX: ``TypeError`` is raised when invalid latex_elements given
* 6067: LaTeX: images having a target are concatenated to next line
* 6067: LaTeX: images having a target are not aligned even if specified
* 6149: LaTeX: ``:index:`` role in titles causes ``Use of \icentercr doesn't
match its definition`` error on latexpdf build
* 6019: imgconverter: Including multipage PDF fails
* 6047: autodoc: ``autofunction`` emits a warning for method objects
* 6028: graphviz: Ensure the graphviz filenames are reproducible
* 6068: doctest: ``skipif`` option may remove the code block from documentation
* 6136: ``:name:`` option for ``math`` directive causes a crash
* 6139: intersphinx: ValueError on failure reporting
* 6135: changes: Fix UnboundLocalError when any module found
* 3859: manpage: code-block captions are not displayed correctly

1.8.4

=====================================

Bugs fixed
----------

* 3707: latex: no bold checkmark (✔) available.
* 5605: with the documentation language set to Chinese, English words could not
be searched.
* 5889: LaTeX: user ``numfig_format`` is stripped of spaces and may cause
build failure
* C++, fix hyperlinks for declarations involving east cv-qualifiers.
* 5755: C++, fix duplicate declaration error on function templates with
constraints in the return type.
* C++, parse unary right fold expressions and binary fold expressions.
* pycode could not handle egg files on windows
* 5928: KeyError: 'DOCUTILSCONFIG' when running build
* 5936: LaTeX: PDF build broken by inclusion of image taller than page height
in an admonition
* 5231: "make html" does not read and build "po" files in "locale" dir
* 5954: ``:scale:`` image option may break PDF build if image in an admonition
* 5966: mathjax has not been loaded on incremental build
* 5960: LaTeX: modified PDF layout since September 2018 TeXLive update of
:file:`parskip.sty`
* 5948: LaTeX: duplicated labels are generated for sections
* 5958: versionadded directive causes crash with Python 3.5.0
* 5995: autodoc: autodoc_mock_imports conflict with metaclass on Python 3.7
* 5871: texinfo: a section title ``.`` is not allowed
Links

Update cython from 0.29.2 to 0.29.16.

Changelog

0.29.16

====================

Bugs fixed
----------

* Temporary internal variables in nested prange loops could leak into other
threads.  Patch by Frank Schlimbach.  (Github issue 3348)

* Default arguments on fused functions could crash.
Patch by David Woods.  (Github issue 3370)

* C-tuples declared in ``.pxd`` files could generate incomplete C code.
Patch by Kirk Meyer.  (Github issue 1427)

* Fused functions were not always detected and optimised as Cython
implemented functions.
Patch by David Woods.  (Github issue 3384)

* Valid Python object concatenation of (iterable) strings to non-strings
could fail with an exception.
Patch by David Woods.  (Github issue 3433)

* Using C functions as temporary values lead to invalid C code.
Original patch by David Woods.  (Github issue 3418)

* Fix an unhandled C++ exception in comparisons.
Patch by David Woods.  (Github issue 3361)

* Fix deprecated import of "imp" module.
Patch by Matti Picus.  (Github issue 3350)

* Fix compatibility with Pythran 0.9.6 and later.
Patch by Serge Guelton.  (Github issue 3308)

* The ``_Py_PyAtExit()`` function in ``cpython.pylifecycle`` was misdeclared.
Patch by Zackery Spytz.  (Github issue 3382)

* Several missing declarations in ``cpython.*`` were added.
Patches by Zackery Spytz.  (Github issue 3452, 3421, 3411, 3402)

* A declaration for ``libc.math.fpclassify()`` was added.
Patch by Zackery Spytz.  (Github issue 2514)

* Avoid "undeclared" warning about automatically generated pickle methods.
Patch by David Woods.  (Github issue 3353)

* Avoid C compiler warning about unreachable code in ``prange()``.

* Some C compiler warnings in PyPy were resolved.
Patch by Matti Picus.  (Github issue 3437)

0.29.15

====================

Bugs fixed
----------

* Crash when returning a temporary Python object from an async-def function.
(Github issue 3337)

* Crash when using ``**kwargs`` in generators.
Patch by David Woods.  (Github issue 3265)

* Double reference free in ``__class__`` cell handling for ``super()`` calls.
(Github issue 3246)

* Compile error when using ``*args`` as Python class bases.
(Github issue 3338)

* Import failure in IPython 7.11.
(Github issue 3297)

* Fixed C name collision in the auto-pickle code.
Patch by ThePrez.  (Github issue 3238)

* Deprecated import failed in Python 3.9.
(Github issue 3266)

0.29.14

====================

Bugs fixed
----------

* The generated code failed to initialise the ``tp_print`` slot in CPython 3.8.
Patches by Pablo Galindo and Orivej Desh.  (Github issues 3171, 3201)

* ``?`` for ``bool`` was missing from the supported NumPy dtypes.
Patch by Max Klein.  (Github issue 2675)

* ``await`` was not allowed inside of f-strings.
Patch by Dmitro Getz.  (Github issue 2877)

* Coverage analysis failed for projects where the code resides in separate
source sub-directories.
Patch by Antonio Valentino.  (Github issue 1985)

* An incorrect compiler warning was fixed in automatic C++ string conversions.
Patch by Gerion Entrup.  (Github issue 3108)

* Error reports in the Jupyter notebook showed unhelpful stack traces.
Patch by Matthew Edwards (Github issue 3196).

* ``Python.h`` is now also included explicitly from ``public`` header files.
(Github issue 3133).

* Distutils builds with ``--parallel`` did not work when using Cython's
deprecated ``build_ext`` command.
Patch by Alphadelta14 (Github issue 3187).

Other changes
-------------

* The ``PyMemoryView_*()`` C-API is available in ``cpython.memoryview``.
Patch by Nathan Manville.  (Github issue 2541)

0.29.13

====================

Bugs fixed
----------

* A reference leak for ``None`` was fixed when converting a memoryview
to a Python object.  (Github issue 3023)

* The declaration of ``PyGILState_STATE`` in ``cpython.pystate`` was unusable.
Patch by Kirill Smelkov.  (Github issue 2997)

Other changes
-------------

* The declarations in ``posix.mman`` were extended.
Patches by Kirill Smelkov.  (Github issues 2893, 2894, 3012)

0.29.12

====================

Bugs fixed
----------

* Fix compile error in CPython 3.8b2 regarding the ``PyCode_New()`` signature.
(Github issue 3031)

* Fix a C compiler warning about a missing ``int`` downcast.
(Github issue 3028)

* Fix reported error positions of undefined builtins and constants.
Patch by Orivej Desh.  (Github issue 3030)

* A 32 bit issue in the Pythran support was resolved.
Patch by Serge Guelton.  (Github issue 3032)

0.29.11

====================

Bugs fixed
----------

* Fix compile error in CPython 3.8b2 regarding the ``PyCode_New()`` signature.
Patch by Nick Coghlan. (Github issue 3009)

* Invalid C code generated for lambda functions in cdef methods.
Patch by Josh Tobin.  (Github issue 2967)

* Support slice handling in newer Pythran versions.
Patch by Serge Guelton.  (Github issue 2989)

* A reference leak in power-of-2 calculation was fixed.
Patch by Sebastian Berg.  (Github issue 3022)

* The search order for include files was changed. Previously it was
``include_directories``, ``Cython/Includes``, ``sys.path``. Now it is
``include_directories``, ``sys.path``, ``Cython/Includes``. This was done to
allow third-party ``*.pxd`` files to override the ones in Cython.
Original patch by Matti Picus.  (Github issue 2905)

* Setting ``language_level=2`` in a file did not work if ``language_level=3``
was enabled globally before.
Patch by Jeroen Demeyer.  (Github issue 2791)

0.29.10

====================

Bugs fixed
----------

* Fix compile errors in CPython 3.8b1 due to the new "tp_vectorcall" slots.
(Github issue 2976)

0.29.9

===================

Bugs fixed
----------

* Fix a crash regression in 0.29.8 when creating code objects fails.

* Remove an incorrect cast when using true-division in C++ operations.
(Github issue 1950)

0.29.8

===================

Bugs fixed
----------

* C compile errors with CPython 3.8 were resolved.
Patch by Marcel Plch.  (Github issue 2938)

* Python tuple constants that compare equal but have different item
types could incorrectly be merged into a single constant.
(Github issue 2919)

* Non-ASCII characters in unprefixed strings could crash the compiler when
used with language level ``3str``.

* Starred expressions in %-formatting tuples could fail to compile for
unicode strings.  (Github issue 2939)

* Passing Python class references through ``cython.inline()`` was broken.
(Github issue 2936)

0.29.7

===================

Bugs fixed
----------

* Crash when the shared Cython config module gets unloaded and another Cython
module reports an exceptions.  Cython now makes sure it keeps an owned reference
to the module.
(Github issue 2885)

* Resolved a C89 compilation problem when enabling the fast-gil sharing feature.

* Coverage reporting did not include the signature line of ``cdef`` functions.
(Github issue 1461)

* Casting a GIL-requiring function into a nogil function now issues a warning.
(Github issue 2879)

* Generators and coroutines were missing their return type annotation.
(Github issue 2884)

0.29.6

===================

Bugs fixed
----------

* Fix a crash when accessing the ``__kwdefaults__`` special attribute of
fused functions.  (Github issue 1470)

* Fix the parsing of buffer format strings that contain numeric sizes, which
could lead to incorrect input rejections.  (Github issue 2845)

* Avoid a C pragma in old gcc versions that was only added in GCC 4.6.
Patch by Michael Anselmi.  (Github issue 2838)

* Auto-encoding of Unicode strings to UTF-8 C/C++ strings failed in Python 3,
even though the default encoding there is UTF-8.
(Github issue 2819)

0.29.5

===================

Bugs fixed
----------

* Crash when defining a Python subclass of an extension type and repeatedly calling
a cpdef method on it.  (Github issue 2823)

* Compiler crash when ``prange()`` loops appear inside of with-statements.
(Github issue 2780)

* Some C compiler warnings were resolved.
Patches by Christoph Gohlke.  (Github issues 2815, 2816, 2817, 2822)

* Python conversion of C++ enums failed in 0.29.
Patch by Orivej Desh.  (Github issue 2767)

0.29.4

===================

Bugs fixed
----------

* Division of numeric constants by a runtime value of 0 could fail to raise a
``ZeroDivisionError``.  (Github issue 2820)

0.29.3

===================

Bugs fixed
----------

* Some C code for memoryviews was generated in a non-deterministic order.
Patch by Martijn van Steenbergen.  (Github issue 2779)

* C89 compatibility was accidentally lost since 0.28.
Patches by gastineau and true-pasky.  (Github issues 2778, 2801)

* A C compiler cast warning was resolved.
Patch by Michael Buesch.  (Github issue 2774)

* An compilation failure with complex numbers under MSVC++ was resolved.
(Github issue 2797)

* Coverage reporting could fail when modules were moved around after the build.
Patch by Wenjun Si.  (Github issue 2776)
Links

Update pydocstyle from 3.0.0 to 5.0.2.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update pylint from 2.2.2 to 2.4.4.

Changelog

2.4.4

===========================
Release date: 2019-11-13

* Exempt all the names found in type annotations from ``unused-import``

The previous code was assuming that only ``typing`` names need to be
exempted, but we need to do that for the rest of the type comment
names as well.

Close 3112

* Relax type import detection for names that do not come from the ``typing`` module

Close 3191

2.4.3

===========================

Release date: 2019-10-18

* Fix an issue with ``unnecessary-comprehension`` in comprehensions with additional repacking of elements.

Close 3148

* ``import-outside-toplevel`` is emitted for ``ImportFrom`` nodes as well.

Close 3175

* Do not emit ``no-method-argument`` for functions using positional only args.

Close 3161

* ``consider-using-sys-exit`` is no longer emitted when `exit` is imported in the local scope.

Close 3147

* `invalid-overridden-method` takes `abc.abstractproperty` in account

Close 3150

* Fixed ``missing-yield-type-doc`` getting incorrectly raised when
a generator does not document a yield type but has a type annotation.

Closes 3185

* ``typing.overload`` functions are exempted from ``too-many-function-args``

Close 3170

2.4.2

===========================

Release date: 2019-09-30


* ``ignored-modules`` can skip submodules. Close 3135

* ``self-assigning-variable`` skips class level assignments.

Close 2930

* ``consider-using-sys-exit`` is exempted when `exit()` is imported from `sys`

Close 3145

* Exempt annotated assignments without variable from ``class-variable-slots-conflict``

Close 3141

* Fix ``utils.is_error`` to account for functions returning early.

This fixes a false negative with ``unused-variable`` which was no longer triggered
when a function raised an exception as the last instruction, but the body of the function
still had unused variables.

Close 3028

2.4.1

===========================

Release date: 2019-09-25


* Exempt type checking definitions defined in both clauses of a type checking guard

Close 3127


* Exempt type checking definitions inside the type check guard

In a7f236528bb3758886b97285a56f3f9ce5b13a99 we added basic support
for emitting `used-before-assignment` if a variable was only defined
inside a type checking guard (using `TYPE_CHECKING` variable from `typing`)
Unfortunately that missed the case of using those type checking imports
inside the guard itself, which triggered spurious used-before-assignment errors.

Close 3119

* Require astroid >= 2.3 to avoid any compatibility issues.

2.4.0

===========================

Release date: 2019-09-24

* New check: ``import-outside-toplevel``

This check warns when modules are imported from places other than a
module toplevel, e.g. inside a function or a class.

* Handle inference ambiguity for ``invalid-format-index``

Close 2752

* Removed Python 2 specific checks such as ``relative-import``,
``invalid-encoded-data``, ``missing-super-argument``.

* Support forward references for ``function-redefined`` check.

Close 2540

* Handle redefinitions in case of type checking imports.

Close 2834

* Added a new check, ``consider-using-sys-exit``

This check is emitted when we detect that a quit() or exit() is invoked
instead of sys.exit(), which is the preferred way of exiting in program.

Close 2925

* ``useless-suppression`` check now ignores ``cyclic-import`` suppressions,
which could lead to false postiives due to incomplete context at the time
of the check.

Close 3064

* Added new checks, ``no-else-break`` and ``no-else-continue``

These checks highlight unnecessary ``else`` and ``elif`` blocks after
``break`` and ``continue`` statements.

Close 2327

* Don't emit ``protected-access`` when a single underscore prefixed attribute
is used inside a special method

Close 1802

* Fix the "statement" values in the PyLinter's stats reports by module.

* Added a new check, ``invalid-overridden-method``

This check is emitted when we detect that a method is overridden
as a property or a property is overridden as a method. This can indicate
a bug in the application code that will trigger a runtime error.

Close 2670

* Added a new check, ``arguments-out-of-order``

This check warns if you have arguments with names that match those in
a function's signature but you are passing them in to the function
in a different order.

Close 2975

* Added a new check, ``redeclared-assigned-name``

This check is emitted when ``pylint`` detects that a name
was assigned one or multiple times in the same assignment,
which indicate a potential bug.
Close 2898

* Ignore lambda calls with variadic arguments without a context.

Inferring variadic positional arguments and keyword arguments
will result into empty Tuples and Dicts, which can lead in
some cases to false positives with regard to no-value-for-parameter.
In order to avoid this, until we'll have support for call context
propagation, we're ignoring such cases if detected.
We already did that for function calls, but the previous fix
was not taking in consideration ``lambdas``

Close 2918

* Added a new check, ``self-assigning-variable``

This check is emitted when we detect that a variable is assigned
to itself, which might indicate a potential bug in the code application.
Close 2930

* Added a new check, ``property-with-parameters``.

This check is emitted when we detect that a defined property also
has parameters, which are useless.
Close 3006

* Excluded protocol classes from a couple of checks. Close 3002.

* Add a check `unnecessary-comprehension` that detects unnecessary comprehensions.

This check is emitted when ``pylint`` finds list-, set- or dict-comprehensions,
that are unnecessary and can be rewritten with the list-, set- or dict-constructors.

Close 2905

* Excluded PEP 526 instance and class variables from ``no-member``. Close 2945

* Excluded `attrs` from `too-few-public-methods` check. Close 2988.

* ``unused-import`` emitted for the right import names in function scopes.

Close 2928

* Dropped support for Python 3.4.

* ``assignment-from-no-return`` not triggered for async methods.

Close 2902

* Don't emit ``attribute-defined-outside-init`` for variables defined in setters.

Close 409

* Syntax errors report the column number.

Close 2914

* Support fully qualified typing imports for type annotations.

Close 2915

* Exclude ``__dict__`` from ``attribute-defined-outside-init``

* Fix pointer on spelling check when the error are more than one time in the same line.

Close 2895

* Fix crash happening when parent of called object cannot be determined

* Allow of in `GoogleDocstring.re_multiple_type`

* Added `subprocess-run-check` to handle subrocess.run without explicitly set `check` keyword.

Close 2848

* When we can't infer bare except handlers, skip ``try-except-raise``

Close 2853

* Handle more `unnecessary-lambda` cases when dealing with additional kwargs in wrapped calls

Close 2845

* Better postponed evaluation of annotations handling

Close 2847

* Support postponed evaluation of annotations for variable annotations.

Close 2838

* ``epylint.py_run`` defaults to ``python`` in case the current executable is not a Python one.

Close 2837

* Ignore raw docstrings when running Similarities checker with `ignore-docstrings=yes` option

* Fix crash when calling ``inherit_from_std_ex`` on a class which is its own ancestor

Close 2680

* Added a new check that warns the user if a function call is used inside a test but parentheses are missing.

Close 2658

* ``len-as-condition`` now only fires when a ``len(x)`` call is made without an explicit comparison

The message and description accompanying this checker has been changed
reflect this new behavior, by explicitly asking to either rely on the
fact that empty sequence are false or to compare the length with a scalar.

Close 2684

* Add ``preferred-module`` checker that notify if an import has a replacement module that should be used.

This check is emitted when ``pylint`` finds an imported module that has a
preferred replacement listed in ``preferred-modules``.

* ``assigning-non-slot`` not emitted for classes with unknown base classes.

Close 2807

* ``old-division`` is not emitted for non-Const nodes.

Close 2808

* Added method arguments to the dot writer for pyreverse.

Close 2139

* Support for linting file from stdin.

IDEs may benefit from the support for linting from an in-memory file.

Close 1187

* Added a new check `class-variable-slots-conflict`

This check is emitted when ``pylint`` finds a class variable that conflicts with a slot
name, which would raise a ``ValueError`` at runtime.

* Added new check: dict-iter-missing-items (E1141)

Close 2761

* Fix issue with pylint name in output of python -m pylint --version

Close 2764

* Relicense logo material under the CC BY-SA 4.0 license.

* Skip `if` expressions from f-strings for the `check_elif` checker

Close 2816

* C0412 (ungrouped-import) is now compatible with isort.

Close 2806

* Added new extension to detect too much code in a try clause

Close 2877

* ``signature-mutators`` option was added

With this option, users can choose to ignore `too-many-function-args`, `unexpected-keyword-arg`,
and `no-value-for-parameter` for functions decorated with decorators that change
the signature of a decorated function.

Close 259

* Fixed a pragma comment on its own physical line being ignored when part
of a logical line with the previous physical line.

Close 199

* Fixed false `undefined-loop-variable` for a function defined in the loop,
that uses the variable defined in that loop.

Close 202

* Fixed `unused-argument` and `function-redefined` getting raised for
functions decorated with `typing.overload`.

Close 1581

* Fixed a false positive with ``consider-using-dict-comprehension`` for constructions that can't be converted to a comprehension

Close 2963

* Added ``__post_init__`` to ``defining-attr-methods`` in order to avoid ``attribute-defined-outside-init`` in dataclasses.

Close 2581

* Changed description of W0199 to use the term 2-item-tuple instead of 2-uple.

* Allow a `.` as a prefix for Sphinx name resolution.

* Checkers must now keep a 1 to 1 relationship between "msgid" (ie: C1234) and "symbol" (ie : human-readable-symbol)
* In checkers, an old_names can now be used for multiple new messages and pylint is now a little faster

Caused by 1164. It means if you do a partial old_names for a message definition an exception will tell you that you
must rename the associated identification.

* Allow the choice of f-strings as a valid way of formatting logging strings.

Closes 2395

* Added ``--list-msgs-enabled`` command to list all enabled and disabled messages given the current RC file and command line arguments.

2.3.0

===========================

Release date: 2019-02-27

* Protect against `NonDeducibleTypeHierarchy` when calling semi-private `is_subtype`

`astroid.helpers.is_subtype` raises `NonDeducibleTypeHierarchy` when it cannot infer
the base classes of the given types, but that makes sense in its context given that
the method is mostly used to inform the inference process about the hierarchy of classes.
Doesn't make that much sense for ``pylint`` itself, which is why we're handling the
exception here, rather than in ``astroid``

Close PyCQA/astroid644

* Added a new command line option ``list-groups`` for listing all the check groups ``pylint`` knows about.

* Allow ``BaseException`` for emitting ``broad-except``, just like ``Exception``.

Close 2741

* Fixed a crash that occurred for ``bad-str-strip-call`` when ``strip()`` received ``None``

Close 2743

* Don't emit ``*-not-iterating`` checks for builtins consumed by ``itertools``

Close 2731

* Fix a crash caused by iterating over ``Uninferable`` in a string formatting check.

Close 2727

* Fixed false positives for ``no-self-argument`` and ``unsubscriptable-object`` when using ``__class_getitem__`` (new in Python 3.7)

Close 2416

* Support ``Ellipsis`` as a synonym for ``pass`` statements.

Close 2718

* ``fixme`` gets triggered only on comments.

Close 2321

* Fixed a false positive for ``unused-variable`` and ``nonlocal`` assignments

Close 2671

* Added ``load_configuration()`` hook for plugins

New optional hook for plugins is added: ``load_configuration()``.
This hook is executed after configuration is loaded to prevent
overwriting plugin specific configuration via user-based
configuration.

Close 2635

* Fix missing-raises-doc false positive (W9006)

Close 1502

* Exempt starred unpacking from ``*-not-iterating`` Python 3 checks

Close 2651

* Make ``compare-to-zero`` less zealous by checking against equality and identity

Close 2645

* Add ``no-else-raise`` warning (R1720)

Close 2558

* Exempt ``yield from`` from ``*-not-iterating`` Python 3 checks.

Close 2643

* Fix incorrect generation of ``no-else-return`` warnings (R1705)

Fixed issue where ``if`` statements with nested ``if`` statements
were incorrectly being flagged as ``no-else-return`` in some cases and
not being flagged as ``no-else-return`` in other cases.  Added tests
for verification and updated pylint source files to eliminate newly
exposed warnings.

* Fix false positive with `not-async-context-manager` caused by not understanding `contextlib.asynccontextmanager`

Close 2440

* Refactor ``bad-reversed-sequence`` to account for more objects that can define ``__reversed__``

One such object would be an enum class, for which ``__reversed__`` yields each individual enum.
As such, the check for ``bad-reversed-sequence`` needs to not differentiate between classes
and instances when it comes for checking of ``__reversed__`` presence.

Close 2598

* Added ``wrong-exception-operation``

Used when an operation is done against an exception, but the operation
is not valid for the exception in question. Usually emitted when having
binary operations between exceptions in except handlers.

Close 2494

* ``no-member`` is emitted for enums when they lack a member

Previously we weren't doing this because we detected a
``__getattr__`` implementation on the ``Enum`` class
(and this check is skipped for classes with ``__getattr__``),
but that is fine for Enums, given that they are inferred in a customised
way in astroid.

Close 2565

* Generalize ``chained-comparison``

Previous version incorrectly detects `a < b < c and b < d` and fails to
detect `a < b < c and c < d`.

* Avoid popping __main__ when using multiple jobs

Close 2689

* Add a new option 'check-str-concat-over-line-jumps' to check 'implicit-str-concat-in-sequence'

* Fixes for the new style logging format linter.

The number of arguments was not handled properly, leading to an always
successful check.

* Fix false positive ``not-callable`` for uninferable properties.

* Fix false positive ``useless-else-on-loop`` if the break is deep in the else
of an inner loop.

* Minor improvements to the help text for a few options.
Links

Update coverage from 4.5.2 to 5.1.

Changelog

5.1

--------------------------

- The JSON report now includes counts of covered and missing branches. Thanks,
Salvatore Zagaria.

- On Python 3.8, try-finally-return reported wrong branch coverage with
decorated async functions (`issue 946`_).  This is now fixed. Thanks, Kjell
Braden.

- The :meth:`~coverage.Coverage.get_option` and
:meth:`~coverage.Coverage.set_option` methods can now manipulate the
``[paths]`` configuration setting.  Thanks to Bernát Gábor for the fix for
`issue 967`_.

.. _issue 946: https://github.com/nedbat/coveragepy/issues/946
.. _issue 967: https://github.com/nedbat/coveragepy/issues/967


.. _changes_504:

5.0.4

----------------------------

- If using the ``[run] relative_files`` setting, the XML report will use
relative files in the ``<source>`` elements indicating the location of source
code.  Closes `issue 948`_.

- The textual summary report could report missing lines with negative line
numbers on PyPy3 7.1 (`issue 943`_).  This is now fixed.

- Windows wheels for Python 3.8 were incorrectly built, but are now fixed.
(`issue 949`_)

- Updated Python 3.9 support to 3.9a4.

- HTML reports couldn't be sorted if localStorage wasn't available. This is now
fixed: sorting works even though the sorting setting isn't retained. (`issue
944`_ and `pull request 945`_). Thanks, Abdeali Kothari.

.. _issue 943: https://github.com/nedbat/coveragepy/issues/943
.. _issue 944: https://github.com/nedbat/coveragepy/issues/944
.. _pull request 945: https://github.com/nedbat/coveragepy/pull/945
.. _issue 948: https://github.com/nedbat/coveragepy/issues/948
.. _issue 949: https://github.com/nedbat/coveragepy/issues/949


.. _changes_503:

5.0.3

----------------------------

- A performance improvement in 5.0.2 didn't work for test suites that changed
directory before combining data, causing "Couldn't use data file: no such
table: meta" errors (`issue 916`_).  This is now fixed.

- Coverage could fail to run your program with some form of "ModuleNotFound" or
"ImportError" trying to import from the current directory. This would happen
if coverage had been packaged into a zip file (for example, on Windows), or
was found indirectly (for example, by pyenv-virtualenv).  A number of
different scenarios were described in `issue 862`_ which is now fixed.  Huge
thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and
George-Cristian Bîrzan for protracted debugging sessions.

- Added the "premain" debug option.

- Added SQLite compile-time options to the "debug sys" output.

.. _issue 862: https://github.com/nedbat/coveragepy/issues/862
.. _issue 916: https://github.com/nedbat/coveragepy/issues/916


.. _changes_502:

5.0.2

----------------------------

- Programs that used multiprocessing and changed directories would fail under
coverage.  This is now fixed (`issue 890`_).  A side effect is that debug
information about the config files read now shows absolute paths to the
files.

- When running programs as modules (``coverage run -m``) with ``--source``,
some measured modules were imported before coverage starts.  This resulted in
unwanted warnings ("Already imported a file that will be measured") and a
reduction in coverage totals (`issue 909`_).  This is now fixed.

- If no data was collected, an exception about "No data to report" could happen
instead of a 0% report being created (`issue 884`_).  This is now fixed.

- The handling of source files with non-encodable file names has changed.
Previously, if a file name could not be encoded as UTF-8, an error occurred,
as described in `issue 891`_.  Now, those files will not be measured, since
their data would not be recordable.

- A new warning ("dynamic-conflict") is issued if two mechanisms are trying to
change the dynamic context.  Closes `issue 901`_.

- ``coverage run --debug=sys`` would fail with an AttributeError. This is now
fixed (`issue 907`_).

.. _issue 884: https://github.com/nedbat/coveragepy/issues/884
.. _issue 890: https://github.com/nedbat/coveragepy/issues/890
.. _issue 891: https://github.com/nedbat/coveragepy/issues/891
.. _issue 901: https://github.com/nedbat/coveragepy/issues/901
.. _issue 907: https://github.com/nedbat/coveragepy/issues/907
.. _issue 909: https://github.com/nedbat/coveragepy/issues/909


.. _changes_501:

5.0.1

----------------------------

- If a 4.x data file is the cause of a "file is not a database" error, then use
a more specific error message, "Looks like a coverage 4.x data file, are you
mixing versions of coverage?"  Helps diagnose the problems described in
`issue 886`_.

- Measurement contexts and relative file names didn't work together, as
reported in `issue 899`_ and `issue 900`_.  This is now fixed, thanks to
David Szotten.

- When using ``coverage run --concurrency=multiprocessing``, all data files
should be named with parallel-ready suffixes.  5.0 mistakenly named the main
process' file with no suffix when using ``--append``.  This is now fixed,
closing `issue 880`_.

- Fixed a problem on Windows when the current directory is changed to a
different drive (`issue 895`_).  Thanks, Olivier Grisel.

- Updated Python 3.9 support to 3.9a2.

.. _issue 880: https://github.com/nedbat/coveragepy/issues/880
.. _issue 886: https://github.com/nedbat/coveragepy/issues/886
.. _issue 895: https://github.com/nedbat/coveragepy/issues/895
.. _issue 899: https://github.com/nedbat/coveragepy/issues/899
.. _issue 900: https://github.com/nedbat/coveragepy/issues/900


.. _changes_50:

5.0

--------------------------

Nothing new beyond 5.0b2.


.. _changes_50b2:

5.0b2

----------------------------

- An experimental ``[run] relative_files`` setting tells coverage to store
relative file names in the data file. This makes it easier to run tests in
one (or many) environments, and then report in another.  It has not had much
real-world testing, so it may change in incompatible ways in the future.

- When constructing a :class:`coverage.Coverage` object, `data_file` can be
specified as None to prevent writing any data file at all.  In previous
versions, an explicit `data_file=None` argument would use the default of
".coverage". Fixes `issue 871`_.

- Python files run with ``-m`` now have ``__spec__`` defined properly.  This
fixes `issue 745`_ (about not being able to run unittest tests that spawn
subprocesses), and `issue 838`_, which described the problem directly.

- The ``[paths]`` configuration section is now ordered. If you specify more
than one list of patterns, the first one that matches will be used.  Fixes
`issue 649`_.

- The :func:`.coverage.numbits.register_sqlite_functions` function now also
registers `numbits_to_nums` for use in SQLite queries.  Thanks, Simon
Willison.

- Python 3.9a1 is supported.

- Coverage.py has a mascot: :ref:`Sleepy Snake <sleepy>`.

.. _issue 649: https://github.com/nedbat/coveragepy/issues/649
.. _issue 745: https://github.com/nedbat/coveragepy/issues/745
.. _issue 838: https://github.com/nedbat/coveragepy/issues/838
.. _issue 871: https://github.com/nedbat/coveragepy/issues/871


.. _changes_50b1:

5.0b1

----------------------------

- The HTML and textual reports now have a ``--skip-empty`` option that skips
files with no statements, notably ``__init__.py`` files.  Thanks, Reya B.

- Configuration can now be read from `TOML`_ files.  This requires installing
coverage.py with the ``[toml]`` extra.  The standard "pyproject.toml" file
will be read automatically if no other configuration file is found, with
settings in the ``[tool.coverage.]`` namespace.  Thanks to Frazer McLean for
implementation and persistence.  Finishes `issue 664`_.

- The ``[run] note`` setting has been deprecated. Using it will result in a
warning, and the note will not be written to the data file.  The
corresponding :class:`.CoverageData` methods have been removed.

- The HTML report has been reimplemented (no more table around the source
code). This allowed for a better presentation of the context information,
hopefully resolving `issue 855`_.

- Added sqlite3 module version information to ``coverage debug sys`` output.

- Asking the HTML report to show contexts (``[html] show_contexts=True`` or

@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #131

@pyup-bot pyup-bot closed this Apr 20, 2020
@wdv4758h wdv4758h deleted the pyup-scheduled-update-2020-04-13 branch April 20, 2020 21:05
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants