Add regex approach to load mappings

stix2.1
Emmanuelle Vargas-Gonzalez 2018-07-25 14:06:18 -04:00
parent ad76e7155c
commit 5e71f9225b
1 changed files with 3 additions and 2 deletions

View File

@ -1,6 +1,7 @@
import copy
import importlib
import pkgutil
import re
import stix2
@ -284,12 +285,12 @@ def _collect_stix2_mappings():
prefix = str(top_level_module.__name__) + '.'
for module_loader, name, is_pkg in pkgutil.walk_packages(path=path, prefix=prefix):
if name.startswith('stix2.v2') and is_pkg:
if re.match(r'^stix2\.v2[0-9]$', name) and is_pkg:
mod = importlib.import_module(name, str(top_level_module.__name__))
STIX2_OBJ_MAPS[name.split('.')[1]] = {}
STIX2_OBJ_MAPS[name.split('.')[1]]['objects'] = mod.OBJ_MAP
STIX2_OBJ_MAPS[name.split('.')[1]]['observables'] = mod.OBJ_MAP_OBSERVABLE
STIX2_OBJ_MAPS[name.split('.')[1]]['observable-extensions'] = mod.EXT_MAP
elif name.startswith('stix2.v2') and name.endswith('.common') and is_pkg is False:
elif re.match(r'^stix2\.v2[0-9]\.common$', name) and is_pkg is False:
mod = importlib.import_module(name, str(top_level_module.__name__))
STIX2_OBJ_MAPS[name.split('.')[1]]['markings'] = mod.OBJ_MAP_MARKING