84

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'
1
  • Add your code please or prepare minimum example. Commented Oct 23, 2019 at 11:48

7 Answers 7

140

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

Sign up to request clarification or add additional context in comments.

I confirm, best action is to update pytest to a more recent version.
I think there is a missing = sign in the version pinning. It should be pip install --upgrade attrs==19.1.0
I confirm this was an unexpected dependency that I had to install manually.
10

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).

Comments

8

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

Comments

5
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.

Comments

0

Simply use the command

conda update conda

and restart your system.

Comments

0

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

V2 doc: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/crypto-cli-examples.html#cli-example-encrypt-file

github bug: https://github.com/aws/aws-cdk/issues/3293

Comments

0

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'

Comments

Your Answer

Draft saved
Draft discarded

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.