Adds support for Python 3 (nominally 3.4+, as that's what fabric supports, but for full disclosure: I only tested against 3.7)
The changes fall into 5 broad categories
Automatic changes suggested by the 2to3 utility
Fixing logic around checks involving None and numbers - Python2 allows this, Python3 does not.
Removal of pytest-localserver, as in Python 3 our tests using it were sporadically failing and the areas where we used it were easily monkeypatched over.
Fabric API changes - namely, there is now a Connection object that we pass around.
Updating Jinja to address a security vulnerability. Pycrypto also has a vulnerability, but there's no easy resolution to it so I've left that as future work.
The unit tests pass in both Python 2.7 and 3.7. Additionally, I have successfully run one of our real-world Alarmageddon scripts in both 2.7 and 3.7.
I've also bumped the version to 1.1.0. Once this is merged, I think we should immediately tag the commit and publish to pypi.
Adds support for Python 3 (nominally 3.4+, as that's what fabric supports, but for full disclosure: I only tested against 3.7)
The changes fall into 5 broad categories
2to3
utilityNone
and numbers - Python2 allows this, Python3 does not.pytest-localserver
, as in Python 3 our tests using it were sporadically failing and the areas where we used it were easily monkeypatched over.Connection
object that we pass around.The unit tests pass in both Python 2.7 and 3.7. Additionally, I have successfully run one of our real-world Alarmageddon scripts in both 2.7 and 3.7.
I've also bumped the version to 1.1.0. Once this is merged, I think we should immediately tag the commit and publish to pypi.