A library that enables reuse of Material themes defined in XML for theming in Jetpack Compose.

Overview

MDC-Android Compose Theme Adapter

A library that enables reuse of Material Components for Android XML themes for theming in Jetpack Compose.

MDC-Android Compose Theme Adapter header

The basis of theming in Jetpack Compose is the MaterialTheme composable, where you provide Colors, Shapes and Typography instances containing your styling parameters:

MaterialTheme(
    typography = type,
    colors = colors,
    shapes = shapes
) {
    // Surface, Scaffold, etc
}

Material Components for Android themes allow for similar theming for views via XML theme attributes, like so:

@color/purple_500 @color/green_200 @style/TextAppearance.MyApp.Body1 @style/TextAppearance.MyApp.Body2 @style/ShapeAppearance.MyApp.SmallComponent ">
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight">
    
    <item name="colorPrimary">@color/purple_500item>
    <item name="colorSecondary">@color/green_200item>

    
    <item name="textAppearanceBody1">@style/TextAppearance.MyApp.Body1item>
    <item name="textAppearanceBody2">@style/TextAppearance.MyApp.Body2item>

    
    <item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.MyApp.SmallComponentitem>
style>

This library attempts to bridge the gap between Material Components for Android XML themes, and themes in Jetpack Compose, allowing your composable MaterialTheme to be based on the Activity's XML theme:

MdcTheme {
    // MaterialTheme.colors, MaterialTheme.shapes, MaterialTheme.typography
    // will now contain copies of the context's theme
}

This is especially handy when you're migrating an existing app, a fragment (or other UI container) at a time.

!!! caution If you are using an AppCompat (i.e. non-MDC) theme in your app, you should use the AppCompat Compose Theme Adapter instead, as it attempts to bridge the gap between AppCompat XML themes, and themes in Jetpack Compose.

Customizing the theme

The MdcTheme() function will automatically read the host context's MDC theme and pass them to MaterialTheme on your behalf, but if you want to customize the generated values, you can do so via the createMdcTheme() function:

val context = LocalContext.current
val layoutDirection = LocalLayoutDirection.current
var (colors, type, shapes) = createMdcTheme(
    context = context,
    layoutDirection = layoutDirection
)

// Modify colors, type or shapes as required. Then pass them
// through to MaterialTheme...

MaterialTheme(
    colors = colors,
    typography = type,
    shapes = shapes
) {
    // rest of layout
}

Limitations

There are some known limitations with the implementation at the moment:

  • This relies on your Activity/Context theme extending one of the Theme.MaterialComponents themes.
  • Text colors are not read from the text appearances by default. You can enable it via the setTextColors function parameter.
  • Variable fonts are not supported in Compose yet, meaning that the value of android:fontVariationSettings are currently ignored.
  • MDC ShapeAppearances allow setting of different corner families (cut, rounded) on each corner, whereas Compose's Shapes allows only a single corner family for the entire shape. Therefore only the app:cornerFamily attribute is read, others (app:cornerFamilyTopLeft, etc) are ignored.
  • You can modify the resulting MaterialTheme in Compose as required, but this only works in Compose. Any changes you make will not be reflected in the Activity theme.

Usage

" } ">
repositories {
    google()
}

dependencies {
    implementation "com.google.android.material:compose-theme-adapter:
   
    "
   
}

The latest release is: latest release badge

Library Snapshots

Snapshots of the current development version of this library are available, which track the latest commit. See here for more information on how to use them.


Contributions

Please contribute! We will gladly review any pull requests. Make sure to read the Contributing page first though.

License

