예제 #1
0
def _get_reference_file(ref_name):
    # First try to find the dll in the project folder
    addin_file = framework.get_dll_file(ref_name)
    if addin_file:
        load_asm_file(addin_file)
        return addin_file

    # Then try to find the dll in windows SDK
    if FRAMEWORK_DIRS:
        fw_module_file = _get_framework_module(ref_name)
        if fw_module_file:
            return fw_module_file

    # Lastly try to find location of assembly if already loaded
    loaded_asm = find_loaded_asm(ref_name)
    if loaded_asm:
        return loaded_asm[0].Location

    # if not worked raise critical error
    mlogger.critical('Can not find required reference assembly: %s', ref_name)
예제 #2
0
파일: __init__.py 프로젝트: tatlin/pyRevit
def _get_reference_file(ref_name):
    mlogger.debug('Searching for dependency: %s', ref_name)
    # First try to find the dll in the project folder
    addin_file = framework.get_dll_file(ref_name)
    if addin_file:
        assmutils.load_asm_file(addin_file)
        return addin_file

    mlogger.debug('Dependency is not shipped: %s', ref_name)
    mlogger.debug('Searching for dependency in loaded assemblies: %s',
                  ref_name)
    # Lastly try to find location of assembly if already loaded
    loaded_asm = assmutils.find_loaded_asm(ref_name)
    if loaded_asm:
        return loaded_asm[0].Location

    mlogger.debug('Dependency is not loaded: %s', ref_name)
    mlogger.debug('Searching for dependency in installed frameworks: %s',
                  ref_name)
    # Then try to find the dll in windows installed framework files
    if DOTNET_DIR:
        fw_module_file = _get_framework_module(ref_name)
        if fw_module_file:
            return fw_module_file

    mlogger.debug('Dependency is not installed: %s', ref_name)
    mlogger.debug('Searching for dependency in installed frameworks sdks: %s',
                  ref_name)
    # Then try to find the dll in windows SDK
    if DOTNET_TARGETPACK_DIRS:
        fw_sdk_module_file = _get_framework_sdk_module(ref_name)
        if fw_sdk_module_file:
            return fw_sdk_module_file

    # if not worked raise critical error
    mlogger.critical('Can not find required reference assembly: %s', ref_name)
예제 #3
0
from pyrevit import HOST_APP, PyRevitException, EXEC_PARAMS
import pyrevit.compat as compat
from pyrevit.compat import safe_strtype
from pyrevit import framework
from pyrevit.framework import clr
from pyrevit.framework import DateTime, DateTimeOffset
from pyrevit.coreutils.logger import get_logger

#pylint: disable=W0703,C0302
mlogger = get_logger(__name__)  #pylint: disable=C0103

GIT_LIB = 'LibGit2Sharp'

if not EXEC_PARAMS.doc_mode:
    LIBGIT_DLL = framework.get_dll_file(GIT_LIB)
    mlogger.debug('Loading dll: %s', LIBGIT_DLL)

    try:
        if compat.PY3:
            clr.AddReference(LIBGIT_DLL)
        else:
            clr.AddReferenceToFileAndPath(LIBGIT_DLL)

        import LibGit2Sharp as libgit  #pylint: disable=import-error

    except Exception as load_err:
        mlogger.error(
            'Can not load %s module. '
            'This module is necessary for getting pyRevit version '
            'and staying updated. | %s', GIT_LIB, load_err)
예제 #4
0
"""MathNet importer module.

See https://www.mathdotnet.com for documentation.

Example:
    >>> from pyrevit.coreutils.mathnet import MathNet
"""
#pylint: disable=W0703,C0302,C0103
from pyrevit import EXEC_PARAMS
from pyrevit import framework
from pyrevit.framework import clr
from pyrevit.coreutils.logger import get_logger

mlogger = get_logger(__name__)

MATHNET_LIB = 'MathNet.Numerics'

if not EXEC_PARAMS.doc_mode:
    mathnet_dll = framework.get_dll_file(MATHNET_LIB)
    mlogger.debug('Loading dll: %s', mathnet_dll)
    try:
        clr.AddReferenceToFileAndPath(mathnet_dll)
        import MathNet  #pylint: disable=E0401,W0611
    except Exception as load_err:
        mlogger.error('Can not load %s module. | %s', MATHNET_LIB, load_err)