{"library":"pptree","title":"pptree: Pretty print trees","description":"pptree is a Python library (current version 3.1) designed to pretty-print tree-like data structures in a console-friendly, hierarchical format. It provides a default `Node` implementation and a `print_tree` function that can work with both its own `Node` objects and custom object structures. The library has an infrequent release cadence, with the last update in April 2020.","language":"python","status":"maintenance","last_verified":"Mon May 18","install":{"commands":["pip install pptree"],"cli":null},"imports":["from pptree import Node","from pptree import print_tree"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pptree import Node, print_tree\n\n# Create a tree using the default Node class\nroot = Node(\"Root\")\nchild1 = Node(\"Child 1\", root)\nchild2 = Node(\"Child 2\", root)\ngrandchild1 = Node(\"Grandchild 1\", child1)\n\nprint(\"--- Default Node Tree ---\")\nprint_tree(root)\n\n# Example with custom node class\nclass CustomNode:\n    def __init__(self, name, parent=None):\n        self.custom_name = name\n        self.children_list = []\n        if parent:\n            parent.children_list.append(self)\n\n    def __str__(self):\n        return self.custom_name\n\ncustom_root = CustomNode(\"Custom Root\")\ncustom_child1 = CustomNode(\"Custom Child 1\", custom_root)\ncustom_child2 = CustomNode(\"Custom Child 2\", custom_root)\n\nprint(\"\\n--- Custom Node Tree ---\")\n# For custom nodes, specify 'childattr' and 'nameattr'\nprint_tree(custom_root, childattr='children_list', nameattr='custom_name')","lang":"python","description":"This quickstart demonstrates how to create and pretty-print a tree using `pptree`'s default `Node` class and how to adapt `print_tree` for custom node implementations by specifying `childattr` and `nameattr`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"3.1","pypi_latest":"3.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.4,"avg_import_s":0,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"19.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":1.9,"import_time_s":0,"mem_mb":0,"disk_size":"20M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"21.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0,"mem_mb":0,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"11.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.1,"import_time_s":0,"mem_mb":0,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.2,"disk_size":"11.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0,"mem_mb":0,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0,"disk_size":"18.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pptree","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0,"mem_mb":0,"disk_size":"19M"}]}}