Fix BCF bug where BCFv2 files were unable to be loaded

This commit is contained in:
Dion Moult
2023-02-18 21:09:32 +11:00
parent ab9a4856ab
commit 9cf36f1d91
+6 -2
View File
@@ -24,7 +24,8 @@ from typing import Optional, Union
from bcf.v2.bcfxml import BcfXml as BcfXml2 from bcf.v2.bcfxml import BcfXml as BcfXml2
from bcf.v3.bcfxml import BcfXml as BcfXml3 from bcf.v3.bcfxml import BcfXml as BcfXml3
from bcf.v3.model import Version from bcf.v2.model import Version as Version2
from bcf.v3.model import Version as Version3
from bcf.xml_parser import AbstractXmlParserSerializer, XmlParserSerializer from bcf.xml_parser import AbstractXmlParserSerializer, XmlParserSerializer
@@ -65,5 +66,8 @@ def _get_version(filepath: Union[str, Path], xml_handler: Optional[AbstractXmlPa
""" """
xml_handler = xml_handler or XmlParserSerializer() xml_handler = xml_handler or XmlParserSerializer()
with zipfile.ZipFile(filepath) as bcf_zip: with zipfile.ZipFile(filepath) as bcf_zip:
version = xml_handler.parse(bcf_zip.read("bcf.version"), Version) try:
version = xml_handler.parse(bcf_zip.read("bcf.version"), Version3)
except:
version = xml_handler.parse(bcf_zip.read("bcf.version"), Version2)
return version.version_id return version.version_id