laike9m/pdir2
laike9m/pdir2 has 1,320 GitHub stars and 47 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 06:44 UTC. Last push 2026-01-07.
Pretty dir() printing with joy🍻
What you can do
- Attributes are grouped by types/functionalities, with beautiful colors.
- Support color customization, here's how.
- Support all platforms including Windows(Thanks to colorama).
- Support ipython, ptpython, bpython and Jupyter Notebook! See wiki for details.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Originalpdir2: Pretty dir() printing with joy
Have you ever dreamed of a better output of dir()? I do. So I created this.

Features
Attributes are grouped by types/functionalities, with beautiful colors.
Support color customization, here's how.
Support all platforms including Windows(Thanks to colorama).
Support ipython, ptpython, bpython and Jupyter Notebook! See wiki for details.
The return value of
pdir()can still be used as a list of names.✨ Attribute searching
You can search for certain names with
.s()or.search():
Search is case-insensitive by default.
search(name, case_sensitive=True)does case-sensitive searching.:star2: Attribute filtering
properties: Find properties/variables defined in the inspected object.methods: Find methods/functions defined in the inspected object.public: Find public attributes.own: Find attributes that are not inherited from parent classes.These filters can be chained! Order does NOT matter.
For example, use
pdir(obj).public.own.methodsto find all public own methods.You can also call
searchon the returned results.See a complete example.
Install
Generic
pip install pdir2
About the name. I wanted to call it "pdir", but there's already one with this name on pypi. Mine is better, of course.
Fedora
dnf install python3-pdir2
Automatic Import
As a better alternative of dir(), it's more convenient to automatically import
pdir2 when launching REPL. Luckily, Python provides a way to do this. In you .bashrc(or .zshrc), add this line:
export PYTHONSTARTUP=$HOME/.pythonstartup
Then, create .pythonstartup in your home folder. Add one line:
import pdir
Next time you launch REPL, pdir() is already there, Hooray!
Development
Set up development environment
Install dev dependencies
Simply run
pdm install.If you want to work on a specific Python version, run
pdm use [PYTHON_VERSION]first to switch PDM to that version (e.g.pdm use 3.9if you want to debug a Python 3.9 specific issue).Run tests
Run
pdm run tox
The guide may be incomplete. Please file bugs if you encounter any issues.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,935 starspublic-apis/public-apis
A collective list of free APIs
497,198 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,535 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,178 stars