While the typing fixes in #235 make consuming this library nicer, marking all the top level CONSTANTS as final means that any code consuming this and using mypy "can't" modify them any more, which is especially notable for HEADER_FORMAT that is explicitly marked as safe for monkey patching.
Some other fields such as Mesh.name also feel odd to be marked Final, but are less frustrating since there are workarounds beyond just disabling the mypy check for that line.
While the typing fixes in #235 make consuming this library nicer, marking all the top level CONSTANTS as final means that any code consuming this and using mypy "can't" modify them any more, which is especially notable for HEADER_FORMAT that is explicitly marked as safe for monkey patching.
Some other fields such as
Mesh.namealso feel odd to be marked Final, but are less frustrating since there are workarounds beyond just disabling the mypy check for that line.