

""" ) def _getOrigReleaseDate ( self ): if self. NOTE: ID3v2.3 only has original release date, so setting release_date is the same as original_release_value they both set TORY. Original release date is usually what is intended but many programs use this frame and/or don't distinguish between the two. This is NOT the original date the work was released, instead it is more like the pressing or version of the release. dedent ( """ The date the audio was released. _setDate ( b "TDRL", date ) release_date = property ( _getReleaseDate, _setReleaseDate ) release_date. _setOriginalReleaseDate ( date ) else : self. version = ID3_V2_3 : # v2.3 does NOT have a release date, only TORY, so that is what is set self. _getDate ( b "TDRL" ) def _setReleaseDate ( self, date ): if self. _getV23OriginalReleaseDate () else : return self. version = ID3_V2_3 : # v2.3 does NOT have a release date, only TORY, so that is what is returned return self. ``None`` will be returned if no dates are available.""" return datePicker ( self, prefer_recording_date ) def _getReleaseDate ( self ): if self. Unless ``prefer_recording_date`` is ``True`` in which case the order is 3, 1, 2. The order of preference is: 1) date of original release 2) date of this versions release 3) the recording date. def getBestDate ( self, prefer_recording_date = False ): """This method returns a date of some sort, amongst all the possible date frames. warn ( "Use Tag.getBestDate() instead", DeprecationWarning, stacklevel = 2 ) return ( self. Or None is returned.""" import warnings warnings. The order of preference for a release date is 1) date of original release 2) date of this versions release 3) the recording date. _setDate ( b "TDEN", date ) encoding_date = property ( _getEncodingDate, _setEncodingDate ) def best_release_date ( self ): """This method tries its best to return a date of some sort, amongst alll the possible date frames. _getDate ( b "TDEN" ) def _setEncodingDate ( self, date ): self. _images def _getEncodingDate ( self ): return self. MusicCDIdFrame ( toc = toc ) def images ( self ): return self. frame_set return if count 804 : raise ValueError ( "CD identifier table of contents can be no " "greater than 804 bytes" ) if self.

setter def play_count ( self, count ): if count is None : del self. BPM_FID, str ( bpm )) bpm = property ( _getBpm, _setBpm ) def play_count ( self ): if frames.

frame_set return total_str = "" if n is not None : if 0 = 0 ) self. debug ( f "Comment: )" ) n = ( tn, tt ) if n is None and n is None : if self. strip ( ID3_V1_STRIP_CHARS ) # There may only have been a track # if comment : log. debug ( "Track: " + str ( track )) comment = comment. debug ( "Track Num found, setting version to v1.1" ) self. tell () = 2 and # Python the slices (the chars), so this is really # comment and comment comment = b " \x00 " and comment != b " \x00 " ): log. # v1.x tags are 128 bytes min and max fp. debug ( "Tag contains %d bytes of padding." % padding ) return True, padding def _loadV1Tag ( self, fp ): v1_enc = "latin1" # Seek to the end of the file where all v1x tags are written. version ) # Header is definitely there so at least one frame *must* follow. parse ( fp ): return False, 0 # Read the extended header if present. close () return tag_found def _loadV2Tag ( self, fp ): """Returns (tag_found, padding_len)""" # Look for a tag and if found load it. tag_padding_size = padding finally : if close_file : fileobj. extended_header = None if tag_found and self. _loadV1Tag ( fileobj ) if tag_found : self. _loadV2Tag ( fileobj ) if not tag_found and version & 1 : tag_found, padding = self. if version & 2 : tag_found, padding = self. file_info = FileInfo ( filename ) try : tag_found = False padding = 0 # The & is for supporting the "meta" versions, any, etc. name except AttributeError : if type ( fileobj ) is str : filename = fileobj fileobj = open ( filename, "rb" ) close_file = True else : raise ValueError ( "Invalid type: %s " % str ( type ( fileobj ))) self. clear () version = version or ID3_ANY_VERSION close_file = False try : filename = fileobj. Def parse ( self, fileobj, version = ID3_ANY_VERSION ): assert fileobj self.
