codingo / Interlace

Easily turn single threaded command line applications into a fast, multi-threaded application with CIDR and glob support.
GNU General Public License v3.0
1.21k stars 179 forks source link

Interlace dont like latest python #163

Open shifty0g opened 2 years ago

shifty0g commented 2 years ago

Not sure if it likes new version of python

uname -a 
Linux kali 5.16.0-kali7-amd64 #1 SMP PREEMPT Debian 5.16.18-1kali1 (2022-04-01) x86_64 GNU/Linux

python3 --version       
Python 3.10.4

Steps to replicate

Literally git clone this repo

cd Interlace  
python3 setup.py install 

when i try to then load interlace it dies

python3 interlace.py

Traceback (most recent call last):
  File "/usr/local/bin/interlace", line 33, in <module>
    sys.exit(load_entry_point('Interlace==1.9.6', 'console_scripts', 'interlace')())
  File "/usr/local/bin/interlace", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/local/lib/python3.10/dist-packages/Interlace-1.9.6-py3.10.egg/Interlace/interlace.py", line 6, in <module>
  File "/usr/local/lib/python3.10/dist-packages/Interlace-1.9.6-py3.10.egg/Interlace/lib/core/output.py", line 4, in <module>
  File "/usr/local/lib/python3.10/dist-packages/colorclass-2.2.0-py3.10.egg/colorclass/__init__.py", line 11, in <module>
  File "/usr/local/lib/python3.10/dist-packages/colorclass-2.2.0-py3.10.egg/colorclass/codes.py", line 4, in <module>
ImportError: cannot import name 'Mapping' from 'collections' (/usr/lib/python3.10/collections/__init__.py)

any ideas what im doing wrong here. i have reverted snapshot and tried on a fresh kali vm but no go. seems like interlace dont play ball with the latest python

0xtavian commented 2 years ago

@prodigysml hey bud, i can confirm interlace isnt playing nicely with the latest python. Taking the temp fix from https://github.com/pry0cc/axiom/issues/555#issuecomment-1133745166 fixes the issue. Seem to be a bug in the latest python?

adding the following line from collections.abc import Mapping to

/usr/lib/python3.10/collections/init.py
/usr/lib/python3.10/collections/__init__.py
shifty0g commented 2 years ago

Thanks for the response. I will give it a go. On my kali I had other versions of python 3.9 which I reinstalled under and changed the first line of interlace,py to #!/usr/bin/python3.9 so it runs nicely. job done. That will teach me for using bleeding edge. :):):)

prodigysml commented 2 years ago

Thanks for the heads up @0xtavian ! Yeah, that seems like a weird issue with the latest python. I'll see if there is anything we can do to fix this up (maybe changing the data structure we use or something).

prodigysml commented 2 years ago

Ahhh! Its used by our colouring dependency

prodigysml commented 2 years ago

I believe this has been fixed now. With the new version 1.9.7 (when it gets released by @codingo ), we will have removed that dependency entirely, making sure this doesn't happen again!

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.