ingolemo / python-lenses

A python lens library for manipulating deeply nested immutable structures
GNU General Public License v3.0
308 stars 19 forks source link

Fails on import with python3.5 #20

Closed xkortex closed 5 years ago

xkortex commented 5 years ago

Python 3.5.2, ubuntu 16.04

I get what looks like a namespace collision when I try to import lenses

$ python -c "import lenses"

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/user/.virtualenvs/abc/lib/python3.5/site-packages/lenses/__init__.py", line 23, in <module>
    from . import optics
  File "/home/user/.virtualenvs/abc/lib/python3.5/site-packages/lenses/optics/__init__.py", line 1, in <module>
    from .base import *
  File "/home/user/.virtualenvs/abc/lib/python3.5/site-packages/lenses/optics/base.py", line 7, in <module>
    from ..maybe import Just, Nothing
  File "/home/user/.virtualenvs/abc/lib/python3.5/site-packages/lenses/maybe.py", line 71, in <module>
    class Nothing(Just[A]):
  File "/usr/lib/python3.5/typing.py", line 1033, in __getitem__
    extra=self.__extra__)
  File "/usr/lib/python3.5/typing.py", line 909, in __new__
    self = super().__new__(cls, name, bases, namespace, _root=True)
  File "/usr/lib/python3.5/typing.py", line 107, in __new__
    return super().__new__(cls, name, bases, namespace)
  File "/home/user/.virtualenvs/abc/lib/python3.5/abc.py", line 133, in __new__
    cls = super().__new__(mcls, name, bases, namespace)
ValueError: 'item' in __slots__ conflicts with class variable

Steps to reproduce

Blank python3.5 virtualenv. pip install lenses==0.4.0

0.3.0 works fine though.

xkortex commented 5 years ago

I think you probably fixed it, I don't see import * anywhere when i grep the current master. Just need to push the next tag ;)

ingolemo commented 5 years ago

Yeah, I'll release a new version. (see also #19)