-
Notifications
You must be signed in to change notification settings - Fork 215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
boxsdk 2 not compatible with six==1.11.0 #239
Comments
jmoldow
added a commit
that referenced
this issue
Sep 18, 2017
Add a fallback for `six.raise_from`, which isn't available in six 1.4.0. It isn't available until six 1.9.0. We could also have raised the lower bound for the six requirement, but this is an easy way to allow clients to keep using their existing versions of six. Fix support for the latest version of six, 1.11.0. That release changed the temporary metaclass returned from `with_metaclass()`, such that it directly inherits from `type`, instead of inheriting from the target metaclass [1]. We depended on this detail, and the change caused .. code-block:: python TypeError('metaclass conflict: ...') to be raised when defining a class with `with_metaclass()`. We fix this by manually selecting the most derived metaclass, and including it in our temporary metaclass. Also, `__prepare__` is now defined on the temporary metaclass, in six 1.11.0 [2]. This allows us to skip our own definition of that method, when using six>=1.11.0. Fixes #228. Fixes #239. [1] <benjaminp/six#191> [2] <benjaminp/six#178>
jmoldow
added a commit
that referenced
this issue
Sep 18, 2017
Add a fallback for `six.raise_from`, which isn't available in six 1.4.0. It isn't available until six 1.9.0. We could also have raised the lower bound for the six requirement, but this is an easy way to allow clients to keep using their existing versions of six. Fix support for the latest version of six, 1.11.0. That release changed the temporary metaclass returned from `with_metaclass()`, such that it directly inherits from `type`, instead of inheriting from the target metaclass [1]. We depended on this detail, and the change caused .. code-block:: python TypeError('metaclass conflict: ...') to be raised when defining a class with `with_metaclass()`. We fix this by manually selecting the most derived metaclass, and including it in our temporary metaclass. Also, `__prepare__` is now defined on the temporary metaclass, in six 1.11.0 [2]. This allows us to skip our own definition of that method, when using six>=1.11.0. Fixes #228. Fixes #239. [1] <benjaminp/six#191> [2] <benjaminp/six#178>
jmoldow
added a commit
that referenced
this issue
Sep 18, 2017
Add a fallback for `six.raise_from`, which isn't available in six 1.4.0. It isn't available until six 1.9.0. We could also have raised the lower bound for the six requirement, but this is an easy way to allow clients to keep using their existing versions of six. Fix support for the latest version of six, 1.11.0. That release changed the temporary metaclass returned from `with_metaclass()`, such that it directly inherits from `type`, instead of inheriting from the target metaclass [1]. We depended on this detail, and the change caused .. code-block:: python TypeError('metaclass conflict: ...') to be raised when defining a class with `with_metaclass()`. We fix this by manually selecting the most derived metaclass, and including it in our temporary metaclass. Also, `__prepare__` is now defined on the temporary metaclass, in six 1.11.0 [2]. This allows us to skip our own definition of that method, when using six>=1.11.0. Fixes #228. Fixes #239. [1] <benjaminp/six#191> [2] <benjaminp/six#178>
jmoldow
added a commit
that referenced
this issue
Sep 19, 2017
Update minimum required version of `six` to 1.9.0, so that `six.raise_from` can be safely used by all clients. Fix support for the latest version of six, 1.11.0. That release changed the temporary metaclass returned from `with_metaclass()`, such that it directly inherits from `type`, instead of inheriting from the target metaclass [1]. We depended on this detail, and the change caused .. code-block:: python TypeError('metaclass conflict: ...') to be raised when defining a class with `with_metaclass()`. We fix this by manually selecting the most derived metaclass, and including it in our temporary metaclass. Also, `__prepare__` is now defined on the temporary metaclass, in six 1.11.0 [2]. This allows us to skip our own definition of that method, when using six>=1.11.0. Fixes #228. Fixes #239. [1] <benjaminp/six#191> [2] <benjaminp/six#178>
jmoldow
added a commit
that referenced
this issue
Sep 19, 2017
Add a fallback for `six.raise_from`, which isn't available in six 1.4.0. It isn't available until six 1.9.0. We could also have raised the lower bound for the six requirement, but this is an easy way to allow clients to keep using their existing versions of six. Fix support for the latest version of six, 1.11.0. That release changed the temporary metaclass returned from `with_metaclass()`, such that it directly inherits from `type`, instead of inheriting from the target metaclass [1]. We depended on this detail, and the change caused .. code-block:: python TypeError('metaclass conflict: ...') to be raised when defining a class with `with_metaclass()`. We fix this by manually selecting the most derived metaclass, and including it in our temporary metaclass. Also, `__prepare__` is now defined on the temporary metaclass, in six 1.11.0 [2]. This allows us to skip our own definition of that method, when using six>=1.11.0. Fixes #228. Fixes #239. [1] <benjaminp/six#191> [2] <benjaminp/six#178>
@jmoldow Did a fresh install of pip, python27 and boxsdk and still getting this error. My workaround for now is just to downgrade back to six v1.10.0 |
@hcbomb I just released versions 1.5.5 and 2.0.0a9 to PyPI, which have the fix in them. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello,
a new version of the six module has been released, boxsdk is not compatible.
to replicate the problem:
pip install six==1.11.0 boxsdk==2.0.0a8
python -c "import boxsdk"
results in:
I reported the bug in six and they have responded, suggesting a change in box:
benjaminp/six#210 (comment)
our workaround for the moment is to pin six to version 1.10, i link to this here for posterity.
cheers
The text was updated successfully, but these errors were encountered: