Пример #1
0
def setup_usage_logfile(session_id=None):
    """Sets up the usage logging default config and environment values."""

    if not session_id:
        session_id = get_session_uuid()

    # default file path and name for usage logging
    filelogging_filename = FILE_LOG_FILENAME_TEMPLATE \
        .format(PYREVIT_FILE_PREFIX, session_id, FILE_LOG_EXT)

    # default server url for usage logging
    usagelog_serverurl = ''

    # initialize env variables related to usage logging
    _init_usagelogging_envvars()

    # setup config section if does not exist
    if not user_config.has_section('usagelogging'):
        user_config.add_section('usagelogging')

    # GLOBAL SWITCH ------------------------------------------------------------
    # setup default value for usage logging global switch
    ul_config = user_config.usagelogging
    usageloggingactive = ul_config.get_option('active', default_value=False)
    set_pyrevit_env_var(USAGELOG_STATE_ISC_KEYNAME, usageloggingactive)

    # FILE usage logging -------------------------------------------------------
    # read or setup default values for file usage logging
    logfilepath = ul_config.get_option('logfilepath',
                                       default_value=PYREVIT_VERSION_APP_DIR)

    # check file usage logging config and setup destination
    if not logfilepath or is_blank(logfilepath):
        # if no config is provided, disable output
        _disable_file_usage_logging()
    else:
        # if config exists, create new usage log file under the same address
        if op.isdir(logfilepath):
            # if directory is valid
            logfile_fullpath = op.join(logfilepath, filelogging_filename)
            _setup_default_logfile(logfile_fullpath)
        else:
            # if not, show error and disable usage logging
            if usageloggingactive:
                logger.error('Provided usage log address does not exits or is '
                             'not a directory. Usage logging disabled.')
            _disable_usage_logging()

    # SERVER usage logging -----------------------------------------------------
    # read or setup default values for server usage logging
    logserverurl = ul_config.get_option('logserverurl',
                                        default_value=usagelog_serverurl)

    # check server usage logging config and setup destination
    if not logserverurl or is_blank(logserverurl):
        # if no config is provided, disable output
        _disable_server_usage_logging()
    else:
        # if config exists, setup server logging
        set_pyrevit_env_var(USAGELOG_SERVERURL_ISC_KEYNAME, logserverurl)
Пример #2
0
 def get_marks(self):
     all_marks = set()
     for cloud in self._clouds:
         mark = cloud.LookupParameter('Mark').AsString()
         if not coreutils.is_blank(mark):
             all_marks.add(mark)
     return all_marks
Пример #3
0
 def get_comments(self):
     all_comments = set()
     for cloud in self._clouds:
         comment = cloud.LookupParameter('Comments').AsString()
         if not coreutils.is_blank(comment):
             all_comments.add(comment)
     return all_comments
Пример #4
0
 def get_comments(self):
     all_comments = set()
     for cloud in self._clouds:
         cparam = \
             cloud.Parameter[DB.BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS]
         comment = cparam.AsString()
         if not coreutils.is_blank(comment):
             all_comments.add(comment)
     return all_comments
Пример #5
0
    def _process_sheet_code(self):
        for sheet_code in str(self.sheets_tb.Text).split('\n'):
            if coreutils.is_blank(sheet_code):
                continue

            if '\t' not in sheet_code:
                logger.warning(
                    'Sheet name must be separated from '
                    'sheet number by a single tab: {}'.format(sheet_code))
                return False

            sheet_code = re.sub('\t+', '\t', sheet_code)
            sheet_code = sheet_code.replace('\n', '').replace('\r', '')
            num, name = sheet_code.split('\t')
            self._sheet_dict[num] = name

        return True
Пример #6
0
    def _process_sheet_code(self):
        for sheet_code in str(self.sheets_tb.Text).split('\n'):
            if coreutils.is_blank(sheet_code):
                continue

            if '\t' not in sheet_code:
                logger.warning(
                    'Sheet name must be separated from '
                    'sheet number by a single tab: {}'.format(sheet_code))
                return False

            sheet_code = re.sub('\t+', '\t', sheet_code)
            sheet_code = sheet_code.replace('\n', '').replace('\r', '')
            num, name = sheet_code.split('\t')
            try:
                for range_num in coreutils.exract_range(num):
                    self._sheet_dict[range_num] = name
            except Exception as range_err:
                logger.error(range_err)
                return False

        return True
