Switched over to using pyproject.toml as that is python's latest "standard".
Added local build scripts for build, lint, testing and packaging.
Added CI configs that run the local build scripts.
Added CI configs that auto-publish to pypi when creating a github release. (This requires the addition of a couple environment variables in project settings)
Using poetry for dependency and package management as it solves a lot of things pip does not. Such as dependency lock file and easier publishing to pypy.
This PR enables the next steps:
Seamless dev experience - All they need to do is change code and run ./scripts/build.sh to be certain their change will work.
Automated builds - Just create the PR and github's actions will run the build in 3 versions of python.
Standard code formatting - All contributed code will meet python's standard coding guidelines thanks to black and isort.
Linting to the extreme - flake, mypy and pylint will help ensure code is documented and clean.
Adding github automated build configs.
This PR enables the next steps:
./scripts/build.sh
to be certain their change will work.