BUG: BURST requires `tabulate`
davidslater opened this issue · 4 comments
Please add tabulate
to the dependencies in requirements.txt
and minimum_requirements.txt
. Currently, if you import the library, you get a ModuleNotFoundError for tabulate
. This in turn effects all imports of functions from the library.
Here is the stack trace:
import trackeval
File "./trackeval/__init__.py", line 2, in <module>
from . import datasets
File "./trackeval/datasets/__init__.py", line 9, in <module>
from .burst import BURST
File "./trackeval/datasets/burst.py", line 2, in <module>
from .burst_helpers.burst_base import BURSTBase
File "./trackeval/datasets/burst_helpers/burst_base.py", line 7, in <module>
from trackeval.utils import TrackEvalException
File "./trackeval/__init__.py", line 2, in <module>
from . import datasets
File "./trackeval/datasets/__init__.py", line 9, in <module>
from .burst import BURST
File "./trackeval/datasets/burst.py", line 3, in <module>
from .burst_helpers.format_converter import GroundTruthBURSTFormatToTAOFormatConverter, PredictionBURSTFormatToTAOFormatConverter
File "./trackeval/datasets/burst_helpers/format_converter.py", line 4, in <module>
from tabulate import tabulate
ModuleNotFoundError: No module named 'tabulate'
Alternatively, if you didn't want to modify the minimum_requirements, you will need to do one of the following (or something similar). The second solution would provide backwards compatibility and is my recommendation:
- not import
datasets
in./trackeval/__init__.py
. Not sure what issues this would cause elsewhere in the library. - In
./trackeval/datasets/__init__.py
, you can add a try / except block to catch this issue as follows. You can change these lines:
from .burst import BURST
from .burst_ow import BURST_OW
to
try:
from .burst import BURST
from .burst_ow import BURST_OW
except ImportError as err:
print(f"Error importing BURST due to missing underlying dependency {err}."
Hey David.
Can you make a PR with your suggested change number 2 (and add tabulate dependency to requirements.txt but not minimum_requirements.txt), so I can simply review and accept the PR? (not easy for me to make these changes myself at the moment).
If you're free to do this right now, can be sorted very quick :)
Also thanks!
Yes, can do.
Done