Skip to main content

A simple context builder and converter toolkit

Project description

ContextMaker

License Python

ContextMaker is a powerful Python toolkit that converts library documentation into formats optimized for AI agent ingestion. It automatically detects and processes various documentation formats including Sphinx, Jupyter notebooks, Python docstrings, and raw source code.

Feature to enrich the CMBAgents: Multi-Agent System for Science, Made by Cosmologists, Powered by AG2.

Features

  • 🔍 Automatic Format Detection: Intelligently detects Sphinx, notebooks, docstrings, or source code
  • 📚 Multi-Format Support: Handles Sphinx documentation, Jupyter notebooks, Python docstrings, and raw source
  • 🚀 Smart Fallbacks: Multiple conversion methods with automatic fallbacks for maximum compatibility
  • 📝 Flexible Output: Generate clean text (.txt) or markdown (.md) files
  • 🎯 AI-Optimized: Output formatted specifically for Large Language Model ingestion
  • 🔧 Robust Processing: Handles edge cases and provides detailed logging

Supported Documentation Formats

  1. Sphinx Documentation (Highest Priority)

    • Automatic detection of conf.py and index.rst
    • Support for Makefile-based builds
    • Fallback to direct Sphinx building
  2. Jupyter Notebooks

    • Recursive search for .ipynb files
    • Conversion to markdown using jupytext
    • Integration with other documentation sources
  3. Python Docstrings

    • AST-based extraction of module, class, and function docstrings
    • Structured markdown output with proper headers
  4. Raw Source Code

    • Fallback for projects without structured documentation
    • Preserves code formatting and structure

Installation

Install ContextMaker from PyPI:

python3 -m venv context_env
source context_env/bin/activate
pip install contextmaker

Usage

From the Command Line

ContextMaker automatically finds libraries on your system and generates complete documentation with function signatures and docstrings.

# Convert a library's documentation (automatic search)
contextmaker library_name

# Example: convert pixell documentation
contextmaker pixell

# Example: convert numpy documentation
contextmaker numpy

Advanced Usage

# Specify custom output path
contextmaker pixell --output ~/Documents/my_docs

# Specify manual input path (overrides automatic search)
contextmaker pixell --input_path /path/to/library/source

# Choose output format (txt or md)
contextmaker pixell --extension md

# Save directly to specified file without creating folders (rough mode)
contextmaker pixell --output ./pixell_context.txt --rough

Output

  • Default location: ~/your_context_library/library_name.txt
  • Content: Complete documentation with function signatures, docstrings, examples, and API references
  • Format: Clean text optimized for AI agent ingestion

From a Python Script

You can also use ContextMaker programmatically in your Python scripts:

import contextmaker

# Minimal usage (automatic search, default output path)
contextmaker.make("pixell")

# With custom output path
contextmaker.make("pixell", output_path="/tmp")

# With manual input path
contextmaker.make("pixell", input_path="/path/to/pixell/source")

# Choose output format (txt or md)
contextmaker.make("pixell", extension="md")

# Save directly to specified file without creating folders (rough mode)
contextmaker.make("pixell", output_path="./pixell_context.txt", rough=True)

Examples

Processing a Sphinx Project

contextmaker my_library --input_path /path/to/sphinx/docs

Processing Notebooks Only

contextmaker tutorial_project --input_path /path/to/notebooks

Custom Output Format

contextmaker numpy --extension md --output ~/my_docs

Running the Jupyter Notebook

To launch and use the notebooks provided in this project, follow these steps:

  1. Install Jupyter
    If Jupyter is not already installed, you can install it with:
pip install jupyter
  1. Launch Jupyter Notebook
    Navigate to the project directory and run:
jupyter notebook

This will open the Jupyter interface in your web browser.

Dependencies

  • Core: Python 3.8+
  • Documentation: Sphinx, jupytext, sphinx-rtd-theme
  • Processing: markdownify, beautifulsoup4, html2text
  • Utilities: rich, numpy, docutils, jinja2

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

This project uses the CAMB code developed by Antony Lewis and collaborators. Please see the CAMB website and documentation for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contextmaker-1.8.6.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

contextmaker-1.8.6-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

Details for the file contextmaker-1.8.6.tar.gz.

File metadata

  • Download URL: contextmaker-1.8.6.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for contextmaker-1.8.6.tar.gz
Algorithm Hash digest
SHA256 04309feba431507ed711a0a8a87b03a9ecfaa5da9f2e9e05127bf8b0019e7fc1
MD5 ae0518223e64b2c05a892317020eafc7
BLAKE2b-256 22508577f635dad272184f36d304a1f290ee90ead384bcd604783d82e6c67d92

See more details on using hashes here.

File details

Details for the file contextmaker-1.8.6-py3-none-any.whl.

File metadata

  • Download URL: contextmaker-1.8.6-py3-none-any.whl
  • Upload date:
  • Size: 35.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for contextmaker-1.8.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ca3ed3ca3ce1ed3f85b736e5f30380e6ab1e10e90cb15f735dbcf729c065ddfa
MD5 072ac85c33c0324241b34dca1eecf329
BLAKE2b-256 3d44d5f05f89242e227591aa9e10014d614e6dcbd0afe0b9a8176e585c00ccf6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page