# ****************************** #
# Config
# Global config class used to store values
# ****************************** #
import os
from nativeconfig import PreferredConfig, StringOption, BooleanOption, IntOption
from datetime import datetime
[docs]class MyConfig(PreferredConfig):
    """
    Configuration class, used to store preferences.
    Preferences include:
    * total number of runs before executing process mining analysis
    * control process discovery, if disabled csv is generated but process discovery techniques are not applied
    * enable most frequent routine analysis (deprecated)
    * enable decision points analysis
    """
    REGISTRY_PATH = r'Software\ComputerLogger'
    JSON_PATH = os.path.expanduser('~/.config/ComputerLogger/config')
    # When totalNumberOfRunGuiXes of runs is reached (set by user in preferences), all CSV logs collected are merged
    # into one and a XES file is automatically generated, to be used for process mining techniques
    totalNumberOfRunGuiXes = IntOption('totalNumberOfRunGuiXes', default=1)
    # Option in settings to control screenshot feature, if enabled, each event creats a screenshot of all screens visible
    # and stores it in folder "screenshots"
    capture_screenshots = BooleanOption('capture_screenshots', default=False)
    # Option in settings to control supervision feature, if enabled, after each event the user is asked to provide a noise tag
    # "was the action relevant/necessary or irrelevant/unnecessary"
    supervisionFeature = BooleanOption('supervisionFeature', default=False)
    # Option in settings to control process discovery, if disabled, csv is generated but process discovery techniques
    # are not applied
    perform_process_discovery = BooleanOption('perform_process_discovery', default=True)
    enable_most_frequent_routine_analysis = BooleanOption('enable_most_frequent_routine_analysis', default=False)
    enable_decision_point_analysis = BooleanOption('enable_decision_point_analysis', default=True)
    enable_decision_point_RPA_analysis = BooleanOption('enable_decision_point_RPA_analysis', default=False)