Vendor debugpy for VS Code attach debugging

Bundles debugpy 1.7.0 directly in python/ so "Maya: Attach (debugpy)"
works with no per-machine pip install step. Installed via Maya 2022's
own pip so it resolved a version actually compatible with Python 3.7
(Maya 2022's interpreter), then verified import + listen() succeeds
under all three target Maya Python versions (3.7/3.9/3.10).

Also fixes a latent __file__-under-exec() bug in
start_debug_server.py (same pitfall as Maya's own plugin loader,
never hit until this exercised it) and corrects the README's Maya
Python version claim -- 2022 ships Python 3.7, not 3.9 as previously
stated, which was never independently verified until now.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 09:01:16 +08:00
parent e2f2e6668a
commit ec5f52c7c6
623 changed files with 236815 additions and 12 deletions
@@ -0,0 +1,60 @@
from flask import Flask
from flask import render_template
app = Flask(__name__)
@app.route("/")
def home():
content = 'Flask-Jinja-Test'
return render_template(
"hello.html",
title='Hello',
content=content
)
@app.route("/handled")
def bad_route_handled():
try:
raise ArithmeticError('Hello')
except Exception:
pass
return render_template(
"hello.html",
title='Hello',
content='Flask-Jinja-Test'
)
@app.route("/unhandled")
def bad_route_unhandled():
raise ArithmeticError('Hello')
return render_template(
"hello.html",
title='Hello',
content='Flask-Jinja-Test'
)
@app.route("/bad_template")
def bad_template():
return render_template(
"bad.html",
title='Bad',
content='Flask-Jinja-Test'
)
@app.route("/exit")
def exit_app():
from flask import request
func = request.environ.get('werkzeug.server.shutdown')
if func is None:
raise RuntimeError('No shutdown')
func()
return 'Done'
if __name__ == '__main__':
app.run()