Skip to main content

A two-pane terminal outline browser for Python modules.

Project description

pyoverview

pyoverview is a small terminal outline browser for Python files. It parses a module with Python's ast module and opens a two-pane TUI:

  • left pane: classes, functions, async functions, and nested definitions
  • right pane: syntax-highlighted source code on the terminal's default background, automatically scrolled to the selected symbol

pyoverview terminal UI showing an outline pane and syntax-highlighted code preview

Sections

Add module-level section comments to group the outline into larger chunks:

# region Configuration

DEFAULT_MODEL = "gpt-5"


def load_config():
    ...


# region Review Model

class Finding:
    ...


async def score_patch():
    ...

# %% Title cell comments are also supported:

# %% SFT

def sft_dataset():
    ...


# %% GRPO

def grpo_dataset():
    ...

Markdown-style comment headings are supported too. #, ##, and ### create nested sections:

# Training

def load_rows():
    ...


## SFT

def sft_dataset():
    ...


### Formatting

def format_prompt():
    ...

pyoverview renders those comments and headings as section nodes:

reviewer.py
  section: Training  L1
    function: load_rows()  L3
    section: SFT  L7
      function: sft_dataset()  L9
      section: Formatting  L13
        function: format_prompt()  L15

Only comments starting at the beginning of a line with # region , # %% , #%% , # , ## , or ### create sections. A section runs until the next section marker at the same or higher heading level, or the end of the file.

Install

uvx pyoverview path/to/module.py

If you are developing locally:

uv run pyoverview path/to/module.py

Keys

  • Up / Down, k / j: move through the outline
  • PageUp / PageDown: scroll code
  • g / G: jump to first / last outline item
  • Enter: center the selected symbol in the code pane
  • r: reload the file from disk
  • q: quit

Non-interactive Use

pyoverview --print path/to/module.py

This prints the outline without opening the TUI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyoverview-0.4.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyoverview-0.4.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file pyoverview-0.4.1.tar.gz.

File metadata

  • Download URL: pyoverview-0.4.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pyoverview-0.4.1.tar.gz
Algorithm Hash digest
SHA256 860f2ff8f2c82467c0b9072dcd5c6e2ffa02f1346f6152f7d7bf408651dc068b
MD5 2b14c48ba14293218469ac745940fc44
BLAKE2b-256 bc4d71329b5ee26dcfaabf6dba3dab597611c5385159a9d75d036e0c7a73573a

See more details on using hashes here.

File details

Details for the file pyoverview-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: pyoverview-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pyoverview-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2fd119b167f43d5447ef07b1fe112e3399d64e62127798bf7cf7b53bb8f73110
MD5 43f0edc19d61b628548b5d8847280ac7
BLAKE2b-256 22e7a530fd1049a66bc48ccf378fadeb71b53fb3274f6cce4653a0fcd7c23220

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page