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.0.tar.gz (22.0 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.0-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dinorex_py-0.1.0.tar.gz
  • Upload date:
  • Size: 22.0 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.0.tar.gz
Algorithm Hash digest
SHA256 7d42f5b339c272b8ceb7df084135ee0d9fff018b2b6074497782a56c0e092264
MD5 327cb38f4c9869a06d84be3ec91eb4c6
BLAKE2b-256 66e89a0eb0ed380e401630ffbc07ea76c1ebf159012fbdd520828604c5903fb0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dinorex_py-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 36.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 923718556bd9d1aefc73ee997fad8cf403aa98328f4d4a3e1e30e2e416b88585
MD5 79da9a54fad8df52cb98da78c3f46f38
BLAKE2b-256 bd61498095a790a930b0dbf8ee299f01daf0508b8695b903e163939925abb58c

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