def test_attributes(self): xml_with_attrib = parse_xml(self.get_file_path('CPL_SMPTE.xml')) xml_without_attrib = parse_xml(self.get_file_path('CPL_SMPTE.xml'), xml_attribs=False) self.assertNotEqual(xml_with_attrib, xml_without_attrib) xml_with_attrib = remove_key_dict(xml_with_attrib, ['@']) self.assertEqual(xml_with_attrib, xml_without_attrib)
def parse(self, probe=True): """ Parse the DCP and Probe its assets. """ if self._parsed: return self.probe_dict start = time.time() self.log.info("Probing DCP : {}".format(self.path)) # Find and parse package components self.init_package_files() self.init_assetmap() self.init_volindex() self.init_pkl() self.init_cpl() if probe: self.cpl_probe_assets() self._probeb = True self.cpl_parse_metadata() seconds_elapsed = time.time() - start self.log.info("Total time : {:.2f} seconds".format(seconds_elapsed)) self.probe_dict = { 'asset_list': self._list_asset, 'volindex_list': self._list_vol, 'assetmap_list': self._list_am, 'cpl_list': self._list_cpl, 'pkl_list': self._list_pkl, 'package_type': self.package_type, 'path': self.path, 'size': human_size(self.size), 'count_file': len(self._list_asset), 'schema': self.schema, 'type': 'DCP' } # Remove namespace and attributes key from final result self.probe_dict = remove_key_dict(self.probe_dict, ['__xmlns__', '@xmlns']) self._parsed = True return self.probe_dict
def metadata(self): """ All extracted package metadata Dictionnary. """ self.probe_dict = { 'asset_list': self._list_asset, 'volindex_list': self._list_vol, 'assetmap_list': self._list_am, 'cpl_list': self._list_cpl, 'pkl_list': self._list_pkl, 'kdm_list': self._list_kdm, 'package_type': self.package_type, 'path': self.path, 'size': human_size(self.size), 'count_file': len(self._list_asset), 'schema': self.schema, 'type': 'DCP' } # Remove namespace and attributes key self.probe_dict = remove_key_dict(self.probe_dict, ['__xmlns__', '@xmlns']) return self.probe_dict