planarity
Python Wrapper for the Edge Addition Planarity Suite and Graph Library
Decision gist · record as of 2026-08-14
Yes, if you need planar graph algorithms and can handle compilation. The package is stable, actively maintained, permissively licensed, and has no runtime dependencies. High install friction (source compilation required) is the main drawback; verify your build environment supports C compilation before installing. No known security vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >= 3.10 and a C compiler to build from source (high install friction).
- High install friction: the package requires compilation from source (tar.gz distribution).
- Maintenance is active with a recent release (46 days ago) and ongoing repository commits, supporting Python 3.10 through 3.14.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause permissive license allows commercial and private use with attribution. The license covers both the Python wrapper and the underlying Edge Addition Planarity Suite (EAPS) C library.
last release 2026-06-29 (46 days) · last repo commit 2026-08-13 · 43 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 709,596 downloads/mo, #5,262 on PyPI
Alternatives
Verify before relying
import planarity
edgelist = [('a', 'b'), ('a', 'c'), ('b', 'c')]
print(planarity.is_planar(edgelist)) # True
print(planarity.ascii(edgelist)) # ASCII drawing
print(planarity.mapping(edgelist)) # Vertex label to index mapping- Whether NetworkX integration is automatic or requires explicit setup beyond import.
- Performance characteristics on large graphs (vertex/edge count thresholds).
- Which specific forbidden subgraph algorithms are exposed in the public API.
What it is and what it does
Planarity is a Python wrapper around the Edge Addition Planarity Suite (EAPS), a high-performance C library for planar graph algorithms. It provides functions to test whether a graph is planar, compute planar embeddings, generate ASCII-art drawings of planar graphs, and detect forbidden subgraphs. The package has no runtime dependencies and is designed for developers and researchers working with graph theory, discrete mathematics, and algorithm development.
The package accepts graphs as edge lists (tuples of vertex labels) and returns results as booleans, dictionaries, or formatted strings. It is production-stable (Development Status 5) and actively maintained, with support for modern Python versions (3.10–3.14). However, installation requires compilation from source, which adds friction on platforms without a C compiler readily available.
Use it for
- Verify whether a network topology or circuit diagram can be drawn without edge crossings before layout algorithms.
- Detect and isolate forbidden subgraphs (like K5 or K3,3) in graph-based data structures for constraint checking.
- Generate quick ASCII visualizations of small planar graphs for debugging or documentation.
- Integrate planar graph testing into NetworkX-based graph analysis pipelines.
- Benchmark or validate planar graph algorithms in academic research or algorithm development.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need planar graph algorithms and can handle compilation.
The package is stable, actively maintained, permissively licensed, and has no runtime dependencies. High install friction (source compilation required) is the main drawback; verify your build environment supports C compilation before installing. No known security vulnerabilities.
Install
planarity on PyPI
Before you install
High install friction: the package requires compilation from source (tar.gz distribution). Maintenance is active with a recent release (46 days ago) and ongoing repository commits, supporting Python 3.10 through 3.14.
Requires Python >= 3.10 and a C compiler to build from source (high install friction).
License in practice
BSD-3-Clause permissive license allows commercial and private use with attribution. The license covers both the Python wrapper and the underlying Edge Addition Planarity Suite (EAPS) C library.
Quickstart
import planarity
edgelist = [('a', 'b'), ('a', 'c'), ('b', 'c')]
print(planarity.is_planar(edgelist)) # True
print(planarity.ascii(edgelist)) # ASCII drawing
print(planarity.mapping(edgelist)) # Vertex label to index mapping
Verify before relying
- Whether NetworkX integration is automatic or requires explicit setup beyond import.
- Performance characteristics on large graphs (vertex/edge count thresholds).
- Which specific forbidden subgraph algorithms are exposed in the public API.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Actively maintained 46 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 709,596 / month, #5,262 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 :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: CProgramming 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.14Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Artificial IntelligenceTopic :: Scientific/Engineering :: Bio-InformaticsTopic :: Scientific/Engineering :: ChemistryTopic :: Scientific/Engineering :: Electronic Design Automation (EDA)Topic :: Scientific/Engineering :: Information AnalysisTopic :: Scientific/Engineering :: MathematicsTopic :: Scientific/Engineering :: PhysicsTopic :: Scientific/Engineering :: VisualizationTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python Modules |
Evidence: planarity-1.0.0.tar.gz
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 › “planar graph testing”
- planarityTests whether a graph is planar, computes planar embeddings, draws…
- pointpatsPointpats provides statistical methods for analyzing planar point…
- dwave-samplersProvides a collection of classical and hybrid optimization algorithms…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also python-igraph · pygraphviz · grandalf · asciidag · minorminer · graphtty · igraph · networkx · pointpats · asciichartpy