Не знаю, решит ли это проблему с производительностью в vim, но код не запускался для меня из-за ошибок в нем.
opener.open
возвращает файл-подобный объект, поэтому вы должны прочитать его, используя
ElementTree.parse
вместо ElementTree.fromstring
(на самом деле после opener.open(...)
есть конечная точка, поэтому я не знаю, пропустили ли вы после этого read()
. В этом случае возвращаемое значение действительно является строкой).
Кроме того, вы можете попытаться закрыть opener
, чтобы посмотреть, освобождает ли это некоторые ресурсы (или использовать with
).
Прилагаю пример улучшенного кода:
import urllib.request
from xml.etree import ElementTree
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
with opener.open('https://papermc.io/repo/repository/maven-public/com/destroystokyo/paper/paper-api/maven-metadata.xml') as data:
root = ElementTree.parse(data)
latest = root.find("./versioning/latest")
snip.rv = latest.text