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.1.tar.gz (36.0 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.1-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: map_ai_py-0.1.1.tar.gz
  • Upload date:
  • Size: 36.0 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.1.tar.gz
Algorithm Hash digest
SHA256 52c572b39681b598889e5eb98a9fd5547ca141bba23f4ad220dcf36eedefe00e
MD5 b4fc1fd1899bb0332ae780643fdc80a3
BLAKE2b-256 ce64b7a050e265c8b04ff8e89bfdb70b9cb158aad0b106b1c15c4947878d6c4d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: map_ai_py-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 60.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e16e48db26668782455e12152d05d8baca1d0211f22e5a6d276f7a8c504907f3
MD5 689aad77f617caa11466b25850b9b6f5
BLAKE2b-256 36562740cd7972b67f05dc6cbe547af35c7f9c9197eed9c9a0ba36edf3b2c136

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