This led to the parser having to be re-created on every access, which is quite expensive for the re2 and regex-based parser and completely negates their purpose.
This can be worked around by using a from-import (as Python will do the memoizing in that case, although every such from-import would create its own parser still)
from ua_parser import parser
or setting the global parser "by hand" e.g.
ua_parser.parser = ua_parser.parser
but obviously that requires knowing about the issue.
Major thanks to @Rafiot for the report.