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:
@@ -0,0 +1,48 @@
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See LICENSE in the project root
|
||||
# for license information.
|
||||
|
||||
from . import VENDORED_ROOT
|
||||
from ._util import cwd, iter_all_files
|
||||
|
||||
|
||||
INCLUDES = [
|
||||
'setup_pydevd_cython.py',
|
||||
]
|
||||
|
||||
|
||||
def iter_files():
|
||||
# From the root of pydevd repo, we want only scripts and
|
||||
# subdirectories that constitute the package itself (not helper
|
||||
# scripts, tests etc). But when walking down into those
|
||||
# subdirectories, we want everything below.
|
||||
|
||||
with cwd(VENDORED_ROOT):
|
||||
return iter_all_files('pydevd', prune_dir, exclude_file)
|
||||
|
||||
|
||||
def prune_dir(dirname, basename):
|
||||
if basename == '__pycache__':
|
||||
return True
|
||||
elif dirname != 'pydevd':
|
||||
return False
|
||||
elif basename.startswith('pydev'):
|
||||
return False
|
||||
elif basename.startswith('_pydev'):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def exclude_file(dirname, basename):
|
||||
if dirname == 'pydevd':
|
||||
if basename in INCLUDES:
|
||||
return False
|
||||
elif not basename.endswith('.py'):
|
||||
return True
|
||||
elif 'pydev' not in basename:
|
||||
return True
|
||||
return False
|
||||
|
||||
if basename.endswith('.pyc'):
|
||||
return True
|
||||
return False
|
||||
Reference in New Issue
Block a user