objectgraph
A basic graph library
Decision gist · record as of 2026-08-14
Yes, if you need a lightweight, permissively licensed graph library for Python 3.10+. The single dependency, Production/Stable status, and zero known vulnerabilities make it low-risk. The aging maintenance status (no release in 266 days) is a minor concern for a stable library but worth monitoring if you plan long-term use. Suitable for small to medium graph use cases; verify performance characteristics for larger workloads.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Low install friction; single lightweight dependency on typing_extensions.
- Maintenance status is aging—last commit was 2026-01-02 and no release in 266 days—but the codebase is marked Production/Stable and supports current Python versions through 3.15.
License · maintenance · safety
MIT (permissive) — MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
last release 2025-11-21 (266 days) · last repo commit 2026-01-02 · 6 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 129,438 downloads/mo, #11,670 on PyPI
Alternatives
Verify before relying
pip install objectgraph
from objectgraph import ObjectGraph
graph = ObjectGraph()
# Add nodes and edges via the graph API- Whether the graph implementation is optimized for large-scale use or primarily suited to small to medium graphs.
- Performance characteristics compared to other graph libraries or whether benchmarks exist.
- Whether the 'identifier' attribute requirement for nodes imposes practical constraints on object types.
What it is and what it does
Objectgraph is a graph library for Python 3 that lets you represent directed graphs where nodes are arbitrary objects (identified by a hashable 'identifier' attribute) and edges can carry arbitrary attributes. The library uses a non-standard edge model: multiple edges between the same pair of nodes are allowed, but edges with identical attributes are automatically collapsed into a single edge, reducing redundancy.
The package is a complete rewrite of the ObjectGraph class from altgraph, built from scratch for Python 3 with full test coverage. It depends only on typing_extensions and supports Python 3.10 through 3.15, including free-threading support in Python 3. The codebase is marked Production/Stable and has been actively maintained since its initial release in 2019, though recent activity has slowed.
Use it for
- Build dependency graphs or call graphs where you need to track relationships between arbitrary Python objects.
- Model network topologies or system architectures where nodes represent entities and edges represent connections with metadata.
- Analyze object relationships in memory profiling or debugging tools that need to represent object references.
- Implement graph-based algorithms on custom domain objects without writing graph infrastructure from scratch.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need a lightweight, permissively licensed graph library for Python 3.10+.
The single dependency, Production/Stable status, and zero known vulnerabilities make it low-risk. The aging maintenance status (no release in 266 days) is a minor concern for a stable library but worth monitoring if you plan long-term use. Suitable for small to medium graph use cases; verify performance characteristics for larger workloads.
Install
objectgraph on PyPI
Before you install
Low install friction; single lightweight dependency on typing_extensions. Maintenance status is aging—last commit was 2026-01-02 and no release in 266 days—but the codebase is marked Production/Stable and supports current Python versions through 3.15.
Requires Python 3.10 or later.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install objectgraph
from objectgraph import ObjectGraph
graph = ObjectGraph()
# Add nodes and edges via the graph API
Verify before relying
- Whether the graph implementation is optimized for large-scale use or primarily suited to small to medium graphs.
- Performance characteristics compared to other graph libraries or whether benchmarks exist.
- Whether the 'identifier' attribute requirement for nodes imposes practical constraints on object types.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetyping_extensions |
| Maintenance | Aging 266 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 129,438 / month, #11,670 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Free Threading :: 3 - StableProgramming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Libraries :: Python Modules |
Evidence: objectgraph-1.0.5-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “directed graph nodes edges”
- objectgraphObjectgraph provides a Python class for representing directed graphs…
- streamlit-agraphRenders interactive network graphs in Streamlit apps using vis.js,…
- ipydagred3ipydagred3 is an ipywidgets library for rendering and interacting…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also altgraph · Penman · Dijkstar · toposort · pinject · modulegraph2 · networkx · objgraph · modulegraph · nebula3-python