Python Tips & Tricks for Junior Developers

Motivation Learning the programming language Python is easy but becoming a proficient developer can be quite cumbersome: Python has a complex ecosystem of package / dependency management, some finicky language details and of course you should learn some tricks of the trade as well. So here is the place to start your journey into the…

Running external commands from Python

Motivation Although Python has a ton of built-in features and the ecosystem is full of useful pip-installable packages sometimes you need to fire up some external tools os.system The simplest form of launching external tools is the os.system function import os os.system(“echo Hello from the other side!”)   subprocess module The subprocess module is Python’s…

What are Python properties?

In “What’s the difference between classmethod and staticmethod in Python?” we looked at static and class methods. The third big decorator is the @property decorator import pytest class Person: def __init__(self, name): self._name = name @property def name(self): print(‘Getting name’) return self._name @name.setter def name(self, value): print(f’Setting name to {value}’) self._name = value @name.deleter def…

How to let test cases run in a predefined order

Motivation pytest executes tests in a randomly order. Sometimes it can be useful to have a predefined order in which test cases can run. pytest has a neat plugin for this specific use case. Installation pip install pytest-order Usage import pytest @pytest.mark.order(1) def test_foo(): assert True @pytest.mark.order(2) def test_bar(): assert True @pytest.mark.order(3) def test_foobar(): assert…

How to manipulate nested dictionaries with dotty

Motivation Sometimes a task which should be easy can be hard to accomplish in practice. Manipulating nested dictionaries in Python seems to be such a task. Without dotty Accessing nested dictionaries looks like this: data = { ‘a’: { ‘b’: { ‘c’: ‘d’ } } } assert data[‘a’][‘b’][‘c’] == ‘d’ You have to chain the…

How to store sensitive data in a .env file

Motivation Whether you need credentials to log into a system or some configuration parameters for your application, the .env concept might help you. Installation pip install python-dotenv Usage .env file Create an .env file in your project root folder You should not share this file or commit/push it to your version control. You should add…

How to implement Python Decorators – Part 2

When you’ve finished reading How to implement Python Decorators you might wonder if it is possible to hand over some parameters to the decorator function. And yes that is possible and can come in quite handy. For a Flask project I wrote a decorator to manage authorization of endpoints. I wanted to grant access to…

How to use glob in Python

Motivation Sometimes you need to find files across multiple directories and / or directory hierarchies according to certain pattern. E.g. find all image files with the jpg extension You can use it to find files in a directory by using wildcard semantics. Let’s say we have a directory structure like this: glob_test/ |– dir_a/ |–…