mirror of
https://github.com/iluvcapra/wavinfo.git
synced 2026-01-02 09:50:41 +00:00
Documentation
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from optparse import OptionParser, OptionGroup
|
||||
import datetime
|
||||
from . import WavInfoReader
|
||||
from . import __version__
|
||||
import sys
|
||||
import json
|
||||
from enum import Enum
|
||||
@@ -18,7 +19,7 @@ class MissingDataError(RuntimeError):
|
||||
def main():
|
||||
parser = OptionParser()
|
||||
|
||||
parser.usage = 'wavinfo [FILES]'
|
||||
parser.usage = 'wavinfo (--adm | --ixml) [FILES]'
|
||||
|
||||
# parser.add_option('-f', dest='output_format', help='Set the output format',
|
||||
# default='json',
|
||||
@@ -38,15 +39,20 @@ def main():
|
||||
if this_file.adm:
|
||||
sys.stdout.write(this_file.adm.xml_str())
|
||||
else:
|
||||
raise MissingDataError("--adm option active but ADM metadata not present")
|
||||
raise MissingDataError("adm")
|
||||
elif options.ixml:
|
||||
if this_file.ixml:
|
||||
sys.stdout.write(this_file.ixml.xml_bytes())
|
||||
else:
|
||||
raise MissingDataError("--ixml option active but iXML metadata not present")
|
||||
raise MissingDataError("ixml")
|
||||
else:
|
||||
ret_dict = {'file_argument': arg, 'run_date': datetime.datetime.now().isoformat() , 'scopes': {}}
|
||||
for scope, name, value in this_file.walk():
|
||||
ret_dict = {
|
||||
'filename': arg,
|
||||
'run_date': datetime.datetime.now().isoformat() ,
|
||||
'application': "wavinfo " + __version__,
|
||||
'scopes': {}
|
||||
}
|
||||
for scope, name, value in this_file.iter():
|
||||
if scope not in ret_dict['scopes'].keys():
|
||||
ret_dict['scopes'][scope] = {}
|
||||
|
||||
@@ -54,8 +60,7 @@ def main():
|
||||
|
||||
json.dump(ret_dict, cls=MyJSONEncoder, fp=sys.stdout, indent=2)
|
||||
except MissingDataError as e:
|
||||
print("Missing metadata error in file %s" % arg, file=sys.stderr)
|
||||
print(e, file=sys.stderr)
|
||||
print("MissingDataError: Missing metadata (%s) in file %s" % (e, arg), file=sys.stderr)
|
||||
continue
|
||||
except Exception as e:
|
||||
raise e
|
||||
|
||||
@@ -64,22 +64,25 @@ class WavInfoReader:
|
||||
|
||||
self.path = absolute_path
|
||||
|
||||
#: Wave audio data format
|
||||
#: Wave audio data format.
|
||||
self.fmt :Optional[WavAudioFormat] = None
|
||||
|
||||
#: Broadcast-Wave metadata
|
||||
#: Statistics of the `data` section.
|
||||
self.data :Optional[WavDataDescriptor] = None
|
||||
|
||||
#: Broadcast-Wave metadata.
|
||||
self.bext :Optional[WavBextReader] = None
|
||||
|
||||
#: iXML metadata
|
||||
#: iXML metadata.
|
||||
self.ixml :Optional[WavIXMLFormat] = None
|
||||
|
||||
#: ADM Audio Definiton Model metadata
|
||||
#: ADM Audio Definiton Model metadata.
|
||||
self.adm :Optional[WavADMReader]= None
|
||||
|
||||
#: Dolby Bitstream Metadata
|
||||
#: Dolby bitstream metadata.
|
||||
self.dolby :Optional[WavDolbyMetadataReader] = None
|
||||
|
||||
#: RIFF INFO Metadata
|
||||
#: RIFF INFO metadata.
|
||||
self.info :Optional[WavInfoChunkReader]= None
|
||||
|
||||
with open(path, 'rb') as f:
|
||||
@@ -163,7 +166,7 @@ class WavInfoReader:
|
||||
ixml_data = self._find_chunk_data(b'iXML', f, default_none=True)
|
||||
return WavIXMLFormat(ixml_data.rstrip(b'\0')) if ixml_data else None
|
||||
|
||||
def walk(self) -> Generator[str,str,Any]:
|
||||
def iter(self) -> Generator[str,str,Any]:
|
||||
"""
|
||||
Walk all of the available metadata fields.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user