コード例 #1
0
ファイル: sessionmgr.py プロジェクト: kjanik11/pyRevit
def _new_session():
    """
    Get all installed extensions (UI extension only) and creates an assembly,
    and a ui for each.

    Returns:
        None
    """
    # get all installed ui extensions
    for ui_ext in get_installed_ui_extensions():
        # create a dll assembly and get assembly info
        ext_asm_info = create_assembly(ui_ext)
        if not ext_asm_info:
            logger.critical('Failed to create assembly for: {}'.format(ui_ext))
            continue

        logger.info('Extension assembly created: {}'.format(ui_ext.name))

        # update/create ui (needs the assembly to link button actions
        # to commands saved in the dll)

        update_pyrevit_ui(
            ui_ext, ext_asm_info,
            user_config.core.get_option('loadbeta', default_value=False))
        logger.info('UI created for extension: {}'.format(ui_ext.name))

    # cleanup existing UI. This is primarily for cleanups after reloading
    cleanup_pyrevit_ui()
コード例 #2
0
ファイル: sessionmgr.py プロジェクト: xulian070608/pyRevit
def _new_session():
    """
    Get all installed extensions (UI extension only) and creates an assembly,
    and a ui for each.

    Returns:
        None
    """

    assembled_exts = []
    # get all installed ui extensions
    for ui_ext in extensionmgr.get_installed_ui_extensions():
        # configure extension components for metadata
        # e.g. liquid templates like {{author}}
        ui_ext.configure()

        # create a dll assembly and get assembly info
        ext_asm_info = asmmaker.create_assembly(ui_ext)
        if not ext_asm_info:
            mlogger.critical('Failed to create assembly for: %s', ui_ext)
            continue
        else:
            mlogger.info('Extension assembly created: %s', ui_ext.name)

        assembled_exts.append(AssembledExtension(ext=ui_ext,
                                                 assm=ext_asm_info))

    # add names of the created assemblies to the session info
    sessioninfo.set_loaded_pyrevit_assemblies(
        [x.assm.name for x in assembled_exts])

    # run startup scripts for this ui extension, if any
    for assm_ext in assembled_exts:
        if assm_ext.ext.startup_script:
            # build syspaths for the startup script
            sys_paths = [assm_ext.ext.directory]
            if assm_ext.ext.library_path:
                sys_paths.insert(0, assm_ext.ext.library_path)

            mlogger.info('Running startup tasks for %s', assm_ext.ext.name)
            mlogger.debug('Executing startup script for extension: %s',
                          assm_ext.ext.name)

            # now run
            execute_script(assm_ext.ext.startup_script, sys_paths=sys_paths)

    # update/create ui (needs the assembly to link button actions
    # to commands saved in the dll)
    for assm_ext in assembled_exts:
        uimaker.update_pyrevit_ui(
            assm_ext.ext, assm_ext.assm,
            user_config.core.get_option('loadbeta', default_value=False))
        mlogger.info('UI created for extension: %s', assm_ext.ext.name)

    # re-sort the ui elements
    for assm_ext in assembled_exts:
        uimaker.sort_pyrevit_ui(assm_ext.ext)

    # cleanup existing UI. This is primarily for cleanups after reloading
    uimaker.cleanup_pyrevit_ui()
コード例 #3
0
ファイル: __init__.py プロジェクト: eimhinr/pyRevit-ER-2021
def get_all_preflight_checks():
    """Find all the preflight checks in installed extensions"""
    preflight_checks = []
    # get all installed ui extensions
    for ext in extensionmgr.get_installed_ui_extensions():
        # find the checks in the extension
        for check_script in ext.get_checks():
            # load the check source file so all the checks can be extracted
            check_mod = \
                imp.load_source(_get_check_name(check_script), check_script)
            # extract the checks and wrap
            for check_type in _grab_test_types(check_mod):
                preflight_checks.append(
                    PreflightCheck(ext, check_type, check_script))
    return preflight_checks
コード例 #4
0
def _new_session():
    """
    Get all installed extensions (UI extension only) and creates an assembly,
    and a ui for each.

    Returns:
        None
    """

    loaded_assm_list = []
    # get all installed ui extensions
    for ui_ext in get_installed_ui_extensions():
        # create a dll assembly and get assembly info
        ext_asm_info = create_assembly(ui_ext)
        if not ext_asm_info:
            logger.critical('Failed to create assembly for: {}'
                            .format(ui_ext))
            continue

        logger.info('Extension assembly created: {}'.format(ui_ext.name))

        # add name of the created assembly to the session info
        loaded_assm_list.append(ext_asm_info.name)

        # run startup scripts for this ui extension, if any
        if ui_ext.startup_script:
            logger.info('Running startup tasks...')
            logger.debug('Executing startup script for extension: {}'
                         .format(ui_ext.name))
            execute_script(ui_ext.startup_script)

        # update/create ui (needs the assembly to link button actions
        # to commands saved in the dll)

        update_pyrevit_ui(ui_ext,
                          ext_asm_info,
                          user_config.core.get_option('loadbeta',
                                                      default_value=False))
        logger.info('UI created for extension: {}'.format(ui_ext.name))

    # add names of the created assemblies to the session info
    sessioninfo.set_loaded_pyrevit_assemblies(loaded_assm_list)

    # cleanup existing UI. This is primarily for cleanups after reloading
    cleanup_pyrevit_ui()
