(self, chat, tasker, auth_builder, reporting_channel, config_path)
Args:
            chat (Chat): The chat object to use for messaging.
            tasker (Tasker): The Tasker object to get tasks from
            auth_builder (Auth): The constructor to build Auth objects from.
                                 It should take in only a username as a parameter.
            reporting_channel (str): Channel ID to report alerts in need of verification to.
            config_path (str): Path to configuration file
Args:
            chat (Chat): The chat object to use for messaging.
            tasker (Tasker): The Tasker object to get tasks from
            auth_builder (Auth): The constructor to build Auth objects from.
                                 It should take in only a username as a parameter.
            reporting_channel (str): Channel ID to report alerts in need of verification to.
            config_path (str): Path to configuration file
Args : chat ( Chat ) : The chat object to use for messaging . tasker ( Tasker ) : The Tasker object to get tasks from auth_builder ( Auth ) : The constructor to build Auth objects from . It should take in only a username as a parameter . reporting_channel ( str ) : Channel ID to report alerts in need of verification to . config_path ( str ) : Path to configuration file
def __init__(self, chat, tasker, auth_builder, reporting_channel, config_path):
        # type: (Chat, Tasker, Callable[[str], Auth], str, str) -> None
        '''
        Args:
            chat (Chat): The chat object to use for messaging.
            tasker (Tasker): The Tasker object to get tasks from
            auth_builder (Auth): The constructor to build Auth objects from.
                                 It should take in only a username as a parameter.
            reporting_channel (str): Channel ID to report alerts in need of verification to.
            config_path (str): Path to configuration file
        '''
        logging.info('Creating securitybot.')
        self.tasker = tasker
        self.auth_builder = auth_builder
        self.reporting_channel = reporting_channel
        self._last_task_poll = datetime.min.replace(tzinfo=pytz.utc)
        self._last_report = datetime.min.replace(tzinfo=pytz.utc)

        self._load_config(config_path)

        self.chat = chat
        chat.connect()

        # Load blacklist from SQL
        self.blacklist = SQLBlacklist()

        # A dictionary to be populated with all members of the team
        self.users = {} # type: Dict[str, User]
        self.users_by_name = {} # type: Dict[str, User]
        self._populate_users()

        # Dictionary of users who have outstanding tasks
        self.active_users = {} # type: Dict[str, User]

        # Recover tasks
        self.recover_in_progress_tasks()

        logging.info('Done!')
def __init__ ( self , chat , tasker , auth_builder , reporting_channel , config_path ) : # type: (Chat, Tasker, Callable[[str], Auth], str, str) -> None logging . info ( 'Creating securitybot.' ) self . tasker = tasker self . auth_builder = auth_builder self . reporting_channel = reporting_channel self . _last_task_poll = datetime . min . replace ( tzinfo = pytz . utc ) self . _last_report = datetime . min . replace ( tzinfo = pytz . utc ) self . _load_config ( config_path ) self . chat = chat chat . connect ( ) # Load blacklist from SQL self . blacklist = SQLBlacklist ( ) # A dictionary to be populated with all members of the team self . users = { } # type: Dict[str, User] self . users_by_name = { } # type: Dict[str, User] self . _populate_users ( ) # Dictionary of users who have outstanding tasks self . active_users = { } # type: Dict[str, User] # Recover tasks self . recover_in_progress_tasks ( ) logging . info ( 'Done!' )