Stack Overflow Auto-Search Tool | Crio.do Project Edition

Amit paikra
3 min readMar 27, 2021

Hi, I will give my best to demonstrate How I created a tool that will execute a Python program and check for errors during the execution. If there are errors, the tool will search for Stack Overflow threads that relate to the errors and open them as tabs in a web browser.

Wonder what is StackOverflow?

Stack Overflow is a source of helpful information for software development-related queries.

In this project, we are going to create a tool (Python script) that will check our Python program for errors by executing it and on encountering any errors, it will search for it on Stack Overflow and open up a few threads in web browser tabs

Before proceeding you should know the python language, concept of REST and HTTP.

Let's get started, requirements first Write a one-line Python program that will give us a runtime error.

Learn python Traceback.

sample python code
sample python error

Visit api.stackexchange.com and examine the documentation for the usage of the basic search feature.

Second, Extract the error message by executing the program

If it contains errors, you need to filter out the error type and error message from the Traceback. Otherwise, print No errors found on the console.

Utilize the Popen method from the subprocess module.

Popen sample code

Third, After the successful extraction of the error message, the next step is to use the Stack Exchange API’s search feature and open up a few Stack Overflow threads that relate to the error.

Use the error type and error message extracted and make a GET request using the Stack Exchange API’s search feature, from your wrapper script.

  • Using the error type
  • Using the error message
  • Using the error type and error message combined

You’ll receive a JSON response that will contain a list of items. Each object in the items the list provides us the details of a Stack Overflow thread that matches the required query. We are interested in those objects which have the is_answered parameter set to true. These objects contain a link parameter that contains the link to the respective Stack Overflow thread. You need to open a few links to verify.

Use the webbrowser module to open the extracted links in a web browser.

Conclusion

Altogether, It's fun to utilize many tools at once. For me, It's great learning how I use REST and HTTP. Using modules of python to interact with OS.

#IBelieveinDoing #learnbydoing

References

--

--