예제 #1
0
    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)
예제 #2
0
파일: dcp.py 프로젝트: kieranjol/ClairMeta
    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
예제 #3
0
    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