docs: def _LookUpSeasonDirectory(self, showID, showDir, seasonNum):
      """
      Look up season directory. First attempt to find match from database,
      otherwise search TV show directory. If no match is found in the database
      the user can choose to accept a match from the TV show directory, enter
      a new directory name to use or accept an autogenerated name.
  
      Parameters
      ----------
        showID : int
          Show ID number
  
        showDir : string
          Path to show file directory
  
        seasonNum : int
          Season number
  
      Returns
      ----------
        string
          Name of season directory to use. This can be a blank string to
          use the root show directory, an autogenerated string or a user
          given string.
      """
      goodlogging.Log.Info("RENAMER", "Looking up season directory for show {0}".format(showID))
      goodlogging.Log.IncreaseIndent()
  
      # Look up existing season folder from database
      seasonDirName = self._db.SearchSeasonDirTable(showID, seasonNum)
  
      if seasonDirName is not None:
        goodlogging.Log.Info("RENAMER", "Found season directory match from database: {0}".format(seasonDirName))
      else:
        # Look up existing season folder in show directory
        goodlogging.Log.Info("RENAMER", "Looking up season directory (Season {0}) in {1}".format(seasonNum, showDir))
        if os.path.isdir(showDir) is False:
          goodlogging.Log.Info("RENAMER", "Show directory ({0}) is not an existing directory".format(showDir))
          seasonDirName = self._CreateNewSeasonDir(seasonNum)
        else:
          matchDirList = []
          for dirName in os.listdir(showDir):
            subDir = os.path.join(showDir, dirName)
            if os.path.isdir(subDir):
              seasonResult = re.findall("Season", dirName)
              if len(seasonResult) > 0:
                numResult = re.findall("[0-9]+", dirName)
                numResult = set(numResult)
                if len(numResult) == 1:
                  if int(numResult.pop()) == int(seasonNum):
                    matchDirList.append(dirName)
  
          if self._skipUserInput is True:
            if len(matchDirList) == 1:
              userAcceptance = matchDirList[0]
              goodlogging.Log.Info("RENAMER", "Automatic selection of season directory: {0}".format(seasonDirName))
            else:
              userAcceptance = None
              goodlogging.Log.Info("RENAMER", "Could not make automatic selection of season directory")
          else:
            listDirPrompt = "enter 'ls' to list all items in show directory"
            userAcceptance = util.UserAcceptance(matchDirList, promptComment = listDirPrompt, xStrOverride = "to create new season directory")
  
          if userAcceptance in matchDirList:
            seasonDirName = userAcceptance
          elif userAcceptance is None:
            seasonDirName = self._CreateNewSeasonDir(seasonNum)
          else:
            recursiveSelectionComplete = False
            promptOnly = False
            dirLookup = userAcceptance
            while recursiveSelectionComplete is False:
              dirList = os.listdir(showDir)
              if dirLookup.lower() == 'ls':
                dirLookup = ''
                promptOnly = True
                if len(dirList) == 0:
                  goodlogging.Log.Info("RENAMER", "Show directory is empty")
                else:
                  goodlogging.Log.Info("RENAMER", "Show directory contains: {0}".format(', '.join(dirList)))
              else:
                matchDirList = util.GetBestMatch(dirLookup, dirList)
                response = util.UserAcceptance(matchDirList, promptComment = listDirPrompt, promptOnly = promptOnly, xStrOverride = "to create new season directory")
                promptOnly = False
  
                if response in matchDirList:
                  seasonDirName = response
                  recursiveSelectionComplete = True
                elif response is None:
                  seasonDirName = self._CreateNewSeasonDir(seasonNum)
                  recursiveSelectionComplete = True
                else:
                  dirLookup = response
  
        # Add season directory to database
        if seasonDirName is not None:
          self._db.AddSeasonDirTable(showID, seasonNum, seasonDirName)
  
      goodlogging.Log.DecreaseIndent()
      return seasonDirName