from guano import GuanoFile
# load a .WAV file with (or without) GUANO metadata
g = GuanoFile('test.wav')
# get and set metadata values like a Python dict
print g['GUANO|Version']
>>> 1.0
print g['Make'], g['Model']
>>> 'Pettersson', 'D500X'
g['Species Manual ID'] = 'Myso'
g['Note'] = 'I love GUANO!'
# namespaced fields can be specified separately or pipe-delimited
print g['PET', 'Gain'], g['PET|Gain']
>>> 80, 80
g['SB|Consensus'] = 'Epfu'
g['SB', 'Consensus'] = 'Epfu'
# print all the metadata values
for key, value in g.items():
print '%s: %s' % (key, value)
# write the updated .WAV file back to disk
g.write()
# have some GUANO metadata from some other source? load it from a string
g = GuanoFile.from_string('GUANO|Version:1.0\nTags:voucher,hand-release')
# write GUANO metadata somewhere else, say an Anabat file or text file
with open('sidecar_file.guano', 'wb') as outfile:
outfile.write( g.serialize() )
# teach the parser to recognize custom metadata fields
GuanoFile.register('Anabat', ['Humidity', 'Temperature'], float)
GuanoFile.register('SB', 'Thumbnail Image', guano.base64decode)