Пример #7
0
def setup_telemetry(session_id=None):
    """Sets up the telemetry default config and environment values."""

    # make sure session id is availabe
    if not session_id:
        session_id = sessioninfo.get_session_uuid()

    # PYREVIT TELEMETRY -------------------------------------------------------
    # utc timestamp
    telemetry_utc_timestamp = user_config.telemetry_utc_timestamp
    set_telemetry_utc_timestamp(telemetry_utc_timestamp)

    # global telemetry toggle
    telemetry_state = user_config.telemetry_status
    set_telemetry_state(telemetry_state)

    # read or setup default values for file telemetry
    # default file path and name for telemetry
    telemetry_file_dir = user_config.telemetry_file_dir
    set_telemetry_file_dir(telemetry_file_dir)

    # check file telemetry config and setup destination
    if not telemetry_file_dir or coreutils.is_blank(telemetry_file_dir):
        # if no config is provided, disable output
        disable_telemetry_to_file()
    # if config exists, create new telemetry file under the same address
    elif telemetry_state:
        if op.isdir(telemetry_file_dir):
            telemetry_file_name = \
                FILE_LOG_FILENAME_TEMPLATE.format(PYREVIT_FILE_PREFIX,
                                                  session_id,
                                                  FILE_LOG_EXT)
            # if directory is valid
            telemetry_fullfilepath = \
                op.join(telemetry_file_dir, telemetry_file_name)
            set_telemetry_file_path(telemetry_fullfilepath)
            # setup telemetry file or disable if failed
            try:
                _setup_default_logfile(telemetry_fullfilepath)
            except Exception as write_err:
                mlogger.error(
                    'Telemetry is active but log file location '
                    'is not accessible. | %s', write_err)
                disable_telemetry_to_file()
        else:
            # if not, show error and disable telemetry
            mlogger.error('Provided telemetry address does not exits or is '
                          'not a directory. Telemetry disabled.')
            disable_telemetry_to_file()

    # read or setup default values for server telemetry
    telemetry_server_url = user_config.telemetry_server_url

    # check server telemetry config and setup destination
    if not telemetry_server_url or coreutils.is_blank(telemetry_server_url):
        # if no config is provided, disable output
        disable_telemetry_to_server()
    else:
        # if config exists, setup server logging
        set_telemetry_server_url(telemetry_server_url)

    # set telemetry script types
    set_telemetry_include_hooks(user_config.telemetry_include_hooks)

    # APP TELEMETRY ------------------------------------------------------------
    # setup default value for telemetry global switch
    apptelemetry_state = user_config.apptelemetry_status
    set_apptelemetry_state(apptelemetry_state)

    # read or setup default values for server telemetry
    apptelemetry_server_url = user_config.apptelemetry_server_url

    # check server telemetry config and setup destination
    if not apptelemetry_server_url \
            or coreutils.is_blank(apptelemetry_server_url):
        # if no config is provided, disable output
        disable_apptelemetry_to_server()
    else:
        # if config exists, setup server logging
        set_apptelemetry_server_url(apptelemetry_server_url)

    # setup events
    new_telemetry_handler = EventTelemetry(session_id)
    telemetry_handler = get_apptelemetry_handler()
    if telemetry_handler:
        # clear existing
        telemetry_events.unregister_all_event_telemetries(telemetry_handler)

    set_apptelemetry_handler(new_telemetry_handler)
    # register handlers only if telemetry system is active
    if apptelemetry_state:
        apptelemetry_event_flags = get_apptelemetry_event_flags()
        # re-register events with new telemetry_handler
        telemetry_events.register_event_telemetry(new_telemetry_handler,
                                                  apptelemetry_event_flags)

    user_config.save_changes()
Пример #8
0
def setup_usage_logfile(session_id=None):
    """Sets up the usage logging default config and environment values."""

    if not session_id:
        session_id = get_session_uuid()

    # default file path and name for usage logging
    filelogging_filename = FILE_LOG_FILENAME_TEMPLATE \
        .format(PYREVIT_FILE_PREFIX, session_id, FILE_LOG_EXT)

    # default server url for usage logging
    usagelog_serverurl = 'https://design-tech-analytics.herokuapp.com/analytics/' \
                         'pyRevit?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9' \
                         '.eyJhcHBsaWNhdGlvbiI6IldSSVRFX1dFV09SS1BZUkVWSVQiLCJpYXQiOjE1NDM1MTYxMzN9' \
                         '.9G-LxWLQYYWoOF3fBOl8Uf2p9pLjI5FNtBlYoXUemOE'

    # initialize env variables related to usage logging
    _init_usagelogging_envvars()

    # setup config section if does not exist
    if not user_config.has_section('usagelogging'):
        user_config.add_section('usagelogging')

    # GLOBAL SWITCH ------------------------------------------------------------
    # setup default value for usage logging global switch
    ul_config = user_config.usagelogging
    usageloggingactive = ul_config.get_option('active', default_value=True)
    envvars.set_pyrevit_env_var(PYREVIT_USAGELOGSTATE_ENVVAR,
                                usageloggingactive)

    # FILE usage logging -------------------------------------------------------
    # read or setup default values for file usage logging
    logfilepath = ul_config.get_option('logfilepath',
                                       default_value=PYREVIT_VERSION_APP_DIR)

    # check file usage logging config and setup destination
    if not logfilepath or is_blank(logfilepath):
        # if no config is provided, disable output
        _disable_file_usage_logging()
    else:
        # if config exists, create new usage log file under the same address
        if usageloggingactive:
            if op.isdir(logfilepath):
                # if directory is valid
                logfile_fullpath = op.join(logfilepath, filelogging_filename)
                _setup_default_logfile(logfile_fullpath)
            else:
                # if not, show error and disable usage logging
                logger.error('Provided usage log address does not exits or is '
                             'not a directory. Usage logging disabled.')
                _disable_usage_logging()

    # SERVER usage logging -----------------------------------------------------
    # read or setup default values for server usage logging
    logserverurl = ul_config.get_option('logserverurl',
                                        default_value=usagelog_serverurl)

    # check server usage logging config and setup destination
    if not logserverurl or is_blank(logserverurl):
        # if no config is provided, disable output
        _disable_server_usage_logging()
    else:
        # if config exists, setup server logging
        envvars.set_pyrevit_env_var(PYREVIT_USAGELOGSERVER_ENVVAR,
                                    logserverurl)