enthought / enthought/comtypes

GetModule IndexError list index out of range with gen_dir=None

Open
#207 0 comments 0 reactions 0 assignees View on GitHub
help wanted
Dominant language
Python
Stars
345
Forks
105
PR merge metrics
No merged PRs in 30d

Description

I'm experiencing IndexError when using `GetModule(filename)` together with `gen_dir=None`.

Sample code to reproduce:
```
import comtypes.client
comtypes.client.gen_dir = None
#comtypes.gen.__path__ = [''] # work-around for crash
tlb = comtypes.client.GetModule(tlbfile) # raises IndexError
```

The error seem to be caused by `comtypes.gen.__path__` being empty.

Error traceback:
```
File "MyScript.py", line 80, in ParseTypeLib
tlb = comtypes.client.GetModule(tlbfile)
File "lib\site-packages\comtypes\client\_generate.py", line 110, in GetModule
mod = _CreateWrapper(tlib, pathname)
File "lib\site-packages\comtypes\client\_generate.py", line 172, in _CreateWrapper
generate_module(tlib, ofi, pathname)
File "lib\site-packages\comtypes\tools\tlbparser.py", line 750, in generate_module
gen.generate_code(list(items.values()), filename=pathname)
File "lib\site-packages\comtypes\tools\codegenerator.py", line 241, in generate_code
self.generate_all(items)
File "lib\site-packages\comtypes\tools\codegenerator.py", line 189, in generate_all
self.generate(item)
File "lib\site-packages\comtypes\tools\codegenerator.py", line 185, in generate
mth(item)
File "lib\site-packages\comtypes\tools\codegenerator.py", line 629, in External
comtypes.client.GetModule(ext.tlib)
File "lib\site-packages\comtypes\client\_generate.py", line 110, in GetModule
mod = _CreateWrapper(tlib, pathname)
File "lib\site-packages\comtypes\client\_generate.py", line 177, in _CreateWrapper
mod.__file__ = os.path.join(os.path.abspath(comtypes.gen.__path__[0]),
IndexError: list index out of range
```

### Environment
* 64bit Python 3.6 & 64bit Python 3.7.
* comtypes 1.1.7 (most recent released version)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.