27
27
from contextlib import contextmanager
28
28
from datetime import datetime
29
29
from typing import IO , Any , Dict , Iterable , Iterator , List , Optional
30
- from xml .etree import ElementTree as ET
30
+ from xml .etree import ElementTree
31
31
32
32
CALL_PATTERN = (
33
33
r"Takeout/Voice/(?P<directory>Calls|Spam)/"
@@ -194,13 +194,13 @@ def parse_file(filename: str, takeout: zipfile.ZipFile) -> CallDict:
194
194
content = takeout .read (filename ).decode ("utf-8" )
195
195
196
196
try :
197
- xml = ET .fromstring (
197
+ xml = ElementTree .fromstring (
198
198
# HACK: Remove HTML tags and entities that cause XML parse errors
199
199
# This is fine because we don't care about the content
200
200
# Alternatively, use a proper HTML parser like lxml.html or pyquery
201
201
content .replace ("<br>" , "" ).replace ("&" , "" ),
202
202
)
203
- except ET .ParseError as exc :
203
+ except ElementTree .ParseError as exc :
204
204
raise ValueError (f"Error parsing { filename } " ) from exc
205
205
206
206
return {
@@ -210,7 +210,7 @@ def parse_file(filename: str, takeout: zipfile.ZipFile) -> CallDict:
210
210
}
211
211
212
212
213
- def parse_call_duration (xml : ET .Element ) -> Optional [str ]:
213
+ def parse_call_duration (xml : ElementTree .Element ) -> Optional [str ]:
214
214
"""
215
215
Parse a call's duration from HTML.
216
216
@@ -223,7 +223,7 @@ def parse_call_duration(xml: ET.Element) -> Optional[str]:
223
223
return element .text .strip ("()" )
224
224
225
225
226
- def parse_call_datetime (xml : ET .Element ) -> Optional [datetime ]:
226
+ def parse_call_datetime (xml : ElementTree .Element ) -> Optional [datetime ]:
227
227
"""
228
228
Parse a call's timestamp from HTML.
229
229
@@ -249,7 +249,7 @@ def format_datetime(dt: Optional[datetime]) -> CallDict:
249
249
}
250
250
251
251
252
- def parse_messages (xml : ET .Element ) -> CallDict :
252
+ def parse_messages (xml : ElementTree .Element ) -> CallDict :
253
253
"""
254
254
Parse message metadata from HTML.
255
255
@@ -280,7 +280,7 @@ def parse_messages(xml: ET.Element) -> CallDict:
280
280
}
281
281
282
282
283
- def parse_message_datetime (xml : ET .Element ) -> Optional [datetime ]:
283
+ def parse_message_datetime (xml : ElementTree .Element ) -> Optional [datetime ]:
284
284
"""
285
285
Parse a message's timestamp from HTML.
286
286
0 commit comments