mirror of
https://github.com/iluvcapra/wavinfo.git
synced 2025-12-31 08:50:41 +00:00
Added iXML track list parsing
This commit is contained in:
2
setup.py
2
setup.py
@@ -4,7 +4,7 @@ with open("README.md", "r") as fh:
|
||||
long_description = fh.read()
|
||||
|
||||
setup(name='wavinfo',
|
||||
version='1.2',
|
||||
version='1.3',
|
||||
author='Jamie Hardt',
|
||||
author_email='jamiehardt@me.com',
|
||||
description='Probe WAVE Files for iXML, Broadcast-WAVE and other metadata.',
|
||||
|
||||
@@ -87,3 +87,10 @@ class TestWaveInfo(TestCase):
|
||||
self.assertEqual( e['take'], info.ixml.take )
|
||||
self.assertEqual( e['tape'], info.ixml.tape )
|
||||
self.assertEqual( e['family_uid'], info.ixml.family_uid )
|
||||
|
||||
for track in info.ixml.track_list:
|
||||
self.assertIsNotNone(track.channel_index)
|
||||
if basename == 'A101_4.WAV' and track.channel_index == '1':
|
||||
self.assertTrue(track.name == 'MKH516 A')
|
||||
|
||||
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
|
||||
from .wave_reader import WavInfoReader
|
||||
|
||||
__version__ = '1.1'
|
||||
__version__ = '1.3'
|
||||
__author__ = 'Jamie Hardt'
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#import xml.etree.ElementTree as ET
|
||||
from lxml import etree as ET
|
||||
import io
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
IXMLTrack = namedtuple('IXMLTrack', ['channel_index', 'interleave_index', 'name', 'function'])
|
||||
|
||||
class WavIXMLFormat:
|
||||
"""
|
||||
@@ -33,7 +37,20 @@ class WavIXMLFormat:
|
||||
The root entity of the iXML document.
|
||||
"""
|
||||
return self.parsed
|
||||
|
||||
|
||||
@property
|
||||
def track_list(self):
|
||||
"""
|
||||
A description of each track.
|
||||
:return: An Iterator
|
||||
"""
|
||||
for track in self.parsed.find("./TRACK_LIST").iter():
|
||||
if track.tag == 'TRACK':
|
||||
yield IXMLTrack(channel_index=track.xpath('string(CHANNEL_INDEX/text())'),
|
||||
interleave_index=track.xpath('string(INTERLEAVE_INDEX/text())'),
|
||||
name=track.xpath('string(NAME/text())'),
|
||||
function=track.xpath('string(FUNCTION/text())'))
|
||||
|
||||
@property
|
||||
def project(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user