Skip to content

Commit 665f894

Browse files
committed
Merge branch 'pr/985' into develop
2 parents 2d9b938 + 9459899 commit 665f894

File tree

2 files changed

+36
-17
lines changed

2 files changed

+36
-17
lines changed

pyrevitlib/pyrevit/extensions/extpackages.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -432,16 +432,21 @@ def get_ext_packages(authorized_only=True):
432432
"""
433433
extpkgs = []
434434
for ext_dir in user_config.get_ext_root_dirs():
435-
extpkg_deffile = op.join(ext_dir, PLUGIN_EXT_DEF_FILE)
436-
mlogger.debug('Looking for %s', extpkg_deffile)
437-
# check for external ext def file
438-
if op.exists(extpkg_deffile):
439-
mlogger.debug('Found %s', extpkg_deffile)
440-
_update_extpkgs(extpkg_deffile, extpkgs)
441-
# check internals now
442-
internal_extpkg_defs = _find_internal_extpkgs(ext_dir)
443-
for int_def_file in internal_extpkg_defs:
444-
_update_extpkgs(int_def_file, extpkgs)
435+
# make a list of all availabe extension definition sources
436+
# default is under the extensions directory that ships with pyrevit
437+
extpkg_def_files = {op.join(ext_dir, PLUGIN_EXT_DEF_FILE)}
438+
# add other sources added by the user (using the cli)
439+
extpkg_def_files.update(user_config.get_ext_sources())
440+
for extpkg_def_file in extpkg_def_files:
441+
mlogger.debug('Looking for %s', extpkg_def_file)
442+
# check for external ext def file
443+
if op.exists(extpkg_def_file):
444+
mlogger.debug('Found %s', extpkg_def_file)
445+
_update_extpkgs(extpkg_def_file, extpkgs)
446+
# check internals now
447+
internal_extpkg_defs = _find_internal_extpkgs(ext_dir)
448+
for int_def_file in internal_extpkg_defs:
449+
_update_extpkgs(int_def_file, extpkgs)
445450

446451
if authorized_only:
447452
return [x for x in extpkgs if x.user_has_access]

pyrevitlib/pyrevit/userconfig.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ def config_file(self):
108108
"""Current config file path."""
109109
return self._cfg_file_path
110110

111+
@property
112+
def environment(self):
113+
if not self.has_section(CONSTS.EnvConfigsSectionName):
114+
self.add_section(CONSTS.EnvConfigsSectionName)
115+
return self.get_section(CONSTS.EnvConfigsSectionName)
116+
111117
@property
112118
def core(self):
113119
if not self.has_section(CONSTS.ConfigsCoreSection):
@@ -562,12 +568,12 @@ def get_thirdparty_ext_root_dirs(self, include_default=True):
562568
Returns:
563569
:obj:`list`: list of strings. External user extension directories.
564570
"""
565-
dir_list = []
571+
dir_list = set()
566572
if include_default:
567573
# add default ext path
568-
dir_list.append(THIRDPARTY_EXTENSIONS_DEFAULT_DIR)
574+
dir_list.add(THIRDPARTY_EXTENSIONS_DEFAULT_DIR)
569575
try:
570-
dir_list.extend([
576+
dir_list.update([
571577
op.expandvars(op.normpath(x))
572578
for x in self.core.get_option(
573579
CONSTS.ConfigsUserExtensionsKey,
@@ -586,11 +592,19 @@ def get_ext_root_dirs(self):
586592
:obj:`list`: list of strings. user extension directories.
587593
588594
"""
589-
dir_list = []
595+
dir_list = set()
590596
if op.exists(EXTENSIONS_DEFAULT_DIR):
591-
dir_list.append(EXTENSIONS_DEFAULT_DIR)
592-
dir_list.extend(self.get_thirdparty_ext_root_dirs())
593-
return list(set(dir_list))
597+
dir_list.add(EXTENSIONS_DEFAULT_DIR)
598+
dir_list.update(self.get_thirdparty_ext_root_dirs())
599+
return list(dir_list)
600+
601+
def get_ext_sources(self):
602+
"""Return a list of extension definition source files"""
603+
ext_sources = self.environment.get_option(
604+
CONSTS.EnvConfigsExtensionLookupSourcesKey,
605+
default_value=[],
606+
)
607+
return list(set(ext_sources))
594608

595609
def set_thirdparty_ext_root_dirs(self, path_list):
596610
"""Updates list of external extension directories in config file

0 commit comments

Comments
 (0)