<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def Run(self):
 """ Main entry point for ClearManager class. Does the following steps: - Parse script arguments. - Optionally print or update database tables. - Get all configuration settings from database. - Optionally parse directory for file extraction. - Recursively parse source directory for files matching supported format list. - Call renamer.TVRenamer with file list. """

    self._GetArgs()

    goodlogging.Log.Info("CLEAR", "Using database: {0}".format(self._databasePath))
    self._db = database.RenamerDB(self._databasePath)

    if self._dbPrint or self._dbUpdate:
      goodlogging.Log.Seperator()
      self._db.PrintAllTables()

      if self._dbUpdate:
        goodlogging.Log.Seperator()
        self._db.ManualUpdateTables()

    self._GetDatabaseConfig()

    if self._enableExtract:
      goodlogging.Log.Seperator()

      extractFileList = []
      goodlogging.Log.Info("CLEAR", "Parsing source directory for compressed files")
      goodlogging.Log.IncreaseIndent()
      extract.GetCompressedFilesInDir(self._sourceDir, extractFileList, self._ignoredDirsList)
      goodlogging.Log.DecreaseIndent()

      goodlogging.Log.Seperator()
      extract.Extract(extractFileList, self._supportedFormatsList, self._archiveDir, self._skipUserInputExtract)

    goodlogging.Log.Seperator()

    tvFileList = []
    goodlogging.Log.Info("CLEAR", "Parsing source directory for compatible files")
    goodlogging.Log.IncreaseIndent()
    self._GetSupportedFilesInDir(self._sourceDir, tvFileList, self._supportedFormatsList, self._ignoredDirsList)
    goodlogging.Log.DecreaseIndent()

    tvRenamer = renamer.TVRenamer(self._db,
                                  tvFileList,
                                  self._archiveDir,
                                  guideName = 'EPGUIDES',
                                  tvDir = self._tvDir,
                                  inPlaceRename = self._inPlaceRename,
                                  forceCopy = self._crossSystemCopyEnabled,
                                  skipUserInput = self._skipUserInputRename)
    tvRenamer.Run()