Upgrade to Pro — share decks privately, control downloads, hide ads and more …

When The __future__ Becomes The Present; Dropping Python 2 Support In A Commercial Client

When The __future__ Becomes The Present; Dropping Python 2 Support In A Commercial Client

Video: https://www.youtube.com/watch?v=LS3CmWgFNdA
Note: This was a sponsored talk so is a bit more Nexmo focused than my usual talks

---

Nexmo recently decided to refactor our Python client library to be Python 3-only. Learn why we made this decision, the advantages (and disadvantages) that come along with it, and how we’re monitoring and helping our users with the migration.

Since Python 3.4, Python has jumped forward, adding many features that are not available in Python 2.7. Maintaining Python 2 compatibility means either avoiding these new language features or using backport libraries that provide an approximation. Neither provided the best experience for our users.

In this talk, we’ll also discuss how we support users of our legacy library, the benefits that the new library offers, and our experience of developing a customer-facing Python library with the latest Python language and core library.

Aaron Bassett

June 13, 2018
Tweet

More Decks by Aaron Bassett

Other Decks in Technology

Transcript

  1. Notify users (well in advance) Blog / Twitter / Email

    Shout it from the rooftops! @NexmoDev
  2. Deprecation Warning @NexmoDev “Warning messages are typically issued in situations

    where it is useful to alert the user of some condition in a program, where that condition (normally) doesn’t warrant raising an exception and terminating the program. For example, one might want to issue a warning when a program uses an obsolete module.”
  3. Respect user's time, make it easy to upgrade Keeping DRY

    with code generation Add support for sync and async Adopt latest best practices @NexmoDev