Skip to main content

map-ai-py

MAP (Markdown for AI Processing) documentation scaffold — install and drift-check CLI for Django, Flask, FastAPI, and plain Python projects.

This package doesn't reimplement MAP's install/patch logic — it vendors and shells out to larablocks/map-ai's install.sh/doctor.sh, the same zero-runtime-dependency scripts that back non-PHP, non-JS installs of MAP. The only Python-native part is auto-detecting your project's name, stack, and commands from pyproject.toml/requirements.txt to fill in AGENTS.md, the same role map-ai-laravel's ProcessesStubContent and map-ai-js's detect.js play for their ecosystems.

Requires bash to be on PATH — true for Mac/Linux and WSL, but worth knowing if you're on native Windows without WSL.

Install

pipx run map-ai-py install
# or
uvx map-ai-py install

Copies the MAP scaffold (AGENTS.md, CLAUDE.md, GEMINI.md, .claude/, docs/, etc.) into the current directory, merges the required .gitignore/.gitattributes entries, bootstraps your gitignored personal files (docs/MEMORY.md, docs/memory/gotchas.md, etc.), and fills in what it can detect:

  • Project name — from pyproject.toml's [project].name (or Poetry's [tool.poetry].name), title-cased; falls back to the directory name
  • Stack — the first framework it recognizes (Django, FastAPI, Flask, Litestar, Starlette, Tornado, Sanic, Pyramid) plus any data-layer dependency (SQLAlchemy, PostgreSQL, MySQL, Redis, MongoDB drivers)
  • Test commandpytest if it's a dependency, prefixed with uv run/poetry run/pipenv run depending on which lockfile is present
  • Static analysis commandruff/mypy/flake8, whichever are dependencies
  • Start commandpython manage.py runserver for Django, docker compose up -d if a compose file exists, uvicorn/flask run otherwise if detectable
  • Build command — only for a src/-layout package meant to ship to PyPI itself (python -m build); omitted for applications, where "build" has no meaning

Start/build command detection is weaker here than map-ai-js's — Python has no package.json-scripts-equivalent single convention, so this falls back to a [MANUAL] placeholder more often. That's an accepted, documented gap, not a bug.

Files that already exist are left alone unless you pass --force, which overwrites SCAFFOLD_FILES after backing each one up to <file>.bak:

pipx run map-ai-py install --force

Pass a path to install somewhere other than the current directory:

pipx run map-ai-py install ./backend

Checking for drift

pipx run map-ai-py doctor               # report only — exits 1 if anything needs attention
pipx run map-ai-py doctor --fix         # applies fixable findings unattended, then reports what's left
pipx run map-ai-py doctor --interactive # same fixable set as --fix, confirmed one file at a time

doctor never touches real project content — it only ever adds missing files/lines, or replaces a stub's own instructional text (a stale italic note, HTML comment, or fenced-code trailing comment) with its current wording. Anything else is reported for you to merge by hand, never auto-applied. See larablocks/map-ai's README for the exact safety rules; this package's doctor/install commands are the same doctor.sh/install.sh scripts, unmodified.

Keeping this package in sync with map-ai

This package vendors a copy of install.sh/doctor.sh/lib.sh/stubs/ rather than depending on larablocks/map-ai at install time (there's no PyPI-native way to depend on a Composer package). scripts/sync-from-map-ai.sh re-vendors those files from a local larablocks/map-ai checkout — run it, review the diff, bump this package's version, and publish whenever map-ai core releases something this package should pick up.

Development

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest

License

MIT

Download files

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

Source Distribution

map_ai_py-0.1.0.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

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

map_ai_py-0.1.0-py3-none-any.whl (57.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: map_ai_py-0.1.0.tar.gz
  • Upload date:
  • Size: 34.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for map_ai_py-0.1.0.tar.gz
Algorithm Hash digest
SHA256 da21ed5bc0d9d060d43aa974e80eb0bb666d71d285b3546a2d705c0fc3260fa7
MD5 ac7e0fcab9630c19f924c3bf38e8780e
BLAKE2b-256 70539ace60074da7aa49a4adab3062b8a3d84706a056be194f985e14020a6a18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: map_ai_py-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 57.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for map_ai_py-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c340a9a83bee1b2ebe280a1e6ca3107badf4d9bd93c97cad92d02bcd1900ab5
MD5 7de8e6a41d1aca10e6dc1a2a6b79c218
BLAKE2b-256 907f547d427fe521edd10123cccf35a35d6b0f208954430abaa8703b4327e641

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