Skip to content

Commit 62aa006

Browse files
authored
Merge branch 'develop' into fix-concurrent-config-access
2 parents 6d7587a + 3ffad59 commit 62aa006

File tree

14 files changed

+392
-451
lines changed

14 files changed

+392
-451
lines changed

pyrevitlib/pyrevit/__init__.py

+72-93
Original file line numberDiff line numberDiff line change
@@ -697,14 +697,6 @@ def command_uibutton(self):
697697
and __builtins__['__uibutton__']:
698698
return __builtins__['__uibutton__']
699699

700-
@property
701-
def doc_mode(self):
702-
"""bool: Check if pyrevit is running by doc generator."""
703-
try:
704-
return __sphinx__
705-
except NameError:
706-
return False
707-
708700
@property
709701
def result_dict(self):
710702
"""``Dictionary<String, String>``: Return results dict for logging."""
@@ -740,101 +732,88 @@ def docs(self):
740732
# config user environment paths
741733
# -----------------------------------------------------------------------------
742734
# user env paths
743-
if EXEC_PARAMS.doc_mode:
744-
ALLUSER_PROGRAMDATA = USER_ROAMING_DIR = USER_SYS_TEMP = USER_DESKTOP = \
745-
EXTENSIONS_DEFAULT_DIR = THIRDPARTY_EXTENSIONS_DEFAULT_DIR = ' '
746-
else:
747-
ALLUSER_PROGRAMDATA = os.getenv('programdata')
748-
USER_ROAMING_DIR = os.getenv('appdata')
749-
USER_SYS_TEMP = os.getenv('temp')
750-
USER_DESKTOP = op.expandvars('%userprofile%\\desktop')
735+
ALLUSER_PROGRAMDATA = os.getenv('programdata')
736+
USER_ROAMING_DIR = os.getenv('appdata')
737+
USER_SYS_TEMP = os.getenv('temp')
738+
USER_DESKTOP = op.expandvars('%userprofile%\\desktop')
751739

752-
# verify directory per issue #369
753-
if not USER_DESKTOP or not op.exists(USER_DESKTOP):
754-
USER_DESKTOP = USER_SYS_TEMP
740+
# verify directory per issue #369
741+
if not USER_DESKTOP or not op.exists(USER_DESKTOP):
742+
USER_DESKTOP = USER_SYS_TEMP
755743

756-
# default extensions directory
757-
EXTENSIONS_DEFAULT_DIR = op.join(HOME_DIR, 'extensions')
758-
THIRDPARTY_EXTENSIONS_DEFAULT_DIR = \
759-
op.join(USER_ROAMING_DIR, PYREVIT_ADDON_NAME, 'Extensions')
744+
# default extensions directory
745+
EXTENSIONS_DEFAULT_DIR = op.join(HOME_DIR, 'extensions')
746+
THIRDPARTY_EXTENSIONS_DEFAULT_DIR = \
747+
op.join(USER_ROAMING_DIR, PYREVIT_ADDON_NAME, 'Extensions')
760748

