News

Introducing Sidekick's Python Support

We are happy to announce support for Python runtime for Sidekick. Now, with this latest release, developers can remotely debug their Python applications using Sidekick’s web applications or the IntelliJ IDEA plugin.
Gokhan Simsek
2 mins read

We are happy to announce support for Python runtime for Thundra Sidekick.  Now, with Thundra's latest release, developers can live debug their Python applications using Sidekick’s web applications, the IntelliJ IDEA plugin, or the VSCode extension.

To note; Sidekick supports Python versions 2.7, 3.5, 3.6, 3.7, 3.8 and applies an asynchronous approach to achieve adding zero overhead to your application execution times.
Sidekick is a live debugging tool that helps you to trace flaws and find bugs in Python applications. It supports frameworks such as Django (1.11+), Flask (0.5+), Fastapi (0.62.0+), Chalice (1.0.0+), Tornado(6.0+).

As the Thundra engineering team, we develop applications to mock real-world problem scenarios and to demonstrate Thundra’s products and features to solve those problems.

In this post, I will give a quick overview of the bug I found while working on a social media application in Python runtime thanks to Sidekick.

I and one of my colleagues signed up for the social media app with the usernames “Thundra” and “thundra”.

Then when I wanted to see my own posts in the app I got an error message and I could not see my posts.

image1
Image1 - Signing up for our social media application

To troubleshoot, I instrumented my app with Sidekick, and I put a tracepoint (with a condition) to the relevant line of code in my application.

image2
Image2 - Setting a tracepoint on line #24 with a condition by Sidekick

When I clicked on the “my posts” button again, the app ran and Sidekick captured the event without even stopping the execution.

image3
Image3 - Capturing the event without stopping the app and seeing the variables

Sidekick’s seamless TraceMap integration enabled me to detect what was really difficult to point out. I clicked on the TraceMap link and saw the request & response flow of my application with all the necessary information such as the full error stack and so.

image4
Image4 - The distributed trace map of the captured event with the full error stack

When I read the error stack, it was clear and observable that I should have used exact lookup instead of iexact in Django strings because exact lookup is case sensitive where iexact is not.

So the error was caused because of missing the case sensitiveness case in the application. During creating the Queryset, the database got an error because we had two users in the same name.

It was really fast and easy to troubleshoot and resolve the error in minutes with Sidekick.

Try it out and read more by checking out our documentation of this new functionality:

Sidekick comes as an IntelliJ IDEA, VSCode extension, and web IDE. Get your account and start using Sidekick today.

Fresh insights from Sidekick experts every week.

Get the best insights, delivered straight to your inbox.