How to browse python docs offline

useful for the MATURA EXAM

TLDR;

Hi again! I'm writing this article the night before my mock IT matura exam, so it's probably not the wisest choice but history will judge me later. I discovered a few things to help you during the exam when you get stuck and I want to share them with you.

I know that probably python is not the thing most of you use everyday, and even if you use it everyday or occasionally (like me) you still google lots of things. We're practically always connected to the Internet so it's not a problem - just type "parsing date python" and it's there (fyi pros also do that). But what if we got disconnected, don't remember a thing, and we REALLY want to know which function to use in order to parse dates?

image.png source: devrant.com/rants/2467532/aahh-just-keep-go..

It turns out that's not only the case when you are on vacation in small village far far away but you need to prepare hot fix on the spot. It might also happen that you one day wake up as high school student who need to take the IT matura exam.

But the reason for your desperate need to find information about python functions and modules offline is irrelevant. The only thing that matters is that I have found a few solutions for you. Check them out!

Looking for info about python functions and modules OFFLINE

Let me present you 3 ways of searching info about python functions.

Using docs app

Important: I didn't test that

If you use linux and you have one installed (apt install python-doc), you are good to go, but if you don't (which might be the case), see below.

(Possibly not working) Looking into Doc dir

Important: I didn't test that

AHuman user posted this on StackOverflow in 2014 (possibly outdated?). He suggests browsing Doc dir in python installation directory.

Look in the python folder in the folder: Doc. This folder has the entire downloaded documentation of the python docs from python.org. I know this is a VERY late answer, but it brings up an easy solution.

Unfortunately, there's great chance that your Windows Python installation lacks Doc dir, especially if Python was installed through Microsoft Store.

Let see other solutions then!

Browsing modules & functions docs

The fact that docs may not be included as files doesn't mean they aren't present on your device.

When you start interactive python interpreter (type python or python3 and press Enter), you can use help function to get information about modules or functions. As argument you may pass function or module name. If the the page is long, you can navigate by using j and k keys (not sure if arrows work), and exit using Ctrl+C.

image.png

But in my opinion reading from console and navigating inside it is not something many people want to do during MATURA exam. They find it often cumbersome. Since I use Windows on my MATURA exam, but on a daily basis use Ubuntu I find it cumbersome too (I was trying to grep help on Windows hah).

Luckily there's a way for us.

Python ships with built-in module pydoc which help function uses internally to show you docs. But pydoc module can do a lot more, it can show you docs as website with search box to help you filter needed info. That's something we want, isn't it?

Often pydoc is not added to PATH so you cannot use it from Command Line/Terminal directly. (Not relevant info: You can still use it if you use virtual env, which I don't suspect you'll be using during matura).

How should we use it then?

With simple oneliner you type into Command Line/Terminal: python3 -c "import pydoc;pydoc.browse(1234)"

It opens your browser with the offline site I described above. Pretty neat!

If you know what are CLI flags and you are worried that I use linux-style flag-c not windows-style /c, don't be. Python on Windows just accepts linux-style flags.

Explain that oneliner to me

  1. We run python normally but -c flag allows us to put our python code directly into the command.
  2. In quotes we put python code
  3. First, we import pydoc module and in next line (when using python CLI, newline can be indicated by semicolon) we run pydoc.browse method with 1234 argument, which is port number we want to run our site on.

image.png pydoc browser

Tips for using pydoc browser

I highly recommend that you use "Get" box which prints docs right away than "Search" box which prints module names.

Remember: You need to know function/module name in order to use pydoc browser.

What if I don't know the function name?

There's cute little code I found here on Stack

import __builtin__
import inspect

builtin_functions = [name for name, function in sorted(vars(__builtin__).items())
 if inspect.isbuiltin(function) or inspect.isfunction(function)]

print(builtin_functions)

I would love to explain it to you how that code works but I gotta go and sleep a few hours. Some clue on what's going on with that snippet you can find in my previous article.

But if you got function names, you can more less deduct their purpose and then search pydoc for further questions.

If you going to take IT matura exam like me, best of luck to you my friend!


If you know any better solutions for browsing python docs offline, please let me know in the comments!