Copyright 2020 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Add a hint in case of large csv files to add nrows=10, when a call to 'read_csv' is being executed

    Add a hint in case of large csv files to add nrows=10, when a call to 'read_csv' is being executed

    Basic Functionality

    When loading large csv files (100K lines at least), we should recommend the user to add nrows=10, so they can check that the types and formatting of the csv file fits their demands.

    Hooks Upon

    read_csv

    Hook Type

    Brief Description

    pre-hook

    Design

    _Hints good first issue 
    opened by tzurE 7
  • Check if data in series is string but in dateformat

    Check if data in series is string but in dateformat

    Basic Functionality

    Check after a Series or Dataframe creation and after addition of a new column if the data look like datetime but in a different dtype.

    Hooks Upon

    • [x] Series / Dataframe creation functions
    • [x] assign
    • [x] insert
    • [x] _setitem

    Hook Type

    per-hook

    Design

    check that the data inserted into the structure is with date structure (with the help of python-dateutil), if the dtype is not date - suggest using pandas.to_datetime()

    _Hints 
    opened by galbraun 4
  • import dovpanda in console error - NameError: name 'display' is not defined

    import dovpanda in console error - NameError: name 'display' is not defined

    Brief Description

    I am getting the following error when importing dovpanda from inside the console : NameError: name 'display' is not defined

    System Information

    WIN10-64bit

    • Python version (required): 3.6.7

    • Anaconda env: image

    Minimally Reproducible Code

    import pandas as pd
    import numpy as np
    import dovpanda

    Error Messages

    Traceback (most recent call last): File "", line 1, in File "C:\DevPrograms\Anaconda2\envs\test\lib\site-packages\dovpanda_init_.py", line 7, in from dovpanda.core import ledger File "C:\DevPrograms\Anaconda2\envs\test\lib\site-packages\dovpanda\core.py", line 7, in ledger = Ledger() File "C:\DevPrograms\Anaconda2\envs\test\lib\site-packages\dovpanda\base.py", line 119, in init self.teller = _Teller() File "C:\DevPrograms\Anaconda2\envs\test\lib\site-packages\dovpanda\base.py", line 34, in init self.set_output('display') File "C:\DevPrograms\Anaconda2\envs\test\lib\site-packages\dovpanda\base.py", line 103, in set_output self.output = display NameError: name 'display' is not defined

    bug 
    opened by uriyapes 3
  • [HINT] hint when df=df.dropna(inplace=True) is causing df=None

    [HINT] hint when df=df.dropna(inplace=True) is causing df=None

    Basic Functionality

    df.dropna(inplace=False) returns the modified dataframe. When changing to inplace=True, it's easy to forget to remove the "df= " at the beginning - so it's a useful hint...

    Hooks Upon

    Hook Type

    pre-hook

    Design

    I don't know... maybe just notice that the df is assigned None?

    _Hints 
    opened by itamar-precog 3
  • Error when extracting date cell from Dataframe

    Error when extracting date cell from Dataframe

    Brief Description

    When trying to extract one cell using iloc, dovpanda runs into an error. Sometimes, despite the error, this suggestion is made: The shape of the returned series from slicing is (1,) Which suggests you are interested in the value and not in a new series. Try instead: series.iat[row, col]

    System Information

    • OS: Ubuntu 18.04
    • Python: 3.7.5
    • Jupyter Lab: 1.14

    Minimally Reproducible Code

    df = pd.DataFrame([pd.Timestamp('01-01-2019')])
    df.iloc[0][0]
    

    Error Messages

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-25-dc9af601df62> in <module>
          1 df = pd.DataFrame([pd.Timestamp('01-01-2019')])
    ----> 2 df.iloc[0][0]
    
    ~/anaconda3/envs/x/lib/python3.7/site-packages/dovpanda/base.py in run(*args, **kwargs)
        161                 for post in posts:
        162                     if self.similar <= post.stop_nudge:
    --> 163                         post.replacement(ret, arguments)
        164             return ret
        165 
    
    ~/anaconda3/envs/x/lib/python3.7/site-packages/dovpanda/core.py in suggest_at_iat(res, arguments)
        186 def suggest_at_iat(res, arguments):
        187     self = arguments.get('self')
    --> 188     shp = res.shape
        189     if res.ndim < 1:  # Sometimes specific slicing will return value
        190         return
    
    AttributeError: 'Timestamp' object has no attribute 'shape'
    
    bug 
    opened by kennethz3 2
  • ledger has memory

    ledger has memory

    ledger has "cache" which can be used to check if previous functions were called together with current, etc.

    closes #34

    opened by DeanLa 2
  • After dovpanda import, pandas read_csv no longer works with URL argument

    After dovpanda import, pandas read_csv no longer works with URL argument

    Brief Description

    After importing dovpanda, pd.read_csv(url, ...) no longer works, generating a file not found error.

    System Information

    • Notebook / IPython / Python Console

    Any/all

    • Python version (required):

    3.7.3

    Minimally Reproducible Code

    import pandas as pd
    df = pd.read_csv("http://www.stat.ufl.edu/~winner/data/pgalpga2008.dat")
    print(df.head(3)) # works
    import dovpanda
    df = pd.read_csv("http://www.stat.ufl.edu/~winner/data/pgalpga2008.dat") # error
    

    Error Messages

    <ipython-input-4-91539aa51e2d> in <module>
          1 import pandas as pd
    ----> 2 df = pd.read_csv("http://www.stat.ufl.edu/~winner/data/pgalpga2008.dat")
          3 print(df.head(3))
    
    ~/anaconda3/envs/tf2/lib/python3.7/site-packages/dovpanda/base.py in run(*args, **kwargs)
        157                 for pre in pres:
        158                     if self.similar <= pre.stop_nudge:
    --> 159                         pre.replacement(arguments)
        160                 ret = f(*args, **kwargs)
        161                 for post in posts:
    
    ~/anaconda3/envs/tf2/lib/python3.7/site-packages/dovpanda/core.py in check_csv_size(arguments)
        108 def check_csv_size(arguments):
        109     filename = arguments.get('filepath_or_buffer')
    --> 110     if os.path.getsize(filename) > config.MAX_CSV_SIZE:
        111         ledger.tell('File size is very large and may take time to load. '
        112                     'If you would like to avoid format issues before the complete file loads, '
    
    ~/anaconda3/envs/tf2/lib/python3.7/genericpath.py in getsize(filename)
         48 def getsize(filename):
         49     """Return the size of a file, reported by os.stat()."""
    ---> 50     return os.stat(filename).st_size
         51 
         52 
    
    FileNotFoundError: [Errno 2] No such file or directory: 'http://www.stat.ufl.edu/~winner/data/pgalpga2008.dat'
    
    bug 
    opened by coljac 2
  • html enhancement

    html enhancement

    • added html to config to clean base
    • option to add color in ledger.tell

    Description

    blocked enhancement 
    opened by DeanLa 1
  • suggest category dtype

    suggest category dtype

    closes #22

    _Hints 
    opened by DeanLa 1
  • Error at suggest_at_iat function

    Error at suggest_at_iat function

    Brief Description

    When using this method, the hint throws an error.

    self.data.groupby(by="Class").count().idxmax()[0]
    

    What that line does is find the most repeated class (column) in the dataframe. (probably there is a better way)

    System Information

    • Windows 10 pro
    • Notebook
    • Python version : 3.7.4

    Minimally Reproducible Code

    import pandas as pd
    import dovpandas
    
    a = pd.DataFrame({"id": [1, 2, 3, 4, 5, 6],"Class": ['a', 'a', 'b', 'a', 'b', 'c']})
    
    a.groupby(by="Class").count().idxmax()[0]
    

    Error Messages

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-5-fe782dc356aa> in <module>
          1 a = pd.DataFrame({"id": [1, 2, 3, 4, 5, 6],"Class": ['a', 'a', 'b', 'a', 'b', 'c']})
          2 
    ----> 3 a.groupby(by="Class").count().idxmax()[0]
    
    c:\users\marti\appdata\local\programs\python\python37\lib\site-packages\dovpanda\base.py in run(*args, **kwargs)
        161                 for post in posts:
        162                     if self.similar <= post.stop_nudge:
    --> 163                         post.replacement(ret, arguments)
        164             return ret
        165 
    
    c:\users\marti\appdata\local\programs\python\python37\lib\site-packages\dovpanda\core.py in suggest_at_iat(res, arguments)
        186 def suggest_at_iat(res, arguments):
        187     self = arguments.get('self')
    --> 188     shp = res.shape
        189     if res.ndim < 1:  # Sometimes specific slicing will return value
        190         return
    
    AttributeError: 'str' object has no attribute 'shape'
    
    
    bug 
    opened by mfanselmo 1
  • Update sphinx to 4.0.2

    Update sphinx to 4.0.2

    This PR updates sphinx from 2.2.1 to 4.0.2.

    Changelog

    4.0.2

    =====================================
    
    Dependencies
    ------------
    
    * 9216: Support jinja2-3.0
    
    Incompatible changes
    --------------------
    
    * 9222: Update Underscore.js to 1.13.1
    * 9217: manpage: Stop creating a section directory on build manpage by default
    (see :confval:`man_make_section_directory`)
    
    Bugs fixed
    ----------
    
    * 9210: viewcode: crashed if non importable modules found on parallel build
    * 9240: Unknown node error for pending_xref_condition is raised if an extension
    that does not support the node installs a missing-reference handler
    

    4.0.1

    =====================================
    
    Bugs fixed
    ----------
    
    * 9189: autodoc: crashed when ValueError is raised on generating signature
    from a property of the class
    * 9188: autosummary: warning is emitted if list value is set to
    autosummary_generate
    * 8380: html search: tags for search result are broken
    * 9198: i18n: Babel emits errors when running compile_catalog
    * 9205: py domain: The :canonical: option causes &quot;more than one target for
    cross-reference&quot; warning
    * 9201: websupport: UndefinedError is raised: &#39;css_tag&#39; is undefined
    

    4.0.0

    =====================================
    
    Dependencies
    ------------
    

    4.0.0b3

    * 9167: html: Failed to add CSS files to the specific page
    

    4.0.0b2

    * C, C++, fix ``KeyError`` when an ``alias`` directive is the first C/C++
    directive in a file with another C/C++ directive later.
    

    4.0.0b1

    * 8917: autodoc: Raises a warning if function has wrong __globals__ value
    * 8415: autodoc: a TypeVar imported from other module is not resolved (in
    Python 3.7 or above)
    * 8992: autodoc: Failed to resolve types.TracebackType type annotation
    * 8905: html: html_add_permalinks=None and html_add_permalinks=&quot;&quot; are ignored
    * 8380: html search: Paragraphs in search results are not identified as ``&lt;p&gt;``
    * 8915: html theme: The translation of sphinx_rtd_theme does not work
    * 8342: Emit a warning if a unknown domain is given for directive or role (ex.
    ``:unknown:doc:``)
    * 7241: LaTeX: No wrapping for ``cpp:enumerator``
    * 8711: LaTeX: backticks in code-blocks trigger latexpdf build warning (and font
    change) with late TeXLive 2019
    * 8253: LaTeX: Figures with no size defined get overscaled (compared to images
    with size explicitly set in pixels) (fixed for ``&#39;pdflatex&#39;/&#39;lualatex&#39;`` only)
    * 8881: LaTeX: The depth of bookmarks panel in PDF is not enough for navigation
    * 8874: LaTeX: the fix to two minor Pygments LaTeXFormatter output issues ignore
    Pygments style
    * 8925: LaTeX: 3.5.0 ``verbatimmaxunderfull`` setting does not work as
    expected
    * 8980: LaTeX: missing line break in ``\pysigline``
    * 8995: LaTeX: legacy ``\pysiglinewithargsret`` does not compute correctly
    available  horizontal space and should use a ragged right style
    * 9009: LaTeX: &quot;release&quot; value with underscore leads to invalid LaTeX
    * 8911: C++: remove the longest matching prefix in
    :confval:`cpp_index_common_prefix` instead of the first that matches.
    * C, properly reject function declarations when a keyword is used
    as parameter name.
    * 8933: viewcode: Failed to create back-links on parallel build
    * 8960: C and C++, fix rendering of (member) function pointer types in
    function parameter lists.
    * C++, fix linking of names in array declarators, pointer to member
    (function) declarators, and in the argument to ``sizeof...``.
    * C, fix linking of names in array declarators.
    

    3.5.5

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

    3.5.4

    =====================================
    
    Dependencies
    ------------
    
    * 9071: Restrict docutils to 0.16
    
    Bugs fixed
    ----------
    
    * 9078: autodoc: Async staticmethods and classmethods are considered as non
    async coroutine-functions with Python3.10
    * 8870, 9001, 9051: html theme: The style are not applied with docutils-0.17
    
    - toctree captions
    - The content of ``sidebar`` directive
    - figures
    

    3.5.3

    =====================================
    
    Features added
    --------------
    
    * 8959: using UNIX path separator in image directive confuses Sphinx on Windows
    

    3.5.2

    =====================================
    
    Bugs fixed
    ----------
    
    * 8943: i18n: Crashed by broken translation messages in ES, EL and HR
    * 8936: LaTeX: A custom LaTeX builder fails with unknown node error
    * 8952: Exceptions raised in a Directive cause parallel builds to hang
    

    3.5.1

    =====================================
    
    Bugs fixed
    ----------
    
    * 8883: autodoc: AttributeError is raised on assigning __annotations__ on
    read-only class
    * 8884: html: minified js stemmers not included in the distributed package
    * 8885: html: AttributeError is raised if CSS/JS files are installed via
    :confval:`html_context`
    * 8880: viewcode: ExtensionError is raised on incremental build after
    unparsable python module found
    

    3.5.0

    =====================================
    
    Dependencies
    ------------
    
    * LaTeX: ``multicol`` (it is anyhow a required part of the official latex2e
    base distribution)
    
    Incompatible changes
    --------------------
    
    * Update Underscore.js to 1.12.0
    * 6550: html: The config variable ``html_add_permalinks`` is replaced by
    :confval:`html_permalinks` and :confval:`html_permalinks_icon`
    
    Deprecated
    ----------
    
    * pending_xref node for viewcode extension
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.anchors_ignore``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.auth``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.broken``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.good``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.redirected``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.rqueue``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.to_ignore``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.workers``
    * ``sphinx.builders.linkcheck.CheckExternalLinksBuilder.wqueue``
    * ``sphinx.builders.linkcheck.node_line_or_0()``
    * ``sphinx.ext.autodoc.AttributeDocumenter.isinstanceattribute()``
    * ``sphinx.ext.autodoc.directive.DocumenterBridge.reporter``
    * ``sphinx.ext.autodoc.importer.get_module_members()``
    * ``sphinx.ext.autosummary.generate._simple_info()``
    * ``sphinx.ext.autosummary.generate._simple_warn()``
    * ``sphinx.writers.html.HTMLTranslator.permalink_text``
    * ``sphinx.writers.html5.HTML5Translator.permalink_text``
    
    Features added
    --------------
    
    * 8022: autodoc: autodata and autoattribute directives does not show right-hand
    value of the variable if docstring contains ``:meta hide-value:`` in
    info-field-list
    * 8514: autodoc: Default values of overloaded functions are taken from actual
    implementation if they&#39;re ellipsis
    * 8775: autodoc: Support type union operator (PEP-604) in Python 3.10 or above
    * 8297: autodoc: Allow to extend :confval:`autodoc_default_options` via
    directive options
    * 759: autodoc: Add a new configuration :confval:`autodoc_preserve_defaults` as
    an experimental feature.  It preserves the default argument values of
    functions in source code and keep them not evaluated for readability.
    * 8619: html: kbd role generates customizable HTML tags for compound keys
    * 8634: html: Allow to change the order of JS/CSS via ``priority`` parameter
    for :meth:`Sphinx.add_js_file()` and :meth:`Sphinx.add_css_file()`
    * 6241: html: Allow to add JS/CSS files to the specific page when an extension
    calls ``app.add_js_file()`` or ``app.add_css_file()`` on
    :event:`html-page-context` event
    * 6550: html: Allow to use HTML permalink texts via
    :confval:`html_permalinks_icon`
    * 1638: html: Add permalink icons to glossary terms
    * 8868: html search: performance issue with massive lists
    * 8867: html search: Update JavaScript stemmer code to the latest version of
    Snowball (v2.1.0)
    * 8852: i18n: Allow to translate heading syntax in MyST-Parser
    * 8649: imgconverter: Skip availability check if builder supports the image
    type
    * 8573: napoleon: Allow to change the style of custom sections using
    :confval:`napoleon_custom_styles`
    * 8004: napoleon: Type definitions in Google style docstrings are rendered as
    references when :confval:`napoleon_preprocess_types` enabled
    * 6241: mathjax: Include mathjax.js only on the document using equations
    * 8775: py domain: Support type union operator (PEP-604)
    * 8651: std domain: cross-reference for a rubric having inline item is broken
    * 7642: std domain: Optimize case-insensitive match of term
    * 8681: viewcode: Support incremental build
    * 8132: Add :confval:`project_copyright` as an alias of :confval:`copyright`
    * 207: Now :confval:`highlight_language` supports multiple languages
    * 2030: :rst:dir:`code-block` and :rst:dir:`literalinclude` supports automatic
    dedent via no-argument ``:dedent:`` option
    * C++, also hyperlink operator overloads in expressions and alias declarations.
    * 8247: Allow production lists to refer to tokens from other production groups
    * 8813: Show what extension (or module) caused it on errors on event handler
    * 8213: C++: add ``maxdepth`` option to :rst:dir:`cpp:alias` to insert nested
    declarations.
    * C, add ``noroot`` option to :rst:dir:`c:alias` to render only nested
    declarations.
    * C++, add ``noroot`` option to :rst:dir:`cpp:alias` to render only nested
    declarations.
    
    Bugs fixed
    ----------
    
    * 8727: apidoc: namespace module file is not generated if no submodules there
    * 741: autodoc: inherited-members doesn&#39;t work for instance attributes on super
    class
    * 8592: autodoc: ``:meta public:`` does not effect to variables
    * 8594: autodoc: empty __all__ attribute is ignored
    * 8315: autodoc: Failed to resolve struct.Struct type annotation
    * 8652: autodoc: All variable comments in the module are ignored if the module
    contains invalid type comments
    * 8693: autodoc: Default values for overloaded functions are rendered as string
    * 8134: autodoc: crashes when mocked decorator takes arguments
    * 8800: autodoc: Uninitialized attributes in superclass are recognized as
    undocumented
    * 8655: autodoc: Failed to generate document if target module contains an
    object that raises an exception on ``hasattr()``
    * 8306: autosummary: mocked modules are documented as empty page when using
    :recursive: option
    * 8232: graphviz: Image node is not rendered if graph file is in subdirectory
    * 8618: html: kbd role produces incorrect HTML when compound-key separators (-,
    + or ^) are used as keystrokes
    * 8629: html: A type warning for html_use_opensearch is shown twice
    * 8714: html: kbd role with &quot;Caps Lock&quot; rendered incorrectly
    * 8123: html search: fix searching for terms containing + (Requires a custom
    search language that does not split on +)
    * 8665: html theme: Could not override globaltoc_maxdepth in theme.conf
    * 8446: html: consecutive spaces are displayed as single space
    * 8745: i18n: crashes with KeyError when translation message adds a new auto
    footnote reference
    * 4304: linkcheck: Fix race condition that could lead to checking the
    availability of the same URL twice
    * 8791: linkcheck: The docname for each hyperlink is not displayed
    * 7118: sphinx-quickstart: questionare got Mojibake if libreadline unavailable
    * 8094: texinfo: image files on the different directory with document are not
    copied
    * 8782: todo: Cross references in todolist get broken
    * 8720: viewcode: module pages are generated for epub on incremental build
    * 8704: viewcode: anchors are generated in incremental build after singlehtml
    * 8756: viewcode: highlighted code is generated even if not referenced
    * 8671: :confval:`highlight_options` is not working
    * 8341: C, fix intersphinx lookup types for names in declarations.
    * C, C++: in general fix intersphinx and role lookup types.
    * 8683: :confval:`html_last_updated_fmt` does not support UTC offset (%z)
    * 8683: :confval:`html_last_updated_fmt` generates wrong time zone for %Z
    * 1112: ``download`` role creates duplicated copies when relative path is
    specified
    * 2616 (fifth item): LaTeX: footnotes from captions are not clickable,
    and for manually numbered footnotes only first one with same number is
    an hyperlink
    * 7576: LaTeX with French babel and memoir crash: &quot;Illegal parameter number
    in definition of ``\FNHprefntext``&quot;
    * 8055: LaTeX (docs): A potential display bug with the LaTeX generation step
    in Sphinx (how to generate one-column index)
    * 8072: LaTeX: Directive :rst:dir:`hlist` not implemented in LaTeX
    * 8214: LaTeX: The :rst:role:`index` role and the glossary generate duplicate
    entries in the LaTeX index (if both used for same term)
    * 8735: LaTeX: wrong internal links in pdf to captioned code-blocks when
    :confval:`numfig` is not True
    * 8442: LaTeX: some indexed terms are ignored when using xelatex engine
    (or pdflatex and :confval:`latex_use_xindy` set to True) with memoir class
    * 8750: LaTeX: URLs as footnotes fail to show in PDF if originating from
    inside function type signatures
    * 8780: LaTeX: long words in narrow columns may not be hyphenated
    * 8788: LaTeX: ``\titleformat`` last argument in sphinx.sty should be
    bracketed, not braced (and is anyhow not needed) 
    * 8849: LaTex: code-block printed out of margin (see the opt-in LaTeX syntax
    boolean :ref:`verbatimforcewraps &lt;latexsphinxsetupforcewraps&gt;` for use via
    the :ref:`&#39;sphinxsetup&#39; &lt;latexsphinxsetup&gt;` key of ``latex_elements``)
    * 8183: LaTeX: Remove substitution_reference nodes from doctree only on LaTeX
    builds
    * 8865: LaTeX: Restructure the index nodes inside title nodes only on LaTeX
    builds
    * 8796: LaTeX: potentially critical low level TeX coding mistake has gone
    unnoticed so far
    * C, :rst:dir:`c:alias` skip symbols without explicit declarations
    instead of crashing.
    * C, :rst:dir:`c:alias` give a warning when the root symbol is not declared.
    * C, ``expr`` role should start symbol lookup in the current scope.
    

    3.4.3

    =====================================
    
    Bugs fixed
    ----------
    
    * 8655: autodoc: Failed to generate document if target module contains an
    object that raises an exception on ``hasattr()``
    

    3.4.2

    =====================================
    
    Bugs fixed
    ----------
    
    * 8164: autodoc: Classes that inherit mocked class are not documented
    * 8602: autodoc: The ``autodoc-process-docstring`` event is emitted to the
    non-datadescriptors unexpectedly
    * 8616: autodoc: AttributeError is raised on non-class object is passed to
    autoclass directive
    

    3.4.1

    =====================================
    
    Bugs fixed
    ----------
    
    * 8559: autodoc: AttributeError is raised when using forward-reference type
    annotations
    * 8568: autodoc: TypeError is raised on checking slots attribute
    * 8567: autodoc: Instance attributes are incorrectly added to Parent class
    * 8566: autodoc: The ``autodoc-process-docstring`` event is emitted to the
    alias classes unexpectedly
    * 8583: autodoc: Unnecessary object comparision via ``__eq__`` method
    * 8565: linkcheck: Fix PriorityQueue crash when link tuples are not
    comparable
    

    3.4.0

    =====================================
    
    Incompatible changes
    --------------------
    
    * 8105: autodoc: the signature of class constructor will be shown for decorated
    classes, not a signature of decorator
    
    Deprecated
    ----------
    
    * The ``follow_wrapped`` argument of ``sphinx.util.inspect.signature()``
    * The ``no_docstring`` argument of
    ``sphinx.ext.autodoc.Documenter.add_content()``
    * ``sphinx.ext.autodoc.Documenter.get_object_members()``
    * ``sphinx.ext.autodoc.DataDeclarationDocumenter``
    * ``sphinx.ext.autodoc.GenericAliasDocumenter``
    * ``sphinx.ext.autodoc.InstanceAttributeDocumenter``
    * ``sphinx.ext.autodoc.SlotsAttributeDocumenter``
    * ``sphinx.ext.autodoc.TypeVarDocumenter``
    * ``sphinx.ext.autodoc.importer._getannotations()``
    * ``sphinx.ext.autodoc.importer._getmro()``
    * ``sphinx.pycode.ModuleAnalyzer.parse()``
    * ``sphinx.util.osutil.movefile()``
    * ``sphinx.util.requests.is_ssl_error()``
    
    Features added
    --------------
    
    * 8119: autodoc: Allow to determine whether a member not included in
    ``__all__`` attribute of the module should be documented or not via
    :event:`autodoc-skip-member` event
    * 8219: autodoc: Parameters for generic class are not shown when super class is
    a generic class and show-inheritance option is given (in Python 3.7 or above)
    * autodoc: Add ``Documenter.config`` as a shortcut to access the config object
    * autodoc: Add Optional[t] to annotation of function and method if a default
    value equal to None is set.
    * 8209: autodoc: Add ``:no-value:`` option to :rst:dir:`autoattribute` and
    :rst:dir:`autodata` directive to suppress the default value of the variable
    * 8460: autodoc: Support custom types defined by typing.NewType
    * 8285: napoleon: Add :confval:`napoleon_attr_annotations` to merge type hints
    on source code automatically if any type is specified in docstring
    * 8236: napoleon: Support numpydoc&#39;s &quot;Receives&quot; section
    * 6914: Add a new event :event:`warn-missing-reference` to custom warning
    messages when failed to resolve a cross-reference
    * 6914: Emit a detailed warning when failed to resolve a ``:ref:`` reference
    * 6629: linkcheck: The builder now handles rate limits. See
    :confval:`linkcheck_retry_on_rate_limit` for details.
    
    Bugs fixed
    ----------
    
    * 7613: autodoc: autodoc does not respect __signature__ of the class
    * 4606: autodoc: the location of the warning is incorrect for inherited method
    * 8105: autodoc: the signature of class constructor is incorrect if the class
    is decorated
    * 8434: autodoc: :confval:`autodoc_type_aliases` does not effect to variables
    and attributes
    * 8443: autodoc: autodata directive can&#39;t create document for PEP-526 based
    type annotated variables
    * 8443: autodoc: autoattribute directive can&#39;t create document for PEP-526
    based uninitalized variables
    * 8480: autodoc: autoattribute could not create document for __slots__
    attributes
    * 8503: autodoc: autoattribute could not create document for a GenericAlias as
    class attributes correctly
    * 8534: autodoc: autoattribute could not create document for a commented
    attribute in alias class
    * 8452: autodoc: autodoc_type_aliases doesn&#39;t work when autodoc_typehints is
    set to &quot;description&quot;
    * 8541: autodoc: autodoc_type_aliases doesn&#39;t work for the type annotation to
    instance attributes
    * 8460: autodoc: autodata and autoattribute directives do not display type
    information of TypeVars
    * 8493: autodoc: references to builtins not working in class aliases
    * 8522: autodoc:  ``__bool__`` method could be called
    * 8067: autodoc: A typehint for the instance variable having type_comment on
    super class is not displayed
    * 8545: autodoc: a __slots__ attribute is not documented even having docstring
    * 741: autodoc: inherited-members doesn&#39;t work for instance attributes on super
    class
    * 8477: autosummary: non utf-8 reST files are generated when template contains
    multibyte characters
    * 8501: autosummary: summary extraction splits text after &quot;el at.&quot; unexpectedly
    * 8524: html: Wrong url_root has been generated on a document named &quot;index&quot;
    * 8419: html search: Do not load ``language_data.js`` in non-search pages
    * 8549: i18n: ``-D gettext_compact=0`` is no longer working
    * 8454: graphviz: The layout option for graph and digraph directives don&#39;t work
    * 8131: linkcheck: Use GET when HEAD requests cause Too Many Redirects, to
    accommodate infinite redirect loops on HEAD
    * 8437: Makefile: ``make clean`` with empty BUILDDIR is dangerous
    * 8365: py domain: ``:type:`` and ``:rtype:`` gives false ambiguous class
    lookup warnings
    * 8352: std domain: Failed to parse an option that starts with bracket
    * 8519: LaTeX: Prevent page brake in the middle of a seealso
    * 8520: C, fix copying of AliasNode.
    

    3.3.1

    =====================================
    
    Bugs fixed
    ----------
    
    * 8372: autodoc: autoclass directive became slower than Sphinx-3.2
    * 7727: autosummary: raise PycodeError when documenting python package
    without __init__.py
    * 8350: autosummary: autosummary_mock_imports causes slow down builds
    * 8364: C, properly initialize attributes in empty symbols.
    * 8399: i18n: Put system locale path after the paths specified by configuration
    

    3.3.0

    =====================================
    
    Deprecated
    ----------
    
    * ``sphinx.builders.latex.LaTeXBuilder.usepackages``
    * ``sphinx.builders.latex.LaTeXBuilder.usepackages_afger_hyperref``
    * ``sphinx.ext.autodoc.SingledispatchFunctionDocumenter``
    * ``sphinx.ext.autodoc.SingledispatchMethodDocumenter``
    
    Features added
    --------------
    
    * 8100: html: Show a better error message for failures on copying
    html_static_files
    * 8141: C: added a ``maxdepth`` option to :rst:dir:`c:alias` to insert
    nested declarations.
    * 8081: LaTeX: Allow to add LaTeX package via ``app.add_latex_package()`` until
    just before writing .tex file
    * 7996: manpage: Add :confval:`man_make_section_directory` to make a section
    directory on build man page
    * 8289: epub: Allow to suppress &quot;duplicated ToC entry found&quot; warnings from epub
    builder using :confval:`suppress_warnings`.
    * 8298: sphinx-quickstart: Add :option:`sphinx-quickstart --no-sep` option
    * 8304: sphinx.testing: Register public markers in sphinx.testing.fixtures
    * 8051: napoleon: use the obj role for all See Also items
    * 8050: napoleon: Apply :confval:`napoleon_preprocess_types` to every field
    * C and C++, show line numbers for previous declarations when duplicates are
    detected.
    * 8183: Remove substitution_reference nodes from doctree only on LaTeX builds
    
    Bugs fixed
    ----------
    
    * 8085: i18n: Add support for having single text domain
    * 6640: i18n: Failed to override system message translation
    * 8143: autodoc: AttributeError is raised when False value is passed to
    autodoc_default_options
    * 8103: autodoc: functools.cached_property is not considered as a property
    * 8190: autodoc: parsing error is raised if some extension replaces docstring
    by string not ending with blank lines
    * 8142: autodoc: Wrong constructor signature for the class derived from
    typing.Generic
    * 8157: autodoc: TypeError is raised when annotation has invalid __args__
    * 7964: autodoc: Tuple in default value is wrongly rendered
    * 8200: autodoc: type aliases break type formatting of autoattribute
    * 7786: autodoc: can&#39;t detect overloaded methods defined in other file
    * 8294: autodoc: single-string __slots__ is not handled correctly
    * 7785: autodoc: autodoc_typehints=&#39;none&#39; does not effect to overloaded functions
    * 8192: napoleon: description is disappeared when it contains inline literals
    * 8142: napoleon: Potential of regex denial of service in google style docs
    * 8169: LaTeX: pxjahyper loaded even when latex_engine is not platex
    * 8215: LaTeX: &#39;oneside&#39; classoption causes build warning
    * 8175: intersphinx: Potential of regex denial of service by broken inventory
    * 8277: sphinx-build: missing and redundant spacing (and etc) for console
    output on building
    * 7973: imgconverter: Check availability of imagemagick many times
    * 8255: py domain: number in default argument value is changed from hexadecimal
    to decimal
    * 8316: html: Prevent arrow keys changing page when button elements are focused
    * 8343: html search: Fix unnecessary load of images when parsing the document
    * 8254: html theme: Line numbers misalign with code lines
    * 8093: The highlight warning has wrong location in some builders (LaTeX,
    singlehtml and so on)
    * 8215: Eliminate Fancyhdr build warnings for oneside documents
    * 8239: Failed to refer a token in productionlist if it is indented
    * 8268: linkcheck: Report HTTP errors when ``linkcheck_anchors`` is ``True``
    * 8245: linkcheck: take source directory into account for local files
    * 8321: linkcheck: ``tel:`` schema hyperlinks are detected as errors
    * 8323: linkcheck: An exit status is incorrect when links having unsupported
    schema found
    * 8188: C, add missing items to internal object types dictionary,
    e.g., preventing intersphinx from resolving them.
    * C, fix anon objects in intersphinx.
    * 8270, C++, properly reject functions as duplicate declarations if a
    non-function declaration of the same name already exists.
    * C, fix references to function parameters.
    Link to the function instead of a non-existing anchor.
    * 6914: figure numbers are unexpectedly assigned to uncaptioned items
    * 8320: make &quot;inline&quot; line numbers un-selectable
    
    Testing
    --------
    
    * 8257: Support parallel build in sphinx.testing
    

    3.2.1

    =====================================
    
    Features added
    --------------
    
    * 8095: napoleon: Add :confval:`napoleon_preprocess_types` to enable the type
    preprocessor for numpy style docstrings
    * 8114: C and C++, parse function attributes after parameters and qualifiers.
    
    Bugs fixed
    ----------
    
    * 8074: napoleon: Crashes during processing C-ext module
    * 8088: napoleon: &quot;Inline literal start-string without end-string&quot; warning in
    Numpy style Parameters section
    * 8084: autodoc: KeyError is raised on documenting an attribute of the broken
    class
    * 8091: autodoc: AttributeError is raised on documenting an attribute on Python
    3.5.2
    * 8099: autodoc: NameError is raised when target code uses ``TYPE_CHECKING``
    * C++, fix parsing of template template paramters, broken by the fix of 7944
    

    3.2.0

    =====================================
    
    Deprecated
    ----------
    
    * ``sphinx.ext.autodoc.members_set_option()``
    * ``sphinx.ext.autodoc.merge_special_members_option()``
    * ``sphinx.writers.texinfo.TexinfoWriter.desc``
    * C, parsing of pre-v3 style type directives and roles, along with the options
    :confval:`c_allow_pre_v3` and :confval:`c_warn_on_allowed_pre_v3`.
    
    Features added
    --------------
    
    * 2076: autodoc: Allow overriding of exclude-members in skip-member function
    * 8034: autodoc: ``:private-member:`` can take an explicit list of member names
    to be documented
    * 2024: autosummary: Add :confval:`autosummary_filename_map` to avoid conflict
    of filenames between two object with different case
    * 8011: autosummary: Support instance attributes as a target of autosummary
    directive
    * 7849: html: Add :confval:`html_codeblock_linenos_style` to change the style
    of line numbers for code-blocks
    * 7853: C and C++, support parameterized GNU style attributes.
    * 7888: napoleon: Add aliases Warn and Raise.
    * 7690: napoleon: parse type strings and make them hyperlinks as possible.  The
    conversion rule can be updated via :confval:`napoleon_type_aliases`
    * 8049: napoleon: Create a hyperlink for each the type of parameter when
    :confval:`napoleon_use_params` is False
    * C, added :rst:dir:`c:alias` directive for inserting copies
    of existing declarations.
    * 7745: html: inventory is broken if the docname contains a space
    * 7991: html search: Allow searching for numbers
    * 7902: html theme: Add a new option :confval:`globaltoc_maxdepth` to control
    the behavior of globaltoc in sidebar
    * 7840: i18n: Optimize the dependencies check on bootstrap
    * 7768: i18n: :confval:`figure_language_filename` supports ``docpath`` token
    * 5208: linkcheck: Support checks for local links
    * 5090: setuptools: Link verbosity to distutils&#39; -v and -q option
    * 6698: doctest: Add ``:trim-doctest-flags:`` and ``:no-trim-doctest-flags:``
    options to doctest, testcode and testoutput directives
    * 7052: add ``:noindexentry:`` to the Python, C, C++, and Javascript domains.
    Update the documentation to better reflect the relationship between this option
    and the ``:noindex:`` option.
    * 7899: C, add possibility of parsing of some pre-v3 style type directives and
    roles and try to convert them to equivalent v3 directives/roles.
    Set the new option :confval:`c_allow_pre_v3` to ``True`` to enable this.
    The warnings printed from this functionality can be suppressed by setting
    :confval:`c_warn_on_allowed_pre_v3`` to ``True``.
    The functionality is immediately deprecated.
    * 7999: C, add support for named variadic macro arguments.
    * 8071: Allow to suppress &quot;self referenced toctrees&quot; warning
    
    Bugs fixed
    ----------
    
    * 7886: autodoc: TypeError is raised on mocking generic-typed classes
    * 7935: autodoc: function signature is not shown when the function has a
    parameter having ``inspect._empty`` as its default value
    * 7901: autodoc: type annotations for overloaded functions are not resolved
    * 904: autodoc: An instance attribute cause a crash of autofunction directive
    * 1362: autodoc: ``private-members`` option does not work for class attributes
    * 7983: autodoc: Generator type annotation is wrongly rendered in py36
    * 8030: autodoc: An uninitialized annotated instance variable is not documented
    when ``:inherited-members:`` option given
    * 8032: autodoc: A type hint for the instance variable defined at parent class
    is not shown in the document of the derived class
    * 8041: autodoc: An annotated instance variable on super class is not
    documented when derived class has other annotated instance variables
    * 7839: autosummary: cannot handle umlauts in function names
    * 7865: autosummary: Failed to extract summary line when abbreviations found
    * 7866: autosummary: Failed to extract correct summary line when docstring
    contains a hyperlink target
    * 7469: autosummary: &quot;Module attributes&quot; header is not translatable
    * 7940: apidoc: An extra newline is generated at the end of the rst file if a
    module has submodules
    * 4258: napoleon: decorated special methods are not shown
    * 7799: napoleon: parameters are not escaped for combined params in numpydoc
    * 7780: napoleon: multiple paramaters declaration in numpydoc was wrongly
    recognized when napoleon_use_params=True
    * 7715: LaTeX: ``numfig_secnum_depth &gt; 1`` leads to wrong figure links
    * 7846: html theme: XML-invalid files were generated
    * 7894: gettext: Wrong source info is shown when using rst_epilog
    * 7691: linkcheck: HEAD requests are not used for checking
    * 4888: i18n: Failed to add an explicit title to ``:ref:`` role on translation
    * 7928: py domain: failed to resolve a type annotation for the attribute
    * 8008: py domain: failed to parse a type annotation containing ellipsis
    * 7994: std domain: option directive does not generate old node_id compatible
    with 2.x or older
    * 7968: i18n: The content of ``math`` directive is interpreted as reST on
    translation
    * 7768: i18n: The ``root`` element for :confval:`figure_language_filename` is
    not a path that user specifies in the document
    * 7993: texinfo: TypeError is raised for nested object descriptions
    * 7993: texinfo: a warning not supporting desc_signature_line node is shown
    * 7869: :rst:role:`abbr` role without an explanation will show the explanation
    from the previous abbr role
    * 8048: graphviz: graphviz.css was copied on building non-HTML document
    * C and C++, removed ``noindex`` directive option as it did
    nothing.
    * 7619: Duplicated node IDs are generated if node has multiple IDs
    * 2050: Symbols sections are appeared twice in the index page
    * 8017: Fix circular import in sphinx.addnodes
    * 7986: CSS: make &quot;highlight&quot; selector more robust
    * 7944: C++, parse non-type template parameters starting with
    a dependent qualified name.
    * C, don&#39;t deepcopy the entire symbol table and make a mess every time an
    enumerator is handled.
    

    3.1.2

    =====================================
    
    Incompatible changes
    --------------------
    
    * 7650: autodoc: the signature of base function will be shown for decorated
    functions, not a signature of decorator
    
    Bugs fixed
    ----------
    
    * 7844: autodoc: Failed to detect module when relative module name given
    * 7856: autodoc: AttributeError is raised when non-class object is given to
    the autoclass directive
    * 7850: autodoc: KeyError is raised for invalid mark up when autodoc_typehints
    is &#39;description&#39;
    * 7812: autodoc: crashed if the target name matches to both an attribute and
    module that are same name
    * 7650: autodoc: function signature becomes ``(*args, **kwargs)`` if the
    function is decorated by generic decorator
    * 7812: autosummary: generates broken stub files if the target code contains
    an attribute and module that are same name
    * 7806: viewcode: Failed to resolve viewcode references on 3rd party builders
    * 7838: html theme: List items have extra vertical space
    * 7878: html theme: Undesired interaction between &quot;overflow&quot; and &quot;float&quot;
    

    3.1.1

    =====================================
    
    Incompatible changes
    --------------------
    
    * 7808: napoleon: a type for attribute are represented as typed field
    
    Features added
    --------------
    
    * 7807: autodoc: Show detailed warning when type_comment is mismatched with its
    signature
    
    Bugs fixed
    ----------
    
    * 7808: autodoc: Warnings raised on variable and attribute type annotations
    * 7802: autodoc: EOFError is raised on parallel build
    * 7821: autodoc: TypeError is raised for overloaded C-ext function
    * 7805: autodoc: an object which descriptors returns is unexpectedly documented
    * 7807: autodoc: wrong signature is shown for the function using contextmanager
    * 7812: autosummary: generates broken stub files if the target code contains
    an attribute and module that are same name
    * 7808: napoleon: Warnings raised on variable and attribute type annotations
    * 7811: sphinx.util.inspect causes circular import problem
    

    3.1.0

    =====================================
    
    Dependencies
    ------------
    
    * 7746: mathjax: Update to 2.7.5
    
    Incompatible changes
    --------------------
    
    * 7477: imgconverter: Invoke &quot;magick convert&quot; command by default on Windows
    
    Deprecated
    ----------
    
    * The first argument for sphinx.ext.autosummary.generate.AutosummaryRenderer has
    been changed to Sphinx object
    * ``sphinx.ext.autosummary.generate.AutosummaryRenderer`` takes an object type
    as an argument
    * The ``ignore`` argument of ``sphinx.ext.autodoc.Documenter.get_doc()``
    * The ``template_dir`` argument of ``sphinx.ext.autosummary.generate.
    AutosummaryRenderer``
    * The ``module`` argument of ``sphinx.ext.autosummary.generate.
    find_autosummary_in_docstring()``
    * The ``builder`` argument of ``sphinx.ext.autosummary.generate.
    generate_autosummary_docs()``
    * The ``template_dir`` argument of ``sphinx.ext.autosummary.generate.
    generate_autosummary_docs()``
    * The ``ignore`` argument of ``sphinx.util.docstring.prepare_docstring()``
    * ``sphinx.ext.autosummary.generate.AutosummaryRenderer.exists()``
    * ``sphinx.util.rpartition()``
    
    Features added
    --------------
    
    * LaTeX: Make the ``toplevel_sectioning`` setting optional in LaTeX theme
    * LaTeX: Allow to override papersize and pointsize from LaTeX themes
    * LaTeX: Add :confval:`latex_theme_options` to override theme options
    * 7410: Allow to suppress &quot;circular toctree references detected&quot; warnings using
    :confval:`suppress_warnings`
    * C, added scope control directives, :rst:dir:`c:namespace`,
    :rst:dir:`c:namespace-push`, and :rst:dir:`c:namespace-pop`.
    * 2044: autodoc: Suppress default value for instance attributes
    * 7473: autodoc: consider a member public if docstring contains
    ``:meta public:`` in info-field-list
    * 7487: autodoc: Allow to generate docs for singledispatch functions by
    py:autofunction
    * 7143: autodoc: Support final classes and methods
    * 7384: autodoc: Support signatures defined by ``__new__()``, metaclasses and
    builtin base classes
    * 2106: autodoc: Support multiple signatures on docstring
    * 4422: autodoc: Support GenericAlias in Python 3.7 or above
    * 3610: autodoc: Support overloaded functions
    * 7722: autodoc: Support TypeVar
    * 7466: autosummary: headings in generated documents are not translated
    * 7490: autosummary: Add ``:caption:`` option to autosummary directive to set a
    caption to the toctree
    * 7469: autosummary: Support module attributes
    * 248, 6040: autosummary: Add ``:recursive:`` option to autosummary directive
    to generate stub files recursively
    * 4030: autosummary: Add :confval:`autosummary_context` to add template
    variables for custom templates
    * 7530: html: Support nested &lt;kbd&gt; elements
    * 7481: html theme: Add right margin to footnote/citation labels
    * 7482, 7717: html theme: CSS spacing for code blocks with captions and line
    numbers
    * 7443: html theme: Add new options :confval:`globaltoc_collapse` and
    :confval:`globaltoc_includehidden` to control the behavior of globaltoc in
    sidebar
    * 7484: html theme: Avoid clashes between sidebar and other blocks
    * 7476: html theme: Relbar breadcrumb should contain current page
    * 7506: html theme: A canonical URL is not escaped
    * 7533: html theme: Avoid whitespace at the beginning of genindex.html
    * 7541: html theme: Add a &quot;clearer&quot; at the end of the &quot;body&quot;
    * 7542: html theme: Make admonition/topic/sidebar scrollable
    * 7543: html theme: Add top and bottom margins to tables
    * 7695: html theme: Add viewport meta tag for basic theme
    * 7721: html theme: classic: default codetextcolor/codebgcolor doesn&#39;t override
    Pygments
    * C and C++: allow semicolon in the end of declarations.
    * C++, parse parameterized noexcept specifiers.
    * 7294: C++, parse expressions with user-defined literals.
    * C++, parse trailing return types.
    * 7143: py domain: Add ``:final:`` option to :rst:dir:`py:class:`,
    :rst:dir:`py:exception:` and :rst:dir:`py:method:` directives
    * 7596: py domain: Change a type annotation for variables to a hyperlink
    * 7770: std domain: :rst:dir:`option` directive support arguments in the form
    of ``foo[=bar]``
    * 7582: napoleon: a type for attribute are represented like type annotation
    * 7734: napoleon: overescaped trailing underscore on attribute
    * 7247: linkcheck: Add :confval:`linkcheck_request_headers` to send custom HTTP
    headers for specific host
    * 7792: setuptools: Support ``--verbosity`` option
    * 7683: Add ``allowed_exceptions`` parameter to ``Sphinx.emit()`` to allow
    handlers to raise specified exceptions
    * 7295: C++, parse (trailing) requires clauses.
    
    Bugs fixed
    ----------
    
    * 6703: autodoc: incremental build does not work for imported objects
    * 7564: autodoc: annotations not to be shown for descriptors
    * 6588: autodoc: Decorated inherited method has no documentation
    * 7469: autodoc: The change of autodoc-process-docstring for variables is
    cached unexpectedly
    * 7559: autodoc: misdetects a sync function is async
    * 6857: autodoc: failed to detect a classmethod on Enum class
    * 7562: autodoc: a typehint contains spaces is wrongly rendered under
    autodoc_typehints=&#39;description&#39; mode
    * 7551: autodoc: failed to import nested class
    * 7362: autodoc: does not render correct signatures for built-in functions
    * 7654: autodoc: ``Optional[Union[foo, bar]]`` is presented as
    ``Union[foo, bar, None]``
    * 7629: autodoc: autofunction emits an unfriendly warning if an invalid object
    specified
    * 7650: autodoc: undecorated signature is shown for decorated functions
    * 7676: autodoc: typo in the default value of autodoc_member_order
    * 7676: autodoc: wrong value for :member-order: option is ignored silently
    * 7676: autodoc: member-order=&quot;bysource&quot; does not work for C module
    * 3673: autodoc: member-order=&quot;bysource&quot; does not work for a module having
    __all__
    * 7668: autodoc: wrong retann value is passed to a handler of
    autodoc-proccess-signature
    * 7711: autodoc: fails with ValueError when processing numpy objects
    * 7791: autodoc: TypeError is raised on documenting singledispatch function
    * 7551: autosummary: a nested class is indexed as non-nested class
    * 7661: autosummary: autosummary directive emits warnings twices if failed to
    import the target module
    * 7685: autosummary: The template variable &quot;members&quot; contains imported members
    even if :confval:`autossummary_imported_members` is False
    * 7671: autosummary: The location of import failure warning is missing
    * 7535: sphinx-autogen: crashes when custom template uses inheritance
    * 7536: sphinx-autogen: crashes when template uses i18n feature
    * 7781: sphinx-build: Wrong error message when outdir is not directory
    * 7653: sphinx-quickstart: Fix multiple directory creation for nested relpath
    * 2785: html: Bad alignment of equation links
    * 7718: html theme: some themes does not respect background color of Pygments
    style (agogo, haiku, nature, pyramid, scrolls, sphinxdoc and traditional)
    * 7544: html theme: inconsistent padding in admonitions
    * 7581: napoleon: bad parsing of inline code in attribute docstrings
    * 7628: imgconverter: runs imagemagick once unnecessary for builders not
    supporting images
    * 7610: incorrectly renders consecutive backslashes for docutils-0.16
    * 7646: handle errors on event handlers
    * 4187: LaTeX: EN DASH disappears from PDF bookmarks in Japanese documents
    * 7701: LaTeX: Anonymous indirect hyperlink target causes duplicated labels
    * 7723: LaTeX: pdflatex crashed when URL contains a single quote
    * 7756: py domain: The default value for positional only argument is not shown
    * 7760: coverage: Add :confval:`coverage_show_missing_items` to show coverage
    result to console
    * C++, fix rendering and xrefs in nested names explicitly starting
    in global scope, e.g., ``::A::B``.
    * C, fix rendering and xrefs in nested names explicitly starting
    in global scope, e.g., ``.A.B``.
    * 7763: C and C++, don&#39;t crash during display stringification of unary
    expressions and fold expressions.
    

    3.0.4

    =====================================
    
    Bugs fixed
    ----------
    
    * 7567: autodoc: parametrized types are shown twice for generic types
    * 7637: autodoc: system defined TypeVars are shown in Python 3.9
    * 7696: html: Updated jQuery version from 3.4.1 to 3.5.1 for security reasons
    * 7611: md5 fails when OpenSSL FIPS is enabled
    * 7626: release package does not contain ``CODE_OF_CONDUCT``
    

    3.0.3

    =====================================
    
    Features added
    --------------
    
    * C, parse array declarators with static, qualifiers, and VLA specification.
    
    Bugs fixed
    ----------
    
    * 7516: autodoc: crashes if target object raises an error on accessing
    its attributes
    

    3.0.2

    =====================================
    
    Features added
    --------------
    
    * C, parse attributes and add :confval:`c_id_attributes`
    and :confval:`c_paren_attributes` to support user-defined attributes.
    
    Bugs fixed
    ----------
    
    * 7461: py domain: fails with IndexError for empty tuple in type annotation
    * 7510: py domain: keyword-only arguments are documented as having a default of
    None
    * 7418: std domain: :rst:role:`term` role could not match case-insensitively
    * 7461: autodoc: empty tuple in type annotation is not shown correctly
    * 7479: autodoc: Sphinx builds has been slower since 3.0.0 on mocking
    * C++, fix spacing issue in east-const declarations.
    * 7414: LaTeX: Xindy language options were incorrect
    * sphinx crashes with ImportError on python3.5.1
    

    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=&#39;description&#39;`` doesn&#39;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 &quot;!&quot; 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 &quot;builtin&quot; 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=&#39;class&#39;`` 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 dimensions
    * 7126: autodoc: TypeError: &#39;getset_descriptor&#39; object is not iterable
    

    2.4.0

    =====================================
    
    Deprecated
    ----------
    
    * The ``decode`` argument of ``sphinx.pycode.ModuleAnalyzer()``
    * ``sphinx.directives.other.Index``
    * ``sphinx.environment.temp_data[&#39;gloss_entries&#39;]``
    * ``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) -&gt; str``)
    annotation (python3.8+ or `typed_ast &lt;https://github.com/python/typed_ast&gt;`_
    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 = &quot;description&quot;`` 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=&quot;text/javascript&quot; from &lt;script&gt; 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&#39;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&#39;t crash when using the ``struct`` role in some cases.
    - Don&#39;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 ``&quot;Sphinx/X.Y.Z requests/X.Y.Z
    python/X.Y.Z&quot;``.  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 additional 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&#39; 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 &quot;as is&quot; (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 &quot;sidebar&quot;
    * 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&#39;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
    
    Links
    • PyPI: https://pypi.org/project/sphinx
    • Changelog: https://pyup.io/changelogs/sphinx/
    • Homepage: http://sphinx-doc.org/
    opened by pyup-bot 0
  • Crash on import.

    Crash on import.

    Brief Description

    on Import I get the error "AttributeError: module 'pandas.core.indexing' has no attribute '_NDFrameIndexer'"

    as far as I can tell this is was bound to private method that been removed from pandas

    System Information

    jupyter core : 4.7.1 jupyter-notebook : 6.2.0 qtconsole : not installed ipython : 7.21.0 ipykernel : 5.5.0 jupyter client : 6.1.12 jupyter lab : 3.0.10 nbconvert : 5.6.1

    • Notebook /
    • Python version (required): Python 3.8.5

    Minimally Reproducible Code

    import pandas as pd from pandas.api.types import is_string_dtype, is_numeric_dtype, is_categorical_dtype import dovpanda

    Error Messages

     "AttributeError: module 'pandas.core.indexing' has no attribute '_NDFrameIndexer'"
    
    bug good first issue 
    opened by OrenBochman 2
  • Update flake8 to 3.9.2

    Update flake8 to 3.9.2

    This PR updates flake8 from 3.7.9 to 3.9.2.

    Changelog

    3.9.2

    -------------------
    
    You can view the `3.9.2 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix error message for ``E111`` in ``pycodestyle`` (See also :pull:`1328`,
    :issue:`1327`).
    
    Deprecations
    ~~~~~~~~~~~~
    
    - ``indent_size_str`` is deprecated, use ``str(indent_size)`` instead (See
    also :pull:`1328`, :issue:`1327`).
    
    
    .. all links
    .. _3.9.2 milestone:
     https://github.com/PyCQA/flake8/milestone/40
    

    3.9.1

    -------------------
    
    You can view the `3.9.1 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix codes being ignored by plugins utilizing ``extend_default_ignore`` (See
    also :pull:`1317`)
    
    
    .. all links
    .. _3.9.1 milestone:
     https://github.com/PyCQA/flake8/milestone/38
    

    3.9.0

    -------------------
    
    You can view the `3.9.0 milestone`_ on GitHub for more details.
    
    New Dependency Information
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    - Pyflakes has been updated to &gt;= 2.3.0, &lt; 2.4.0 (See also :issue:`1006`)
    
    - pycodestyle has been updated to &gt;= 2.7.0, &lt; 2.8.0 (See also :issue:`1007`)
    
    Deprecations
    ~~~~~~~~~~~~
    
    - Drop support for python 3.4 (See also :issue:`1283`)
    
    Features
    ~~~~~~~~
    
    - Add ``--no-show-source`` option to disable ``--show-source`` (See also
    :issue:`995`)
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix handling of ``crlf`` line endings when linting stdin (See also
    :issue:`1002`)
    
    
    .. all links
    .. _3.9.0 milestone:
     https://github.com/pycqa/flake8/milestone/37
    

    3.8.4

    -------------------
    
    You can view the `3.8.4 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix multiprocessing errors on platforms without ``sem_open`` syscall.  (See
    also :issue:`1282`)
    
    - Fix skipping of physical checks on the last line of a file which does not
    end in a newline (See also :issue:`997`)
    
    .. all links
    .. _3.8.4 milestone:
     https://github.com/pycqa/flake8/milestone/36
    

    3.8.3

    -------------------
    
    You can view the `3.8.3 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Also catch ``SyntaxError`` when tokenizing (See also :issue:`992`,
    :issue:`747`)
    
    - Fix ``--jobs`` default display in ``flake8 --help`` (See also :issue:`1272`,
    :issue:`750`)
    
    .. all links
    .. _3.8.3 milestone:
     https://github.com/pycqa/flake8/milestone/35
    

    3.8.2

    -------------------
    
    You can view the `3.8.2 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Improve performance by eliminating unnecessary sort (See also :issue:`991`)
    
    - Improve messaging of ``--jobs`` argument by utilizing ``argparse`` (See also
    :issue:`1269`, :issue:`1110`)
    
    - Fix file configuration options to be relative to the config passed on the
    command line (See also :issue:`442`, :issue:`736`)
    
    - Fix incorrect handling of ``--extend-exclude`` by treating its values as
    files (See also :issue:`1271`, :issue:`738`)
    
    .. all links
    .. _3.8.2 milestone:
     https://github.com/pycqa/flake8/milestone/34
    

    3.8.1

    -------------------
    
    You can view the `3.8.1 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix ``--output-file`` (regression in 3.8.0) (See also :issue:`990`,
    :issue:`725`)
    
    
    .. all links
    .. _3.8.1 milestone:
     https://github.com/pycqa/flake8/milestone/33
    

    3.8.0

    -------------------
    
    You can view the `3.8.0 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix logical checks which report positions out of bounds (See also
    :issue:`987`, :issue:`723`)
    
    - Fix ``--exclude=.*`` accidentally matching ``.`` and ``..`` (See also
    :issue:`441`, :issue:`360`)
    
    Deprecations
    ~~~~~~~~~~~~
    
    - Add deprecation message for vcs hooks (See also :issue:`985`,
    :issue:`296`)
    

    3.8.0a2

    ---------------------
    
    You can view the `3.8.0 milestone`_ on GitHub for more details.
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix ``type=&quot;str&quot;`` optparse options (See also :issue:`984`)
    

    3.8.0a1

    ---------------------
    
    You can view the `3.8.0 milestone`_ on GitHub for more details.
    
    New Dependency Information
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    - Remove dependency on ``entrypoints`` and add dependency on
    ``importlib-metadata`` (only for ``python&lt;3.8``) (See also :issue:`1297`,
    :issue:`297`)
    
    - Pyflakes has been updated to &gt;= 2.2.0, &lt; 2.3.0 (See also :issue:`982`)
    
    - pycodestyle has been updated to &gt;= 2.6.0a1, &lt; 2.7.0 (See also :issue:`983`)
    
    Features
    ~~~~~~~~
    
    - Add ``--extend-exclude`` option to add to ``--exclude`` without overwriting
    (See also :issue:`1211`, :issue:`1091`)
    
    - Move argument parsing from ``optparse`` to ``argparse`` (See also
    :issue:`939`
    
    - Group plugin options in ``--help`` (See also :issue:`1219`, :issue:`294`)
    
    - Remove parsing of ``verbose`` from configuration files as it was not
    consistently applied (See also :issue:`1245`, :issue:`245`)
    
    - Remove parsing of ``output_file`` from configuration files as it was not
    consistently applied (See also :issue:`1246`)
    
    - Resolve configuration files relative to ``cwd`` instead of common prefix of
    passed filenames.  You may need to change ``flake8 subproject`` to
    ``cd subproject &amp;&amp; flake8 .`` (See also :issue:`952`)
    
    - Officially support python3.8 (See also :issue:`963`)
    
    - ``--disable-noqa`` now also disables `` flake8: noqa`` (See also
    :issue:`1296`, :issue:`318`)
    
    - Ensure that a missing file produces a ``E902`` error (See also :issue:`1262`,
    :issue:`328`)
    
    - `` noqa`` comments now apply to all of the lines in an explicit ``\``
    continuation or in a line continued by a multi-line string (See also
    :issue:`1266`, :issue:`621`)
    
    Bugs Fixed
    ~~~~~~~~~~
    
    - Fix ``--exclude=./t.py`` to only match ``t.py`` at the top level (See also
    :issue:`1208`, :issue:`628`)
    
    - Fix ``--show-source`` when a file is indented with tabs (See also
    :issue:`1218`, :issue:`719`)
    
    - Fix crash when ``--max-line-length`` is given a non-integer (See also
    :issue:`939`, :issue:`704`)
    
    - Prevent flip-flopping of ``indent_char`` causing extra ``E101`` errors (See
    also :issue:`949`, `pycodestyle886`_)
    
    - Only enable multiprocessing when the method is ``fork`` fixing issues
    on macos with python3.8+ (See also :issue:`955`, :issue:`315`) (note: this
    fix also landed in 3.7.9)
    
    - ``noqa`` is now only handled by flake8 fixing specific-noqa.  Plugins
    requesting this parameter will always receive ``False`` (See also
    :issue:`1214`, :issue:`1104`)
    
    - Fix duplicate loading of plugins when invoked via ``python -m flake8`` (See
    also :issue:`1297`)
    
    - Fix early exit when ``--exit-zero`` and ``--diff`` are provided and the diff
    is empty (See also :issue:`970`)
    
    - Consistently split lines when ``\f`` is present when reading from stdin (See
    also :issue:`976`, :issue:`202`)
    
    Deprecations
    ~~~~~~~~~~~~
    
    - ``python setup.py flake8`` (setuptools integration) is now deprecated and
    will be removed in a future version (See also :issue:`935`, :issue:`1098`)
    
    - ``type=&#39;string&#39;`` (optparse) types are deprecated, use
    ``type=callable`` (argparse) instead.  Support for ``type=&#39;string&#39;`` will
    be removed in a future version (See also :issue:`939`)
    
    - ``%default`` in plugin option help text is deprecated, use ``%(default)s``
    instead.  Support for ``%default`` will be removed in a future version (See
    also :issue:`939`)
    
    - optparse-style ``action=&#39;callback&#39;`` setting for options is deprecated, use
    argparse action classes instead.  This will be removed in a future version
    (See also :issue:`939`)
    
    
    .. all links
    .. _3.8.0 milestone:
     https://github.com/pycqa/flake8/milestone/31
    
    .. issue links
    .. _pycodestyle886:
    https://github.com/PyCQA/pycodestyle/issues/886
    
    Links
    • PyPI: https://pypi.org/project/flake8
    • Changelog: https://pyup.io/changelogs/flake8/
    • Repo: https://gitlab.com/pycqa/flake8
    opened by pyup-bot 0
  • Update pytest to 6.2.4

    Update pytest to 6.2.4

    This PR updates pytest from 5.3.1 to 6.2.4.

    Changelog

    6.2.4

    =========================
    
    Bug Fixes
    ---------
    
    - `8539 &lt;https://github.com/pytest-dev/pytest/issues/8539&gt;`_: Fixed assertion rewriting on Python 3.10.
    

    6.2.3

    =========================
    
    Bug Fixes
    ---------
    
    - `8414 &lt;https://github.com/pytest-dev/pytest/issues/8414&gt;`_: pytest used to create directories under ``/tmp`` with world-readable
    permissions. This means that any user in the system was able to read
    information written by tests in temporary directories (such as those created by
    the ``tmp_path``/``tmpdir`` fixture). Now the directories are created with
    private permissions.
    
    pytest used to silenty use a pre-existing ``/tmp/pytest-of-&lt;username&gt;`` directory,
    even if owned by another user. This means another user could pre-create such a
    directory and gain control of another user&#39;s temporary directory. Now such a
    condition results in an error.
    

    6.2.2

    =========================
    
    Bug Fixes
    ---------
    
    - `8152 &lt;https://github.com/pytest-dev/pytest/issues/8152&gt;`_: Fixed &quot;(&lt;Skipped instance&gt;)&quot; being shown as a skip reason in the verbose test summary line when the reason is empty.
    
    
    - `8249 &lt;https://github.com/pytest-dev/pytest/issues/8249&gt;`_: Fix the ``faulthandler`` plugin for occasions when running with ``twisted.logger`` and using ``pytest --capture=no``.
    

    6.2.1

    =========================
    
    Bug Fixes
    ---------
    
    - `7678 &lt;https://github.com/pytest-dev/pytest/issues/7678&gt;`_: Fixed bug where ``ImportPathMismatchError`` would be raised for files compiled in
    the host and loaded later from an UNC mounted path (Windows).
    
    
    - `8132 &lt;https://github.com/pytest-dev/pytest/issues/8132&gt;`_: Fixed regression in ``approx``: in 6.2.0 ``approx`` no longer raises
    ``TypeError`` when dealing with non-numeric types, falling back to normal comparison.
    Before 6.2.0, array types like tf.DeviceArray fell through to the scalar case,
    and happened to compare correctly to a scalar if they had only one element.
    After 6.2.0, these types began failing, because they inherited neither from
    standard Python number hierarchy nor from ``numpy.ndarray``.
    
    ``approx`` now converts arguments to ``numpy.ndarray`` if they expose the array
    protocol and are not scalars. This treats array-like objects like numpy arrays,
    regardless of size.
    

    6.2.0

    =========================
    
    Breaking Changes
    ----------------
    
    - `7808 &lt;https://github.com/pytest-dev/pytest/issues/7808&gt;`_: pytest now supports python3.6+ only.
    
    
    
    Deprecations
    ------------
    
    - `7469 &lt;https://github.com/pytest-dev/pytest/issues/7469&gt;`_: Directly constructing/calling the following classes/functions is now deprecated:
    
    - ``_pytest.cacheprovider.Cache``
    - ``_pytest.cacheprovider.Cache.for_config()``
    - ``_pytest.cacheprovider.Cache.clear_cache()``
    - ``_pytest.cacheprovider.Cache.cache_dir_from_config()``
    - ``_pytest.capture.CaptureFixture``
    - ``_pytest.fixtures.FixtureRequest``
    - ``_pytest.fixtures.SubRequest``
    - ``_pytest.logging.LogCaptureFixture``
    - ``_pytest.pytester.Pytester``
    - ``_pytest.pytester.Testdir``
    - ``_pytest.recwarn.WarningsRecorder``
    - ``_pytest.recwarn.WarningsChecker``
    - ``_pytest.tmpdir.TempPathFactory``
    - ``_pytest.tmpdir.TempdirFactory``
    
    These have always been considered private, but now issue a deprecation warning, which may become a hard error in pytest 7.0.0.
    
    
    - `7530 &lt;https://github.com/pytest-dev/pytest/issues/7530&gt;`_: The ``--strict`` command-line option has been deprecated, use ``--strict-markers`` instead.
    
    We have plans to maybe in the future to reintroduce ``--strict`` and make it an encompassing flag for all strictness
    related options (``--strict-markers`` and ``--strict-config`` at the moment, more might be introduced in the future).
    
    
    - `7988 &lt;https://github.com/pytest-dev/pytest/issues/7988&gt;`_: The ``pytest.yield_fixture`` decorator/function is now deprecated. Use :func:`pytest.fixture` instead.
    
    ``yield_fixture`` has been an alias for ``fixture`` for a very long time, so can be search/replaced safely.
    
    
    
    Features
    --------
    
    - `5299 &lt;https://github.com/pytest-dev/pytest/issues/5299&gt;`_: pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python&gt;=3.8.
    See :ref:`unraisable` for more information.
    
    
    - `7425 &lt;https://github.com/pytest-dev/pytest/issues/7425&gt;`_: New :fixture:`pytester` fixture, which is identical to :fixture:`testdir` but its methods return :class:`pathlib.Path` when appropriate instead of ``py.path.local``.
    
    This is part of the movement to use :class:`pathlib.Path` objects internally, in order to remove the dependency to ``py`` in the future.
    
    Internally, the old :class:`Testdir &lt;_pytest.pytester.Testdir&gt;` is now a thin wrapper around :class:`Pytester &lt;_pytest.pytester.Pytester&gt;`, preserving the old interface.
    
    
    - `7695 &lt;https://github.com/pytest-dev/pytest/issues/7695&gt;`_: A new hook was added, `pytest_markeval_namespace` which should return a dictionary.
    This dictionary will be used to augment the &quot;global&quot; variables available to evaluate skipif/xfail/xpass markers.
    
    Pseudo example
    
    ``conftest.py``:
    
    .. code-block:: python
    
      def pytest_markeval_namespace():
          return {&quot;color&quot;: &quot;red&quot;}
    
    ``test_func.py``:
    
    .. code-block:: python
    
      pytest.mark.skipif(&quot;color == &#39;blue&#39;&quot;, reason=&quot;Color is not red&quot;)
      def test_func():
          assert False
    
    
    - `8006 &lt;https://github.com/pytest-dev/pytest/issues/8006&gt;`_: It is now possible to construct a :class:`~pytest.MonkeyPatch` object directly as ``pytest.MonkeyPatch()``,
    in cases when the :fixture:`monkeypatch` fixture cannot be used. Previously some users imported it
    from the private `_pytest.monkeypatch.MonkeyPatch` namespace.
    
    Additionally, :meth:`MonkeyPatch.context &lt;pytest.MonkeyPatch.context&gt;` is now a classmethod,
    and can be used as ``with MonkeyPatch.context() as mp: ...``. This is the recommended way to use
    ``MonkeyPatch`` directly, since unlike the ``monkeypatch`` fixture, an instance created directly
    is not ``undo()``-ed automatically.
    
    
    
    Improvements
    ------------
    
    - `1265 &lt;https://github.com/pytest-dev/pytest/issues/1265&gt;`_: Added an ``__str__`` implementation to the :class:`~pytest.pytester.LineMatcher` class which is returned from ``pytester.run_pytest().stdout`` and similar. It returns the entire output, like the existing ``str()`` method.
    
    
    - `2044 &lt;https://github.com/pytest-dev/pytest/issues/2044&gt;`_: Verbose mode now shows the reason that a test was skipped in the test&#39;s terminal line after the &quot;SKIPPED&quot;, &quot;XFAIL&quot; or &quot;XPASS&quot;.
    
    
    - `7469 &lt;https://github.com/pytest-dev/pytest/issues/7469&gt;`_ The types of builtin pytest fixtures are now exported so they may be used in type annotations of test functions.
    The newly-exported types are:
    
    - ``pytest.FixtureRequest`` for the :fixture:`request` fixture.
    - ``pytest.Cache`` for the :fixture:`cache` fixture.
    - ``pytest.CaptureFixture[str]`` for the :fixture:`capfd` and :fixture:`capsys` fixtures.
    - ``pytest.CaptureFixture[bytes]`` for the :fixture:`capfdbinary` and :fixture:`capsysbinary` fixtures.
    - ``pytest.LogCaptureFixture`` for the :fixture:`caplog` fixture.
    - ``pytest.Pytester`` for the :fixture:`pytester` fixture.
    - ``pytest.Testdir`` for the :fixture:`testdir` fixture.
    - ``pytest.TempdirFactory`` for the :fixture:`tmpdir_factory` fixture.
    - ``pytest.TempPathFactory`` for the :fixture:`tmp_path_factory` fixture.
    - ``pytest.MonkeyPatch`` for the :fixture:`monkeypatch` fixture.
    - ``pytest.WarningsRecorder`` for the :fixture:`recwarn` fixture.
    
    Constructing them is not supported (except for `MonkeyPatch`); they are only meant for use in type annotations.
    Doing so will emit a deprecation warning, and may become a hard-error in pytest 7.0.
    
    Subclassing them is also not supported. This is not currently enforced at runtime, but is detected by type-checkers such as mypy.
    
    
    - `7527 &lt;https://github.com/pytest-dev/pytest/issues/7527&gt;`_: When a comparison between :func:`namedtuple &lt;collections.namedtuple&gt;` instances of the same type fails, pytest now shows the differing field names (possibly nested) instead of their indexes.
    
    
    - `7615 &lt;https://github.com/pytest-dev/pytest/issues/7615&gt;`_: :meth:`Node.warn &lt;_pytest.nodes.Node.warn&gt;` now permits any subclass of :class:`Warning`, not just :class:`PytestWarning &lt;pytest.PytestWarning&gt;`.
    
    
    - `7701 &lt;https://github.com/pytest-dev/pytest/issues/7701&gt;`_: Improved reporting when using ``--collected-only``. It will now show the number of collected tests in the summary stats.
    
    
    - `7710 &lt;https://github.com/pytest-dev/pytest/issues/7710&gt;`_: Use strict equality comparison for non-numeric types in :func:`pytest.approx` instead of
    raising :class:`TypeError`.
    
    This was the undocumented behavior before 3.7, but is now officially a supported feature.
    
    
    - `7938 &lt;https://github.com/pytest-dev/pytest/issues/7938&gt;`_: New ``--sw-skip`` argument which is a shorthand for ``--stepwise-skip``.
    
    
    - `8023 &lt;https://github.com/pytest-dev/pytest/issues/8023&gt;`_: Added ``&#39;node_modules&#39;`` to default value for :confval:`norecursedirs`.
    
    
    - `8032 &lt;https://github.com/pytest-dev/pytest/issues/8032&gt;`_: :meth:`doClassCleanups &lt;unittest.TestCase.doClassCleanups&gt;` (introduced in :mod:`unittest` in Python and 3.8) is now called appropriately.
    
    
    
    Bug Fixes
    ---------
    
    - `4824 &lt;https://github.com/pytest-dev/pytest/issues/4824&gt;`_: Fixed quadratic behavior and improved performance of collection of items using autouse fixtures and xunit fixtures.
    
    
    - `7758 &lt;https://github.com/pytest-dev/pytest/issues/7758&gt;`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0.
    
    
    - `7911 &lt;https://github.com/pytest-dev/pytest/issues/7911&gt;`_: Directories created by by :fixture:`tmp_path` and :fixture:`tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites.
    
    
    - `7913 &lt;https://github.com/pytest-dev/pytest/issues/7913&gt;`_: Fixed a crash or hang in :meth:`pytester.spawn &lt;_pytest.pytester.Pytester.spawn&gt;` when the :mod:`readline` module is involved.
    
    
    - `7951 &lt;https://github.com/pytest-dev/pytest/issues/7951&gt;`_: Fixed handling of recursive symlinks when collecting tests.
    
    
    - `7981 &lt;https://github.com/pytest-dev/pytest/issues/7981&gt;`_: Fixed symlinked directories not being followed during collection. Regressed in pytest 6.1.0.
    
    
    - `8016 &lt;https://github.com/pytest-dev/pytest/issues/8016&gt;`_: Fixed only one doctest being collected when using ``pytest --doctest-modules path/to/an/__init__.py``.
    
    
    
    Improved Documentation
    ----------------------
    
    - `7429 &lt;https://github.com/pytest-dev/pytest/issues/7429&gt;`_: Add more information and use cases about skipping doctests.
    
    
    - `7780 &lt;https://github.com/pytest-dev/pytest/issues/7780&gt;`_: Classes which should not be inherited from are now marked ``final class`` in the API reference.
    
    
    - `7872 &lt;https://github.com/pytest-dev/pytest/issues/7872&gt;`_: ``_pytest.config.argparsing.Parser.addini()`` accepts explicit ``None`` and ``&quot;string&quot;``.
    
    
    - `7878 &lt;https://github.com/pytest-dev/pytest/issues/7878&gt;`_: In pull request section, ask to commit after editing changelog and authors file.
    
    
    
    Trivial/Internal Changes
    ------------------------
    
    - `7802 &lt;https://github.com/pytest-dev/pytest/issues/7802&gt;`_: The ``attrs`` dependency requirement is now &gt;=19.2.0 instead of &gt;=17.4.0.
    
    
    - `8014 &lt;https://github.com/pytest-dev/pytest/issues/8014&gt;`_: `.pyc` files created by pytest&#39;s assertion rewriting now conform to the newer PEP-552 format on Python&gt;=3.7.
    (These files are internal and only interpreted by pytest itself.)
    

    6.1.2

    =========================
    
    Bug Fixes
    ---------
    
    - `7758 &lt;https://github.com/pytest-dev/pytest/issues/7758&gt;`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0.
    
    
    - `7911 &lt;https://github.com/pytest-dev/pytest/issues/7911&gt;`_: Directories created by `tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites.
    
    
    
    Improved Documentation
    ----------------------
    
    - `7815 &lt;https://github.com/pytest-dev/pytest/issues/7815&gt;`_: Improve deprecation warning message for ``pytest._fillfuncargs()``.
    

    6.1.1

    =========================
    
    Bug Fixes
    ---------
    
    - `7807 &lt;https://github.com/pytest-dev/pytest/issues/7807&gt;`_: Fixed regression in pytest 6.1.0 causing incorrect rootdir to be determined in some non-trivial cases where parent directories have config files as well.
    
    
    - `7814 &lt;https://github.com/pytest-dev/pytest/issues/7814&gt;`_: Fixed crash in header reporting when :confval:`testpaths` is used and contains absolute paths (regression in 6.1.0).
    

    6.1.0

    =========================
    
    Breaking Changes
    ----------------
    
    - `5585 &lt;https://github.com/pytest-dev/pytest/issues/5585&gt;`_: As per our policy, the following features which have been deprecated in the 5.X series are now
    removed:
    
    * The ``funcargnames`` read-only property of ``FixtureRequest``, ``Metafunc``, and ``Function`` classes. Use ``fixturenames`` attribute.
    
    * ``pytest.fixture`` no longer supports positional arguments, pass all arguments by keyword instead.
    
    * Direct construction of ``Node`` subclasses now raise an error, use ``from_parent`` instead.
    
    * The default value for ``junit_family`` has changed to ``xunit2``. If you require the old format, add ``junit_family=xunit1`` to your configuration file.
    
    * The ``TerminalReporter`` no longer has a ``writer`` attribute. Plugin authors may use the public functions of the ``TerminalReporter`` instead of accessing the ``TerminalWriter`` object directly.
    
    * The ``--result-log`` option has been removed. Users are recommended to use the `pytest-reportlog &lt;https://github.com/pytest-dev/pytest-reportlog&gt;`__ plugin instead.
    
    
    For more information consult
    `Deprecations and Removals &lt;https://docs.pytest.org/en/stable/deprecations.html&gt;`__ in the docs.
    
    
    
    Deprecations
    ------------
    
    - `6981 &lt;https://github.com/pytest-dev/pytest/issues/6981&gt;`_: The ``pytest.collect`` module is deprecated: all its names can be imported from ``pytest`` directly.
    
    
    - `7097 &lt;https://github.com/pytest-dev/pytest/issues/7097&gt;`_: The ``pytest._fillfuncargs`` function is deprecated. This function was kept
    for backward compatibility with an older plugin.
    
    It&#39;s functionality is not meant to be used directly, but if you must replace
    it, use `function._request._fillfixtures()` instead, though note this is not
    a public API and may break in the future.
    
    
    - `7210 &lt;https://github.com/pytest-dev/pytest/issues/7210&gt;`_: The special ``-k &#39;-expr&#39;`` syntax to ``-k`` is deprecated. Use ``-k &#39;not expr&#39;``
    instead.
    
    The special ``-k &#39;expr:&#39;`` syntax to ``-k`` is deprecated. Please open an issue
    if you use this and want a replacement.
    
    
    - `7255 &lt;https://github.com/pytest-dev/pytest/issues/7255&gt;`_: The :func:`pytest_warning_captured &lt;_pytest.hookspec.pytest_warning_captured&gt;` hook is deprecated in favor
    of :func:`pytest_warning_recorded &lt;_pytest.hookspec.pytest_warning_recorded&gt;`, and will be removed in a future version.
    
    
    - `7648 &lt;https://github.com/pytest-dev/pytest/issues/7648&gt;`_: The ``gethookproxy()`` and ``isinitpath()`` methods of ``FSCollector`` and ``Package`` are deprecated;
    use ``self.session.gethookproxy()`` and ``self.session.isinitpath()`` instead.
    This should work on all pytest versions.
    
    
    
    Features
    --------
    
    - `7667 &lt;https://github.com/pytest-dev/pytest/issues/7667&gt;`_: New ``--durations-min`` command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by ``--durations``. Previously this was hard-coded to ``0.005s``.
    
    
    
    Improvements
    ------------
    
    - `6681 &lt;https://github.com/pytest-dev/pytest/issues/6681&gt;`_: Internal pytest warnings issued during the early stages of initialization are now properly handled and can filtered through :confval:`filterwarnings` or ``--pythonwarnings/-W``.
    
    This also fixes a number of long standing issues: `2891 &lt;https://github.com/pytest-dev/pytest/issues/2891&gt;`__, `#7620 &lt;https://github.com/pytest-dev/pytest/issues/7620&gt;`__, `#7426 &lt;https://github.com/pytest-dev/pytest/issues/7426&gt;`__.
    
    
    - `7572 &lt;https://github.com/pytest-dev/pytest/issues/7572&gt;`_: When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace.
    
    
    - `7685 &lt;https://github.com/pytest-dev/pytest/issues/7685&gt;`_: Added two new attributes :attr:`rootpath &lt;_pytest.config.Config.rootpath&gt;` and :attr:`inipath &lt;_pytest.config.Config.inipath&gt;` to :class:`Config &lt;_pytest.config.Config&gt;`.
    These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir &lt;_pytest.config.Config.rootdir&gt;` and :attr:`inifile &lt;_pytest.config.Config.inifile&gt;` attributes,
    and should be preferred over them when possible.
    
    
    - `7780 &lt;https://github.com/pytest-dev/pytest/issues/7780&gt;`_: Public classes which are not designed to be inherited from are now marked `final &lt;https://docs.python.org/3/library/typing.html#typing.final&gt;`_.
    Code which inherits from these classes will trigger a type-checking (e.g. mypy) error, but will still work in runtime.
    Currently the ``final`` designation does not appear in the API Reference but hopefully will in the future.
    
    
    
    Bug Fixes
    ---------
    
    - `1953 &lt;https://github.com/pytest-dev/pytest/issues/1953&gt;`_: Fixed error when overwriting a parametrized fixture, while also reusing the super fixture value.
    
    .. code-block:: python
    
        conftest.py
       import pytest
    
    
       pytest.fixture(params=[1, 2])
       def foo(request):
           return request.param
    
    
        test_foo.py
       import pytest
    
    
       pytest.fixture
       def foo(foo):
           return foo * 2
    
    
    - `4984 &lt;https://github.com/pytest-dev/pytest/issues/4984&gt;`_: Fixed an internal error crash with ``IndexError: list index out of range`` when
    collecting a module which starts with a decorated function, the decorator
    raises, and assertion rewriting is enabled.
    
    
    - `7591 &lt;https://github.com/pytest-dev/pytest/issues/7591&gt;`_: pylint shouldn&#39;t complain anymore about unimplemented abstract methods when inheriting from :ref:`File &lt;non-python tests&gt;`.
    
    
    - `7628 &lt;https://github.com/pytest-dev/pytest/issues/7628&gt;`_: Fixed test collection when a full path without a drive letter was passed to pytest on Windows (for example ``\projects\tests\test.py`` instead of ``c:\projects\tests\pytest.py``).
    
    
    - `7638 &lt;https://github.com/pytest-dev/pytest/issues/7638&gt;`_: Fix handling of command-line options that appear as paths but trigger an OS-level syntax error on Windows, such as the options used internally by ``pytest-xdist``.
    
    
    - `7742 &lt;https://github.com/pytest-dev/pytest/issues/7742&gt;`_: Fixed INTERNALERROR when accessing locals / globals with faulty ``exec``.
    
    
    
    Improved Documentation
    ----------------------
    
    - `1477 &lt;https://github.com/pytest-dev/pytest/issues/1477&gt;`_: Removed faq.rst and its reference in contents.rst.
    
    
    
    Trivial/Internal Changes
    ------------------------
    
    - `7536 &lt;https://github.com/pytest-dev/pytest/issues/7536&gt;`_: The internal ``junitxml`` plugin has rewritten to use ``xml.etree.ElementTree``.
    The order of attributes in XML elements might differ. Some unneeded escaping is
    no longer performed.
    
    
    - `7587 &lt;https://github.com/pytest-dev/pytest/issues/7587&gt;`_: The dependency on the ``more-itertools`` package has been removed.
    
    
    - `7631 &lt;https://github.com/pytest-dev/pytest/issues/7631&gt;`_: The result type of :meth:`capfd.readouterr() &lt;_pytest.capture.CaptureFixture.readouterr&gt;` (and similar) is no longer a namedtuple,
    but should behave like one in all respects. This was done for technical reasons.
    
    
    - `7671 &lt;https://github.com/pytest-dev/pytest/issues/7671&gt;`_: When collecting tests, pytest finds test classes and functions by examining the
    attributes of python objects (modules, classes and instances). To speed up this
    process, pytest now ignores builtin attributes (like ``__class__``,
    ``__delattr__`` and ``__new__``) without consulting the :confval:`python_classes` and
    :confval:`python_functions` configuration options and without passing them to plugins
    using the :func:`pytest_pycollect_makeitem &lt;_pytest.hookspec.pytest_pycollect_makeitem&gt;` hook.
    

    6.0.2

    =========================
    
    Bug Fixes
    ---------
    
    - `7148 &lt;https://github.com/pytest-dev/pytest/issues/7148&gt;`_: Fixed ``--log-cli`` potentially causing unrelated ``print`` output to be swallowed.
    
    
    - `7672 &lt;https://github.com/pytest-dev/pytest/issues/7672&gt;`_: Fixed log-capturing level restored incorrectly if ``caplog.set_level`` is called more than once.
    
    
    - `7686 &lt;https://github.com/pytest-dev/pytest/issues/7686&gt;`_: Fixed `NotSetType.token` being used as the parameter ID when the parametrization list is empty.
    Regressed in pytest 6.0.0.
    
    
    - `7707 &lt;https://github.com/pytest-dev/pytest/issues/7707&gt;`_: Fix internal error when handling some exceptions that contain multiple lines or the style uses multiple lines (``--tb=line`` for example).
    

    6.0.1

    =========================
    
    Bug Fixes
    ---------
    
    - `7394 &lt;https://github.com/pytest-dev/pytest/issues/7394&gt;`_: Passing an empty ``help`` value to ``Parser.add_option`` is now accepted instead of crashing when running ``pytest --help``.
    Passing ``None`` raises a more informative ``TypeError``.
    
    
    - `7558 &lt;https://github.com/pytest-dev/pytest/issues/7558&gt;`_: Fix pylint ``not-callable`` lint on ``pytest.mark.parametrize()`` and the other builtin marks:
    ``skip``, ``skipif``, ``xfail``, ``usefixtures``, ``filterwarnings``.
    
    
    - `7559 &lt;https://github.com/pytest-dev/pytest/issues/7559&gt;`_: Fix regression in plugins using ``TestReport.longreprtext`` (such as ``pytest-html``) when ``TestReport.longrepr`` is not a string.
    
    
    - `7569 &lt;https://github.com/pytest-dev/pytest/issues/7569&gt;`_: Fix logging capture handler&#39;s level not reset on teardown after a call to ``caplog.set_level()``.
    

    6.0.0

    =========================
    
    (**Please see the full set of changes for this release also in the 6.0.0rc1 notes below**)
    
    Breaking Changes
    ----------------
    
    - `5584 &lt;https://github.com/pytest-dev/pytest/issues/5584&gt;`_: **PytestDeprecationWarning are now errors by default.**
    
    Following our plan to remove deprecated features with as little disruption as
    possible, all warnings of type ``PytestDeprecationWarning`` now generate errors
    instead of warning messages.
    
    **The affected features will be effectively removed in pytest 6.1**, so please consult the
    `Deprecations and Removals &lt;https://docs.pytest.org/en/latest/deprecations.html&gt;`__
    section in the docs for directions on how to update existing code.
    
    In the pytest ``6.0.X`` series, it is possible to change the errors back into warnings as a
    stopgap measure by adding this to your ``pytest.ini`` file:
    
    .. code-block:: ini
    
       [pytest]
       filterwarnings =
           ignore::pytest.PytestDeprecationWarning
    
    But this will stop working when pytest ``6.1`` is released.
    
    **If you have concerns** about the removal of a specific feature, please add a
    comment to `5584 &lt;https://github.com/pytest-dev/pytest/issues/5584&gt;`__.
    
    
    - `7472 &lt;https://github.com/pytest-dev/pytest/issues/7472&gt;`_: The ``exec_()`` and ``is_true()`` methods of ``_pytest._code.Frame`` have been removed.
    
    
    
    Features
    --------
    
    - `7464 &lt;https://github.com/pytest-dev/pytest/issues/7464&gt;`_: Added support for :envvar:`NO_COLOR` and :envvar:`FORCE_COLOR` environment variables to control colored output.
    
    
    
    Improvements
    ------------
    
    - `7467 &lt;https://github.com/pytest-dev/pytest/issues/7467&gt;`_: ``--log-file`` CLI option and ``log_file`` ini marker now create subdirectories if needed.
    
    
    - `7489 &lt;https://github.com/pytest-dev/pytest/issues/7489&gt;`_: The :func:`pytest.raises` function has a clearer error message when ``match`` equals the obtained string but is not a regex match. In this case it is suggested to escape the regex.
    
    
    
    Bug Fixes
    ---------
    
    - `7392 &lt;https://github.com/pytest-dev/pytest/issues/7392&gt;`_: Fix the reported location of tests skipped with ``pytest.mark.skip`` when ``--runxfail`` is used.
    
    
    - `7491 &lt;https://github.com/pytest-dev/pytest/issues/7491&gt;`_: :fixture:`tmpdir` and :fixture:`tmp_path` no longer raise an error if the lock to check for
    stale temporary directories is not accessible.
    
    
    - `7517 &lt;https://github.com/pytest-dev/pytest/issues/7517&gt;`_: Preserve line endings when captured via ``capfd``.
    
    
    - `7534 &lt;https://github.com/pytest-dev/pytest/issues/7534&gt;`_: Restored the previous formatting of ``TracebackEntry.__str__`` which was changed by accident.
    
    
    
    Improved Documentation
    ----------------------
    
    - `7422 &lt;https://github.com/pytest-dev/pytest/issues/7422&gt;`_: Clarified when the ``usefixtures`` mark can apply fixtures to test.
    
    
    - `7441 &lt;https://github.com/pytest-dev/pytest/issues/7441&gt;`_: Add a note about ``-q`` option used in getting started guide.
    
    
    
    Trivial/Internal Changes
    ------------------------
    
    - `7389 &lt;https://github.com/pytest-dev/pytest/issues/7389&gt;`_: Fixture scope ``package`` is no longer considered experimental.
    

    6.0.0rc1

    ============================
    
    Breaking Changes
    ----------------
    
    - `1316 &lt;https://github.com/pytest-dev/pytest/issues/1316&gt;`_: ``TestReport.longrepr`` is now always an instance of ``ReprExceptionInfo``. Previously it was a ``str`` when a test failed with ``pytest.fail(..., pytrace=False)``.
    
    
    - `5965 &lt;https://github.com/pytest-dev/pytest/issues/5965&gt;`_: symlinks are no longer resolved during collection and matching `conftest.py` files with test file paths.
    
    Resolving symlinks for the current directory and during collection was introduced as a bugfix in 3.9.0, but it actually is a new feature which had unfortunate consequences in Windows and surprising results in other platforms.
    
    The team decided to step back on resolving symlinks at all, planning to review this in the future with a more solid solution (see discussion in
    `6523 &lt;https://github.com/pytest-dev/pytest/pull/6523&gt;`__ for details).
    
    This might break test suites which made use of this feature; the fix is to create a symlink
    for the entire test tree, and not only to partial files/tress as it was possible previously.
    
    
    - `6505 &lt;https://github.com/pytest-dev/pytest/issues/6505&gt;`_: ``Testdir.run().parseoutcomes()`` now always returns the parsed nouns in plural form.
    
    Originally ``parseoutcomes()`` would always returns the nouns in plural form, but a change
    meant to improve the terminal summary by using singular form single items (``1 warning`` or ``1 error``)
    caused an unintended regression by changing the keys returned by ``parseoutcomes()``.
    
    Now the API guarantees to always return the plural form, so calls like this:
    
    .. code-block:: python
    
       result = testdir.runpytest()
       result.assert_outcomes(error=1)
    
    Need to be changed to:
    
    
    .. code-block:: python
    
       result = testdir.runpytest()
       result.assert_outcomes(errors=1)
    
    
    - `6903 &lt;https://github.com/pytest-dev/pytest/issues/6903&gt;`_: The ``os.dup()`` function is now assumed to exist. We are not aware of any
    supported Python 3 implementations which do not provide it.
    
    
    - `7040 &lt;https://github.com/pytest-dev/pytest/issues/7040&gt;`_: ``-k`` no longer matches against the names of the directories outside the test session root.
    
    Also, ``pytest.Package.name`` is now just the name of the directory containing the package&#39;s
    ``__init__.py`` file, instead of the full path. This is consistent with how the other nodes
    are named, and also one of the reasons why ``-k`` would match against any directory containing
    the test suite.
    
    
    - `7122 &lt;https://github.com/pytest-dev/pytest/issues/7122&gt;`_: Expressions given to the ``-m`` and ``-k`` options are no longer evaluated using Python&#39;s :func:`eval`.
    The format supports ``or``, ``and``, ``not``, parenthesis and general identifiers to match against.
    Python constants, keywords or other operators are no longer evaluated differently.
    
    
    - `7135 &lt;https://github.com/pytest-dev/pytest/issues/7135&gt;`_: Pytest now uses its own ``TerminalWriter`` class instead of using the one from the ``py`` library.
    Plugins generally access this class through ``TerminalReporter.writer``, ``TerminalReporter.write()``
    (and similar methods), or ``_pytest.config.create_terminal_writer()``.
    
    The following breaking changes were made:
    
    - Output (``write()`` method and others) no longer flush implicitly; the flushing behavior
     of the underlying file is respected. To flush explicitly (for example, if you
     want output to be shown before an end-of-line is printed), use ``write(flush=True)`` or
     ``terminal_writer.flush()``.
    - Explicit Windows console support was removed, delegated to the colorama library.
    - Support for writing ``bytes`` was removed.
    - The ``reline`` method and ``chars_on_current_line`` property were removed.
    - The ``stringio`` and ``encoding`` arguments was removed.
    - Support for passing a callable instead of a file was removed.
    
    
    - `7224 &lt;https://github.com/pytest-dev/pytest/issues/7224&gt;`_: The `item.catch_log_handler` and `item.catch_log_handlers` attributes, set by the
    logging plugin and never meant to be public, are no longer available.
    
    The deprecated ``--no-print-logs`` option and ``log_print`` ini option are removed. Use ``--show-capture`` instead.
    
    
    - `7226 &lt;https://github.com/pytest-dev/pytest/issues/7226&gt;`_: Removed the unused ``args`` parameter from ``pytest.Function.__init__``.
    
    
    - `7418 &lt;https://github.com/pytest-dev/pytest/issues/7418&gt;`_: Removed the `pytest_doctest_prepare_content` hook specification. This hook
    hasn&#39;t been triggered by pytest for at least 10 years.
    
    
    - `7438 &lt;https://github.com/pytest-dev/pytest/issues/7438&gt;`_: Some changes were made to the internal ``_pytest._code.source``, listed here
    for the benefit of plugin authors who may be using it:
    
    - The ``deindent`` argument to ``Source()`` has been removed, now it is always true.
    - Support for zero or multiple arguments to ``Source()`` has been removed.
    - Support for comparing ``Source`` with an ``str`` has been removed.
    - The methods ``Source.isparseable()`` and ``Source.putaround()`` have been removed.
    - The method ``Source.compile()`` and function ``_pytest._code.compile()`` have
     been removed; use plain ``compile()`` instead.
    - The function ``_pytest._code.source.getsource()`` has been removed; use
     ``Source()`` directly instead.
    
    
    
    Deprecations
    ------------
    
    - `7210 &lt;https://github.com/pytest-dev/pytest/issues/7210&gt;`_: The special ``-k &#39;-expr&#39;`` syntax to ``-k`` is deprecated. Use ``-k &#39;not expr&#39;``
    instead.
    
    The special ``-k &#39;expr:&#39;`` syntax to ``-k`` is deprecated. Please open an issue
    if you use this and want a replacement.
    
    - `4049 &lt;https://github.com/pytest-dev/pytest/issues/4049&gt;`_: ``pytest_warning_captured`` is deprecated in favor of the ``pytest_warning_recorded`` hook.
    
    
    Features
    --------
    
    - `1556 &lt;https://github.com/pytest-dev/pytest/issues/1556&gt;`_: pytest now supports ``pyproject.toml`` files for configuration.
    
    The configuration options is similar to the one available in other formats, but must be defined
    in a ``[tool.pytest.ini_options]`` table to be picked up by pytest:
    
    .. code-block:: toml
    
        pyproject.toml
       [tool.pytest.ini_options]
       minversion = &quot;6.0&quot;
       addopts = &quot;-ra -q&quot;
       testpaths = [
           &quot;tests&quot;,
           &quot;integration&quot;,
       ]
    
    More information can be found `in the docs &lt;https://docs.pytest.org/en/stable/customize.html#configuration-file-formats&gt;`__.
    
    
    - `3342 &lt;https://github.com/pytest-dev/pytest/issues/3342&gt;`_: pytest now includes inline type annotations and exposes them to user programs.
    Most of the user-facing API is covered, as well as internal code.
    
    If you are running a type checker such as mypy on your tests, you may start
    noticing type errors indicating incorrect usage. If you run into an error that
    you believe to be incorrect, please let us know in an issue.
    
    The types were developed against mypy version 0.780. Versions before 0.750
    are known not to work. We recommend using the latest version. Other type
    checkers may work as well, but they are not officially verified to work by
    pytest yet.
    
    
    - `4049 &lt;https://github.com/pytest-dev/pytest/issues/4049&gt;`_: Introduced a new hook named `pytest_warning_recorded` to convey information about warnings captured by the internal `pytest` warnings plugin.
    
    This hook is meant to replace `pytest_warning_captured`, which is deprecated and will be removed in a future release.
    
    
    - `6471 &lt;https://github.com/pytest-dev/pytest/issues/6471&gt;`_: New command-line flags:
    
    * `--no-header`: disables the initial header, including platform, version, and plugins.
    * `--no-summary`: disables the final test summary, including warnings.
    
    
    - `6856 &lt;https://github.com/pytest-dev/pytest/issues/6856&gt;`_: A warning is now shown when an unknown key is read from a config INI file.
    
    The `--strict-config` flag has been added to treat these warnings as errors.
    
    
    - `6906 &lt;https://github.com/pytest-dev/pytest/issues/6906&gt;`_: Added `--code-highlight` command line option to enable/disable code highlighting in terminal output.
    
    
    - `7245 &lt;https://github.com/pytest-dev/pytest/issues/7245&gt;`_: New ``--import-mode=importlib`` option that uses `importlib &lt;https://docs.python.org/3/library/importlib.html&gt;`__ to import test modules.
    
    Traditionally pytest used ``__import__`` while changing ``sys.path`` to import test modules (which
    also changes ``sys.modules`` as a side-effect), which works but has a number of drawbacks, like requiring test modules
    that don&#39;t live in packages to have unique names (as they need to reside under a unique name in ``sys.modules``).
    
    ``--import-mode=importlib`` uses more fine grained import mechanisms from ``importlib`` which don&#39;t
    require pytest to change ``sys.path`` or ``sys.modules`` at all, eliminating much of the drawbacks
    of the previous mode.
    
    We intend to make ``--import-mode=importlib`` the default in future versions, so users are encouraged
    to try the new mode and provide feedback (both positive or negative) in issue `7245 &lt;https://github.com/pytest-dev/pytest/issues/7245&gt;`__.
    
    You can read more about this option in `the documentation &lt;https://docs.pytest.org/en/latest/pythonpath.html#import-modes&gt;`__.
    
    
    - `7305 &lt;https://github.com/pytest-dev/pytest/issues/7305&gt;`_: New ``required_plugins`` configuration option allows the user to specify a list of plugins, including version information, that are required for pytest to run. An error is raised if any required plugins are not found when running pytest.
    
    
    Improvements
    ------------
    
    - `4375 &lt;https://github.com/pytest-dev/pytest/issues/4375&gt;`_: The ``pytest`` command now suppresses the ``BrokenPipeError`` error message that
    is printed to stderr when the output of ``pytest`` is piped and and the pipe is
    closed by the piped-to program (common examples are ``less`` and ``head``).
    
    
    - `4391 &lt;https://github.com/pytest-dev/pytest/issues/4391&gt;`_: Improved precision of test durations measurement. ``CallInfo`` items now have a new ``&lt;CallInfo&gt;.duration`` attribute, created using ``time.perf_counter()``. This attribute is used to fill the ``&lt;TestReport&gt;.duration`` attribute, which is more accurate than the previous ``&lt;CallInfo&gt;.stop - &lt;CallInfo&gt;.start`` (as these are based on ``time.time()``).
    
    
    - `4675 &lt;https://github.com/pytest-dev/pytest/issues/4675&gt;`_: Rich comparison for dataclasses and `attrs`-classes is now recursive.
    
    
    - `6285 &lt;https://github.com/pytest-dev/pytest/issues/6285&gt;`_: Exposed the `pytest.FixtureLookupError` exception which is raised by `request.getfixturevalue()`
    (where `request` is a `FixtureRequest` fixture) when a fixture with the given name cannot be returned.
    
    
    - `6433 &lt;https://github.com/pytest-dev/pytest/issues/6433&gt;`_: If an error is encountered while formatting the message in a logging call, for
    example ``logging.warning(&quot;oh no!: %s: %s&quot;, &quot;first&quot;)`` (a second argument is
    missing), pytest now propagates the error, likely causing the test to fail.
    
    Previously, such a mistake would cause an error to be printed to stderr, which
    is not displayed by default for passing tests. This change makes the mistake
    visible during testing.
    
    You may supress this behavior temporarily or permanently by setting
    ``logging.raiseExceptions = False``.
    
    
    - `6817 &lt;https://github.com/pytest-dev/pytest/issues/6817&gt;`_: Explicit new-lines in help texts of command-line options are preserved, allowing plugins better control
    of the help displayed to users.
    
    
    - `6940 &lt;https://github.com/pytest-dev/pytest/issues/6940&gt;`_: When using the ``--duration`` option, the terminal message output is now more precise about the number and duration of hidden items.
    
    
    - `6991 &lt;https://github.com/pytest-dev/pytest/issues/6991&gt;`_: Collected files are displayed after any reports from hooks, e.g. the status from ``--lf``.
    
    
    - `7091 &lt;https://github.com/pytest-dev/pytest/issues/7091&gt;`_: When ``fd`` capturing is used, through ``--capture=fd`` or the ``capfd`` and
    ``capfdbinary`` fixtures, and the file descriptor (0, 1, 2) cannot be
    duplicated, FD capturing is still performed. Previously, direct writes to the
    file descriptors would fail or be lost in this case.
    
    
    - `7119 &lt;https://github.com/pytest-dev/pytest/issues/7119&gt;`_: Exit with an error if the ``--basetemp`` argument is empty, is the current working directory or is one of the parent directories.
    This is done to protect against accidental data loss, as any directory passed to this argument is cleared.
    
    
    - `7128 &lt;https://github.com/pytest-dev/pytest/issues/7128&gt;`_: `pytest --version` now displays just the pytest version, while `pytest --version --version` displays more verbose information including plugins. This is more consistent with how other tools show `--version`.
    
    
    - `7133 &lt;https://github.com/pytest-dev/pytest/issues/7133&gt;`_: :meth:`caplog.set_level() &lt;_pytest.logging.LogCaptureFixture.set_level&gt;` will now override any :confval:`log_level` set via the CLI or configuration file.
    
    
    - `7159 &lt;https://github.com/pytest-dev/pytest/issues/7159&gt;`_: :meth:`caplog.set_level() &lt;_pytest.logging.LogCaptureFixture.set_level&gt;` and :meth:`caplog.at_level() &lt;_pytest.logging.LogCaptureFixture.at_level&gt;` no longer affect
    the level of logs that are shown in the *Captured log report* report section.
    
    
    - `7348 &lt;https://github.com/pytest-dev/pytest/issues/7348&gt;`_: Improve recursive diff report for comparison asserts on dataclasses / attrs.
    
    
    - `7385 &lt;https://github.com/pytest-dev/pytest/issues/7385&gt;`_: ``--junitxml`` now includes the exception cause in the ``message`` XML attribute for failures during setup and teardown.
    
    Previously:
    
    .. code-block:: xml
    
       &lt;error message=&quot;test setup failure&quot;&gt;
    
    Now:
    
    .. code-block:: xml
    
       &lt;error message=&quot;failed on setup with &amp;quot;ValueError: Some error during setup&amp;quot;&quot;&gt;
    
    
    
    Bug Fixes
    ---------
    
    - `1120 &lt;https://github.com/pytest-dev/pytest/issues/1120&gt;`_: Fix issue where directories from :fixture:`tmpdir` are not removed properly when multiple instances of pytest are running in parallel.
    
    
    - `4583 &lt;https://github.com/pytest-dev/pytest/issues/4583&gt;`_: Prevent crashing and provide a user-friendly error when a marker expression (`-m`) invoking of :func:`eval` raises any exception.
    
    
    - `4677 &lt;https://github.com/pytest-dev/pytest/issues/4677&gt;`_: The path shown in the summary report for SKIPPED tests is now always relative. Previously it was sometimes absolute.
    
    
    - `5456 &lt;https://github.com/pytest-dev/pytest/issues/5456&gt;`_: Fix a possible race condition when trying to remove lock files used to control access to folders
    created by :fixture:`tmp_path` and :fixture:`tmpdir`.
    
    
    - `6240 &lt;https://github.com/pytest-dev/pytest/issues/6240&gt;`_: Fixes an issue where logging during collection step caused duplication of log
    messages to stderr.
    
    
    - `6428 &lt;https://github.com/pytest-dev/pytest/issues/6428&gt;`_: Paths appearing in error messages are now correct in case the current working directory has
    changed since the start of the session.
    
    
    - `6755 &lt;https://github.com/pytest-dev/pytest/issues/6755&gt;`_: Support deleting paths longer than 260 characters on windows created inside :fixture:`tmpdir`.
    
    
    - `6871 &lt;https://github.com/pytest-dev/pytest/issues/6871&gt;`_: Fix crash with captured output when using :fixture:`capsysbinary`.
    
    
    - `6909 &lt;https://github.com/pytest-dev/pytest/issues/6909&gt;`_: Revert the change introduced by `#6330 &lt;https://github.com/pytest-dev/pytest/pull/6330&gt;`_, which required all arguments to ``pytest.mark.parametrize`` to be explicitly defined in the function signature.
    
    The intention of the original change was to remove what was expected to be an unintended/surprising behavior, but it turns out many people relied on it, so the restriction has been reverted.
    
    
    - `6910 &lt;https://github.com/pytest-dev/pytest/issues/6910&gt;`_: Fix crash when plugins return an unknown stats while using the ``--reportlog`` option.
    
    
    - `6924 &lt;https://github.com/pytest-dev/pytest/issues/6924&gt;`_: Ensure a ``unittest.IsolatedAsyncioTestCase`` is actually awaited.
    
    
    - `6925 &lt;https://github.com/pytest-dev/pytest/issues/6925&gt;`_: Fix `TerminalRepr` instances to be hashable again.
    
    
    - `6947 &lt;https://github.com/pytest-dev/pytest/issues/6947&gt;`_: Fix regression where functions registered with :meth:`unittest.TestCase.addCleanup` were not being called on test failures.
    
    
    - `6951 &lt;https://github.com/pytest-dev/pytest/issues/6951&gt;`_: Allow users to still set the deprecated ``TerminalReporter.writer`` attribute.
    
    
    - `6956 &lt;https://github.com/pytest-dev/pytest/issues/6956&gt;`_: Prevent pytest from printing `ConftestImportFailure` traceback to stdout.
    
    
    - `6991 &lt;https://github.com/pytest-dev/pytest/issues/6991&gt;`_: Fix regressions with `--lf` filtering too much since pytest 5.4.
    
    
    - `6992 &lt;https://github.com/pytest-dev/pytest/issues/6992&gt;`_: Revert &quot;tmpdir: clean up indirection via config for factories&quot; `#6767 &lt;https://github.com/pytest-dev/pytest/issues/6767&gt;`_ as it breaks pytest-xdist.
    
    
    - `7061 &lt;https://github.com/pytest-dev/pytest/issues/7061&gt;`_: When a yielding fixture fails to yield a value, report a test setup error instead of crashing.
    
    
    - `7076 &lt;https://github.com/pytest-dev/pytest/issues/7076&gt;`_: The path of file skipped by ``pytest.mark.skip`` in the SKIPPED report is now relative to invocation directory. Previously it was relative to root directory.
    
    
    - `7110 &lt;https://github.com/pytest-dev/pytest/issues/7110&gt;`_: Fixed regression: ``asyncbase.TestCase`` tests are executed correctly again.
    
    
    - `7126 &lt;https://github.com/pytest-dev/pytest/issues/7126&gt;`_: ``--setup-show`` now doesn&#39;t raise an error when a bytes value is used as a ``parametrize``
    parameter when Python is called with the ``-bb`` flag.
    
    
    - `7143 &lt;https://github.com/pytest-dev/pytest/issues/7143&gt;`_: Fix :meth:`pytest.File.from_parent` so it forwards extra keyword arguments to the constructor.
    
    
    - `7145 &lt;https://github.com/pytest-dev/pytest/issues/7145&gt;`_: Classes with broken ``__getattribute__`` methods are displayed correctly during failures.
    
    
    - `7150 &lt;https://github.com/pytest-dev/pytest/issues/7150&gt;`_: Prevent hiding the underlying exception when ``ConfTestImportFailure`` is raised.
    
    
    - `7180 &lt;https://github.com/pytest-dev/pytest/issues/7180&gt;`_: Fix ``_is_setup_py`` for files encoded differently than locale.
    
    
    - `7215 &lt;https://github.com/pytest-dev/pytest/issues/7215&gt;`_: Fix regression where running with ``--pdb`` would call :meth:`unittest.TestCase.tearDown` for skipped tests.
    
    
    - `7253 &lt;https://github.com/pytest-dev/pytest/issues/7253&gt;`_: When using ``pytest.fixture`` on a function directly, as in ``pytest.fixture(func)``,
    if the ``autouse`` or ``params`` arguments are also passed, the function is no longer
    ignored, but is marked as a fixture.
    
    
    - `7360 &lt;https://github.com/pytest-dev/pytest/issues/7360&gt;`_: Fix possibly incorrect evaluation of string expressions passed to ``pytest.mark.skipif`` and ``pytest.mark.xfail``,
    in rare circumstances where the exact same string is used but refers to different global values.
    
    
    - `7383 &lt;https://github.com/pytest-dev/pytest/issues/7383&gt;`_: Fixed exception causes all over the codebase, i.e. use `raise new_exception from old_exception` when wrapping an exception.
    
    
    
    Improved Documentation
    ----------------------
    
    - `7202 &lt;https://github.com/pytest-dev/pytest/issues/7202&gt;`_: The development guide now links to the contributing section of the docs and `RELEASING.rst` on GitHub.
    
    
    - `7233 &lt;https://github.com/pytest-dev/pytest/issues/7233&gt;`_: Add a note about ``--strict`` and ``--strict-markers`` and the preference for the latter one.
    
    
    - `7345 &lt;https://github.com/pytest-dev/pytest/issues/7345&gt;`_: Explain indirect parametrization and markers for fixtures.
    
    
    
    Trivial/Internal Changes
    ------------------------
    
    - `7035 &lt;https://github.com/pytest-dev/pytest/issues/7035&gt;`_: The ``originalname`` attribute of ``_pytest.python.Function`` now defaults to ``name`` if not
    provided explicitly, and is always set.
    
    
    - `7264 &lt;https://github.com/pytest-dev/pytest/issues/7264&gt;`_: The dependency on the ``wcwidth`` package has been removed.
    
    
    - `7291 &lt;https://github.com/pytest-dev/pytest/issues/7291&gt;`_: Replaced ``py.iniconfig`` with `iniconfig &lt;https://pypi.org/project/iniconfig/&gt;`__.
    
    
    - `7295 &lt;https://github.com/pytest-dev/pytest/issues/7295&gt;`_: ``src/_pytest/config/__init__.py`` now uses the ``warnings`` module to report warnings instead of ``sys.stderr.write``.
    
    
    - `7356 &lt;https://github.com/pytest-dev/pytest/issues/7356&gt;`_: Remove last internal uses of deprecated *slave* term from old ``pytest-xdist``.
    
    
    - `7357 &lt;https://github.com/pytest-dev/pytest/issues/7357&gt;`_: ``py``&gt;=1.8.2 is now required.
    

    5.4.3

    =========================
    
    Bug Fixes
    ---------
    
    - `6428 &lt;https://github.com/pytest-dev/pytest/issues/6428&gt;`_: Paths appearing in error messages are now correct in case the current working directory has
    changed since the start of the session.
    
    
    - `6755 &lt;https://github.com/pytest-dev/pytest/issues/6755&gt;`_: Support deleting paths longer than 260 characters on windows created inside tmpdir.
    
    
    - `6956 &lt;https://github.com/pytest-dev/pytest/issues/6956&gt;`_: Prevent pytest from printing ConftestImportFailure traceback to stdout.
    
    
    - `7150 &lt;https://github.com/pytest-dev/pytest/issues/7150&gt;`_: Prevent hiding the underlying exception when ``ConfTestImportFailure`` is raised.
    
    
    - `7215 &lt;https://github.com/pytest-dev/pytest/issues/7215&gt;`_: Fix regression where running with ``--pdb`` would call the ``tearDown`` methods of ``unittest.TestCase``
    subclasses for skipped tests.
    

    5.4.2

    =========================
    
    Bug Fixes
    ---------
    
    - `6871 &lt;https://github.com/pytest-dev/pytest/issues/6871&gt;`_: Fix crash with captured output when using the :fixture:`capsysbinary fixture &lt;capsysbinary&gt;`.
    
    
    - `6924 &lt;https://github.com/pytest-dev/pytest/issues/6924&gt;`_: Ensure a ``unittest.IsolatedAsyncioTestCase`` is actually awaited.
    
    
    - `6925 &lt;https://github.com/pytest-dev/pytest/issues/6925&gt;`_: Fix TerminalRepr instances to be hashable again.
    
    
    - `6947 &lt;https://github.com/pytest-dev/pytest/issues/6947&gt;`_: Fix regression where functions registered with ``TestCase.addCleanup`` were not being called on test failures.
    
    
    - `6951 &lt;https://github.com/pytest-dev/pytest/issues/6951&gt;`_: Allow users to still set the deprecated ``TerminalReporter.writer`` attribute.
    
    
    - `6992 &lt;https://github.com/pytest-dev/pytest/issues/6992&gt;`_: Revert &quot;tmpdir: clean up indirection via config for factories&quot; #6767 as it breaks pytest-xdist.
    
    
    - `7110 &lt;https://github.com/pytest-dev/pytest/issues/7110&gt;`_: Fixed regression: ``asyncbase.TestCase`` tests are executed correctly again.
    
    
    - `7143 &lt;https://github.com/pytest-dev/pytest/issues/7143&gt;`_: Fix ``File.from_parent`` so it forwards extra keyword arguments to the constructor.
    
    
    - `7145 &lt;https://github.com/pytest-dev/pytest/issues/7145&gt;`_: Classes with broken ``__getattribute__`` methods are displayed correctly during failures.
    
    
    - `7180 &lt;https://github.com/pytest-dev/pytest/issues/7180&gt;`_: Fix ``_is_setup_py`` for files encoded differently than locale.
    

    5.4.1

    =========================
    
    Bug Fixes
    ---------
    
    - `6909 &lt;https://github.com/pytest-dev/pytest/issues/6909&gt;`_: Revert the change introduced by `#6330 &lt;https://github.com/pytest-dev/pytest/pull/6330&gt;`_, which required all arguments to ``pytest.mark.parametrize`` to be explicitly defined in the function signature.
    
    The intention of the original change was to remove what was expected to be an unintended/surprising behavior, but it turns out many people relied on it, so the restriction has been reverted.
    
    
    - `6910 &lt;https://github.com/pytest-dev/pytest/issues/6910&gt;`_: Fix crash when plugins return an unknown stats while using the ``--reportlog`` option.
    

    5.4.0

    =========================
    
    Breaking Changes
    ----------------
    
    - `6316 &lt;https://github.com/pytest-dev/pytest/issues/6316&gt;`_: Matching of ``-k EXPRESSION`` to test names is now case-insensitive.
    
    
    - `6443 &lt;https://github.com/pytest-dev/pytest/issues/6443&gt;`_: Plugins specified with ``-p`` are now loaded after internal plugins, which results in their hooks being called *before* the internal ones.
    
    This makes the ``-p`` behavior consistent with ``PYTEST_PLUGINS``.
    
    
    - `6637 &lt;https://github.com/pytest-dev/pytest/issues/6637&gt;`_: Removed the long-deprecated ``pytest_itemstart`` hook.
    
    This hook has been marked as deprecated and not been even called by pytest for over 10 years now.
    
    
    - `6673 &lt;https://github.com/pytest-dev/pytest/issues/6673&gt;`_: Reversed / fix meaning of &quot;+/-&quot; in error diffs.  &quot;-&quot; means that sth. expected is missing in the result and &quot;+&quot; means that there are unexpected extras in the result.
    
    
    - `6737 &lt;https://github.com/pytest-dev/pytest/issues/6737&gt;`_: The ``cached_result`` attribute of ``FixtureDef`` is now set to ``None`` when
    the result is unavailable, instead of being deleted.
    
    If your plugin performs checks like ``hasattr(fixturedef, &#39;cached_result&#39;)``,
    for example in a ``pytest_fixture_post_finalizer`` hook implementation, replace
    it with ``fixturedef.cached_result is not None``. If you ``del`` the attribute,
    set it to ``None`` instead.
    
    
    
    Deprecations
    ------------
    
    - `3238 &lt;https://github.com/pytest-dev/pytest/issues/3238&gt;`_: Option ``--no-print-logs`` is deprecated and meant to be removed in a future release. If you use ``--no-print-logs``, please try out ``--show-capture`` and
    provide feedback.
    
    ``--show-capture`` command-line option was added in ``pytest 3.5.0`` and allows to specify how to
    display captured output when tests fail: ``no``, ``stdout``, ``stderr``, ``log`` or ``all`` (the default).
    
    
    - `571 &lt;https://github.com/pytest-dev/pytest/issues/571&gt;`_: Deprecate the unused/broken `pytest_collect_directory` hook.
    It was misaligned since the removal of the ``Directory`` collector in 2010
    and incorrect/unusable as soon as collection was split from test execution.
    
    
    - `5975 &lt;https://github.com/pytest-dev/pytest/issues/5975&gt;`_: Deprecate using direct constructors for ``Nodes``.
    
    Instead they are now constructed via ``Node.from_parent``.
    
    This transitional mechanism enables us to untangle the very intensely
    entangled ``Node`` relationships by enforcing more controlled creation/configuration patterns.
    
    As part of this change, session/config are already disallowed parameters and as we work on the details we might need disallow a few more as well.
    
    Subclasses are expected to use `super().from_parent` if they intend to expand the creation of `Nodes`.
    
    
    - `6779 &lt;https://github.com/pytest-dev/pytest/issues/6779&gt;`_: The ``TerminalReporter.writer`` attribute has been deprecated and should no longer be used. This
    was inadvertently exposed as part of the public API of that plugin and ties it too much
    with ``py.io.TerminalWriter``.
    
    
    
    Features
    --------
    
    - `4597 &lt;https://github.com/pytest-dev/pytest/issues/4597&gt;`_: New :ref:`--capture=tee-sys &lt;capture-method&gt;` option to allow both live printing and capturing of test output.
    
    
    - `5712 &lt;https://github.com/pytest-dev/pytest/issues/5712&gt;`_: Now all arguments to ``pytest.mark.parametrize`` need to be explicitly declared in the function signature or via ``indirect``.
    Previously it was possible to omit an argument if a fixture with the same name existed, which was just an accident of implementation and was not meant to be a part of the API.
    
    
    - `6454 &lt;https://github.com/pytest-dev/pytest/issues/6454&gt;`_: Changed default for `-r` to `fE`, which displays failures and errors in the :ref:`short test summary &lt;pytest.detailed_failed_tests_usage&gt;`.  `-rN` can be used to disable it (the old behavior).
    
    
    - `6469 &lt;https://github.com/pytest-dev/pytest/issues/6469&gt;`_: New options have been added to the :confval:`junit_logging` option: ``log``, ``out-err``, and ``all``.
    
    
    - `6834 &lt;https://github.com/pytest-dev/pytest/issues/6834&gt;`_: Excess warning summaries are now collapsed per file to ensure readable display of warning summaries.
    
    
    
    Improvements
    ------------
    
    - `1857 &lt;https://github.com/pytest-dev/pytest/issues/1857&gt;`_: ``pytest.mark.parametrize`` accepts integers for ``ids`` again, converting it to strings.
    
    
    - `449 &lt;https://github.com/pytest-dev/pytest/issues/449&gt;`_: Use &quot;yellow&quot; main color with any XPASSED tests.
    
    
    - `4639 &lt;https://github.com/pytest-dev/pytest/issues/4639&gt;`_: Revert &quot;A warning is now issued when assertions are made for ``None``&quot;.
    
    The warning proved to be less useful than initially expected and had quite a
    few false positive cases.
    
    
    - `5686 &lt;https://github.com/pytest-dev/pytest/issues/5686&gt;`_: ``tmpdir_factory.mktemp`` now fails when given absolute and non-normalized paths.
    
    
    - `5984 &lt;https://github.com/pytest-dev/pytest/issues/5984&gt;`_: The ``pytest_warning_captured`` hook now receives a ``location`` parameter with the code location that generated the warning.
    
    
    - `6213 &lt;https://github.com/pytest-dev/pytest/issues/6213&gt;`_: pytester: the ``testdir`` fixture respects environment settings from the ``monkeypatch`` fixture for inner runs.
    
    
    - `6247 &lt;https://github.com/pytest-dev/pytest/issues/6247&gt;`_: ``--fulltrace`` is honored with collection errors.
    
    
    - `6384 &lt;https://github.com/pytest-dev/pytest/issues/6384&gt;`_: Make `--showlocals` work also with `--tb=short`.
    
    
    - `6653 &lt;https://github.com/pytest-dev/pytest/issues/6653&gt;`_: Add support for matching lines consecutively with :attr:`LineMatcher &lt;_pytest.pytester.LineMatcher&gt;`&#39;s :func:`~_pytest.pytester.LineMatcher.fnmatch_lines` and :func:`~_pytest.pytester.LineMatcher.re_match_lines`.
    
    
    - `6658 &lt;https://github.com/pytest-dev/pytest/issues/6658&gt;`_: Code is now highlighted in tracebacks when ``pygments`` is installed.
    
    Users are encouraged to install ``pygments`` into their environment and provide feedback, because
    the plan is to make ``pygments`` a regular dependency in the future.
    
    
    - `6795 &lt;https://github.com/pytest-dev/pytest/issues/6795&gt;`_: Import usage error message with invalid `-o` option.
    
    
    - `759 &lt;https://github.com/pytest-dev/pytest/issues/759&gt;`_: ``pytest.mark.parametrize`` supports iterators and generators for ``ids``.
    
    
    
    Bug Fixes
    ---------
    
    - `310 &lt;https://github.com/pytest-dev/pytest/issues/310&gt;`_: Add support for calling `pytest.xfail()` and `pytest.importorskip()` with doctests.
    
    
    - `3823 &lt;https://github.com/pytest-dev/pytest/issues/3823&gt;`_: ``--trace`` now works with unittests.
    
    
    - `4445 &lt;https://github.com/pytest-dev/pytest/issues/4445&gt;`_: Fixed some warning reports produced by pytest to point to the correct location of the warning in the user&#39;s code.
    
    
    - `5301 &lt;https://github.com/pytest-dev/pytest/issues/5301&gt;`_: Fix ``--last-failed`` to collect new tests from files with known failures.
    
    
    - `5928 &lt;https://github.com/pytest-dev/pytest/issues/5928&gt;`_: Report ``PytestUnknownMarkWarning`` at the level of the user&#39;s code, not ``pytest``&#39;s.
    
    
    - `5991 &lt;https://github.com/pytest-dev/pytest/issues/5991&gt;`_: Fix interaction with ``--pdb`` and unittests: do not use unittest&#39;s ``TestCase.debug()``.
    
    
    - `6334 &lt;https://github.com/pytest-dev/pytest/issues/6334&gt;`_: Fix summary entries appearing twice when ``f/F`` and ``s/S`` report chars were used at the same time in the ``-r`` command-line option (for example ``-rFf``).
    
    The upper case variants were never documented and the preferred form should be the lower case.
    
    
    - `6409 &lt;https://github.com/pytest-dev/pytest/issues/6409&gt;`_: Fallback to green (instead of yellow) for non-last items without previous passes with colored terminal progress indicator.
    
    
    - `6454 &lt;https://github.com/pytest-dev/pytest/issues/6454&gt;`_: `--disable-warnings` is honored with `-ra` and `-rA`.
    
    
    - `6497 &lt;https://github.com/pytest-dev/pytest/issues/6497&gt;`_: Fix bug in the comparison of request key with cached key in fixture.
    
    A construct ``if key == cached_key:`` can fail either because ``==`` is explicitly disallowed, or for, e.g., NumPy arrays, where the result of ``a == b`` cannot generally be converted to `bool`.
    The implemented fix replaces `==` with ``is``.
    
    
    - `6557 &lt;https://github.com/pytest-dev/pytest/issues/6557&gt;`_: Make capture output streams ``.write()`` method return the same return value from original streams.
    
    
    - `6566 &lt;https://github.com/pytest-dev/pytest/issues/6566&gt;`_: Fix ``EncodedFile.writelines`` to call the underlying buffer&#39;s ``writelines`` method.
    
    
    - `6575 &lt;https://github.com/pytest-dev/pytest/issues/6575&gt;`_: Fix internal crash when ``faulthandler`` starts initialized
    (for example with ``PYTHONFAULTHANDLER=1`` environment variable set) and ``faulthandler_timeout`` defined
    in the configuration file.
    
    
    - `6597 &lt;https://github.com/pytest-dev/pytest/issues/6597&gt;`_: Fix node ids which contain a parametrized empty-string variable.
    
    
    - `6646 &lt;https://github.com/pytest-dev/pytest/issues/6646&gt;`_: Assertion rewriting hooks are (re)stored for the current item, which fixes them being still used after e.g. pytester&#39;s :func:`testdir.runpytest &lt;_pytest.pytester.Testdir.runpytest&gt;` etc.
    
    
    - `6660 &lt;https://github.com/pytest-dev/pytest/issues/6660&gt;`_: :py:func:`pytest.exit` is handled when emitted from the :func:`pytest_sessionfinish &lt;_pytest.hookspec.pytest_sessionfinish&gt;` hook.  This includes quitting from a debugger.
    
    
    - `6752 &lt;https://github.com/pytest-dev/pytest/issues/6752&gt;`_: When :py:func:`pytest.raises` is used as a function (as opposed to a context manager),
    a `match` keyword argument is now passed through to the tested function. Previously
    it was swallowed and ignored (regression in pytest 5.1.0).
    
    
    - `6801 &lt;https://github.com/pytest-dev/pytest/issues/6801&gt;`_: Do not display empty lines inbetween traceback for unexpected exceptions with doctests.
    
    
    - `6802 &lt;https://github.com/pytest-dev/pytest/issues/6802&gt;`_: The :fixture:`testdir fixture &lt;testdir&gt;` works within doctests now.
    
    
    
    Improved Documentation
    ----------------------
    
    - `6696 &lt;https://github.com/pytest-dev/pytest/issues/6696&gt;`_: Add list of fixtures to start of fixture chapter.
    
    
    - `6742 &lt;https://github.com/pytest-dev/pytest/issues/6742&gt;`_: Expand first sentence on fixtures into a paragraph.
    
    
    
    Trivial/Internal Changes
    ------------------------
    
    - `6404 &lt;https://github.com/pytest-dev/pytest/issues/6404&gt;`_: Remove usage of ``parser`` module, deprecated in Python 3.9.
    

    5.3.5

    =========================
    
    Bug Fixes
    ---------
    
    - `6517 &lt;https://github.com/pytest-dev/pytest/issues/6517&gt;`_: Fix regression in pytest 5.3.4 causing an INTERNALERROR due to a wrong assertion.
    

    5.3.4

    =========================
    
    Bug Fixes
    ---------
    
    - `6496 &lt;https://github.com/pytest-dev/pytest/issues/6496&gt;`_: Revert `#6436 &lt;https://github.com/pytest-dev/pytest/issues/6436&gt;`__: unfortunately this change has caused a number of regressions in many suites,
    so the team decided to revert this change and make a new release while we continue to look for a solution.
    

    5.3.3

    =========================
    
    Bug Fixes
    ---------
    
    - `2780 &lt;https://github.com/pytest-dev/pytest/issues/2780&gt;`_: Captured output during teardown is shown with ``-rP``.
    
    
    - `5971 &lt;https://github.com/pytest-dev/pytest/issues/5971&gt;`_: Fix a ``pytest-xdist`` crash when dealing with exceptions raised in subprocesses created by the
    ``multiprocessing`` module.
    
    
    - `6436 &lt;https://github.com/pytest-dev/pytest/issues/6436&gt;`_: :class:`FixtureDef &lt;_pytest.fixtures.FixtureDef&gt;` objects now properly register their finalizers with autouse and
    parameterized fixtures that execute before them in the fixture stack so they are torn
    down at the right times, and in the right order.
    
    
    - `6532 &lt;https://github.com/pytest-dev/pytest/issues/6532&gt;`_: Fix parsing of outcomes containing multiple errors with ``testdir`` results (regression in 5.3.0).
    
    
    
    Trivial/Internal Changes
    ------------------------
    
    - `6350 &lt;https://github.com/pytest-dev/pytest/issues/6350&gt;`_: Optimized automatic renaming of test parameter IDs.
    

    5.3.2

    =========================
    
    Improvements
    ------------
    
    - `4639 &lt;https://github.com/pytest-dev/pytest/issues/4639&gt;`_: Revert &quot;A warning is now issued when assertions are made for ``None``&quot;.
    
    The warning proved to be less useful than initially expected and had quite a
    few false positive cases.
    
    
    
    Bug Fixes
    ---------
    
    - `5430 &lt;https://github.com/pytest-dev/pytest/issues/5430&gt;`_: junitxml: Logs for failed test are now passed to junit report in case the test fails during call phase.
    
    
    - `6290 &lt;https://github.com/pytest-dev/pytest/issues/6290&gt;`_: The supporting files in the ``.pytest_cache`` directory are kept with ``--cache-clear``, which only clears cached values now.
    
    
    - `6301 &lt;https://github.com/pytest-dev/pytest/issues/6301&gt;`_: Fix assertion rewriting for egg-based distributions and ``editable`` installs (``pip install --editable``).
    
    Links
    • PyPI: https://pypi.org/project/pytest
    • Changelog: https://pyup.io/changelogs/pytest/
    • Homepage: https://docs.pytest.org/en/latest/
    opened by pyup-bot 0
  • Update twine to 3.4.1

    Update twine to 3.4.1

    This PR updates twine from 2.0.0 to 3.4.1.

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

    Links
    • PyPI: https://pypi.org/project/twine
    • Docs: https://twine.readthedocs.io/
    opened by pyup-bot 0
  • Update bump2version to 1.0.1

    Update bump2version to 1.0.1

    This PR updates bump2version from 0.5.11 to 1.0.1.

    Changelog

    1.0.1

    - Added: enable special characters in search/replace, thanks mckelvin
    - Added: allow globbing a pattern to match multiple files, thanks balrok
    - Added: way to only bump a specified file via --no-configured-files, thanks balrok
    - Fixed: dry-run now correctly outputs, thanks fmigneault
    - Housekeeping: documentation for lightweight tags improved, thanks GreatBahram
    - Housekeeping: added related tools document, thanks florisla
    - Fixed: no more falling back to default search, thanks florisla
    

    1.0.0

    - Fix the spurious newline that bump2version adds when writing to bumpversion.cfg, thanks kyluca 58
    - Add Python3.8 support, thanks florisla 
    - Drop Python2 support, thanks hugovk
    - Allow additional arguments to the commit call, thanks lubomir
    - Various documentation improvements, thanks lubomir florisla padamstx glotis
    - Housekeeping, move changelog into own file
    
    Links
    • PyPI: https://pypi.org/project/bump2version
    • Changelog: https://pyup.io/changelogs/bump2version/
    • Repo: https://github.com/c4urself/bump2version
    opened by pyup-bot 0
  • Low_Memory Warning

    Low_Memory Warning

    Brief Description

    While reading a DataFrame there is one parameter which is called low_memory and it's set to True by default. It's function is to decide minimal data type that is required to fit values of each column which seems to be for memory optimization purposes. In order to detect correct data type we need to consider all values in a column which doesn't seem to be optimal for big DataFrame because of 2 reasons I guess: memory and data loading time. And my assumption is that Pandas is optimizing both. That's why this parameter is True by default. I didn't dig into the implementation of that optimized version, how it detects data types (maybe reading some chunk of DataFrame take the minimal requirement). The problem is that sometimes it gives unexpected results. Once I spent one week of some heavy calculations on chunks of data with a hope that I could assemble it back using index which was definitely unique. But I didn't check one specific detail that index was 8digit at the beginning of data and it was becoming 16digits (it was takes from some db with different versions primary key). While reading chunks of data I was actually getting first 8digits from 16digit index since low_memory was set to True by default and didn't check all index values. Finally I ended up with the calculations with no hope to assemble back and merge to original data. I told such a long and dramatic story because that low_memory option is very strange, nobody takes it seriously but it becomes very critical in some cases. So, please consider that case and put some warnings about that in dovpanda.

    _Framework 
    opened by AnzorGozalishvili 0
  • Binary to run Python app with dovpanda?

    Binary to run Python app with dovpanda?

    Brief Description

    I understand that dovpanda is a dynamic tool and actually needs to run the program unlike static linters (e.g. mypy, pylint).

    Still, would be cool if there was a binary that can, say, hook up onto importing pandas and automatically import dovpanda as well. That way it would be easy to do something like:

    dovpandas python3 -m mymodule
    dovpandas pytest mymodule
    

    If it could also exit with non-zero code on dovpandas errors, it would be quite useful to run on CI! Not sure if it's easily possible in python, first thing that comes to mind is creating a temporary package pandas and adding it to PYTHONPATH:

    # pandas.py ('fake' pandas package)
    import dovpandas
    # ??? somehow import everything from original pandas package
    
    _Framework 
    opened by karlicoss 1
  • Hint on

    Hint on "inplace=False" happens when in plot/show

    As I understand, the dov hints when a line calls a function with "inplace=False" (explicitly or implicitly by default) but there's no assignment.

    However, sometimes functions are called in order to show the results in an output cell, or a plot.

    For example, I might want to call pd.Series(data=model.feature_importances_, index=features).sort_values(ascending=False) In order to inspect the top features, even without assignment.

    Possible workarounds/solutions:

    1. On the user side - Assign, then show/plot. That might even be good practice that I'm avoiding.
    2. On the dov side - Can it know that a line is about to send output? or to plot? If not, maybe leech on the default, and suppress the hint when inplace=False is explicit?
    bug 
    opened by itamar-precog 0
  • After importing dovpanda, pandas read_csv() doesn't work.

    After importing dovpanda, pandas read_csv() doesn't work.

    Brief Description

    I'm trying to concatenate csv files that start with keyword(example uses A). With dovpanda, the csv files don't seem to be found. I checked the "glob(os.path.join(keyword + '*.csv'))" line by itself, that brings up a list of the correct csv files to concatenate.

    System Information

    Windows 10 Jupyter Notebook Python 3.6.5 :: Anaconda, Inc.

    Minimally Reproducible Code

    import pandas as pd
    import dovpanda
    
    keyword = str('A')
    
    df = pd.concat(map(pd.read_csv, glob(os.path.join(keyword + '*.csv'))))
    display (df)
    
    df.to_csv(path_or_buf=(f"Files {today}.csv"), index=False, encoding='ascii')
    

    Error Messages

    SAD PANDA
    
    I'm so sorry, but I crashed on wrong_concat_axis hooks on concat with error descriptor 'union' of 'set' object needs an argument
    But you can change that!
    Please Report a bug×
    Line 5: df = pd.concat(map(pd.read_csv, glob(os.path.join(keyword + '*.csv'))))
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-13-221aac6881a7> in <module>()
          3 #CRM File merge
          4 keyword = str('A')
    ----> 5 df = pd.concat(map(pd.read_csv, glob(os.path.join(keyword + '*.csv'))))
          6 
          7 myList = ['enrollment_id','roster_record_id','user_id','email','ssn','identify_as',
    
    ~\Anaconda3\lib\site-packages\dovpanda\base.py in run(*args, **kwargs)
        154             arguments = self._get_arguments(f, *args, **kwargs)
        155             self.run_hints(pres, arguments)
    --> 156             ret = f(*args, **kwargs)
        157             self.run_hints(posts, ret, arguments)
        158             return ret
    
    ~\Anaconda3\lib\site-packages\pandas\core\reshape\concat.py in concat(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, sort, copy)
        226                        keys=keys, levels=levels, names=names,
        227                        verify_integrity=verify_integrity,
    --> 228                        copy=copy, sort=sort)
        229     return op.get_result()
        230 
    
    ~\Anaconda3\lib\site-packages\pandas\core\reshape\concat.py in __init__(self, objs, axis, join, join_axes, keys, levels, names, ignore_index, verify_integrity, copy, sort)
        260 
        261         if len(objs) == 0:
    --> 262             raise ValueError('No objects to concatenate')
        263 
        264         if keys is None:
    
    ValueError: No objects to concatenate
    
    bug 
    opened by melissadecastro 1
Owner
Material Components
Build beautiful, usable products with Material Components for Android, Flutter, iOS, and the web.
Material Components
https://developer.android.com/codelabs/jetpack-compose-theming

Jetpack Compose Theming Codelab This folder contains the source code for the Jetpack Compose Theming codelab. In this codelab you will learn how to us

Carlos Barrios 1 May 6, 2022
Jetpack compose theming following a google codelab

Jetpack Compose Codelabs This repository contains a set of Android Studio projects to help you learn about Compose in Android. Each sample contains th

Gilbert Ssenyonjo 0 Apr 30, 2022
A library that enables Safe Navigation for you Composable destinations when using Jetpack Compose Navigation

A library that enables Safe Navigation for you Composable destinations when using Jetpack Compose Navigation

Roman Levinzon 59 Oct 19, 2022
A Jetpack Compose Modifier that enables Tinder-like card gestures.

Compose Tinder Card A Jetpack Compose Modifier that enables Tinder-like card gestures. Demo Click the play button to see the Modifier.swipeableCard()

Alex Styl 93 Dec 28, 2022
Forget about bunch of XML files for maintaining UIs. Jetpack Compose is Android’s modern toolkit for building native UI. Here is a small example to get started.

Jetpack Compose Sample Description This repository is to get started with new Jetpack Compose Toolkit for Android. By using Jetpack Compose you no nee

Simform Solutions 39 Nov 10, 2022
Jetpack Compose is like Android XML

Jetpack Compose is like Android XML

CHECK24 Profis 11 Nov 18, 2022
A lightweight library for using Material Colors in Android Jetpack Compose Project 🚀🚀🚀

How To Use Step 1: Add the JitPack repository to your build file. Add it in your root build.gradle / build.gradle.kts at the end of repositories: Groo

Atick Faisal 9 Sep 9, 2022
A setting library for Jetpack Compose with Material You design

ComposeSetting This is a basic Compose setting library that provides a basic Material3 setting components It also provides a persistent state system b

RE 13 Nov 10, 2022
A simple 'Slide to Unlock' Material widget for Android, written in Jetpack Compose

SlideTodo A simple 'Slide to Unlock' Material widget for Android, written in Jetpack Compose you can find source code here Getting Started allprojects

Nthily 7 Aug 8, 2022
Material Motion for Jetpack Compose

Material Motion for Jetpack Compose Jetpack Compose library for implementing motion system in Material Components for Android. ?? Core A library which

Sungyong An (SOUP) 368 Jan 5, 2023
A Jetpack Compose implementation of Owl, a Material Design study

Owl sample This sample is a Jetpack Compose implementation of Owl, a Material De

Alexander 1 Feb 26, 2022
ToDo-Task-App - An Android App built to demonstrate the use of Jetpack Compose, Material You, Room Database, and MVVM

ToDo Task App ToDo Task App is a sample Android app built with Jetpack Compose.

null 0 Jan 17, 2022
Material You using Jetpack Compose

Material You using Jetpack Compose. How to keep M2 alongside with M3 in a project. Repo to play with Material Themes and MDC

Luis Barqueira 3 Jul 28, 2022
Material motion for jetpack compose

Material Motion system animations for Jetpack Compose(early stage) Who's using Compose Metaphor? ?? Check out who's using Compose Metaphor Include in

Ranbir Singh 3 Sep 8, 2022
Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop 🚀, using Canvas API 🎨

?? ?? ?? Compose flocking Ants(boids) ?? ?? ?? Jetpack compose Boids | Flocking Insect. bird or Fish simulation using Jetpack Compose Desktop ?? , usi

Chetan Gupta 38 Sep 25, 2022
A collection of animations, compositions, UIs using Jetpack Compose. You can say Jetpack Compose cookbook or play-ground if you want!

Why Not Compose! A collection of animations, compositions, UIs using Jetpack Compose. You can say Jetpack Compose cookbook or play-ground if you want!

Md. Mahmudul Hasan Shohag 186 Jan 1, 2023
Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

MindOrks 382 Jan 5, 2023
This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Compose.

JetBMICalculator This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Co

BHAVNA THACKER 3 Dec 31, 2022
Jetpack-Compose-Demo - Instagram Profile UI using Jetpack Compose

Jetpack-Compose-Demo Instagram Profile UI using Jetpack Compose

omar 1 Aug 11, 2022