761749
# create paths for pyrevit files
762-
if EXEC_PARAMS.doc_mode:
763-
PYREVIT_ALLUSER_APP_DIR = PYREVIT_APP_DIR = PYREVIT_VERSION_APP_DIR = ' '
764-
else:
765-
# pyrevit file directory
766-
PYREVIT_ALLUSER_APP_DIR = op.join(ALLUSER_PROGRAMDATA, PYREVIT_ADDON_NAME)
767-
PYREVIT_APP_DIR = op.join(USER_ROAMING_DIR, PYREVIT_ADDON_NAME)
768-
PYREVIT_VERSION_APP_DIR = op.join(PYREVIT_APP_DIR, HOST_APP.version)
769-
770-
# add runtime paths to sys.paths
771-
# this will allow importing any dynamically compiled DLLs that
772-
# would be placed under this paths.
773-
for pyrvt_app_dir in [PYREVIT_APP_DIR,
774-
PYREVIT_VERSION_APP_DIR,
775-
THIRDPARTY_EXTENSIONS_DEFAULT_DIR]:
776-
if not op.isdir(pyrvt_app_dir):
777-
try:
778-
os.mkdir(pyrvt_app_dir)
779-
sys.path.append(pyrvt_app_dir)
780-
except Exception as err:
781-
raise PyRevitException('Can not access pyRevit '
782-
'folder at: {} | {}'
783-
.format(pyrvt_app_dir, err))
784-
else:
750+
# pyrevit file directory
751+
PYREVIT_ALLUSER_APP_DIR = op.join(ALLUSER_PROGRAMDATA, PYREVIT_ADDON_NAME)
752+
PYREVIT_APP_DIR = op.join(USER_ROAMING_DIR, PYREVIT_ADDON_NAME)
753+
PYREVIT_VERSION_APP_DIR = op.join(PYREVIT_APP_DIR, HOST_APP.version)
754+
755+
# add runtime paths to sys.paths
756+
# this will allow importing any dynamically compiled DLLs that
757+
# would be placed under this paths.
758+
for pyrvt_app_dir in [PYREVIT_APP_DIR,
759+
PYREVIT_VERSION_APP_DIR,
760+
THIRDPARTY_EXTENSIONS_DEFAULT_DIR]:
761+
if not op.isdir(pyrvt_app_dir):
762+
try:
763+
os.mkdir(pyrvt_app_dir)
785764
sys.path.append(pyrvt_app_dir)
765+
except Exception as err:
766+
raise PyRevitException('Can not access pyRevit '
767+
'folder at: {} | {}'
768+
.format(pyrvt_app_dir, err))
769+
else:
770+
sys.path.append(pyrvt_app_dir)
786771

787772

