'How to disable PytestDeprecationWarning: direct construction of Flake8Item has been deprecated, please use Flake8Item.from_parent

  • When I run python setup.py test command in my project folder to test my package with setup.cfg configuration I got this warning message.
  • How can I disable it?

python setup.py test acts like pytest --flake8 command.

============================================================================================== warnings summary =============================================================================================== 
c:\users\yedhrab\appdata\local\programs\python\python38\lib\site-packages\pytest_flake8.py:65
  c:\users\yedhrab\appdata\local\programs\python\python38\lib\site-packages\pytest_flake8.py:65: PytestDeprecationWarning: direct construction of Flake8Item has been deprecated, please use Flake8Item.from_parent
    return Flake8Item(

-- Docs: https://docs.pytest.org/en/latest/warnings.html
=========================================================================================== short test summary info =========================================================================================== 
SKIPPED [1] c:\users\***\appdata\local\programs\python\python38\lib\site-packages\pytest_flake8.py:106: file(s) previously passed FLAKE8 checks
=================================================================================== 9 passed, 1 skipped, 1 warning in 0.33s =================================================================================== 


Solution 1:[1]

If you do not want to disable all warnings but only a specific pytest warning, use the -W parameter:

pytest -W ignore::pytest.PytestDeprecationWarning

Solution 2:[2]

You should use the --disable-warnings flag to silence the warnings for a particular test if that's really what you want.

pytest --disable-warnings

See for more details by running pytest --help.

Solution 3:[3]

I solved this issue via adding these lines to my setup.cfg

[tool:pytest]
# ...
filterwarnings =
    ignore::DeprecationWarning

Solution 4:[4]

tf.keras.layers.MaxPool2D expects input shape 4D tensor with shape (batch_size, rows, cols, channels). In this case you are adding extra dimension. Make sure your inputs are of 4D.

Working sample code

import tensorflow as tf
input_shape = (4, 28, 28, 3)
x = tf.random.normal(input_shape)
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.InputLayer(input_shape=input_shape[1:]))
model.add(tf.keras.layers.Conv2D(filters=32,
                  kernel_size=2,
                  activation='relu'))
model.add(tf.keras.layers.MaxPool2D(pool_size=2))

output = model(x)

Output

TensorShape([4, 13, 13, 32])

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Suzana
Solution 2 0p3r4t0r
Solution 3 Chris
Solution 4 TFer