Revert "Removed the setup.py"

This reverts commit 6158ede280962b0651fae0cbd0c537d626247eff.
Revert "Revert "Removed the setup.py""

This reverts commit 446cead11c709901681867b4f86adefce3854701.
Revert "Revert "Revert "Removed the setup.py"""

This reverts commit 60b23e5a3f8823709586641efd7f2f1b6bfbc4fa.
Tests