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.

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