mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -06:00
Fixes #2318: ImportError when viewing a report
This commit is contained in:
parent
507a023f41
commit
f59682a7c9
@ -1 +0,0 @@
|
|||||||
Subproject commit b3a449437792668041d5cfb9cd6d025e1a5b3470
|
|
@ -1,9 +1,10 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from collections import OrderedDict
|
||||||
import importlib
|
import importlib
|
||||||
import inspect
|
import inspect
|
||||||
import pkgutil
|
import pkgutil
|
||||||
from collections import OrderedDict
|
import sys
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@ -23,10 +24,29 @@ def get_report(module_name, report_name):
|
|||||||
"""
|
"""
|
||||||
Return a specific report from within a module.
|
Return a specific report from within a module.
|
||||||
"""
|
"""
|
||||||
module = importlib.import_module(module_name)
|
file_path = '{}/{}.py'.format(settings.REPORTS_ROOT, module_name)
|
||||||
|
|
||||||
|
# Python 3.5+
|
||||||
|
if sys.version_info >= (3, 5):
|
||||||
|
spec = importlib.util.spec_from_file_location(module_name, file_path)
|
||||||
|
module = importlib.util.module_from_spec(spec)
|
||||||
|
try:
|
||||||
|
spec.loader.exec_module(module)
|
||||||
|
except FileNotFoundError:
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Python 2.7
|
||||||
|
else:
|
||||||
|
import imp
|
||||||
|
try:
|
||||||
|
module = imp.load_source(module_name, file_path)
|
||||||
|
except IOError:
|
||||||
|
return None
|
||||||
|
|
||||||
report = getattr(module, report_name, None)
|
report = getattr(module, report_name, None)
|
||||||
if report is None:
|
if report is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return report()
|
return report()
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user