crossbario / crossbar

Crossbar.io - WAMP application router
https://crossbar.io/
Other
2.05k stars 275 forks source link

PyTrie 0.4.0 drops python2 support #1819

Closed henxing closed 3 years ago

henxing commented 4 years ago

The requirements-latest.txt and requirements-min.txt files need to be updated to restrict the version of PyTrie crossbar depends on to pytrie>=0.3, <0.4.0, since version 0.4.0 drops python 2 support.

crossbar version output

$ crossbar version
/usr/local/lib/python2.7/dist-packages/OpenSSL/crypto.py:12: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release.
  from cryptography import x509
     __  __  __  __  __  __      __     __
    /  `|__)/  \/__`/__`|__) /\ |__)  |/  \
    \__,|  \\__/.__/.__/|__)/~~\|  \. |\__/

 Crossbar.io        : 18.4.1 (Crossbar.io COMMUNITY)
   Autobahn         : 19.10.1 (with JSON, MessagePack, CBOR, UBJSON)
   Twisted          : 20.3.0-EPollReactor
   LMDB             : 1.0.0/lmdb-0.9.24
   Python           : 2.7.17/CPython
 Frozen executable  : no
 Operating system   : Linux-5.4.0-1028-aws-x86_64-with-Ubuntu-18.04-bionic
 Host machine       : x86_64
 Release key        : RWRoWUpWxaQIXo+I/gl5/ghE46xcFKM4YXQlHck9kRBNLQI+rElVETMF

Steps to reproduce

$ pip install crossbar
...
$ pip install pytrie==0.4.0
...
$ crossbar version
Traceback (most recent call last):
  File "/usr/local/bin/crossbar", line 11, in <module>
    sys.exit(run())
  File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/cli.py", line 1114, in run
    if options.personality not in get_installed_personalities():
  File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/cli.py", line 67, in get_installed_personalities
    from crossbar.controller.personality import Personality as CommunityPersonality
  File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/personality.py", line 37, in <module>
    from crossbar.controller.node import Node
  File "/usr/local/lib/python2.7/dist-packages/crossbar/controller/node.py", line 61, in <module>
    from crossbar.router.router import RouterFactory
  File "/usr/local/lib/python2.7/dist-packages/crossbar/router/router.py", line 44, in <module>
    from crossbar.router.broker import Broker
  File "/usr/local/lib/python2.7/dist-packages/crossbar/router/broker.py", line 46, in <module>
    from crossbar.router.observation import UriObservationMap
  File "/usr/local/lib/python2.7/dist-packages/crossbar/router/observation.py", line 34, in <module>
    from pytrie import StringTrie
  File "/usr/local/lib/python2.7/dist-packages/pytrie.py", line 48, in <module>
    from collections.abc import MutableMapping
ImportError: No module named abc
henxing commented 3 years ago

This was noticed running against Python 2, which crossbar does not support.