okta / okta-sdk-python

Apache License 2.0
229 stars 143 forks source link

Python 3.11 not supported? #381

Closed artkrz closed 6 months ago

artkrz commented 6 months ago

When I'm trying to use this sdk with Lambda I'm getting:

[ERROR] AttributeError: module 'collections' has no attribute 'MutableMapping'Traceback (most recent call last):  File "/var/lang/lib/python3.11/importlib/__init__.py", line 126, in import_module    return _bootstrap._gcd_import(name[level:], package, level)  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked  File "<frozen importlib._bootstrap_external>", line 940, in exec_module  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed  File "/var/task/lambda.py", line 8, in <module>    from okta.client import Client as OktaClient  File "/opt/python/okta/client.py", line 23, in <module>    from okta.config.config_setter import ConfigSetter  File "/opt/python/okta/config/config_setter.py", line 5, in <module>    from flatdict import FlatDict  File "/opt/python/flatdict.py", line 18, in <module>    class FlatDict(collections.MutableMapping): | [ERROR] AttributeError: module 'collections' has no attribute 'MutableMapping' Traceback (most recent call last):   File "/var/lang/lib/python3.11/importlib/__init__.py", line 126, in import_module     return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked   File "<frozen importlib._bootstrap_external>", line 940, in exec_module   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed   File "/var/task/lambda.py", line 8, in <module>     from okta.client import Client as OktaClient   File "/opt/python/okta/client.py", line 23, in <module>     from okta.config.config_setter import ConfigSetter   File "/opt/python/okta/config/config_setter.py", line 5, in <module>     from flatdict import FlatDict   File "/opt/python/flatdict.py", line 18, in <module>     class FlatDict(collections.MutableMapping):

This is caused by the flatdict import

https://github.com/okta/okta-sdk-python/blob/master/okta/config/config_setter.py#L5

What's strange is that they seem to have a workaround so no idea why is this not working:

https://github.com/gmr/flatdict/blob/master/flatdict.py#L5-L8

artkrz commented 6 months ago

Ignore it, it was a botched pip when the lambda layer was created.