Discover this podcast and so much more

Podcasts are free to enjoy without a subscription. We also offer ebooks, audiobooks, and so much more for just $11.99/month.

Unavailable#65 Speed of your import statements affecting performance?
Currently unavailable

#65 Speed of your import statements affecting performance?

FromPython Bytes


Currently unavailable

#65 Speed of your import statements affecting performance?

FromPython Bytes

ratings:
Length:
27 minutes
Released:
Feb 14, 2018
Format:
Podcast episode

Description

Sponsored by Rollbar: pythonbytes.fm/rollbar

Brian #1: pygal : Simple Python Charting


Output SVG or PNG
Example Flask App (also django response) part of documentation.
Enough other bits of doc to get you a chart in a web page super fast.


Michael #2: Thoughts on becoming a self-taught programming


Basic format:
I'm 31 days into self-studying Python and am loving every minute of it!
A few questions:

What were you doing before you began self-studying programming?
What made you want to study programming on your own?
How did you start (which resources and language)?
How long did it take for you to feel confident enough in your skills and knowledge to know you could be employed as a programmer?
What else did you do besides self-study that helped you in your journey to becoming a programmer?
What's next for you?



Brian #3: How to speed up Python application startup time (timing imports in 3.7)


Python 3.7 includes -X importtime option that allows you to profile the time it takes to do all the imports.
Way cool tool to help optimize the startup time of an application.


Michael #4: AnPyLar - The Python web front-end framework


Create web applications with elegance, simplicity and yet full power with Python and components
MISSION: Empower all Python programmers to work not only on the back-end but also on the front-end with the same language of choice
Features

Reactive programming and Promises
Python standard formatting as templates
reusable components
Scoped styling for component
Integrated routing engine



Brian #5: Migrating to Python 3 with pleasure


“A short guide on features of Python 3 for data scientists”
Quick tutorial through examples of pathlib.
Type hinting and how cool it works with editors (PyCharm example shown)
Adding runtime type enforcement for specific methods using enforce
Using function annotations for units, as done in astropy.
Matrix multiplication with @.
Globbing with **.

found_images = glob.glob('/path/**/*.jpg', recursive=True)

Also … underscores in numeric literals, f-strings, true division with /, integer division with //, and lots of more fun goodies.


Michael #6: Moving to Python 3


Many of these issues were corrected just by running 2to3, which not only fixed many of the compatibility issues

Outdated external libraries which needed to be updated to newer versions featuring Python 3 compatibility
basestring to str, urlparse to urllib.urlparse and similar major changes
Dictionary change like iteritems() to items(), or .items() now returning a view.
Things that weren't needed anymore, like Django's force_unicode or __future__ library tools.

Once we finished working on the "low-hanging fruits", the next step was to run Aphrodite's test suite and achieve zero errors.
Lessons learned

Code coverage was originally around 70%,
Keeping the Python 3 branch up to date with master
A non-trivial feature was delivered during the migration (via feature branch)
The pickle protocol version in python 3 can be higher than the highest available in Python 2.7. So we needed to add versioning to our Django caches
Each modified file had to comply with flake8 linting rules

Afrodita is currently running on Google App Engine Flexible, and one of the features our team loves with is traffic splitting
With this feature, we can do canary releases with ease: We just deploy our new version of the service, and start redirecting small amounts of traffic traffic while we monitor for unexpected errors.
After some minor bugfixes, we could bring the traffic of the Python 3.6 version to 100% with confidence. We also had the old version available for instant rollback, thanks to how parallel versions and traffic splitting work in GAE flexible.


Our news

Brian:


Upcoming webinar: Productive pytest with Pycharm


Michael:


My GUI example: https://github.com/mikeckennedy/pyramid-web-builder-python-gui
Released:
Feb 14, 2018
Format:
Podcast episode