nccgroup / PMapper

A tool for quickly evaluating IAM permissions in AWS.
GNU Affero General Public License v3.0
1.37k stars 169 forks source link

Doesn't support Python 3.10 #106

Closed dtrodrigues closed 2 years ago

dtrodrigues commented 2 years ago

Describe the bug pmapper cannot run on Python 3.10

To Reproduce

$ pip install  principalmapper==1.1.5
$ pmapper 
Traceback (most recent call last):
  File "/usr/local/bin/pmapper", line 5, in <module>
    from principalmapper.__main__ import main
  File "/usr/local/lib/python3.10/site-packages/principalmapper/__main__.py", line 24, in <module>
    from principalmapper.analysis import cli as analysis_cli
  File "/usr/local/lib/python3.10/site-packages/principalmapper/analysis/cli.py", line 20, in <module>
    from principalmapper.analysis import find_risks
  File "/usr/local/lib/python3.10/site-packages/principalmapper/analysis/find_risks.py", line 37, in <module>
    from principalmapper.querying import query_interface
  File "/usr/local/lib/python3.10/site-packages/principalmapper/querying/query_interface.py", line 26, in <module>
    from principalmapper.querying.local_policy_simulation import *
  File "/usr/local/lib/python3.10/site-packages/principalmapper/querying/local_policy_simulation.py", line 32, in <module>
    from principalmapper.util.case_insensitive_dict import CaseInsensitiveDict
  File "/usr/local/lib/python3.10/site-packages/principalmapper/util/case_insensitive_dict.py", line 34, in <module>
    from collections import Mapping, MutableMapping, OrderedDict
ImportError: cannot import name 'Mapping' from 'collections' (/usr/local/lib/python3.10/collections/__init__.py)

Expected behavior pmapper to not error

dylroberts commented 2 years ago

You can fix this issue by modifying the imports in the 'case_insensitive_dict.py' file.

Original:

from collections.abc import Mapping, MutableMapping, OrderedDict

Modified:

from collections.abc import Mapping, MutableMapping
from collections import OrderedDict
dtrodrigues commented 2 years ago

Closing the issue due to the merge of https://github.com/nccgroup/PMapper/pull/107

nimaft commented 1 year ago

I'm running Python 3.10.6 on MacOS Monterey 12.6.1 and still have the same issue, had to change

from collections import Mapping, MutableMapping, OrderedDict

to

from collections.abc import Mapping, MutableMapping
from collections import OrderedDict

to make it work.