skillfed

orderedmultidict

Ordered Multivalue Dictionary

orderedmultidict v1.0.2 6.0M downloads/30d#1,986 on PyPI68
Permissive license Unlicense AGING released

What it is and what it does

orderedmultidict (omdict) is a dictionary implementation that allows multiple values to be stored under a single key, while maintaining the order in which keys and values were inserted or modified. It provides method parity with Python's built-in dict, so it can often be used as a drop-in replacement. The package depends only on six and is written in pure Python, making it lightweight and portable.

The primary use case is handling data structures where a key naturally maps to multiple values—such as URL query parameters or form submissions—while preserving the sequence of insertions. It supports standard dict operations like update(), get(), and items(), alongside multidict-specific methods like add(), addlist(), and getlist() for managing multiple values per key.

Use it for:

  • Parse and manipulate URL query strings where parameters may repeat (used by furl)
  • Store form submission data where a field name may have multiple values
  • Build ordered key-value stores that need to preserve insertion sequence across updates
  • Replace dict in code that needs multivalue semantics without rewriting the API

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

orderedmultidict provides a dictionary that stores multiple values per key while preserving insertion order, with an API compatible with Python's built-in dict.

Yes, if you need multivalue dictionary semantics. The package is stable, has no known vulnerabilities, installs with low friction, and is in the public domain. The 269-day maintenance gap is a minor concern for a mature library, but the active repository and broad Python version support (2.7, 3.6–3.9, PyPy) make it reliable for existing projects. Not necessary if you can use a list-of-tuples or a dict-of-lists instead.

Install

orderedmultidict on PyPI

pip

pip install orderedmultidict

uv

uv add orderedmultidict

poetry

poetry add orderedmultidict

Installing orderedmultidict

Before you install

Installation is straightforward with low friction; the package depends only on six and ships as a pure Python wheel. Maintenance is aging—no releases in 269 days—but the repository remains active and the codebase is stable.

License in practice

Released under the Unlicense and placed in the public domain, so there are no licensing restrictions on use, modification, or redistribution.

Quickstart

pip install orderedmultidict

from orderedmultidict import omdict
omd = omdict()
omd.add(1, 'first')
omd.add(1, 'second')
print(omd.getlist(1))  # [1, 'first', 'second']

Verify before relying

  • Current compatibility with Python versions beyond 3.9 (classifiers list 3.9 as the highest)
  • Whether the package is actively maintained or in maintenance-only mode given the 269-day gap since last release

Package facts

License Unlicense (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 1 — six
Maintenance aging — 269 days since the last release
Last repo commit
First released
Downloads 6,009,079/month — #1,986 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: orderedmultidict-1.0.2-py2.py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: Freely DistributableNatural Language :: EnglishProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: Libraries

Tags

multivalue dictionaryordered multidictmultiple values per keydict with multiple valuesordered key-value storagemultidict pythonpreserve insertion order dict
data-structuredict-replacement

More Libraries packages