def chooseMovieSubStageFromMoviesSubStages(cls, movie_sub_stages, query):
        """ Choose the first MovieSubStage after ranking the movie_sub_stages 
            using the less accurate ranker: ByPropertiesSubStagesRanker.

            The function will return MovieSubStage if the boolean value in 
            first_is_certain is True. In any other case, will return None
        """
        movie_sub_stage = None
        if movie_sub_stages:
            WriteDebug("Got results in movie_sub_stages, sending them to the ranker")
            (movie_sub_stages, first_is_ceratin) = ByPropertiesSubStagesRanker.rankMovieSubStages(
                movie_sub_stages, query
            )
            WriteDebug("Ranker returned %s for first_is_certain" % first_is_ceratin)
            if first_is_ceratin:
                movie_sub_stage = movie_sub_stages[0]
                WriteDebug("MovieSubStage: %s" % movie_sub_stage.info())
        else:
            WriteDebug("There is not results in movie_sub_stages, returning None")

        return movie_sub_stage
    def chooseVersionSubStageFromVersionSubStages(cls, version_sub_stages, movie_sub_stages, query):
        """ Choose the first VersionSubStage after ranking the values in the 
            version_sub_stages using the ByPropertiesSubStagesRanker.

            The function will return VersionSubStage only if the value in 
            first_is_certain is True. In any other case, the function returns
            None.
        """
        version_sub_stage = None
        if version_sub_stages:
            WriteDebug("Got Versions in version_sub_stages, sending them to the ranker")
            (version_sub_stages, first_is_ceratin) = ByPropertiesSubStagesRanker.rankVersionSubStages(
                version_sub_stages, query
            )
            WriteDebug("Ranker returned %s for first_is_certain" % first_is_ceratin)
            if first_is_ceratin:
                version_sub_stage = version_sub_stages[0]
                WriteDebug("VersionSubStage: %s" % version_sub_stage.info())
        else:
            WriteDebug("There is not results in version_sub_stages, returning None")

        return version_sub_stage