def _value_from_tag_format(self, format, trackno=1, position=1, filetype=".mp3"):

        logger.debug("parameters given: format: %s" % format)
        logger.debug("parameters given: trackno: %d" % trackno)
        logger.debug("parameters given: position: %d" % position)
        logger.debug("paramerter avail: position: %d" % len(self.album.tracks))

        property_map = {
            "%ALBTITLE%": self.album.title,
            "%ALBARTIST%": self.album.artist,
            "%YEAR%": self.album.year,
            "%CATNO%": self.album.catno,
            "%GENRE%": self.album.genre,
            "%STYLE%": self.album.style,
            "%GROUP%": self.group_name,
# could go wrong on multi discs (because of empty tracks with subdisc names)
            "%ARTIST%": self.album.tracks[position].artist,
# see artist
            "%TITLE%": self.album.tracks[position].title,
            "%DISCNO%": self.album.tracks[position].discnumber,
            "%TRACKNO%": "%.2d" % trackno,
            "%TYPE%": filetype,
            "%LABEL%": self.album.label,
        }

        for hashtag in property_map.keys():
            format = format.replace(hashtag,
                                            str(property_map[hashtag]))

        logger.debug("format output: %s" % format)

        return format
L{DigestCredentialFactory.decode} handles multiple responses to a
dataset/ETHPy150Open jesseward/discogstagger/discogstagger/taggerutils.py/TaggerUtils._value_from_tag_format--crossover with--dataset/ETHPy150Open kuri65536/python-for-android/python-modules/twisted/twisted/test/test_digestauth.py/DigestAuthTests.test_multiResponse