Don't use env shebang

May cause problems in combination with software collections
Proper locales specify also encoding
Be more pythonic and use enumerate
Stick to Python class naming conventions

PEP 8 recommends using CamelCase for class names.
Inform user about building failure nicely

AssertionError is not a "user-friendly exception".