$npx skillfedfor your agent

catalogue

Super lightweight function registries for your library

Worth itPyPI Scientific/EngineeringReleased Sep 202324.2M downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — catalogue-2.0.10-py3-none-any.whl
v2.0.10 · released 2023-09-25 · Python >=3.6 · 2 runtime deps: zipp, typing-extensions

Yes. Catalogue is lightweight, actively maintained, has no security vulnerabilities, uses a permissive license, and solves a real problem for library authors building extensible systems. Install it if you're designing a package that needs user-customizable or plugin-based function dispatch with serialization support.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.6 or later (catalogue v2.0+ is not compatible with Python 2.7).
  • Low friction: pure Python wheel with only two lightweight runtime dependencies (zipp, typing-extensions).
  • Actively maintained with recent commits; marked Production/Stable and in the top 1000 PyPI packages.

License · maintenance · safety

MIT (permissive) — MIT license (permissive) means you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.

last release 2023-09-25 (1054 days) · last repo commit 2026-03-27 · 183 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 24,184,951 downloads/mo, #923 on PyPI

Verify before relying

pip install catalogue

import catalogue

# Create a registry
loaders = catalogue.create("my_package", "loaders")

# Register a function
@loaders.register("json_loader")
def load_json(data):
    return data

# Retrieve all registered functions
all_loaders = loaders.get_all()
loader = loaders.get("json_loader")
  • Whether entry_points support works reliably across all packaging tools and environments
  • Performance characteristics when registries contain many functions
Same gist for agents: .md · .json

What it is and what it does

Catalogue is a minimal Python library for creating function registries—collections of functions stored under string identifiers within a namespace. Instead of passing functions directly as callbacks, you register them once and retrieve them by name. This pattern is useful when you need to serialize which functions were used (logging a string name is simpler than pickling a function), while still allowing users to extend your package with custom functions via a decorator.

The library's core use case is building extensible systems where third-party code can register handlers, loaders, or components at install time (via entry points) or import time (via decorators), and your application retrieves them by string ID. It's particularly common in NLP and ML pipelines where you want to compose parameterized components that can be saved and reloaded from configuration files.

Use it for

  • Build a plugin system where users decorate custom functions to register them under your package's namespace
  • Create serializable pipeline configs that reference functions by string name instead of pickled objects
  • Allow third-party packages to auto-register components via entry points without requiring explicit imports
  • Implement a data loader registry where different file formats map to registered loader functions
  • Store and retrieve model architectures or loss functions by identifier in machine learning frameworks

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

Catalogue is lightweight, actively maintained, has no security vulnerabilities, uses a permissive license, and solves a real problem for library authors building extensible systems. Install it if you're designing a package that needs user-customizable or plugin-based function dispatch with serialization support.

Install

catalogue on PyPI

Before you install

Low friction: pure Python wheel with only two lightweight runtime dependencies (zipp, typing-extensions). Actively maintained with recent commits; marked Production/Stable and in the top 1000 PyPI packages.

Requires Python 3.6 or later (catalogue v2.0+ is not compatible with Python 2.7).

License in practice

MIT license (permissive) means you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.

Quickstart

pip install catalogue

import catalogue

# Create a registry
loaders = catalogue.create("my_package", "loaders")

# Register a function
@loaders.register("json_loader")
def load_json(data):
    return data

# Retrieve all registered functions
all_loaders = loaders.get_all()
loader = loaders.get("json_loader")

Verify before relying

  • Whether entry_points support works reliably across all packaging tools and environments
  • Performance characteristics when registries contain many functions

Package facts

LicenseMIT permissive
Python supportSupports the current Python release >=3.6
Install frictionLow. Pure-Python wheel
Runtime dependencies
2 packages
zipptyping-extensions
MaintenanceActively maintained 1,054 days since the last release
Last repo commit
First released
Downloads24,184,951 / month, #923 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/Engineering

Evidence: catalogue-2.0.10-py3-none-any.whl

Tags

Capabilities
function registry decoratorplugin registration systemstring-based function lookupserializable function registryextensible callback registrynamespace-based function storageentry point integration registry
Topics
plugin-systemregistry-patternserialization

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 › “function registry decorator”

  • catalogueProvides lightweight function registries that let you register and…
  • confectionConfection is a configuration system for Python that parses INI-style…
  • in-n-outLightweight dependency injection framework using type hints to…

Give your agent the search over MCP, or paste the wish link into any chat.

More Scientific/Engineering packages

numpy Worth it
PyPI · Software Development · released Aug 2026

NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.

BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0compiled wheel · 3.12+
1.1Bdownloads / mo
pandas Worth it
PyPI · Scientific/Engineering · released Jul 2026

pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.

BSD-3-Clausecompiled wheel · 3.11+
769.1Mdownloads / mo
scipy Worth it
PyPI · Libraries · released Jun 2026

scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.

BSD-3-Clausecompiled wheel · 3.12+
449.0Mdownloads / mo
scikit-learn Worth it
PyPI · Software Development · released Jun 2026

scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.

Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.

BSD-3-Clausecompiled wheel · 3.11+
235.5Mdownloads / mo
dill Worth it
PyPI · Software Development · released Jan 2026

dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.

BSD-3-Clausepure Python · 3.9+
208.1Mdownloads / mo
multiprocess Worth it
PyPI · Software Development · released Jan 2026

Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.

Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.

BSD-3-Clausepure Python · 3.9+
202.7Mdownloads / mo

See also phx-class-registry · persisting-theory · confection · spacy-legacy · robotcode-plugin · essentials · evmdasm · stevedore · entrypoint · azure-schemaregistry