Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8327501
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T01:07:56+00:00 2026-06-09T01:07:56+00:00

As programmers we read more than we write. I’ve started working at a company

  • 0

As programmers we read more than we write. I’ve started working at a company that uses a couple of “big” Python packages; packages or package-families that have a high KLOC. Case in point: Zope.

My problem is that I have trouble navigating this codebase fast/easily. My current strategy is

  • I start reading a module I need to change/understand
  • I hit an import which I need to know more of
  • I find out where the source code for that import is by placing a Python debug (pdb) statement after the imports and echoing the module, which tells me it’s source file
  • I navigate to it, in shell or the Vim file explorer.
  • most of the time the module itself imports more modules and before I know it I’ve got 10KLOC “on my plate”

Alternatively:

  • I see a method/class I need to know more of
  • I do a search (ack-grep) for the definition of that method/class across the whole codebase (which can be a pain because the codebase is partly in ~/.buildout-eggs)
  • I find one or more pieces of code that define that method/class
  • I have to deduce which one of them is the one I need to read

This costs a lot of time, which is understandable for a big codebase. But I get the feeling that navigating a large and unknown Python codebase is a common enough problem.

So I’m looking for technical tools or strategic solutions for this problem.
…

I just can’t imagine hardcore Python programmers using the strategies outlined above.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T01:07:58+00:00Added an answer on June 9, 2026 at 1:07 am

    on Vim, I like NERDTree (a file browser) and taglist.vim (source code browser –> http://www.vim.org/scripts/script.php?script_id=273)

    also in Vim, you can use CTRL-] to jump to a definition (:h CTRL-]):

    1. download exuberant ctags http://ctags.sourceforge.net/
    2. follow the install directions and put it somewhere on your PATH
    3. from the ‘root’ directory of your source code, make a tags file from the shell: “ctags -R”
    4. (make sure you have :set noautochdir, and make sure :pwd is the root directory from step 3)
    5. go into Vim, cursor over some function or class name, hit CTRL-]

    by default, if there’s multiple matches for the tag, it shows you everywhere it was imported, and where it was declared

    if the tag only has one match, it immediately jumps to it

    …then use Ctrl+O and Ctrl+I to move back and forth from where you were

    (repeat above steps for the source code of particular libraries you use, i usually keep a separate Vim window open to study stuff)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have read that a variable should never do more than one thing. Overloading
I read that the enhanced for loop is more efficient than the normal for
I read quite a number of posts of programmers that run into the Unable
Often, programmers write code that generates other code. (The technical term is metaprogramming ,
i read some wisdom like this : Programmers are encouraged to be careful when
I recall when I first read Pragmatic Programmer that they suggested using scripting languages
Hi clever programmers, I've been searching and reading a couple days, but I need
I have read numerous time that learning a language such as Haskell, Lisp or
When reviewing code I came across something odd, someone had read that you can
I just read on MDN that one of the quirks of JS's handling of

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.