TypeError: attrib() got an unexpected keyword argument 'convert'
Question:
This error occurred during automated testing of a python project on the CI server using pytest
. I’m using pytest==4.0.2
. This error only just started to occur, previous pipelines seem to work fine.
The full error:
File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory
lambda p: Path(os.path.abspath(six.text_type(p)))
TypeError: attrib() got an unexpected keyword argument 'convert'
Answers:
pytest
seems to have the package attrs
as a dependency. attrs==19.2.0
was released around 2019-10-01 17:00 UTC
. This seems to cause the problem above.
Switching back to attrs==19.1.0
fixes the problem. Just do the following:
pip install attrs==19.1.0
NOTE: I expect that the issue will be resolved either by attrs
or pytest
soon by releasing a new version. So this fix should only be temporary.
From the comments: This error does not occur on the newer versions of pytest i.e. pytest==5.2.0
pytest fixed using deprecated keyword convert
at 3.6.3 (https://docs.pytest.org/en/latest/changelog.html#pytest-3-6-3-2018-07-04).
At 4.0.1, pytest merged code using convert
(https://github.com/pytest-dev/pytest/pull/4427).
This code was fixed on 5.2.0 (https://github.com/pytest-dev/pytest/pull/4795).
pytest version 5.3.1 with attrs Version 19.3.0 works fine for me.
[To check the pytest Version and attrs Version issue the following command:]
pip show pytest attrs
I solved the same problem by upgrading pytest module via pip command:
pip install -U pytest
Simply use the command
conda update conda
and restart your system.
I have the same error with aws-encryption-cli
v2.
I have updated my aws-cdk.core
lib and it work again with migrate to aws-encryption-cli
V2.
pip install -U aws-cdk.core
github bug: https://github.com/aws/aws-cdk/issues/3293
python -m pip install --upgrade pytest
(anaconda prompt or cmd)
this should solve your problem, as an updated version of pytest automatically takes care of attr issues.
The issue is that with attrs==19.2.0
the convert
attribute was removed (source).
attr.ib(convert=int)
should be deprecated and replaced by attr.ib(converter=int)
You either need to update whatever is using attrs or you need to downgrade: pip install 'attrs<19.2.0'
This error occurred during automated testing of a python project on the CI server using pytest
. I’m using pytest==4.0.2
. This error only just started to occur, previous pipelines seem to work fine.
The full error:
File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory
lambda p: Path(os.path.abspath(six.text_type(p)))
TypeError: attrib() got an unexpected keyword argument 'convert'
pytest
seems to have the package attrs
as a dependency. attrs==19.2.0
was released around 2019-10-01 17:00 UTC
. This seems to cause the problem above.
Switching back to attrs==19.1.0
fixes the problem. Just do the following:
pip install attrs==19.1.0
NOTE: I expect that the issue will be resolved either by attrs
or pytest
soon by releasing a new version. So this fix should only be temporary.
From the comments: This error does not occur on the newer versions of pytest i.e. pytest==5.2.0
pytest fixed using deprecated keyword convert
at 3.6.3 (https://docs.pytest.org/en/latest/changelog.html#pytest-3-6-3-2018-07-04).
At 4.0.1, pytest merged code using convert
(https://github.com/pytest-dev/pytest/pull/4427).
This code was fixed on 5.2.0 (https://github.com/pytest-dev/pytest/pull/4795).
pytest version 5.3.1 with attrs Version 19.3.0 works fine for me.
[To check the pytest Version and attrs Version issue the following command:]
pip show pytest attrs
I solved the same problem by upgrading pytest module via pip command:
pip install -U pytest
Simply use the command
conda update conda
and restart your system.
I have the same error with aws-encryption-cli
v2.
I have updated my aws-cdk.core
lib and it work again with migrate to aws-encryption-cli
V2.
pip install -U aws-cdk.core
github bug: https://github.com/aws/aws-cdk/issues/3293
python -m pip install --upgrade pytest
(anaconda prompt or cmd)
this should solve your problem, as an updated version of pytest automatically takes care of attr issues.
The issue is that with attrs==19.2.0
the convert
attribute was removed (source).
attr.ib(convert=int)
should be deprecated and replaced by attr.ib(converter=int)
You either need to update whatever is using attrs or you need to downgrade: pip install 'attrs<19.2.0'