Skip to content

Using attribute_map_dir files throw error 'No module named __init__' #954

Open
@bumblebeexx

Description

@bumblebeexx

In my SAML config I have put "attribute_map_dir": SAML_DIR / "attribute-maps",

This attribute-maps directory contains two files __init__.py and test.py

However, it causes this exception below.

Exception Type: ModuleNotFoundError at /saml2/login/
Exception Value: No module named '__init__'
...
...
File "djangosaml2/.venv/lib/python3.10/site-packages/saml2/config.py", line 338, in load
    self.load_complex(cnf)
  File "djangosaml2/.venv/lib/python3.10/site-packages/saml2/config.py", line 266, in load_complex
    acs = ac_factory(cnf.get("attribute_map_dir"))
  File "djangosaml2/.venv/lib/python3.10/site-packages/saml2/attribute_converter.py", line 67, in ac_factory
    mod = import_module(fil[:-3])

I removed __init__.py but then it threw error for test.py. It's happening because the function ac_factory() in saml2/attribute_converter.py has this code which is trying to import Python files -

if fil.endswith(".py"):

I also tried to print sys.path and it contains the full path to the map dir as set in the attribute_map_dir in config.

sys.path.insert(0, path)

I can't figure out how to get it working. Please advise the correct way to setup attribute maps.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions