Python Project Workflows - Part 3 (pylint)
In the first part we looked at a few challenges involved when developing a Python project in a collaborative environment. In the second part we looked at how Pipenv
addresses some of those issues. In this part of the series we are going to take a closer look at how one can use code linting tools. Specifically we are going to be looking in details at using pylint
.
Python Project Workflows - Part 1
In a Python based development, tools like pylint
, pipenv
and virtualenv
become important pieces of your development workflow. In the first part of the series of blog posts, we look at overview of the issues that become important as the scope of the project and size of the team working on project increases. In later posts in these series, we would try to address these issues one by one, we look at starting a project, identifying and resolving dependencies 'correctly', why reproducible builds matter, how to separate development and production environment and eventually how to containerize the application.
Using Python Context Manager for Profiling
Profiling your code to identify hotspots or potential performance issues can prove quite useful. Python provides a cProfile
package in the standard library provides this functionality for deterministic profiling. Usually, one might want to have an ability to turn profiling on and off at the run-time if possible. We explore a mechanism based on context managers in Python (Python with
syntax) to be able to do so.
So Vector Operations Are Fast, Right?
Recently, for one of the projects we are working on, I was looking at processing data from Pandas panel. I wanted to find out certain items
in a Panel based on certain criteria on the minor axis
. I worked with two flavors and the findings for different data-sets are quite interesting. Something that would definitely qualify as an interesting learning. We discuss, how profiling can be successfully used to explain certain Performance behavior, that often looks counter-intuitive.