788773
# -----------------------------------------------------------------------------
789774
# standard prefixes for naming pyrevit files (config, appdata and temp files)
790775
# -----------------------------------------------------------------------------
791-
if EXEC_PARAMS.doc_mode:
792-
PYREVIT_FILE_PREFIX_UNIVERSAL = PYREVIT_FILE_PREFIX = \
793-
PYREVIT_FILE_PREFIX_STAMPED = None
794-
PYREVIT_FILE_PREFIX_UNIVERSAL_USER = PYREVIT_FILE_PREFIX_USER = \
795-
PYREVIT_FILE_PREFIX_STAMPED_USER = None
796-
else:
797-
# e.g. pyRevit_
798-
PYREVIT_FILE_PREFIX_UNIVERSAL = '{}_'.format(PYREVIT_ADDON_NAME)
799-
PYREVIT_FILE_PREFIX_UNIVERSAL_REGEX = \
800-
r'^' + PYREVIT_ADDON_NAME + r'_(?P<fname>.+)'
801-
802-
# e.g. pyRevit_2018_
803-
PYREVIT_FILE_PREFIX = '{}_{}_'.format(PYREVIT_ADDON_NAME,
804-
HOST_APP.version)
805-
PYREVIT_FILE_PREFIX_REGEX = \
806-
r'^' + PYREVIT_ADDON_NAME + r'_(?P<version>\d{4})_(?P<fname>.+)'
807-
808-
# e.g. pyRevit_2018_14422_
809-
PYREVIT_FILE_PREFIX_STAMPED = '{}_{}_{}_'.format(PYREVIT_ADDON_NAME,
810-
HOST_APP.version,
811-
HOST_APP.proc_id)
812-
PYREVIT_FILE_PREFIX_STAMPED_REGEX = \
813-
r'^' + PYREVIT_ADDON_NAME \
814-
+ r'_(?P<version>\d{4})_(?P<pid>\d+)_(?P<fname>.+)'
815-
816-
# e.g. pyRevit_eirannejad_
817-
PYREVIT_FILE_PREFIX_UNIVERSAL_USER = '{}_{}_'.format(PYREVIT_ADDON_NAME,
818-
HOST_APP.username)
819-
PYREVIT_FILE_PREFIX_UNIVERSAL_USER_REGEX = \
820-
r'^' + PYREVIT_ADDON_NAME + r'_(?P<user>.+)_(?P<fname>.+)'
821-
822-
# e.g. pyRevit_2018_eirannejad_
823-
PYREVIT_FILE_PREFIX_USER = '{}_{}_{}_'.format(PYREVIT_ADDON_NAME,
824-
HOST_APP.version,
825-
HOST_APP.username)
826-
PYREVIT_FILE_PREFIX_USER_REGEX = \
827-
r'^' + PYREVIT_ADDON_NAME \
828-
+ r'_(?P<version>\d{4})_(?P<user>.+)_(?P<fname>.+)'
829-
830-
# e.g. pyRevit_2018_eirannejad_14422_
831-
PYREVIT_FILE_PREFIX_STAMPED_USER = '{}_{}_{}_{}_'.format(PYREVIT_ADDON_NAME,
832-
HOST_APP.version,
833-
HOST_APP.username,
834-
HOST_APP.proc_id)
835-
PYREVIT_FILE_PREFIX_STAMPED_USER_REGEX = \
836-
r'^' + PYREVIT_ADDON_NAME \
837-
+ r'_(?P<version>\d{4})_(?P<user>.+)_(?P<pid>\d+)_(?P<fname>.+)'
776+
# e.g. pyRevit_
777+
PYREVIT_FILE_PREFIX_UNIVERSAL = '{}_'.format(PYREVIT_ADDON_NAME)
778+
PYREVIT_FILE_PREFIX_UNIVERSAL_REGEX = \
779+
r'^' + PYREVIT_ADDON_NAME + r'_(?P<fname>.+)'
780+
781+
# e.g. pyRevit_2018_
782+
PYREVIT_FILE_PREFIX = '{}_{}_'.format(PYREVIT_ADDON_NAME,
783+
HOST_APP.version)
784+
PYREVIT_FILE_PREFIX_REGEX = \
785+
r'^' + PYREVIT_ADDON_NAME + r'_(?P<version>\d{4})_(?P<fname>.+)'
786+
787+
# e.g. pyRevit_2018_14422_
788+
PYREVIT_FILE_PREFIX_STAMPED = '{}_{}_{}_'.format(PYREVIT_ADDON_NAME,
789+
HOST_APP.version,
790+
HOST_APP.proc_id)
791+
PYREVIT_FILE_PREFIX_STAMPED_REGEX = \
792+
r'^' + PYREVIT_ADDON_NAME \
793+
+ r'_(?P<version>\d{4})_(?P<pid>\d+)_(?P<fname>.+)'
794+
795+
# e.g. pyRevit_eirannejad_
796+
PYREVIT_FILE_PREFIX_UNIVERSAL_USER = '{}_{}_'.format(PYREVIT_ADDON_NAME,
797+
HOST_APP.username)
798+
PYREVIT_FILE_PREFIX_UNIVERSAL_USER_REGEX = \
799+
r'^' + PYREVIT_ADDON_NAME + r'_(?P<user>.+)_(?P<fname>.+)'
800+
801+
# e.g. pyRevit_2018_eirannejad_
802+
PYREVIT_FILE_PREFIX_USER = '{}_{}_{}_'.format(PYREVIT_ADDON_NAME,
803+
HOST_APP.version,
804+
HOST_APP.username)
805+
PYREVIT_FILE_PREFIX_USER_REGEX = \
806+
r'^' + PYREVIT_ADDON_NAME \
807+
+ r'_(?P<version>\d{4})_(?P<user>.+)_(?P<fname>.+)'
808+
809+
# e.g. pyRevit_2018_eirannejad_14422_
810+
PYREVIT_FILE_PREFIX_STAMPED_USER = '{}_{}_{}_{}_'.format(PYREVIT_ADDON_NAME,
811+
HOST_APP.version,
812+
HOST_APP.username,
813+
HOST_APP.proc_id)
814+
PYREVIT_FILE_PREFIX_STAMPED_USER_REGEX = \
815+
r'^' + PYREVIT_ADDON_NAME \
816+
+ r'_(?P<version>\d{4})_(?P<user>.+)_(?P<pid>\d+)_(?P<fname>.+)'
838817

839818
# -----------------------------------------------------------------------------
840819
# config labs modules

0 commit comments

Comments
 (0)