コード例 #5
0
ファイル: sessionmgr.py プロジェクト: giangdip2410/pyRevit
def _new_session():
    """
    Get all installed extensions (UI extension only) and creates an assembly,
    and a ui for each.

    Returns:
        None
    """

    assembled_exts = []
    # get all installed ui extensions
    for ui_ext in extensionmgr.get_installed_ui_extensions():
        # configure extension components for metadata
        # e.g. liquid templates like {{author}}
        ui_ext.configure()

        # collect all module references from extensions
        ui_ext_modules = ui_ext.get_all_modules()
        # make sure they are all loaded
        assmutils.load_asm_files(ui_ext_modules)
        # and update env information
        sessioninfo.update_loaded_pyrevit_referenced_modules(ui_ext_modules)

        # create a dll assembly and get assembly info
        ext_asm_info = asmmaker.create_assembly(ui_ext)
        if not ext_asm_info:
            mlogger.critical('Failed to create assembly for: %s', ui_ext)
            continue
        else:
            mlogger.info('Extension assembly created: %s', ui_ext.name)

        assembled_exts.append(
            AssembledExtension(ext=ui_ext, assm=ext_asm_info)
        )

    # add names of the created assemblies to the session info
    sessioninfo.set_loaded_pyrevit_assemblies(
        [x.assm.name for x in assembled_exts]
    )

    # run startup scripts for this ui extension, if any
    for assm_ext in assembled_exts:
        if assm_ext.ext.startup_script:
            # build syspaths for the startup script
            sys_paths = [assm_ext.ext.directory]
            if assm_ext.ext.library_path:
                sys_paths.insert(0, assm_ext.ext.library_path)

            mlogger.info('Running startup tasks for %s', assm_ext.ext.name)
            mlogger.debug('Executing startup script for extension: %s',
                          assm_ext.ext.name)

            # now run
            execute_extension_startup_script(
                assm_ext.ext.startup_script,
                assm_ext.ext.name,
                sys_paths=sys_paths
                )

    # register extension hooks
    for assm_ext in assembled_exts:
        hooks.register_hooks(assm_ext.ext)

    # update/create ui (needs the assembly to link button actions
    # to commands saved in the dll)
    for assm_ext in assembled_exts:
        uimaker.update_pyrevit_ui(
            assm_ext.ext,
            assm_ext.assm,
            user_config.load_beta
        )
        mlogger.info('UI created for extension: %s', assm_ext.ext.name)

    # re-sort the ui elements
    for assm_ext in assembled_exts:
        uimaker.sort_pyrevit_ui(assm_ext.ext)

    # cleanup existing UI. This is primarily for cleanups after reloading
    uimaker.cleanup_pyrevit_ui()

    # reflow the ui if requested, depending on the language direction
    if user_config.respect_language_direction:
        current_applocale = applocales.get_current_applocale()
        uimaker.reflow_pyrevit_ui(direction=current_applocale.lang_dir)
    else:
        uimaker.reflow_pyrevit_ui()
コード例 #6
0
"""Prints calculated hash values for each extension."""

__title__ = 'Get Extension\nHash Values'
__highlight__= 'updated'
__context__ = 'zero-doc'
# __beta__ = True

from pyrevit import script
from pyrevit.extensions import extensionmgr


logger = script.get_logger()
logger.set_quiet_mode()


for ui_ext in extensionmgr.get_installed_ui_extensions():
    print('{}\t\tExtension: {}'.format(ui_ext.dir_hash_value, ui_ext.name))


logger.reset_level()
コード例 #7
0
ファイル: script.py プロジェクト: rheesk22/pyrevit
title_locales_data = {}
csv_data = script.load_csv(csv_file)
# translate language names in csv header to language codes
locale_code_fields = []
for locale_name in csv_data[0][1:]:  # grabs first csv line and columns 1:
    logger.debug('finding locale codes for \"%s\"', locale_name)
    applocale = applocales.get_applocale_by_lang_name(locale_name)
    if applocale:
        locale_code_fields.append(applocale.locale_codes[0])
    else:
        logger.error('can not determine langauge code for \"%s\"', locale_name)
        script.exit()

for csv_record in csv_data[1:]:
    name = csv_record[0]
    locales = {}
    for field_idx, field_value in enumerate(csv_record[1:]):
        locales[locale_code_fields[field_idx]] = field_value
    title_locales_data[name] = locales

if title_locales_data:
    selected_extensions = forms.SelectFromList.show(
        extensionmgr.get_installed_ui_extensions(),
        title='Select Extention',
        multiselect=True)
    for ui_ext in selected_extensions:
        print('updating bundle locale data for ext \"%s\"' % ui_ext.name)
        update_bundle_property(title_locales_data, ui_ext, 'title')

print('done...')
コード例 #8
0
ファイル: script.py プロジェクト: chenqianethz/pyRevit
"""Prints calculated hash values for each extension."""

__title__ = 'Get Extension\nHash Values'

from scriptutils import logger
from pyrevit.extensions.extensionmgr import get_installed_ui_extensions

logger.set_quiet_mode()

for ui_ext in get_installed_ui_extensions():
    print('{}\t\tExtension: {}'.format(ui_ext.dir_hash_value, ui_ext.name))