I'm not a fan of lazy imports, but having discussed this with @rhattersley, this is one place where they are justified. The majority of users will not need NAME loading so I have intentionally put the vast majority of code in  name_loaders.py which is only imported if needed.