Add pre-commit linting to project
Update tests to pass linting
Update code style
Add ignore file