Skip to main content

AI-powered API documentation for Python projects — one command, full docs.

Project description

dinorex-py

AI-powered API documentation for Python projects — one command, full docs.

The Python sibling of dinorex.
Point it at any Python backend and get a live interactive docs UI instantly.

Supported frameworks

Framework Route detection Model/schema detection
FastAPI @router.get, @app.get, APIRouter Pydantic v1 & v2 BaseModel
Flask @app.route, @bp.route, MethodView Marshmallow schemas
Django urls.py path() / re_path(), CBVs Django ORM models.Model
DRF ViewSet, APIView, @action ModelSerializer, Serializer
Falcon on_get, on_post … responders
Sanic @app.route, @bp.route
Litestar @get, @post, Controller Pydantic / attrs
Starlette Route(), Mount() Pydantic
Tornado RequestHandler subclasses
aiohttp RouteTableDef, add_route
SQLAlchemy Column, mapped_column
Tortoise ORM fields.CharField

Installation

pip install dinorex-py

Quick start

# Anthropic (default)
export ANTHROPIC_API_KEY=sk-ant-...
dinorex scan /path/to/your/project

# Groq (free)
export GROQ_API_KEY=gsk_...
dinorex scan /path/to/your/project --provider groq

# Custom port
dinorex scan . -p 8080

Project structure

dinorex-py/
├── src/
│   └── dinorex_py/
│       ├── __init__.py
│       ├── cli.py          # Click CLI entry point
│       ├── scanner.py      # File discovery for all Python frameworks
│       ├── agent.py        # Anthropic Claude agent
│       ├── agent_groq.py   # Groq/Llama3 agent (free tier)
│       ├── server.py       # Flask server + REST API
│       ├── store.py        # Persistent spec cache + diff logic
│       └── public/         # Frontend UI (shared with dinorex Node)
├── pyproject.toml
└── README.md

How it works

  1. Scan — discovers route files, controllers, services, and models using glob patterns tuned for every Python framework.
  2. Analyse — sends the source code to Claude (or Llama3 via Groq) which extracts a structured JSON spec.
  3. Cache — saves the spec and file hashes to .dinorex/spec.json. Re-runs are incremental — only changed files are re-analysed.
  4. Serve — starts a local Flask server with the interactive UI.

Environment variables

Variable Description
ANTHROPIC_API_KEY Required for Anthropic provider
GROQ_API_KEY Required for Groq provider
DINOREX_PROVIDER Set default provider (anthropic or groq)

License

MIT

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

dinorex_py-0.1.4.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

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

dinorex_py-0.1.4-py3-none-any.whl (37.9 kB view details)

Uploaded Python 3

File details

Details for the file dinorex_py-0.1.4.tar.gz.

File metadata

  • Download URL: dinorex_py-0.1.4.tar.gz
  • Upload date:
  • Size: 23.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for dinorex_py-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9e213b28e44865be8cfe0edfdd6d5ba805cab397957fa432cbb6782ba71e837e
MD5 9121b3a2a9e745e9e58e31ffa4419f93
BLAKE2b-256 e7c4367fd161b0da529f98c95363d0f761a342a87252c5aeda9bc664ac81db7c

See more details on using hashes here.

File details

Details for the file dinorex_py-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: dinorex_py-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for dinorex_py-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ea740dab2fc53e2c9f25940766f97c16880f82bd882519a63a84fd8eb502caf8
MD5 65c9434b0b88740df84a43f2488607e9
BLAKE2b-256 59f63b26ea654cb1a169a83c9c6b80726ffbe76dcdb35c37de01216edc8e22a0

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