Hi all. This January I’ve been integrating feedback from first time stem users and implementing their feature requests. Projects included…
Python 3.x Support
Stem now works under both the python 2.x and 3.x series. To use stem with python 3 simply use it when you install…
python3 setup.py install
This turned out to be a larger project than I had anticipated, taking almost half the month. But it was well worth the effort.
PEP8 Compliance
Ditched most of my odd coding preferences in favor of the standard python style guide. I’ve integrated both pep8 and pyflakes with our tests to prevent regression. Hopefully this’ll make it easier for others to contribute to stem.
Arm Codebase Refactoring
Prior to being shanghaied into the projects above I sunk quite a bit of time into overhauling arm. Thus far I’ve dropped around a third of the codebase in favor of similar (but tested!) capabilities in stem.
Descriptor Improvements
Got lots of input concerning stem’s descriptor module (thanks Karsten!), leading to quite a few improvements…
- used feedback from Aaron Johnson to make the descriptor API less confusing
- we now support bridge network status documents (ticket)
- added support for ‘-legacy’ authorities (ticket)
- parsing error if network status documents lacked a ‘directory-footer’ line (ticket)
- empty ‘bridge-ip-versions’ lines caused problems (ticket)
- we didn’t recognize the @type annotation for key certificates (ticket)
- we weren’t parsing the new ntor-onion-key lines (caught by sonu, ticket)
- error when ran with pypy (caught by peer)
Sean helped quite a bit at the start of the month, but has since been busy with other things.